# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1268984304 -7200 # Node ID b1fb57be53feddfa94bc4fb4d9cd1b2134338b7c # Parent d45095c2f4f3b3f90c9de5d0391e23fdbaf427a0 Revision: 201007 Kit: 201011 diff -r d45095c2f4f3 -r b1fb57be53fe layers.sysdef.xml --- a/layers.sysdef.xml Tue Feb 02 00:27:58 2010 +0200 +++ b/layers.sysdef.xml Fri Mar 19 09:38:24 2010 +0200 @@ -1,14 +1,15 @@ - ]> - + + @@ -27,6 +28,7 @@ + diff -r d45095c2f4f3 -r b1fb57be53fe mmappcomponents/asxparser/group/asxparser.mmp --- a/mmappcomponents/asxparser/group/asxparser.mmp Tue Feb 02 00:27:58 2010 +0200 +++ b/mmappcomponents/asxparser/group/asxparser.mmp Fri Mar 19 09:38:24 2010 +0200 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -15,7 +15,7 @@ * */ -// Version : %version: 9.1.2 % +// Version : %version: 9.1.3 % #include @@ -42,7 +42,6 @@ LIBRARY xmlenginedom.lib LIBRARY xmlparser.lib LIBRARY xmldom.lib -LIBRARY flogger.lib LIBRARY charconv.lib NOSTRICTDEF diff -r d45095c2f4f3 -r b1fb57be53fe mmappcomponents/asxparser/inc/AsxParser_debug.h --- a/mmappcomponents/asxparser/inc/AsxParser_debug.h Tue Feb 02 00:27:58 2010 +0200 +++ b/mmappcomponents/asxparser/inc/AsxParser_debug.h Fri Mar 19 09:38:24 2010 +0200 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -15,8 +15,7 @@ * */ -// Version : %version: 4.1.1 % - +// Version : %version: 4.1.2 % #ifndef __MP_DEBUG_H__ @@ -24,40 +23,20 @@ #include #include -#include - -// -// Forward declaration -// -class AsxParserDebug; - -// #ifdef __MARM__ -// #define _ASX_PARSER_FILE_LOGGING_ -// #endif - -#ifdef _ASX_PARSER_FILE_LOGGING_ - #define ASX_DEBUG AsxParserDebug::FileLog -#else - #ifdef _DEBUG - #define ASX_DEBUG RDebug::Print - #else - #define ASX_DEBUG AsxParserDebug::NullLog - #endif -#endif class AsxParserDebug { public: - inline static void NullLog(TRefByValue /*aFmt*/,...) + inline static void NullLog( TRefByValue /*aFmt*/, ... ) { - } - - inline static void FileLog(TRefByValue aFmt,...) - { - VA_LIST list; - VA_START(list,aFmt); - RFileLogger::WriteFormat(_L("AsxParser"), _L("ap.log"),EFileLoggingModeAppend,aFmt,list); } }; +#ifdef _DEBUG + #define ASX_DEBUG RDebug::Print +#else + #define ASX_DEBUG AsxParserDebug::NullLog +#endif + + #endif // __MP_DEBUG_H__ diff -r d45095c2f4f3 -r b1fb57be53fe mmappcomponents/asxparser/src/asxparser.cpp --- a/mmappcomponents/asxparser/src/asxparser.cpp Tue Feb 02 00:27:58 2010 +0200 +++ b/mmappcomponents/asxparser/src/asxparser.cpp Fri Mar 19 09:38:24 2010 +0200 @@ -15,7 +15,7 @@ * */ -// Version : %version: e003sa33#10.1.6 % +// Version : %version: 10.1.5 % @@ -299,8 +299,7 @@ CleanupStack::PopAndDestroy(); //attributeList } - TBool urlIsSet = EFalse; - while( !urlIsSet && nodelist2.HasNext() ) + while( nodelist2.HasNext() ) { element = nodelist2.Next(); @@ -327,8 +326,6 @@ TPtrC8 attrData = attr.Value(); asxItem->url = attrData.AllocL(); iAsxArray.Append(asxItem); - urlIsSet = ETrue; - break; } } diff -r d45095c2f4f3 -r b1fb57be53fe mmappcomponents/asxparser/test/AsxFiles/multiURL.asx --- a/mmappcomponents/asxparser/test/AsxFiles/multiURL.asx Tue Feb 02 00:27:58 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +0,0 @@ - - Unknown Abstract Info - Unknown Title - Unknown Author - 2008 by Nokia - - - Link 1 - 2008 Nokia - - - - - Link 2 - 2008 Nokia - - - - - Link 3 - 2008 Nokia - - - - diff -r d45095c2f4f3 -r b1fb57be53fe mmappcomponents/asxparser/test/test.cpp --- a/mmappcomponents/asxparser/test/test.cpp Tue Feb 02 00:27:58 2010 +0200 +++ b/mmappcomponents/asxparser/test/test.cpp Fri Mar 19 09:38:24 2010 +0200 @@ -12,12 +12,10 @@ * Contributors: * * Description: Simple v2/v3 ASX-fileparser - * +* */ -// Version : %version: e003sa33#6 % - - +// Version : %version: 7 % #include #include @@ -25,7 +23,6 @@ #include #include -#include #include diff -r d45095c2f4f3 -r b1fb57be53fe mmappcomponents/asxparser/test/test.mmp --- a/mmappcomponents/asxparser/test/test.mmp Tue Feb 02 00:27:58 2010 +0200 +++ b/mmappcomponents/asxparser/test/test.mmp Fri Mar 19 09:38:24 2010 +0200 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -15,8 +15,7 @@ * */ -// Version : %version: 9 % - +// Version : %version: 10 % #include @@ -41,5 +40,4 @@ LIBRARY bafl.lib LIBRARY efsrv.lib -LIBRARY flogger.lib LIBRARY charconv.lib diff -r d45095c2f4f3 -r b1fb57be53fe mmappcomponents/audiofetcher/src/audiofetcherdialog.cpp --- a/mmappcomponents/audiofetcher/src/audiofetcherdialog.cpp Tue Feb 02 00:27:58 2010 +0200 +++ b/mmappcomponents/audiofetcher/src/audiofetcherdialog.cpp Fri Mar 19 09:38:24 2010 +0200 @@ -286,6 +286,7 @@ iListBox->View()->SetListEmptyTextL( *iEmptyListText ); iStatusPaneHandler->SetTitleL( iTitle ); + iStatusPaneHandler->SetNaviPaneTitleL( KNullDesC ); CEikButtonGroupContainer& dialogCba = ButtonGroupContainer(); dialogCba.MakeCommandVisible(EAknSoftkeySelect, EFalse); @@ -875,6 +876,7 @@ AknLayoutUtils::EMainPane, mainPaneRect ); SetRect( mainPaneRect ); TRAP_IGNORE( iStatusPaneHandler->SetTitleL( iTitle ) ); + TRAP_IGNORE( iStatusPaneHandler->SetNaviPaneTitleL( KNullDesC ) ); DrawDeferred(); } diff -r d45095c2f4f3 -r b1fb57be53fe mmappcomponents/collectionhelper/inc/mpxcollectionuihelperimp.h --- a/mmappcomponents/collectionhelper/inc/mpxcollectionuihelperimp.h Tue Feb 02 00:27:58 2010 +0200 +++ b/mmappcomponents/collectionhelper/inc/mpxcollectionuihelperimp.h Fri Mar 19 09:38:24 2010 +0200 @@ -848,7 +848,6 @@ TInt iEmbeddedPluginInfo; TBool iInitialized; // collection db merging TBool iIncAdding; // Incremental adding guard - TInt iRefCount; }; #endif // CMPX_COLLECTION_UI_HELPER_H diff -r d45095c2f4f3 -r b1fb57be53fe mmappcomponents/collectionhelper/src/mpxcollectionuihelperimp.cpp --- a/mmappcomponents/collectionhelper/src/mpxcollectionuihelperimp.cpp Tue Feb 02 00:27:58 2010 +0200 +++ b/mmappcomponents/collectionhelper/src/mpxcollectionuihelperimp.cpp Fri Mar 19 09:38:24 2010 +0200 @@ -82,8 +82,6 @@ iChunkNumber = 0; iChunkSize = 0; iArrayIndex = 0; - iRefCount = 1; - } @@ -105,34 +103,10 @@ // CMPXCollectionUiHelperImp* CMPXCollectionUiHelperImp::NewLC(const TUid& aModeId) { - - CMPXCollectionUiHelperImp* self(NULL); - - if ( aModeId == KMcModeDefault ) - { - self = reinterpret_cast(Dll::Tls()); - if ( !self ) - { - self = new( ELeave ) CMPXCollectionUiHelperImp(); - CleanupStack::PushL( self ); - self->ConstructL(aModeId); - Dll::SetTls( self ); - } - else - { - self->iRefCount++; - CleanupStack::PushL( self ); - } - - return self; - } - else - { - self = new( ELeave ) CMPXCollectionUiHelperImp(); - CleanupStack::PushL( self ); - self->ConstructL(aModeId); - return self; - } + CMPXCollectionUiHelperImp* self = new( ELeave ) CMPXCollectionUiHelperImp(); + CleanupStack::PushL( self ); + self->ConstructL(aModeId); + return self; } // --------------------------------------------------------------------------- @@ -1042,21 +1016,7 @@ // void CMPXCollectionUiHelperImp::Close() { - - ASSERT( iRefCount > 0 ); - if ( --iRefCount == 0 ) - { - // last client released - CMPXCollectionUiHelperImp* s = reinterpret_cast( Dll::Tls() ); - if ( s ) - { - if ( s == this ) - { - delete this; - Dll::SetTls( NULL ); - } - } - } + delete this; } // --------------------------------------------------------------------------- diff -r d45095c2f4f3 -r b1fb57be53fe mmappcomponents/mediaplayersettingsengine/group/MPSettEng.mmp --- a/mmappcomponents/mediaplayersettingsengine/group/MPSettEng.mmp Tue Feb 02 00:27:58 2010 +0200 +++ b/mmappcomponents/mediaplayersettingsengine/group/MPSettEng.mmp Fri Mar 19 09:38:24 2010 +0200 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -15,15 +15,15 @@ * */ -// Version : %version: 4.1.2 % - +// Version : %version: 4.1.3 % #include + TARGET mpsettengine.dll TARGETTYPE dll UID 0x1000006C 0x101F853D -VENDORID VID_DEFAULT +VENDORID VID_DEFAULT SOURCEPATH ../src SOURCE MPSettingsModel.cpp @@ -34,16 +34,15 @@ LIBRARY euser.lib LIBRARY ecom.lib -LIBRARY flogger.lib #if defined(ARMCC) -deffile ../eabi/ +deffile ../eabi/ #elif defined(WINSCW) -deffile ../bwinscw/ +deffile ../bwinscw/ #elif defined(WINS) -deffile ../bwins/ +deffile ../bwins/ #else -deffile ../bmarm/ +deffile ../bmarm/ #endif //end of file diff -r d45095c2f4f3 -r b1fb57be53fe mmappcomponents/mmmtpdataprovider/install/rom/mmmtpdpstub.pkg Binary file mmappcomponents/mmmtpdataprovider/install/rom/mmmtpdpstub.pkg has changed diff -r d45095c2f4f3 -r b1fb57be53fe mmappcomponents/mmmtpdataprovider/install/rom/mmmtpdpupdate.pkg Binary file mmappcomponents/mmmtpdataprovider/install/rom/mmmtpdpupdate.pkg has changed diff -r d45095c2f4f3 -r b1fb57be53fe mmappcomponents/mmmtpdataprovider/install/rom/mmmtpdpupdatedebug.pkg Binary file mmappcomponents/mmmtpdataprovider/install/rom/mmmtpdpupdatedebug.pkg has changed diff -r d45095c2f4f3 -r b1fb57be53fe mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadatavideoaccess.cpp --- a/mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadatavideoaccess.cpp Tue Feb 02 00:27:58 2010 +0200 +++ b/mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadatavideoaccess.cpp Fri Mar 19 09:38:24 2010 +0200 @@ -1,19 +1,19 @@ /* - * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). - * All rights reserved. - * This component and the accompanying materials are made available - * under the terms of "Eclipse Public License v1.0" - * which accompanies this distribution, and is available - * at the URL "http://www.eclipse.org/legal/epl-v10.html". - * - * Initial Contributors: - * Nokia Corporation - initial contribution. - * - * Contributors: - * - * Description: Meta data Video access - * - */ +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Meta data Video access +* +*/ #include #include @@ -62,24 +62,23 @@ CMmMtpDpMetadataVideoAccess* CMmMtpDpMetadataVideoAccess::NewL( RFs& aRfs ) { - CMmMtpDpMetadataVideoAccess* me = new( ELeave ) CMmMtpDpMetadataVideoAccess( aRfs ); - CleanupStack::PushL( me ); + CMmMtpDpMetadataVideoAccess* me = new(ELeave) CMmMtpDpMetadataVideoAccess( aRfs ); + CleanupStack::PushL(me); me->ConstructL(); - CleanupStack::Pop( me ); + CleanupStack::Pop(me); return me; } -CMmMtpDpMetadataVideoAccess::CMmMtpDpMetadataVideoAccess( RFs& aRfs ) : - iRfs( aRfs ), - iDbState( ENoRecord ), - iDbOpened( EFalse ) +CMmMtpDpMetadataVideoAccess::CMmMtpDpMetadataVideoAccess( RFs& aRfs ) : iRfs(aRfs), + iDbState(ENoRecord), + iDbOpened(EFalse) { - // Do nothing + } // --------------------------------------------------------------------------- -// CMmMtpDpMetadataVideoAccess::ConstructL +// CMmMtpDpMetadataMpxAccess::ConstructL // Second-phase // --------------------------------------------------------------------------- // @@ -89,7 +88,8 @@ User::LeaveIfError( iDbsSession.Connect() ); - TInt err = DriveInfo::GetDefaultDrive( DriveInfo::EDefaultPhoneMemory, iStoreNum ); + TInt err = DriveInfo::GetDefaultDrive( DriveInfo::EDefaultPhoneMemory, + iStoreNum ); err = OpenDatabase(); @@ -100,7 +100,7 @@ } // --------------------------------------------------------------------------- -// CMmMtpDpMetadataVideoAccess::OpenDatabase +// CMmMtpDpMetadataMpxAccess::OpenDatabase // Open data base // --------------------------------------------------------------------------- // @@ -168,7 +168,7 @@ } // --------------------------------------------------------------------------- -// CMmMtpDpMetadataVideoAccess::OpenDatabaseL +// CMmMtpDpMetadataMpxAccess::OpenDatabaseL // Open data base // --------------------------------------------------------------------------- // @@ -181,7 +181,7 @@ } // --------------------------------------------------------------------------- -// CMmMtpDpMetadataVideoAccess::~CMmMtpDpMetadataVideoAccess +// CMmMtpDpMetadataMpxAccess::~CMmMtpDpMetadataVideoAccess // Destructor // --------------------------------------------------------------------------- // @@ -196,7 +196,7 @@ } // --------------------------------------------------------------------------- -// CMmMtpDpMetadataVideoAccess::CreateDatabaseTablesL +// CMmMtpDpMetadataMpxAccess::CreateDatabaseTablesL // Case where a new memory card is used and the player has not been opened // --------------------------------------------------------------------------- // @@ -341,7 +341,7 @@ } // --------------------------------------------------------------------------- -// CMmMtpDpMetadataVideoAccess::CleanupDbIfNecessaryL +// CMmMtpDpMetadataMpxAccess::CleanupDbIfNecessaryL // Cleanup Database // --------------------------------------------------------------------------- // @@ -369,7 +369,7 @@ } // --------------------------------------------------------------------------- -// CMmMtpDpMetadataVideoAccess::IdentifyDeletedFilesL +// CMmMtpDpMetadataMpxAccess::IdentifyDeletedFilesL // Identify deleted files // --------------------------------------------------------------------------- // @@ -380,7 +380,7 @@ ExecuteQueryL( KAllColumns, KMtpVideoTable, KMtpVideoLocation, KNullDesC, ETrue ); PRINT1( _L( "MM MTP <> CleanupDbIfNecessaryL Database total count = %d" ), iRecordSet.CountL() ); - for ( iRecordSet.FirstL(); iRecordSet.AtRow(); iRecordSet.NextL() ) + for ( iRecordSet.FirstL(); iRecordSet.AtRow(); iRecordSet.NextL( )) { HBufC* data = ReadLongTextL( KMtpVideoLocation ); CleanupStack::PushL( data ); @@ -407,7 +407,7 @@ } // --------------------------------------------------------------------------- -// CMmMtpDpMetadataVideoAccess::ReadLongTextL +// CMmMtpDpMetadataMpxAccess::ReadLongTextL // Read from Data base // --------------------------------------------------------------------------- // @@ -443,12 +443,11 @@ } // --------------------------------------------------------------------------- -// CMmMtpDpMetadataVideoAccess::WriteLongTextL +// CMmMtpDpMetadataMpxAccess::WriteLongTextL // Utility to write to the database // --------------------------------------------------------------------------- // -void CMmMtpDpMetadataVideoAccess::WriteLongTextL( const TDesC& aColumn, - const TDesC& aValue ) +void CMmMtpDpMetadataVideoAccess::WriteLongTextL( const TDesC& aColumn, const TDesC& aValue ) { PRINT2( _L( "MM MTP <> WriteLongTextL Metadata value for %S is \"%S\"" ), &aColumn, &aValue ); TDbColNo num = iColSet->ColNo( aColumn ); @@ -460,16 +459,13 @@ } // --------------------------------------------------------------------------- -// CMmMtpDpMetadataVideoAccess::ExecuteQueryL +// CMmMtpDpMetadataMpxAccess::ExecuteQueryL // Executes a query on the database and sets the cursor at the start of the recordset // --------------------------------------------------------------------------- // -void CMmMtpDpMetadataVideoAccess::ExecuteQueryL( const TDesC& aSelectThese, - const TDesC& aFromTable, - const TDesC& aColumnToMatch, - const TDesC& aMatchCriteria, - const TBool aIfNot, - const TBool aNeedQuotes ) +void CMmMtpDpMetadataVideoAccess::ExecuteQueryL( const TDesC& aSelectThese, const TDesC& aFromTable, + const TDesC& aColumnToMatch, const TDesC& aMatchCriteria, + const TBool aIfNot, const TBool aNeedQuotes ) { PRINT( _L( "MM MTP => CMmMtpDpMetadataVideoAccess::ExecuteQueryL" ) ); @@ -535,17 +531,17 @@ } // --------------------------------------------------------------------------- -// CMmMtpDpMetadataVideoAccess::OpenSessionL +// CMmMtpDpMetadataMpxAccess::OpenSessionL // Called when the MTP session is initialised // --------------------------------------------------------------------------- // void CMmMtpDpMetadataVideoAccess::OpenSessionL() { - // Do nothing + } // --------------------------------------------------------------------------- -// CMmMtpDpMetadataVideoAccess::CloseSessionL +// CMmMtpDpMetadataMpxAccess::CloseSessionL // Called when the MTP session is closed // --------------------------------------------------------------------------- // @@ -566,7 +562,7 @@ } // --------------------------------------------------------------------------- -// CMmMtpDpMetadataVideoAccess::AddVideoL +// CMmMtpDpMetadataMpxAccess::AddVideoL // Adds video info to the database // --------------------------------------------------------------------------- // @@ -597,8 +593,7 @@ iRecordSet.SetColL( num, aFullFileName ); num = iColSet->ColNo( KMtpVideoName ); - TParsePtrC parser( aFullFileName ); - iRecordSet.SetColL( num, parser.Name() ); // Default name is the filename. + iRecordSet.SetColL( num, aFullFileName ); // Default name is the filename. num = iColSet->ColNo( KMtpVideoArtist ); iRecordSet.SetColL( num, KNullDesC ); @@ -627,8 +622,8 @@ num = iColSet->ColNo( KMtpVideoHeight ); iRecordSet.SetColL( num, 0 ); - num = iColSet->ColNo( KMtpVideoDuration ); - iRecordSet.SetColL( num, 0 ); + num = iColSet->ColNo(KMtpVideoDuration); + iRecordSet.SetColL(num, 0); num = iColSet->ColNo( KMtpVideoSampleRate ); iRecordSet.SetColL( num, 0 ); @@ -648,8 +643,8 @@ num = iColSet->ColNo( KMtpVideoVideoBitrate ); iRecordSet.SetColL( num, 0 ); - num = iColSet->ColNo( KMtpVideoFramesPer1000Sec ); - iRecordSet.SetColL( num, 0 ); + num = iColSet->ColNo(KMtpVideoFramesPer1000Sec); + iRecordSet.SetColL(num, 0); num = iColSet->ColNo( KMtpVideoKeyFrameDistance ); iRecordSet.SetColL( num, 0 ); @@ -699,13 +694,13 @@ } // --------------------------------------------------------------------------- -// CMmMtpDpMetadataVideoAccess::GetObjectMetadataValueL +// CMmMtpDpMetadataMpxAccess::GetObjectMetadataValueL // Gets a piece of metadata from the collection // --------------------------------------------------------------------------- // void CMmMtpDpMetadataVideoAccess::GetObjectMetadataValueL( const TUint16 aPropCode, - MMTPType& aNewData, - const CMTPObjectMetaData& aObjectMetaData ) + MMTPType& aNewData, + const CMTPObjectMetaData& aObjectMetaData ) { PRINT1( _L( "MM MTP => CMmMtpDpMetadataVideoAccess::GetObjectMetadataValue aPropCode = 0x%x" ), aPropCode ); @@ -723,7 +718,7 @@ TUint32 uInt32 = 0; TUint16 uInt16 = 0; - switch ( aPropCode ) + switch (aPropCode) { case EMTPObjectPropCodeName: { @@ -788,13 +783,10 @@ PRINT( _L( "MM MTP <> EMTPObjectPropCodeDescription-MD" ) ); data = ReadLongTextL( KMtpVideoComment ); - TInt len = data->Length(); - PRINT1( _L( "MM MTP <> CMmMtpDpMetadataMpxAccess::GetObjectMetadataValue len = %d" ),len ); - if ( len != 0 ) - { - for ( TInt i = 0; i < len; i++ ) - ( ( CMTPTypeArray& ) aNewData ).AppendUintL( ( *data )[i] ); - } + if ( data->Length() != 0 ) + ( ( CMTPTypeString& ) aNewData ).SetL( *data ) ; + else + ( ( TMTPTypeUint32 & ) aNewData ).Set( 0 ); // return zero if description is empty delete data; data = NULL; @@ -871,13 +863,13 @@ num = iColSet->ColNo( KMtpVideoNumberOfChannels ); uInt16 = iRecordSet.ColUint16( num ); if ( EMTPTypeUINT16 == aNewData.Type() ) - { - ( ( TMTPTypeUint16 & ) aNewData ).Set( uInt16 ); - } - else - { - User::Leave( KErrArgument ); - } + { + ( ( TMTPTypeUint16 & ) aNewData ).Set( uInt16 ); + } + else + { + User::Leave( KErrArgument ); + } } break; @@ -983,13 +975,13 @@ num = iColSet->ColNo( KMtpVideoScanType ); uInt16 = iRecordSet.ColUint16( num ); if ( EMTPTypeUINT16 == aNewData.Type() ) - { - ( ( TMTPTypeUint16 & ) aNewData ).Set( uInt16 ); - } - else - { - User::Leave( KErrArgument ); - } + { + ( ( TMTPTypeUint16 & ) aNewData ).Set( uInt16 ); + } + else + { + User::Leave( KErrArgument ); + } } break; @@ -1029,13 +1021,13 @@ num = iColSet->ColNo( KMtpVideoDRM ); uInt16 = iRecordSet.ColUint16( num ); if ( EMTPTypeUINT16 == aNewData.Type() ) - { - ( ( TMTPTypeUint16 & ) aNewData ).Set( uInt16 ); - } - else - { - User::Leave( KErrArgument ); - } + { + ( ( TMTPTypeUint16 & ) aNewData ).Set( uInt16 ); + } + else + { + User::Leave( KErrArgument ); + } } break; @@ -1047,7 +1039,7 @@ } // Pack the info to aNewData - if ( data ) + if (data) { #ifdef _DEBUG if ( data->Length() > KMtpMaxStringDescLength ) // Have to concatenate for MTP @@ -1072,7 +1064,7 @@ } // --------------------------------------------------------------------------- -// CMmMtpDpMetadataVideoAccess::SetObjectMetadataValueL +// CMmMtpDpMetadataMpxAccess::SetObjectMetadataValueL // Sets a piece of metadata in the collection // --------------------------------------------------------------------------- // @@ -1104,7 +1096,7 @@ } // --------------------------------------------------------------------------- -// CMmMtpDpMetadataVideoAccess::SetMetadataL +// CMmMtpDpMetadataMpxAccess::SetMetadataL // Set meta data. // --------------------------------------------------------------------------- // @@ -1131,7 +1123,7 @@ case EMTPObjectPropCodeEncodingProfile: case EMTPObjectPropCodeParentalRating: { - if ( EMTPTypeString != aNewData.Type() ) + if( EMTPTypeString != aNewData.Type()) { User::Leave( KErrArgument ); } @@ -1145,12 +1137,12 @@ { PRINT( _L( "MM MTP <> EMTPObjectPropCodeDescription-MD" ) ); #ifdef __MUSIC_ID_SUPPORT - // WriteMusicIdsL(*longString); + //WriteMusicIdsL(*longString); #else desData = CMTPTypeArray::NewLC( EMTPTypeAUINT16 ); // + desData MMTPType::CopyL( aNewData, *desData ); TUint length = desData->NumElements(); - PRINT1( _L( "MM MTP <> CMmMtpDpMetadataVideoAccess::SetMetadataL length = %d" ), length ); + PRINT1( _L( "MM MTP <> CMmMtpDpMetadataMpxAccess::SetMetadataValueL length = %d" ), length ); if ( length != 0 ) { TBuf text; @@ -1159,7 +1151,7 @@ { text.Append( desData->ElementUint( i ) ); } - PRINT1( _L( "MM MTP <> CMmMtpDpMetadataVideoAccess::SetMetadataL text = %S" ), + PRINT1( _L( "MM MTP <> CMmMtpDpMetadataMpxAccess::SetMetadataValueL text = %S" ), &text ); WriteLongTextL( KMtpVideoComment, text ); } @@ -1218,12 +1210,11 @@ } // --------------------------------------------------------------------------- -// CMmMtpDpMetadataVideoAccess::RenameRecordL +// CMmMtpDpMetadataMpxAccess::RenameRecordL // Renames the file part of a record in the collection database. // --------------------------------------------------------------------------- // -void CMmMtpDpMetadataVideoAccess::RenameRecordL( const TDesC& aOldFileName, - const TDesC& aNewFileName ) +void CMmMtpDpMetadataVideoAccess::RenameRecordL(const TDesC& aOldFileName, const TDesC& aNewFileName) { PRINT( _L( "MM MTP => CMmMtpDpMetadataVideoAccess::RenameRecordL()" ) ); @@ -1239,7 +1230,7 @@ } // --------------------------------------------------------------------------- -// CMmMtpDpMetadataVideoAccess::DeleteRecordL +// CMmMtpDpMetadataMpxAccess::DeleteRecordL // Deletes metadata information associated with the object // --------------------------------------------------------------------------- // @@ -1276,7 +1267,7 @@ } // --------------------------------------------------------------------------- -// CMmMtpDpMetadataVideoAccess::DeleteAllRecordsL +// CMmMtpDpMetadataMpxAccess::DeleteAllRecordsL // Empties the database - used by the FormatStore command // --------------------------------------------------------------------------- // @@ -1285,7 +1276,7 @@ PRINT( _L( "MM MTP => CMmMtpDpMetadataVideoAccess::DeleteAllRecordsL()" ) ); //open database if not opened - if ( !IsDatabaseOpened() ) + if (!IsDatabaseOpened()) OpenDatabaseL(); SetRecordL( KNullDesC, ENoRecord ); // Commit any other changes to the DB @@ -1307,19 +1298,18 @@ } // --------------------------------------------------------------------------- -// CMmMtpDpMetadataVideoAccess::SetRecordL +// CMmMtpDpMetadataMpxAccess::SetRecordL // Set Record // --------------------------------------------------------------------------- // -void CMmMtpDpMetadataVideoAccess::SetRecordL( const TDesC& aFullFileName, - TMtpDbState aState ) +void CMmMtpDpMetadataVideoAccess::SetRecordL( const TDesC& aFullFileName, TMtpDbState aState ) { PRINT( _L( "MM MTP => CMmMtpDpMetadataVideoAccess::SetRecordL()" ) ); if ( ( aState == iDbState ) - && ( 0 == aFullFileName.Compare( iCurrentFileName ) ) ) // Already have it + && ( 0 == aFullFileName.Compare( iCurrentFileName ) ) ) // Already have it { - if ( iDbState == ERecordRead ) + if (iDbState == ERecordRead) iRecordSet.GetL(); PRINT1( _L( "MM MTP <> Cached recordset, filename is '%S'" ), &iCurrentFileName ); @@ -1342,20 +1332,20 @@ PRINT( _L( "MM MTP <> SetRecordL ERecordWrite" ) ); TRAPD( err, iRecordSet.PutL() ); - if ( KErrNone != err ) + if (KErrNone != err) { iRecordSet.Cancel(); User::Leave( err ); } - //lint -fallthrough + //lint -fallthrough case ENoRecord: // intentionally fallthrough // We need to just close the open record PRINT( _L( "MM MTP <> SetRecordL ENoRecord" ) ); - //lint -fallthrough + //lint -fallthrough case ERecordRead: // intentionally fallthrough // We need to open a row for reading PRINT( _L( "MM MTP <> SetRecordL ERecordRead" ) ); - //lint -fallthrough + //lint -fallthrough default: // intentionally fallthrough PRINT( _L( "MM MTP <> SetRecordL Closing recordset" ) ); delete iColSet; @@ -1365,7 +1355,7 @@ break; } - if ( aState == ENoRecord ) // We are closing the session if this is the case + if ( aState == ENoRecord ) // We are closing the session if this is the case { PRINT( _L( "MM MTP <> SetRecordL Record closed, no request to open" ) ); return; @@ -1375,6 +1365,7 @@ TUint16 format = MmMtpDpUtility::FormatFromFilename( iCurrentFileName ); PRINT1( _L( "MM MTP <> SetRecordL format = 0x%x" ), format ); + if ( MmMtpDpUtility::HasMetadata( format ) ) { // Get the record @@ -1418,7 +1409,7 @@ } // --------------------------------------------------------------------------- -// CMmMtpDpMetadataVideoAccess::SetImageObjPropL +// CMmMtpDpMetadataMpxAccess::SetImageObjPropL // set image specific properties specific to videos // --------------------------------------------------------------------------- // @@ -1439,24 +1430,24 @@ TRAP( err, iRecordSet.SetColL( num, aWidth ) ); if ( err != KErrNone ) - { - SetRecordL( aFullFileName, EFailedWrite ); - User::Leave( err ); - } + { + SetRecordL( aFullFileName, EFailedWrite ); + User::Leave( err ); + } num = iColSet->ColNo( KMtpVideoHeight ); TRAP( err, iRecordSet.SetColL( num, aHeight ) ); if ( err != KErrNone ) - { - SetRecordL( aFullFileName, EFailedWrite ); - User::Leave( err ); - } + { + SetRecordL( aFullFileName, EFailedWrite ); + User::Leave( err ); + } PRINT( _L( "MM MTP <= CMmMtpDpMetadataVideoAccess::SetImageObjPropL()" ) ); } // --------------------------------------------------------------------------- -// CMmMtpDpMetadataVideoAccess::GetImageObjPropL +// CMmMtpDpMetadataMpxAccess::GetImageObjPropL // Get image specific properties specific to videos // --------------------------------------------------------------------------- // @@ -1485,35 +1476,35 @@ const TDesC& CMmMtpDpMetadataVideoAccess::ColumnNameFromPropCodeL( const TUint16 aPropCode ) { const TColumnNameTable KColumnTable[] = - { - { EMTPObjectPropCodeName, KMtpVideoName }, - { EMTPObjectPropCodeArtist, KMtpVideoArtist }, - { EMTPObjectPropCodeTrack, KMtpVideoTrack }, - { EMTPObjectPropCodeGenre, KMtpVideoGenre }, - { EMTPObjectPropCodeAlbumName, KMtpVideoAlbumName }, - { EMTPObjectPropCodeComposer, KMtpVideoComposer }, - { EMTPObjectPropCodeOriginalReleaseDate, KMtpVideoOrigReleaseDate }, - { EMTPObjectPropCodeDescription, KMtpVideoComment }, - { EMTPObjectPropCodeWidth, KMtpVideoWidth }, - { EMTPObjectPropCodeHeight, KMtpVideoHeight }, - { EMTPObjectPropCodeDuration, KMtpVideoDuration }, - { EMTPObjectPropCodeSampleRate, KMtpVideoSampleRate }, - { EMTPObjectPropCodeNumberOfChannels, KMtpVideoNumberOfChannels }, - { EMTPObjectPropCodeAudioBitRate, KMtpVideoAudioBitrate }, - { EMTPObjectPropCodeVideoFourCCCodec, KMtpVideoVideoCodec }, - { EMTPObjectPropCodeVideoBitRate, KMtpVideoVideoBitrate }, - { EMTPObjectPropCodeFramesPerThousandSeconds,KMtpVideoFramesPer1000Sec }, - { EMTPObjectPropCodeKeyFrameDistance, KMtpVideoKeyFrameDistance }, - { EMTPObjectPropCodeScanType, KMtpVideoScanType }, - { EMTPObjectPropCodeEncodingProfile, KMtpVideoEncodingProfile }, - { EMTPObjectPropCodeParentalRating, KMtpVideoParentalRating }, - { EMTPObjectPropCodeUseCount, KMtpVideoUseCount }, - { EMTPObjectPropCodeAudioWAVECodec, KMtpVideoAudioCodec }, - { EMTPObjectPropCodeDRMStatus, KMtpVideoDRM }, - }; + { + { EMTPObjectPropCodeName, KMtpVideoName }, + { EMTPObjectPropCodeArtist, KMtpVideoArtist }, + { EMTPObjectPropCodeTrack, KMtpVideoTrack }, + { EMTPObjectPropCodeGenre, KMtpVideoGenre }, + { EMTPObjectPropCodeAlbumName, KMtpVideoAlbumName }, + { EMTPObjectPropCodeComposer, KMtpVideoComposer }, + { EMTPObjectPropCodeOriginalReleaseDate, KMtpVideoOrigReleaseDate }, + { EMTPObjectPropCodeDescription, KMtpVideoComment }, + { EMTPObjectPropCodeWidth, KMtpVideoWidth }, + { EMTPObjectPropCodeHeight, KMtpVideoHeight }, + { EMTPObjectPropCodeDuration, KMtpVideoDuration }, + { EMTPObjectPropCodeSampleRate, KMtpVideoSampleRate }, + { EMTPObjectPropCodeNumberOfChannels, KMtpVideoNumberOfChannels }, + { EMTPObjectPropCodeAudioBitRate, KMtpVideoAudioBitrate }, + { EMTPObjectPropCodeVideoFourCCCodec, KMtpVideoVideoCodec }, + { EMTPObjectPropCodeVideoBitRate, KMtpVideoVideoBitrate }, + { EMTPObjectPropCodeFramesPerThousandSeconds,KMtpVideoFramesPer1000Sec }, + { EMTPObjectPropCodeKeyFrameDistance, KMtpVideoKeyFrameDistance }, + { EMTPObjectPropCodeScanType, KMtpVideoScanType }, + { EMTPObjectPropCodeEncodingProfile, KMtpVideoEncodingProfile }, + { EMTPObjectPropCodeParentalRating, KMtpVideoParentalRating }, + { EMTPObjectPropCodeUseCount, KMtpVideoUseCount }, + { EMTPObjectPropCodeAudioWAVECodec, KMtpVideoAudioCodec }, + { EMTPObjectPropCodeDRMStatus, KMtpVideoDRM }, + }; TInt i = 0; - TInt count = sizeof( KColumnTable ) / sizeof( KColumnTable[0] ); + TInt count = sizeof ( KColumnTable ) / sizeof ( KColumnTable[0] ); while ( ( KColumnTable[i].iPropCode != aPropCode ) && ( i < count ) ) { i++; @@ -1522,7 +1513,7 @@ if ( i == count ) { // Not supported by MPX, shouldn't call this function - PRINT( _L( "MM MTP <> CMmMtpDpMetadataVideoAccess::ColumnNameFromPropCodeL NOT SUPPORTED ATTRIBUTE" ) ); + PRINT( _L( "MM MTP <> CMmMtpDpMetadataMpxAccess::MpxAttribFromPropL NOT SUPPORTED ATTRIBUTE" ) ); User::Leave( KErrNotSupported ); } return KColumnTable[i].iDbColumnName; @@ -1530,7 +1521,7 @@ void CMmMtpDpMetadataVideoAccess::SetStorageRootL( const TDesC& aStorageRoot ) { - PRINT1( _L( "MM MTP => CMmMtpDpMetadataVideoAccess::SetStorageRoot aStoreRoot = %S" ), &aStorageRoot ); + PRINT1( _L( "MM MTP => CMmMtpDpMetadataMpxAccess::SetStorageRoot aStoreRoot = %S" ), &aStorageRoot ); // get the drive number TParse pathParser; @@ -1538,7 +1529,7 @@ TChar driveChar( pathParser.Drive()[0] ); User::LeaveIfError( RFs::CharToDrive( driveChar, iStoreNum ) ); - PRINT1( _L( "MM MTP <= CMmMtpDpMetadataVideoAccess::SetStorageRoot drive number = %d" ), iStoreNum ); + PRINT1( _L( "MM MTP <= CMmMtpDpMetadataMpxAccess::SetStorageRoot drive number = %d" ), iStoreNum ); } void CMmMtpDpMetadataVideoAccess::CleanupDatabaseL() diff -r d45095c2f4f3 -r b1fb57be53fe mmappcomponents/playbackhelper/group/playbackhelper.mmp --- a/mmappcomponents/playbackhelper/group/playbackhelper.mmp Tue Feb 02 00:27:58 2010 +0200 +++ b/mmappcomponents/playbackhelper/group/playbackhelper.mmp Fri Mar 19 09:38:24 2010 +0200 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -15,9 +15,7 @@ * */ -// Version : %version: 5 % - - +// Version : %version: 6 % #include @@ -47,16 +45,15 @@ LIBRARY apmime.lib LIBRARY charconv.lib LIBRARY mmfcontrollerframework.lib -LIBRARY flogger.lib -LIBRARY mmfdevsound.lib +LIBRARY mmfdevsound.lib #ifdef __WINDOWS_MEDIA LIBRARY asxparser.lib #endif #if defined(ARMCC) -deffile ../eabi/ +deffile ../eabi/ #elif defined(WINSCW) -deffile ../bwinscw/ +deffile ../bwinscw/ #endif diff -r d45095c2f4f3 -r b1fb57be53fe mmappcomponents/playbackhelper/inc/playbackhelper_log.h --- a/mmappcomponents/playbackhelper/inc/playbackhelper_log.h Tue Feb 02 00:27:58 2010 +0200 +++ b/mmappcomponents/playbackhelper/inc/playbackhelper_log.h Fri Mar 19 09:38:24 2010 +0200 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -15,9 +15,7 @@ * */ -// Version : %version: 4 % - - +// Version : %version: 5 % #ifndef PLAYBACKHELPER_LOG_H @@ -26,21 +24,6 @@ // INCLUDES #include #include -#include - - - -// #define _PLAYBACKHELPER_FILE_LOGGING_ - -#ifdef _DEBUG - #define PLAYBACKHELPER_DEBUG RDebug::Print -#else - #ifdef _PLAYBACKHELPER_FILE_LOGGING_ - #define PLAYBACKHELPER_DEBUG PlaybackHelperDebug::FileLog - #else - #define PLAYBACKHELPER_DEBUG RDebug::Print - #endif -#endif class PlaybackHelperDebug @@ -49,18 +32,15 @@ inline static void NullLog( TRefByValue /*aFmt*/, ... ) { } +}; - inline static void FileLog( TRefByValue aFmt, ... ) - { - VA_LIST list; - VA_START(list,aFmt); - RFileLogger::WriteFormat( _L("PlaybackHelper"), - _L("playbackhelper.log"), - EFileLoggingModeAppend, - aFmt, - list ); - } -}; + +#ifdef _DEBUG + #define PLAYBACKHELPER_DEBUG RDebug::Print +#else + #define PLAYBACKHELPER_DEBUG PlaybackHelperDebug::NullLog +#endif + #endif // PLAYBACKHELPER_LOG_H diff -r d45095c2f4f3 -r b1fb57be53fe mmappcomponents/videoplaylistutility/group/videoplaylistutility.mmp --- a/mmappcomponents/videoplaylistutility/group/videoplaylistutility.mmp Tue Feb 02 00:27:58 2010 +0200 +++ b/mmappcomponents/videoplaylistutility/group/videoplaylistutility.mmp Fri Mar 19 09:38:24 2010 +0200 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -15,9 +15,7 @@ * */ -// Version : %version: 3 % - - +// Version : %version: 4 % #include @@ -43,8 +41,7 @@ LIBRARY sysutil.lib LIBRARY apmime.lib LIBRARY charconv.lib -LIBRARY flogger.lib -LIBRARY playbackhelper.lib +LIBRARY playbackhelper.lib LIBRARY mpxcommon.lib LIBRARY estor.lib diff -r d45095c2f4f3 -r b1fb57be53fe mmappcomponents/videoplaylistutility/inc/videoplaylistutility_log.h --- a/mmappcomponents/videoplaylistutility/inc/videoplaylistutility_log.h Tue Feb 02 00:27:58 2010 +0200 +++ b/mmappcomponents/videoplaylistutility/inc/videoplaylistutility_log.h Fri Mar 19 09:38:24 2010 +0200 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -15,130 +15,106 @@ * */ -// Version : %version: 2 % - - +// Version : %version: 3 % #ifndef VIDEOPLAYLISTUTILITY_LOG_H #define VIDEOPLAYLISTUTILITY_LOG_H + // INCLUDES #include #include #include #include -#include #include - -// #define _VPU_FILE_LOGGING_ - +// +// MACROS +// #ifdef _DEBUG - #define VPU_DEBUG RDebug::Print + #define VIDEOPLAYLISTUTILITY_DEBUG TVideoPlaylistUtilityLog::VideoPlaylistUtilityLog + #define VIDEOPLAYLISTUTILITY_ENTER_EXIT TEnterExitLog _s #else - #ifdef _VPU_FILE_LOGGING_ - #define VPU_DEBUG VideoPlaylistUtilityDebug::FileLog - #else - #define VPU_DEBUG RDebug::Print - #endif -#endif + #define VIDEOPLAYLISTUTILITY_DEBUG TVideoPlaylistUtilityLog::NullLog + #define VIDEOPLAYLISTUTILITY_ENTER_EXIT TVideoPlaylistUtilityLog::NullLog +#endif -class VideoPlaylistUtilityDebug +class TVideoPlaylistUtilityLog : public TDes16Overflow { public: + inline static void NullLog( TRefByValue /*aFmt*/, ... ) { } - inline static void FileLog( TRefByValue aFmt, ... ) - { - VA_LIST list; - VA_START(list,aFmt); - RFileLogger::WriteFormat( _L("VideoPlaylistUtility"), - _L("videoplaylistutility.log"), - EFileLoggingModeAppend, - aFmt, - list ); - } -}; - - - -// MACROS -#define VIDEOPLAYLISTUTILITY_DEBUG TVideoPlaylistUtilityLog::VideoPlaylistUtilityLog -#define VIDEOPLAYLISTUTILITY_ENTER_EXIT TEnterExitLog _s - -class TVideoPlaylistUtilityLog : public TDes16Overflow -{ - public: - inline static void VideoPlaylistUtilityLog( TRefByValue aFmt, ... ) { TBuf< 512 > buffer; - + VA_LIST list; VA_START( list, aFmt ); buffer.AppendFormatList( aFmt, list ); VA_END(list); - - VPU_DEBUG(_L("#VideoPlaylistUtility# %S"), &buffer ); + + RDebug::Print(_L("#VideoPlaylistUtility# %S"), &buffer ); } }; class TEnterExitLog : public TDes16Overflow { public: - + void Overflow(TDes16& /*aDes*/) { - VPU_DEBUG(_L("%S Logging Overflow"), &iFunctionName); + RDebug::Print(_L("%S Logging Overflow"), &iFunctionName); } TEnterExitLog( TRefByValue aFunctionName, TRefByValue aFmt, ... ) { iFunctionName = HBufC::New( TDesC(aFunctionName).Length() ); - + if ( iFunctionName ) { iFunctionName->Des().Copy(aFunctionName); } - + TBuf< 512 > buffer; - + VA_LIST list; VA_START( list, aFmt ); buffer.AppendFormatList( aFmt, list, this ); VA_END(list); - - VPU_DEBUG(_L("#VideoPlaylistUtility# --> %S %S"), iFunctionName, &buffer ); + + RDebug::Print(_L("#VideoPlaylistUtility# --> %S %S"), iFunctionName, &buffer ); } - + TEnterExitLog( TRefByValue aFunctionName ) { iFunctionName = HBufC::New( TDesC(aFunctionName).Length() ); - + if ( iFunctionName ) { iFunctionName->Des().Copy(aFunctionName); } - - VPU_DEBUG(_L("#VideoPlaylistUtility# --> %S"), iFunctionName ); + + RDebug::Print(_L("#VideoPlaylistUtility# --> %S"), iFunctionName ); } - + ~TEnterExitLog() { - VPU_DEBUG(_L("#VideoPlaylistUtility# <-- %S"), iFunctionName ); + RDebug::Print(_L("#VideoPlaylistUtility# <-- %S"), iFunctionName ); delete iFunctionName; } - + private: HBufC* iFunctionName; }; + _LIT(_KVPUErrorInfo, "#VideoPlaylistUtility# Error : error %d file %s line %d"); #define VIDEOPLAYLISTUTILITY_S(a) _S(a) diff -r d45095c2f4f3 -r b1fb57be53fe mmappfw_plat/group/bld.inf --- a/mmappfw_plat/group/bld.inf Tue Feb 02 00:27:58 2010 +0200 +++ b/mmappfw_plat/group/bld.inf Fri Mar 19 09:38:24 2010 +0200 @@ -13,7 +13,7 @@ * * Description: Includes all the Domain API specific bld.inf files, which * export files. -* Version : %version: 1.1.4.1.3.3.4 % +* Version : %version: da1ido#1.1.4.1.3.3.5 % * */ @@ -27,6 +27,7 @@ #include "../harvester_server_api/group/bld.inf" #include "../harvester_utility_api/group/bld.inf" #include "../playlist_engine_api/group/bld.inf" +#include "../mtp_keys_api/group/bld.inf" #include "../mpx_collection_common_definition_api/group/bld.inf" #include "../mpx_collection_utility_api/group/bld.inf" #include "../mpx_common_api/group/bld.inf" diff -r d45095c2f4f3 -r b1fb57be53fe mmappfw_plat/harvester_collection_mediator_api/tsrc/HarvesterCollectionMediatorTest/group/HarvesterCollectionMediatorTest.mmp --- a/mmappfw_plat/harvester_collection_mediator_api/tsrc/HarvesterCollectionMediatorTest/group/HarvesterCollectionMediatorTest.mmp Tue Feb 02 00:27:58 2010 +0200 +++ b/mmappfw_plat/harvester_collection_mediator_api/tsrc/HarvesterCollectionMediatorTest/group/HarvesterCollectionMediatorTest.mmp Fri Mar 19 09:38:24 2010 +0200 @@ -49,7 +49,7 @@ LIBRARY euser.lib LIBRARY bafl.lib estor.lib ecom.lib stiftestinterface.lib LIBRARY stiftestengine.lib -LIBRARY mpxcollectionmediator.lib mpxcollectionutility.lib mpxcollectionview.lib mpxcollectionengine.lib mpxcollectionhelper.lib mpxcommon.lib +LIBRARY mpxcollectionmediator.lib mpxcollectionutility.lib mpxcollectionengine.lib mpxcollectionhelper.lib mpxcommon.lib LANG SC diff -r d45095c2f4f3 -r b1fb57be53fe mmappfw_plat/mpx_base_view_plugins_api/group/bld.inf --- a/mmappfw_plat/mpx_base_view_plugins_api/group/bld.inf Tue Feb 02 00:27:58 2010 +0200 +++ b/mmappfw_plat/mpx_base_view_plugins_api/group/bld.inf Fri Mar 19 09:38:24 2010 +0200 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -27,5 +27,8 @@ ../inc/mpxakndialogplugin.h MW_LAYER_PLATFORM_EXPORT_PATH(mpxakndialogplugin.h) ../inc/mpxaknviewplugin.h MW_LAYER_PLATFORM_EXPORT_PATH(mpxaknviewplugin.h) ../inc/mpxviewplugin.h MW_LAYER_PLATFORM_EXPORT_PATH(mpxviewplugin.h) -../inc/mpxviewplugin.hrh MW_LAYER_PLATFORM_EXPORT_PATH(mpxviewplugin.hrh) +../inc/mpxviewplugin.hrh MW_LAYER_PLATFORM_EXPORT_PATH(mpxviewplugin.hrh) +// new for 10.1 QT +../inc/mpxviewpluginqt.h MW_LAYER_PLATFORM_EXPORT_PATH(mpxviewpluginqt.h) + diff -r d45095c2f4f3 -r b1fb57be53fe mmappfw_plat/mpx_base_view_plugins_api/inc/mpxviewpluginqt.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmappfw_plat/mpx_base_view_plugins_api/inc/mpxviewpluginqt.h Fri Mar 19 09:38:24 2010 +0200 @@ -0,0 +1,135 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef MPXVIEWPLUGIN_H +#define MPXVIEWPLUGIN_H + +#ifdef BUILD_VIEWFRAMEWORK +#define VFDLL_EXPORT Q_DECL_EXPORT +#else +#define VFDLL_EXPORT Q_DECL_IMPORT +#endif + +#include + +class QGraphicsWidget; +class MpxViewPlugin; + +class VFDLL_EXPORT MpxPluginViewInterface { + + public: + virtual MpxViewPlugin *viewPlugin() = 0; + + }; + +Q_DECLARE_INTERFACE(MpxPluginViewInterface , "org.nokia.mmdt.MpxViewPlugin/1.0" ); + +class VFDLL_EXPORT MpxViewPlugin : public QObject, public MpxPluginViewInterface { + + Q_OBJECT + Q_INTERFACES(MpxPluginViewInterface) + + public: + + /* COMMENT: + * following two methods are kind of second-phase create & destroy. Rationale for this step is that + * we need some way to promote lazy resources allocation (on application demand) and early resource + * deallocation (again, on application direct command). + */ + + /** + * createView is the second operation (after plugin construction which is done somewhere + * in the plugin framework) executed in the application layer to make a fully operational + * View Plugin descendant. + * I should allocate all of those resources that are required by plugin, but which are + * too expensive to allocate in constructor (eg. in case of plugin prefetching). + */ + virtual void createView() = 0; + + /** + * destroyView is an operation that should be executed just before plugin deletion. + * Implementation should destroy all of resources allocated during createView execution. + * It's reason d'etre is based on a fact, that application doesn't controll when exactly + * plugin will be deleted, so destructor execution could be postponed still holding resources. + */ + virtual void destroyView() = 0; + + /* COMMENT: + * view activation and deactivation are reversible operations + * that allows us to give up resources that we could temporary deallocate when that + * specific view plugin goes into background. + */ + + /** + * Called to notice view activation. + */ + virtual void activateView() = 0; + + /** + * Called to notice view deactivation. + */ + virtual void deactivateView() = 0; + + /** + * gives actual view component, ready to put somewhere into the app layout. + * However, beware that calling to activate/deactivate in the meantime + * can invalidate that pointer. + * + * NOTE: Returned type is choosen to be as generic as possible, + * so please ensure that it fulfills all your needs (it was HbView* before) + */ + virtual QGraphicsWidget* getView() = 0; + + public slots: + + /** + * Signalled by application when orientation has changed. + */ + virtual void orientationChange(Qt::Orientation orientation) = 0; + + /** + * Implementation should take care either to implement + * go-back operation internally or to emit proper + * command signal to delegate that responsibility to + * framework (eg. to switch to previous view). + */ + virtual void back() = 0; + + signals: + + /** + * Command is the only way to notify from plugin to application + * about action needed to be executed. + * + * @param aCommand enumeration of command type. + * Currently supported are: ViewBack, CloseApp, GoToNowPlaying, GoToCollectionView. + * NOTE: It should be specified how to determine between broadly supported operations + * (back, close etc.) and application/plugin specific (go to collection, go to now playing etc.) + * + * There is also one major issue here, that there is no guaranted order of command delivery, + * so there is second option to use common observer pattern. Should be discussed. + */ + void command(int aCommand); + + public: + + virtual MpxViewPlugin *viewPlugin() { return this; } + +}; + +#endif /*MPXVIEWPLUGIN_H_*/ + diff -r d45095c2f4f3 -r b1fb57be53fe mmappfw_plat/mpx_common_api/inc/mpxclientlist.h --- a/mmappfw_plat/mpx_common_api/inc/mpxclientlist.h Tue Feb 02 00:27:58 2010 +0200 +++ b/mmappfw_plat/mpx_common_api/inc/mpxclientlist.h Fri Mar 19 09:38:24 2010 +0200 @@ -258,6 +258,26 @@ */ inline void SendMsgL(TInt aIndex, const TMPXMessage& aMsg); + + /** + * Sets the primary client + * + * @since S60 9.2 + * @return system error + */ + IMPORT_C TInt SetPrimaryClient(CMPXMessageQueue& aMsgQueue); + + + + /** + * Send a sync message to the primary client + * + * @since S60 9.2 + * @return system error + */ + IMPORT_C TInt SendSyncMsg(const CMPXMessage* aMsg); + + private: /** * Encapsulates a client: all the information associated with a client of @@ -433,6 +453,7 @@ RPointerArray iClients; RArray iClientProcesses; MMPXClientlistObserver* iObserver; + CMPXMessageQueue* iPrimaryClient; }; #include "mpxclientlist.inl" diff -r d45095c2f4f3 -r b1fb57be53fe mmappfw_plat/mpx_common_api/inc/mpxmessagequeue.h --- a/mmappfw_plat/mpx_common_api/inc/mpxmessagequeue.h Tue Feb 02 00:27:58 2010 +0200 +++ b/mmappfw_plat/mpx_common_api/inc/mpxmessagequeue.h Fri Mar 19 09:38:24 2010 +0200 @@ -73,6 +73,14 @@ */ IMPORT_C void Reset(); + /** + * Adds a message into the top of the queue and sends the message if slot is available. + * + * @since S60 9.2 + * @param aMessage message object, ownership not transferred. + * @return system error + */ + IMPORT_C TInt AddFirst(const CMPXMessage* aMessage, TInt aError); private: /** * C++ constructor. diff -r d45095c2f4f3 -r b1fb57be53fe mmappfw_plat/mpx_playback_common_definition_api/inc/mpxplaybackcommanddefs.h --- a/mmappfw_plat/mpx_playback_common_definition_api/inc/mpxplaybackcommanddefs.h Tue Feb 02 00:27:58 2010 +0200 +++ b/mmappfw_plat/mpx_playback_common_definition_api/inc/mpxplaybackcommanddefs.h Fri Mar 19 09:38:24 2010 +0200 @@ -99,6 +99,7 @@ EPbCmdDisableEffect, EPbCmdSetVolume, // 25 Set volume to the value specified by aData EPbCmdSetAutoResume, // 26 Set autoresume value (true/false) + EPbCmdSyncMsgComplete, //27 Synchronous message is complete EPbCmdEnd // Mark for the end of command }; diff -r d45095c2f4f3 -r b1fb57be53fe mmappfw_plat/mpx_playback_common_definition_api/inc/mpxplaybackframeworkdefs.h --- a/mmappfw_plat/mpx_playback_common_definition_api/inc/mpxplaybackframeworkdefs.h Tue Feb 02 00:27:58 2010 +0200 +++ b/mmappfw_plat/mpx_playback_common_definition_api/inc/mpxplaybackframeworkdefs.h Fri Mar 19 09:38:24 2010 +0200 @@ -164,8 +164,7 @@ EPbAccessoryLoopset = 0x00000020, EPbAccessoryMusicStand = 0x00000040, EPbAccessoryTVOut = 0x00000080, - EPbAccessoryHeadphones = 0x00000100, - EPbAccessoryHDMI = 0x00000200 + EPbAccessoryHeadphones = 0x00000100 }; #else /** @@ -247,6 +246,7 @@ EPbsInitFromFile64, // 42 EPbsInitStreamingFromFile64, // 43 EPbsGetFile64, // 44 + EPbsSetPrimaryClient, //45 set primary client EPbsServerOpEnd // End of operation }; diff -r d45095c2f4f3 -r b1fb57be53fe mmappfw_plat/mpx_playback_common_definition_api/inc/mpxplaybackpluginobserver.h --- a/mmappfw_plat/mpx_playback_common_definition_api/inc/mpxplaybackpluginobserver.h Tue Feb 02 00:27:58 2010 +0200 +++ b/mmappfw_plat/mpx_playback_common_definition_api/inc/mpxplaybackpluginobserver.h Fri Mar 19 09:38:24 2010 +0200 @@ -110,6 +110,18 @@ */ virtual void HandlePlaybackMessage(CMPXMessage* /*aMsg*/, TInt /*aErr*/) {} + + + /** + * Handle message from plug-in. + * + * @since S60 9.2 + * @param aMsg message from the plug-in + * @return system error + */ + virtual TInt HandlePlaybackSyncMessage (const CMPXMessage& /*aMsg*/) {return KErrNotSupported;} + + }; #endif // MMPXMPLAYBACKPLUGINOBSERVER_H diff -r d45095c2f4f3 -r b1fb57be53fe mmappfw_plat/mpx_playback_utility_api/inc/mpxplaybackutility.h --- a/mmappfw_plat/mpx_playback_utility_api/inc/mpxplaybackutility.h Tue Feb 02 00:27:58 2010 +0200 +++ b/mmappfw_plat/mpx_playback_utility_api/inc/mpxplaybackutility.h Fri Mar 19 09:38:24 2010 +0200 @@ -413,6 +413,16 @@ */ virtual void InitStreaming64L(RFile64& /*aShareableFile*/, const TInt /*aAccessPoint*/) {}; #endif // SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API + + /** + * Sets the primary client + * + * @since S60 9.2 + * @return system error + */ + virtual TInt SetPrimaryClientL() {return KErrNotSupported; }; + + }; /** diff -r d45095c2f4f3 -r b1fb57be53fe mmappfw_plat/mpx_view_utility_api/group/bld.inf --- a/mmappfw_plat/mpx_view_utility_api/group/bld.inf Tue Feb 02 00:27:58 2010 +0200 +++ b/mmappfw_plat/mpx_view_utility_api/group/bld.inf Fri Mar 19 09:38:24 2010 +0200 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -26,4 +26,7 @@ ../inc/mpxviewactivationobserver.h MW_LAYER_PLATFORM_EXPORT_PATH(mpxviewactivationobserver.h) ../inc/mpxviewpluginmanager.h MW_LAYER_PLATFORM_EXPORT_PATH(mpxviewpluginmanager.h) ../inc/mpxviewutility.h MW_LAYER_PLATFORM_EXPORT_PATH(mpxviewutility.h) -../inc/mpxviewutilitycommanddef.h MW_LAYER_PLATFORM_EXPORT_PATH(mpxviewutilitycommanddef.h) +../inc/mpxviewutilitycommanddef.h MW_LAYER_PLATFORM_EXPORT_PATH(mpxviewutilitycommanddef.h) + +// new for 10.1 QT +../inc/mpxviewframeworkqt.h MW_LAYER_PLATFORM_EXPORT_PATH(mpxviewframeworkqt.h) diff -r d45095c2f4f3 -r b1fb57be53fe mmappfw_plat/mpx_view_utility_api/inc/mpxviewframeworkqt.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmappfw_plat/mpx_view_utility_api/inc/mpxviewframeworkqt.h Fri Mar 19 09:38:24 2010 +0200 @@ -0,0 +1,52 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef MPXVIEWFRAMEWORK_H +#define MPXVIEWFRAMEWORK_H + +#include +#include +#include +#include + +class MpxViewPlugin; +class HbView; + +#ifdef BUILD_VIEWFRAMEWORK +#define VFDLL_EXPORT Q_DECL_EXPORT +#else +#define VFDLL_EXPORT Q_DECL_IMPORT +#endif + +class VFDLL_EXPORT MpxViewFramework : public HbMainWindow + { + Q_OBJECT + +public: + MpxViewFramework(QWidget *parent = 0, Hb::WindowFlags windowFlags = Hb::WindowFlagNone); + + virtual ~MpxViewFramework(); + + virtual MpxViewPlugin *resolvePlugin(const QList& requestedPlugins); + +private: + + Q_DISABLE_COPY(MpxViewFramework) + + }; + +#endif //VIEWFRAMEWORK_H diff -r d45095c2f4f3 -r b1fb57be53fe mmappfw_plat/mtp_keys_api/group/bld.inf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmappfw_plat/mtp_keys_api/group/bld.inf Fri Mar 19 09:38:24 2010 +0200 @@ -0,0 +1,26 @@ +/* +* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: File that exports the files belonging to +: MTP Keys API +* +*/ + + +#include + +PRJ_PLATFORMS +DEFAULT + +PRJ_EXPORTS +../inc/MtpPrivatePSKeys.h MW_LAYER_PLATFORM_EXPORT_PATH(MtpPrivatePSKeys.h) diff -r d45095c2f4f3 -r b1fb57be53fe mmappfw_plat/mtp_keys_api/inc/MtpPrivatePSKeys.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmappfw_plat/mtp_keys_api/inc/MtpPrivatePSKeys.h Fri Mar 19 09:38:24 2010 +0200 @@ -0,0 +1,33 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Header Information for MTP Private Publish & Subsribe Keys +* +*/ + + +#ifndef MTPPRIVATEPSKEYS_H +#define MTPPRIVATEPSKEYS_H + +// Security Code UI Originator API +const TUid KMtpPSUid = {0x101FFC51}; // Mtp Key UID +const TInt KMtpPSStatus = 1; // Mtp UID + +enum TMtpPSStatus + { + EMtpPSStatusUninitialized = 0, + EMtpPSStatusActive, + EMtpPSStatusReadyToSync + }; + +#endif // MTPPRIVATEPSKEYS_H diff -r d45095c2f4f3 -r b1fb57be53fe mmappfw_plat/mtp_keys_api/mtp_keys_api.metaxml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmappfw_plat/mtp_keys_api/mtp_keys_api.metaxml Fri Mar 19 09:38:24 2010 +0200 @@ -0,0 +1,17 @@ + + + MTP Keys API + This API defines the Central Repository and Publish & Subscribe keys defined by MTP. + c++ + mtp + + + + + + + + no + no + + diff -r d45095c2f4f3 -r b1fb57be53fe mmappfw_plat/videoplaylist_utility_api/tsrc/videoplaylistutilitytest/group/videoplaylistutilitytest.mmp --- a/mmappfw_plat/videoplaylist_utility_api/tsrc/videoplaylistutilitytest/group/videoplaylistutilitytest.mmp Tue Feb 02 00:27:58 2010 +0200 +++ b/mmappfw_plat/videoplaylist_utility_api/tsrc/videoplaylistutilitytest/group/videoplaylistutilitytest.mmp Fri Mar 19 09:38:24 2010 +0200 @@ -15,7 +15,7 @@ * */ -// Version : %version: 2 % +// Version : %version: 3 % #include @@ -49,7 +49,6 @@ LIBRARY libglib.lib LIBRARY libpthread.lib LIBRARY efsrv.lib -LIBRARY flogger.lib LIBRARY ServiceHandler.lib LIBRARY ecom.lib LIBRARY estor.lib diff -r d45095c2f4f3 -r b1fb57be53fe mpx/collectionframework/collectionengine/inc/mpxcollectionengine.h --- a/mpx/collectionframework/collectionengine/inc/mpxcollectionengine.h Tue Feb 02 00:27:58 2010 +0200 +++ b/mpx/collectionframework/collectionengine/inc/mpxcollectionengine.h Fri Mar 19 09:38:24 2010 +0200 @@ -391,8 +391,6 @@ * If not KNullUid, indicates the plugin that is currently being upgraded. */ TUid iUpdatedPluginUid; - - CMPXMedia* iMediaForHeapKeepAlive; // own }; #include "mpxcollectionengine.inl" diff -r d45095c2f4f3 -r b1fb57be53fe mpx/collectionframework/collectionengine/src/mpxcollectionengine.cpp --- a/mpx/collectionframework/collectionengine/src/mpxcollectionengine.cpp Tue Feb 02 00:27:58 2010 +0200 +++ b/mpx/collectionframework/collectionengine/src/mpxcollectionengine.cpp Fri Mar 19 09:38:24 2010 +0200 @@ -102,7 +102,6 @@ // void CMPXCollectionEngine::ConstructL() { - iMediaForHeapKeepAlive = CMPXMedia::NewL(); // To avoid continuous heap iPluginHandler=CMPXCollectionPluginHandler::NewL(*this, *this); iCache = CMPXCollectionCache::NewL(KMPXMaxCacheSizeRatio); } @@ -113,7 +112,6 @@ // EXPORT_C CMPXCollectionEngine::~CMPXCollectionEngine() { - delete iMediaForHeapKeepAlive; iCleanupStack.Close(); iContexts.ResetAndDestroy(); diff -r d45095c2f4f3 -r b1fb57be53fe mpx/commonframework/common/bwinscw/mpxcommonU.DEF --- a/mpx/commonframework/common/bwinscw/mpxcommonU.DEF Tue Feb 02 00:27:58 2010 +0200 +++ b/mpx/commonframework/common/bwinscw/mpxcommonU.DEF Fri Mar 19 09:38:24 2010 +0200 @@ -284,4 +284,7 @@ ?AddClientL@CMPXClientList@@QAEXVTThreadId@@HPAVCMPXMessageQueue@@H@Z @ 283 NONAME ; void CMPXClientList::AddClientL(class TThreadId, int, class CMPXMessageQueue *, int) ?ClientCategory@CMPXClientList@@QBEHH@Z @ 284 NONAME ; int CMPXClientList::ClientCategory(int) const ?SelectPlugin64L@CMPXPluginHandlerBase@@UAEXABVRFile64@@@Z @ 285 NONAME ; void CMPXPluginHandlerBase::SelectPlugin64L(class RFile64 const &) + ?SendSyncMsg@CMPXClientList@@QAEHPBVCMPXMedia@@@Z @ 286 NONAME ; int CMPXClientList::SendSyncMsg(class CMPXMedia const *) + ?AddFirst@CMPXMessageQueue@@QAEHPBVCMPXMedia@@H@Z @ 287 NONAME ; int CMPXMessageQueue::AddFirst(class CMPXMedia const *, int) + ?SetPrimaryClient@CMPXClientList@@QAEHAAVCMPXMessageQueue@@@Z @ 288 NONAME ; int CMPXClientList::SetPrimaryClient(class CMPXMessageQueue &) diff -r d45095c2f4f3 -r b1fb57be53fe mpx/commonframework/common/eabi/mpxcommonU.DEF --- a/mpx/commonframework/common/eabi/mpxcommonU.DEF Tue Feb 02 00:27:58 2010 +0200 +++ b/mpx/commonframework/common/eabi/mpxcommonU.DEF Fri Mar 19 09:38:24 2010 +0200 @@ -361,4 +361,7 @@ _ZN14CMPXClientList10AddClientLE9TThreadIdiP16CMPXMessageQueuei @ 360 NONAME _ZNK14CMPXClientList14ClientCategoryEi @ 361 NONAME _ZN21CMPXPluginHandlerBase15SelectPlugin64LERK7RFile64 @ 362 NONAME + _ZN14CMPXClientList11SendSyncMsgEPK9CMPXMedia @ 363 NONAME + _ZN14CMPXClientList16SetPrimaryClientER16CMPXMessageQueue @ 364 NONAME + _ZN16CMPXMessageQueue8AddFirstEPK9CMPXMediai @ 365 NONAME diff -r d45095c2f4f3 -r b1fb57be53fe mpx/commonframework/common/src/mpxclientlist.cpp --- a/mpx/commonframework/common/src/mpxclientlist.cpp Tue Feb 02 00:27:58 2010 +0200 +++ b/mpx/commonframework/common/src/mpxclientlist.cpp Fri Mar 19 09:38:24 2010 +0200 @@ -46,7 +46,8 @@ // CMPXClientList::CMPXClientList(MMPXClientlistObserver* aObserver) : iIdentity(CMPXClientList::ClientsMatch), - iObserver(aObserver) + iObserver(aObserver), + iPrimaryClient(NULL) {} // ---------------------------------------------------------------------------- @@ -155,7 +156,15 @@ CClientId* id( iClients[aIndex] ); iClients.Remove(aIndex); - CClientId removeId( id->iPid ); + //set primary client to NULL if primary client is removed + if (iPrimaryClient != NULL) + { + if (aIndex == Find(*iPrimaryClient)) + { + iPrimaryClient = NULL; + } + } + CClientId removeId( id->iPid ); if ( iClients.Find( &removeId, iIdentity ) == KErrNotFound ) // // There's no other client from the same process, so @@ -601,4 +610,46 @@ iSubscriptions.ResetAndDestroy(); } +// ----------------------------------------------------------------------------- +// CMPClientList::SetPrimaryClient +// Set the primary client +// ----------------------------------------------------------------------------- +// +EXPORT_C TInt CMPXClientList::SetPrimaryClient(CMPXMessageQueue& aMsgQueue) + { + MPX_FUNC("CMPXClientList::SetPrimaryClient"); + TInt index = Find(aMsgQueue); + MPX_DEBUG2("CMPXClientList::SetPrimaryClient, index = %d", index); + if (index >= 0) + { + iPrimaryClient = &aMsgQueue; + return KErrNone; + } + return index; + } +// ----------------------------------------------------------------------------- +// CMPClientList::SendSyncMsg +// Send a sync message to the primary client +// ----------------------------------------------------------------------------- +// +EXPORT_C TInt CMPXClientList::SendSyncMsg(const CMPXMessage* aMsg) + { + MPX_FUNC("CMPXClientList::SendSyncMsg"); + TInt err = KErrNone; + if (iPrimaryClient == NULL) + { + return KErrNotFound; + } + TInt index = Find(*iPrimaryClient); + MPX_DEBUG2("CMPXClientList::SendSyncMsg, index = %d", index); + if (index >= 0) + { + err = iClients[index]->iMsgQueue->AddFirst(aMsg, KErrNone); + } + else + { + err = KErrNotFound; + } + return err; + } // End of File diff -r d45095c2f4f3 -r b1fb57be53fe mpx/commonframework/common/src/mpxmessagequeue.cpp --- a/mpx/commonframework/common/src/mpxmessagequeue.cpp Tue Feb 02 00:27:58 2010 +0200 +++ b/mpx/commonframework/common/src/mpxmessagequeue.cpp Fri Mar 19 09:38:24 2010 +0200 @@ -302,4 +302,36 @@ this, data, err, ret); } +// ---------------------------------------------------------------------------- +// Adds a message into the top of the queue and sends the message if slot is available +// ---------------------------------------------------------------------------- +// +EXPORT_C TInt CMPXMessageQueue::AddFirst(const CMPXMessage* aMessage, TInt aError) + { + // aMessage should not be NULL and aError is KErrNone + MPX_ASSERT(aMessage || aError); + MPX_FUNC_EX("CMPXMessageQueue::AddFirst()"); + CMPXMessageItem* item(NULL); + TRAPD(err, item = CMPXMessageItem::NewL(aMessage, aError)); + if (KErrNone==err) + { + iMsgs.AddFirst(*item); +#ifdef _DEBUG + MPX_DEBUG3("CMPXMessageQueue::AddFirst 0x%08x, items %d", this, ++iCount); +#endif + }//else failed to create message item. + else + { + MPX_DEBUG2("CMPXMessageQueue::AddFirst Failed to create message item %d", err); + } + if (KErrNone!=err && KErrNone==iFailure) + { // Set the failure code + iFailure = err; + } + if (!iMsgRequest.IsNull()) + { // outstanding request + Send(); + } // else client has not finished current message yet + return err; + } // End of file diff -r d45095c2f4f3 -r b1fb57be53fe mpx/mpxviewframeworkqt/bwins/mpxviewframeworkqt.def --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mpx/mpxviewframeworkqt/bwins/mpxviewframeworkqt.def Fri Mar 19 09:38:24 2010 +0200 @@ -0,0 +1,30 @@ +EXPORTS + ?trUtf8@MpxViewPlugin@@SA?AVQString@@PBD0@Z @ 1 NONAME ; class QString MpxViewPlugin::trUtf8(char const *, char const *) + ?tr@MpxViewFramework@@SA?AVQString@@PBD0H@Z @ 2 NONAME ; class QString MpxViewFramework::tr(char const *, char const *, int) + ??0MpxViewFramework@@QAE@PAVQWidget@@V?$QFlags@W4WindowFlag@Hb@@@@@Z @ 3 NONAME ; MpxViewFramework::MpxViewFramework(class QWidget *, class QFlags) + ??1MpxViewPluginResolver@@UAE@XZ @ 4 NONAME ; MpxViewPluginResolver::~MpxViewPluginResolver(void) + ?tr@MpxViewPlugin@@SA?AVQString@@PBD0H@Z @ 5 NONAME ; class QString MpxViewPlugin::tr(char const *, char const *, int) + ??0MpxViewPluginResolver@@QAE@ABV?$QList@H@@@Z @ 6 NONAME ; MpxViewPluginResolver::MpxViewPluginResolver(class QList const &) + ?tr@MpxViewFramework@@SA?AVQString@@PBD0@Z @ 7 NONAME ; class QString MpxViewFramework::tr(char const *, char const *) + ?qt_metacast@MpxViewFramework@@UAEPAXPBD@Z @ 8 NONAME ; void * MpxViewFramework::qt_metacast(char const *) + ?trUtf8@MpxViewFramework@@SA?AVQString@@PBD0H@Z @ 9 NONAME ; class QString MpxViewFramework::trUtf8(char const *, char const *, int) + ?getStaticMetaObject@MpxViewFramework@@SAABUQMetaObject@@XZ @ 10 NONAME ; struct QMetaObject const & MpxViewFramework::getStaticMetaObject(void) + ?staticMetaObject@MpxViewFramework@@2UQMetaObject@@B @ 11 NONAME ; struct QMetaObject const MpxViewFramework::staticMetaObject + ?qt_metacall@MpxViewFramework@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 12 NONAME ; int MpxViewFramework::qt_metacall(enum QMetaObject::Call, int, void * *) + ?trUtf8@MpxViewFramework@@SA?AVQString@@PBD0@Z @ 13 NONAME ; class QString MpxViewFramework::trUtf8(char const *, char const *) + ?staticMetaObject@MpxViewPlugin@@2UQMetaObject@@B @ 14 NONAME ; struct QMetaObject const MpxViewPlugin::staticMetaObject + ?metaObject@MpxViewPlugin@@UBEPBUQMetaObject@@XZ @ 15 NONAME ; struct QMetaObject const * MpxViewPlugin::metaObject(void) const + ?metaObject@MpxViewFramework@@UBEPBUQMetaObject@@XZ @ 16 NONAME ; struct QMetaObject const * MpxViewFramework::metaObject(void) const + ?resolvePlugin@MpxViewPluginResolver@@QAEPAVMpxViewPlugin@@XZ @ 17 NONAME ; class MpxViewPlugin * MpxViewPluginResolver::resolvePlugin(void) + ?tr@MpxViewPlugin@@SA?AVQString@@PBD0@Z @ 18 NONAME ; class QString MpxViewPlugin::tr(char const *, char const *) + ?getStaticMetaObject@MpxViewPlugin@@SAABUQMetaObject@@XZ @ 19 NONAME ; struct QMetaObject const & MpxViewPlugin::getStaticMetaObject(void) + ??1MpxViewFramework@@UAE@XZ @ 20 NONAME ; MpxViewFramework::~MpxViewFramework(void) + ??_EMpxViewFramework@@UAE@I@Z @ 21 NONAME ; MpxViewFramework::~MpxViewFramework(unsigned int) + ?resolvePlugin@MpxViewFramework@@UAEPAVMpxViewPlugin@@ABV?$QList@H@@@Z @ 22 NONAME ; class MpxViewPlugin * MpxViewFramework::resolvePlugin(class QList const &) + ?qt_metacast@MpxViewPlugin@@UAEPAXPBD@Z @ 23 NONAME ; void * MpxViewPlugin::qt_metacast(char const *) + ?viewPlugin@MpxViewPlugin@@UAEPAV1@XZ @ 24 NONAME ; class MpxViewPlugin * MpxViewPlugin::viewPlugin(void) + ??_EMpxViewPluginResolver@@UAE@I@Z @ 25 NONAME ; MpxViewPluginResolver::~MpxViewPluginResolver(unsigned int) + ?qt_metacall@MpxViewPlugin@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 26 NONAME ; int MpxViewPlugin::qt_metacall(enum QMetaObject::Call, int, void * *) + ?command@MpxViewPlugin@@IAEXH@Z @ 27 NONAME ; void MpxViewPlugin::command(int) + ?trUtf8@MpxViewPlugin@@SA?AVQString@@PBD0H@Z @ 28 NONAME ; class QString MpxViewPlugin::trUtf8(char const *, char const *, int) + diff -r d45095c2f4f3 -r b1fb57be53fe mpx/mpxviewframeworkqt/eabi/mpxviewframeworkqt.def --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mpx/mpxviewframeworkqt/eabi/mpxviewframeworkqt.def Fri Mar 19 09:38:24 2010 +0200 @@ -0,0 +1,34 @@ +EXPORTS + _ZN13MpxViewPlugin11qt_metacallEN11QMetaObject4CallEiPPv @ 1 NONAME + _ZN13MpxViewPlugin11qt_metacastEPKc @ 2 NONAME + _ZN13MpxViewPlugin16staticMetaObjectE @ 3 NONAME DATA 16 + _ZN13MpxViewPlugin19getStaticMetaObjectEv @ 4 NONAME + _ZN13MpxViewPlugin7commandEi @ 5 NONAME + _ZN16MpxViewFramework11qt_metacallEN11QMetaObject4CallEiPPv @ 6 NONAME + _ZN16MpxViewFramework11qt_metacastEPKc @ 7 NONAME + _ZN16MpxViewFramework13resolvePluginERK5QListIiE @ 8 NONAME + _ZN16MpxViewFramework16staticMetaObjectE @ 9 NONAME DATA 16 + _ZN16MpxViewFramework19getStaticMetaObjectEv @ 10 NONAME + _ZN16MpxViewFrameworkC1EP7QWidget6QFlagsIN2Hb10WindowFlagEE @ 11 NONAME + _ZN16MpxViewFrameworkC2EP7QWidget6QFlagsIN2Hb10WindowFlagEE @ 12 NONAME + _ZN16MpxViewFrameworkD0Ev @ 13 NONAME + _ZN16MpxViewFrameworkD1Ev @ 14 NONAME + _ZN16MpxViewFrameworkD2Ev @ 15 NONAME + _ZN21MpxViewPluginResolver13resolvePluginEv @ 16 NONAME + _ZN21MpxViewPluginResolverC1ERK5QListIiE @ 17 NONAME + _ZN21MpxViewPluginResolverC2ERK5QListIiE @ 18 NONAME + _ZN21MpxViewPluginResolverD0Ev @ 19 NONAME + _ZN21MpxViewPluginResolverD1Ev @ 20 NONAME + _ZN21MpxViewPluginResolverD2Ev @ 21 NONAME + _ZNK13MpxViewPlugin10metaObjectEv @ 22 NONAME + _ZNK16MpxViewFramework10metaObjectEv @ 23 NONAME + _ZTI13MpxViewPlugin @ 24 NONAME + _ZTI16MpxViewFramework @ 25 NONAME + _ZTI21MpxViewPluginResolver @ 26 NONAME + _ZTI22MpxPluginViewInterface @ 27 NONAME + _ZTV13MpxViewPlugin @ 28 NONAME + _ZTV16MpxViewFramework @ 29 NONAME + _ZTV21MpxViewPluginResolver @ 30 NONAME + _ZThn8_N16MpxViewFrameworkD0Ev @ 31 NONAME + _ZThn8_N16MpxViewFrameworkD1Ev @ 32 NONAME + diff -r d45095c2f4f3 -r b1fb57be53fe mpx/mpxviewframeworkqt/inc/mpxplugindata.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mpx/mpxviewframeworkqt/inc/mpxplugindata.h Fri Mar 19 09:38:24 2010 +0200 @@ -0,0 +1,105 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef MPXPLUGINDATA_H +#define MPXPLUGINDATA_H + +// INCLUDES +#include +// CLASS DECLARATION + +/** + * QMpxPluginData + * + */ +class MpxPluginData + { +public: + enum TMPXViewPluginPriorities{ + EMPXViewPluginPriorityLowest = -20000, + EMPXViewPluginPriorityLow = -10000, + EMPXViewPluginPriorityNormal = 0, + EMPXViewPluginPriorityHigh = 10000, + EMPXViewPluginPriorityHighest = 20000 + }; + + /** + * Constructor + */ + MpxPluginData( ); + + /** + * Destructor. + */ + ~MpxPluginData(); + + /** + * Plugin id geter + * @return plugin id + */ + int id() const; + + /** + * Plugin interface id geter + * @return interface id implemented by plugin + */ + int type() const; + + /** + * Plugin priority geter + * @return priority of plugin + */ + TMPXViewPluginPriorities priority() const; + + /** + * Plugin supported functionality geter + * @return list of functionality delivered by plugin + */ + const QList< int >& supportedId() const; + + /** + * Plugin id seter + * @param value - new value of plugin id + */ + void setId( int value ); + + /** + * Plugin interface id seter + * @param value - new value of plugin interface id + */ + void setType( int value ); + + /** + * Plugin priority seter + * @param value - new plugin priority + */ + void setPriority( TMPXViewPluginPriorities value ); + + /** + * Plugin supporterd functionality seter + * @param value - new functionality supported by plugin + */ + void addSupportedId( int value ); + +private: + int pluginId; + int pluginType; + TMPXViewPluginPriorities pluginPriority; + QList< int > pluginSupportedId; + }; + +#endif // MPXPLUGINDATA_H diff -r d45095c2f4f3 -r b1fb57be53fe mpx/mpxviewframeworkqt/inc/mpxplugindataparser.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mpx/mpxviewframeworkqt/inc/mpxplugindataparser.h Fri Mar 19 09:38:24 2010 +0200 @@ -0,0 +1,56 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef QMPXPLUDINDATAPARSER_H +#define QMPXPLUDINDATAPARSER_H + +class MpxPluginData; +class QString; +class QStringRef; + +/** + * QMpxPluginDataParser + * + */ +class MpxPluginDataParser + { +public: + + /** + * Constructor + */ + MpxPluginDataParser(); + + /** + * Destructor. + */ + ~MpxPluginDataParser(); + + const MpxPluginData* data() const; + + MpxPluginData* takeData(); + + void parse( const QString& aData ); +private: + bool findNextNode( const QString& aSrc, int& aOffset, QStringRef& aTagName, QStringRef& aTagContent ) const; + bool parseInt( int& aDst, const QString& aSrc ) const ; + void parseSupportedId( const QString& aValue ); +private: + MpxPluginData* dataPtr; + }; + +#endif // QMPXPLUDINDATAPARSER_H diff -r d45095c2f4f3 -r b1fb57be53fe mpx/mpxviewframeworkqt/inc/mpxviewpluginresolver.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mpx/mpxviewframeworkqt/inc/mpxviewpluginresolver.h Fri Mar 19 09:38:24 2010 +0200 @@ -0,0 +1,47 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +// This file defines the API for MpxViewPluginResolver.dll + +#ifndef __MPXVIEWPLUGINRESOLVER_H__ +#define __MPXVIEWPLUGINRESOLVER_H__ + +#include + +#include + +#ifdef BUILD_VIEWFRAMEWORK +#define VFDLL_EXPORT Q_DECL_EXPORT +#else +#define VFDLL_EXPORT Q_DECL_IMPORT +#endif + +class MpxViewPluginResolverPrivate; + +class VFDLL_EXPORT MpxViewPluginResolver + { +public: + // new functions + MpxViewPluginResolver( const QList& ); + virtual ~MpxViewPluginResolver(); + MpxViewPlugin* resolvePlugin(); +private: + MpxViewPluginResolverPrivate* impl; + }; + +#endif // __MPXVIEWPLUGINRESOLVER_H__ + diff -r d45095c2f4f3 -r b1fb57be53fe mpx/mpxviewframeworkqt/inc/mpxviewpluginresolver_p.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mpx/mpxviewframeworkqt/inc/mpxviewpluginresolver_p.h Fri Mar 19 09:38:24 2010 +0200 @@ -0,0 +1,43 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +// This file defines the API for MpxViewPluginResolver.dll + +#ifndef __MPXVIEWPLUGINRESOLVERPRIVATE_H__ +#define __MPXVIEWPLUGINRESOLVERPRIVATE_H__ + +#include +#include +#include + +class MpxViewPlugin; +class MpxPluginViewInterface; + +class MpxViewPluginResolverPrivate +{ +public: + // new functions + MpxViewPluginResolverPrivate( const QList& ); + ~MpxViewPluginResolverPrivate(); + MpxViewPlugin* resolvePlugin(); +private: + MpxPluginViewInterface* resolveAndLoadPlugins( const QList< XQPluginInfo >& impls ); +private: + const QList requestedPlugins; +}; +#endif // __MPXVIEWPLUGINRESOLVERPRIVATE_H__ + diff -r d45095c2f4f3 -r b1fb57be53fe mpx/mpxviewframeworkqt/mpxviewframeworkqt.pro --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mpx/mpxviewframeworkqt/mpxviewframeworkqt.pro Fri Mar 19 09:38:24 2010 +0200 @@ -0,0 +1,79 @@ +# +# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +# All rights reserved. +# This component and the accompanying materials are made available +# under the terms of "Eclipse Public License v1.0" +# which accompanies this distribution, and is available +# at the URL "http://www.eclipse.org/legal/epl-v10.html". +# +# Initial Contributors: +# Nokia Corporation - initial contribution. +# +# Contributors: +# +# Description: +# +# + +TEMPLATE = lib + +TARGET = mpxviewframeworkqt +CONFIG += qt hb + +TARGET.UID3 = 0x2002B33F + +# QT -= gui + +DEPENDPATH += inc \ + include \ + src + +INCLUDEPATH += . \ + ./inc \ + ./include \ + ../viewframework/include \ + /epoc32/include/mw/hb/hbcore \ + /epoc32/include/mw/hb/hbinput \ + /epoc32/include/mw/hb/hbwidgets \ + /epoc32/include/mw/hb/hbfeedback \ + /epoc32/include/mw/hb/tools + +LIBS+= -lhbcore -lhbwidgets -lxqplugins + +DEFINES += BUILD_VIEWFRAMEWORK + + +HEADERS += inc/mpxplugindata.h \ + inc/mpxplugindataparser.h \ + inc/mpxviewpluginresolver_p.h \ + inc/mpxviewpluginresolver.h \ + ../../mmappfw_plat/mpx_view_utility_api/inc/mpxviewframeworkqt.h \ + ../../mmappfw_plat/mpx_base_view_plugins_api/inc/mpxviewpluginqt.h + +SOURCES += \ + src/mpxplugindata.cpp \ + src/mpxplugindataparser.cpp \ + src/mpxviewpluginresolver.cpp \ + src/mpxviewpluginresolver_p.cpp \ + src/mpxviewframework.cpp + +symbian { + +TARGET.CAPABILITY = All -TCB +TARGET.EPOCALLOWDATA = 1 +MMP_RULES += EPOCALLOWDLLDATA + +include(rom/rom.pri) + +myDefInclude = "NOSTRICTDEF" \ +"$${LITERAL_HASH}if defined(WINS)"\ +"DEFFILE bwins/mpxviewframeworkqt.def "\ +"$${LITERAL_HASH}else "\ +"DEFFILE eabi/mpxviewframeworkqt.def "\ +"$${LITERAL_HASH}endif" + +MMP_RULES += myDefInclude + + + +} diff -r d45095c2f4f3 -r b1fb57be53fe mpx/mpxviewframeworkqt/rom/mpxviewframeworkqt.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mpx/mpxviewframeworkqt/rom/mpxviewframeworkqt.iby Fri Mar 19 09:38:24 2010 +0200 @@ -0,0 +1,27 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef MPXVIEWFRAMEWORKQT_IBY +#define MPXVIEWFRAMEWORKQT_IBY + +#include +#include + +file=ABI_DIR\BUILD_DIR\mpxviewframeworkqt.dll SHARED_LIB_DIR\mpxviewframeworkqt.dll + + +#endif diff -r d45095c2f4f3 -r b1fb57be53fe mpx/mpxviewframeworkqt/rom/rom.pri --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mpx/mpxviewframeworkqt/rom/rom.pri Fri Mar 19 09:38:24 2010 +0200 @@ -0,0 +1,21 @@ +# +# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +# All rights reserved. +# This component and the accompanying materials are made available +# under the terms of "Eclipse Public License v1.0" +# which accompanies this distribution, and is available +# at the URL "http://www.eclipse.org/legal/epl-v10.html". +# +# Initial Contributors: +# Nokia Corporation - initial contribution. +# +# Contributors: +# +# Description: +# + +symbian { +MP_IBY_DIR = $$section(PWD,":",1) + +BLD_INF_RULES.prj_exports += "$$MP_IBY_DIR/mpxviewframeworkqt.iby CORE_MW_LAYER_IBY_EXPORT_PATH(mpxviewframeworkqt.iby)" +} \ No newline at end of file diff -r d45095c2f4f3 -r b1fb57be53fe mpx/mpxviewframeworkqt/src/mpxplugindata.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mpx/mpxviewframeworkqt/src/mpxplugindata.cpp Fri Mar 19 09:38:24 2010 +0200 @@ -0,0 +1,113 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#include "mpxplugindata.h" + +// ----------------------------------------------------------------------------- +// MpxPluginData +// ----------------------------------------------------------------------------- +// +MpxPluginData::MpxPluginData() +: +pluginId( 0 ), +pluginType( 0 ), +pluginPriority( EMPXViewPluginPriorityLowest ), +pluginSupportedId() +{ + // No implementation required +} + +// ----------------------------------------------------------------------------- +// ~MpxPluginData +// ----------------------------------------------------------------------------- +// +MpxPluginData::~MpxPluginData() +{ + pluginSupportedId.clear(); +} + +// ----------------------------------------------------------------------------- +// id +// ----------------------------------------------------------------------------- +// +int MpxPluginData::id()const +{ + return pluginId; +} + +// ----------------------------------------------------------------------------- +// type +// ----------------------------------------------------------------------------- +// +int MpxPluginData::type()const +{ + return pluginType; +} + +// ----------------------------------------------------------------------------- +// priority +// ----------------------------------------------------------------------------- +// +MpxPluginData::TMPXViewPluginPriorities MpxPluginData::priority() const +{ + return pluginPriority; +} + +// ----------------------------------------------------------------------------- +// supportedId +// ----------------------------------------------------------------------------- +// +const QList& MpxPluginData::supportedId() const +{ + return pluginSupportedId; +} + +// ----------------------------------------------------------------------------- +// setId +// ----------------------------------------------------------------------------- +// +void MpxPluginData::setId( int value ) +{ + pluginId = value; +} + +// ----------------------------------------------------------------------------- +// setId +// ----------------------------------------------------------------------------- +// +void MpxPluginData::setType( int value ) +{ + pluginType = value; +} + +// ----------------------------------------------------------------------------- +// setType +// ----------------------------------------------------------------------------- +// +void MpxPluginData::setPriority( TMPXViewPluginPriorities value ) +{ + pluginPriority = value; +} + +// ----------------------------------------------------------------------------- +// addSupportedId +// ----------------------------------------------------------------------------- +// +void MpxPluginData::addSupportedId( int value ) +{ + pluginSupportedId.append( value ); +} diff -r d45095c2f4f3 -r b1fb57be53fe mpx/mpxviewframeworkqt/src/mpxplugindataparser.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mpx/mpxviewframeworkqt/src/mpxplugindataparser.cpp Fri Mar 19 09:38:24 2010 +0200 @@ -0,0 +1,214 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#include "mpxplugindataparser.h" +#include "mpxplugindata.h" +#include + + + +const int gParserHexBase( 16 ); +const int gParserDecBase( 10 ); + +static MpxPluginData::TMPXViewPluginPriorities parsePriority( const QStringRef& src ); + + +// ---------------------------------------------------------------------------- +// MpxPluginDataParser() +// ---------------------------------------------------------------------------- +// +MpxPluginDataParser::MpxPluginDataParser() +: +dataPtr( NULL ) +{ + // No implementation required +} + +// ---------------------------------------------------------------------------- +// ~MpxPluginDataParser() +// ---------------------------------------------------------------------------- +// +MpxPluginDataParser::~MpxPluginDataParser() +{ + if( NULL != dataPtr ){ + delete dataPtr; + } +} + +// ---------------------------------------------------------------------------- +// data() +// ---------------------------------------------------------------------------- +// +const MpxPluginData* MpxPluginDataParser::data() const +{ + return dataPtr; +} + +// ---------------------------------------------------------------------------- +// takeData() +// ---------------------------------------------------------------------------- +// +MpxPluginData* MpxPluginDataParser::takeData() +{ + MpxPluginData* retVal( dataPtr ); + if( NULL != dataPtr ){ + dataPtr = NULL; + } + return retVal; +} + +// ---------------------------------------------------------------------------- +// parse( const QString& data ) +// ---------------------------------------------------------------------------- +// +void MpxPluginDataParser::parse( const QString& data ) +{ + const QString PluginIdTag( "p" ); + const QString PluginTypeTag( "t" ); + const QString PluginPriorityTag( "i" ); + const QString PluginSupportedTag( "f" ); + + QStringRef tagName, + tagContent; + int parserOffset( 0 ); + if( NULL != dataPtr ){ + delete dataPtr; + dataPtr = NULL; + } + int integerNodeRepresentation( 0 ); + while( findNextNode( data, parserOffset, tagName, tagContent ) ){ + + if( NULL == dataPtr ){ + dataPtr = new MpxPluginData(); + } + if( PluginIdTag == tagName ){ + if( parseInt( integerNodeRepresentation, tagContent.toString() ) ) + dataPtr->setId( integerNodeRepresentation ); + }else if( PluginTypeTag == tagName ){ + if( parseInt( integerNodeRepresentation, tagContent.toString() ) ) { + dataPtr->setType( integerNodeRepresentation ); + } + }else if( PluginPriorityTag == tagName ){ + dataPtr->setPriority( parsePriority( tagContent ) ); + }else if( PluginSupportedTag == tagName ){ + parseSupportedId( tagContent.toString() ); + } + } +} + +// ---------------------------------------------------------------------------- +// findNextNode( const QString& src, int& offset, QStringRef& tagName, QStringRef& tagContent ) +// ---------------------------------------------------------------------------- +// +bool MpxPluginDataParser::findNextNode( const QString& src, int& offset, QStringRef& tagName, QStringRef& tagContent ) const +{ + const QChar endOfTag( '>' ); + const QString beginOfStopTag( "= value.length() ){ + break; + } + to = value.indexOf( coma, from ); + if( to < from ){ + to = value.length(); + } + if( parseInt( tagValue, value.mid( from, to - from ) ) ){ + dataPtr->addSupportedId( tagValue ); + } + from = ( to + 1 ); + }while( true ); +} + +// ---------------------------------------------------------------------------- +// parseSupportedId( const QString& value ) +// ---------------------------------------------------------------------------- +// +MpxPluginData::TMPXViewPluginPriorities parsePriority( const QStringRef& src ) +{ + + const QString MPXViewPluginPriorityLowestTag( "EMPXViewPluginPriorityLowest" ); + const QString MPXViewPluginPriorityLowTag( "EMPXViewPluginPriorityLow" ); + const QString MPXViewPluginPriorityNormalTag( "EMPXViewPluginPriorityNormal" ); + const QString MPXViewPluginPriorityHighTag( "EMPXViewPluginPriorityHigh" ); + const QString MPXViewPluginPriorityHighestTag( "EMPXViewPluginPriorityHighest" ); + + MpxPluginData::TMPXViewPluginPriorities + retVal( MpxPluginData::EMPXViewPluginPriorityLowest ); + if( MPXViewPluginPriorityLowTag == src ){ + retVal = MpxPluginData::EMPXViewPluginPriorityLow; + }else if( MPXViewPluginPriorityNormalTag == src ){ + retVal = MpxPluginData::EMPXViewPluginPriorityNormal; + }else if( MPXViewPluginPriorityHighTag == src ){ + retVal = MpxPluginData::EMPXViewPluginPriorityHigh; + }else if( MPXViewPluginPriorityHighestTag == src ){ + retVal = MpxPluginData::EMPXViewPluginPriorityHighest; + } + return retVal; +} + + diff -r d45095c2f4f3 -r b1fb57be53fe mpx/mpxviewframeworkqt/src/mpxviewframework.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mpx/mpxviewframeworkqt/src/mpxviewframework.cpp Fri Mar 19 09:38:24 2010 +0200 @@ -0,0 +1,45 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#include +#include + +#include +#include +#include + +MpxViewFramework::MpxViewFramework(QWidget *parent, Hb::WindowFlags windowFlags) +: +HbMainWindow(parent, windowFlags) +{ +} + +MpxViewFramework::~MpxViewFramework() +{ +} + +MpxViewPlugin *MpxViewFramework::resolvePlugin(const QList& requestedPlugins) +{ + MpxViewPlugin *viewPlugin = 0; + MpxViewPluginResolver *viewResolver = new MpxViewPluginResolver(requestedPlugins); + if (viewResolver!=0) { + viewPlugin = viewResolver->resolvePlugin(); + delete viewResolver; + } + return viewPlugin; +} + diff -r d45095c2f4f3 -r b1fb57be53fe mpx/mpxviewframeworkqt/src/mpxviewpluginresolver.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mpx/mpxviewframeworkqt/src/mpxviewpluginresolver.cpp Fri Mar 19 09:38:24 2010 +0200 @@ -0,0 +1,47 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#include "mpxviewpluginresolver.h" // MpxViewPluginResolver +#include "mpxviewpluginresolver_p.h" // MpxViewPluginResolverPrivate + +// ----------------------------------------------------------------------------- +// MpxViewPluginResolver() +// ----------------------------------------------------------------------------- +// +MpxViewPluginResolver::MpxViewPluginResolver( const QList& requestedPlugins ) +: +impl ( new MpxViewPluginResolverPrivate( requestedPlugins ) ) +{} + +// ----------------------------------------------------------------------------- +// ~MpxViewPluginResolver() +// ----------------------------------------------------------------------------- +// +MpxViewPluginResolver::~MpxViewPluginResolver() +{ + if( impl ) { + delete impl; + } +} +// ----------------------------------------------------------------------------- +// resolvePlugin() +// ----------------------------------------------------------------------------- +// +MpxViewPlugin* MpxViewPluginResolver::resolvePlugin() +{ + return impl ? impl->resolvePlugin() : 0; +} diff -r d45095c2f4f3 -r b1fb57be53fe mpx/mpxviewframeworkqt/src/mpxviewpluginresolver_p.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mpx/mpxviewframeworkqt/src/mpxviewpluginresolver_p.cpp Fri Mar 19 09:38:24 2010 +0200 @@ -0,0 +1,188 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#include "mpxviewpluginresolver_p.h" // MpxViewPluginResolverPrivate +#include "mpxplugindata.h" +#include "mpxplugindataparser.h" + +#include +#include + +const char gRequestedPluginInterfaceName [] = "org.nokia.mmdt.MpxViewPlugin/1.0"; + +const int gNoneScore( 0 ); +const int gSupportedScore( 5 ); +const int gImplementationScore( 100 ); +const int gTypeScore( 1 ); + +// ---------------------------------------------------------------------------- +// score +// ---------------------------------------------------------------------------- +// +static int score( int , const MpxPluginData& ); + +// ----------------------------------------------------------------------------- +//MpxViewPluginResolverPrivate +// ----------------------------------------------------------------------------- +// +MpxViewPluginResolverPrivate::MpxViewPluginResolverPrivate( + const QList& request ) +: +requestedPlugins( request ) +{ + //No implementation needed +} + +// ----------------------------------------------------------------------------- +// ~MpxViewPluginResolverPrivate +// ----------------------------------------------------------------------------- +// +MpxViewPluginResolverPrivate::~MpxViewPluginResolverPrivate() +{ + //No implementation needed +} + +// ----------------------------------------------------------------------------- +// resolvePlugin() +// ----------------------------------------------------------------------------- +// +MpxViewPlugin* MpxViewPluginResolverPrivate::resolvePlugin() +{ + MpxPluginViewInterface* retVal = 0; + if( 0 < requestedPlugins.count() ){ + XQPluginLoader loader; + QList< XQPluginInfo > impls; + if (loader.listImplementations(gRequestedPluginInterfaceName, impls)) { + retVal = resolveAndLoadPlugins( impls ); + } + } + return (retVal!=0) ? retVal->viewPlugin() : 0; +} + +// ---------------------------------------------------------------------------- +// resolveAndLoadPlugins( const QList< XQPluginInfo >& impls ); +// ---------------------------------------------------------------------------- +// +MpxPluginViewInterface* MpxViewPluginResolverPrivate::resolveAndLoadPlugins( + const QList< XQPluginInfo >& impls ) +{ + MpxPluginViewInterface* retVal = 0; + + //parse plugin info data + QHash parsedInfo; + QList< XQPluginInfo >::const_iterator iter( impls.begin() ); + MpxPluginDataParser parser; + for( ; iter != impls.end(); ++iter ){ + if( 0 < ( *iter ).opaqueData().length() ){ + parser.parse( ( *iter ).opaqueData() ); + if( parser.data() ){ + parsedInfo.insert( &( *iter ), parser.takeData() ); + } + } + } + + //look for optimal plugin + QList uids( requestedPlugins ); + QList::iterator currentUidIter, + optimalUidIter; + QHash::iterator + currentInfoIter, + optimalInfoIter; + int currentPluginScore( 0 ), + optimalPluginScore( 0 ); + + do{ + //initialize iterators with invalid objects + optimalInfoIter = parsedInfo.end(); + + for( currentUidIter = uids.begin(); + uids.end() != currentUidIter; + ++currentUidIter ) + { + for( currentInfoIter = parsedInfo.begin(); + parsedInfo.end() != currentInfoIter; + ++currentInfoIter ) + { + currentPluginScore = score( (*currentUidIter ), + (*(*currentInfoIter) ) ); + if( gNoneScore < currentPluginScore ){ + if( parsedInfo.end() == optimalInfoIter ){ + //first plugin with no zero score. set as optimal + optimalPluginScore = currentPluginScore; + optimalInfoIter = currentInfoIter; + optimalUidIter = currentUidIter; + } + if( optimalPluginScore < currentPluginScore || + ( ( currentPluginScore == optimalPluginScore ) && + ( ( *currentInfoIter )->priority() > ( *optimalInfoIter )->priority() ) ) ) + { + //current plugin fits better then "optimal" one + optimalPluginScore = currentPluginScore; + optimalInfoIter = currentInfoIter; + optimalUidIter = currentUidIter; + } + } + } + } + if( parsedInfo.end() == optimalInfoIter ){ + //plugin was not found + break; + } + XQPluginLoader loader( optimalInfoIter.key()->uid() ); + if( loader.load() ) { + retVal = qobject_cast(loader.instance()); + } + //remove already loaded plugin description + delete ( *optimalInfoIter ); + parsedInfo.erase( optimalInfoIter ); + uids.erase( optimalUidIter ); + + }while( NULL == retVal ); + uids.clear(); + + //clear parsed data structures + for( currentInfoIter = parsedInfo.begin(); + parsedInfo.end() != currentInfoIter; + currentInfoIter = parsedInfo.erase( currentInfoIter ) ){ + delete ( *currentInfoIter ); + } + return retVal; +} +// ---------------------------------------------------------------------------- +// score +// ---------------------------------------------------------------------------- +// +int score( int uid, const MpxPluginData& pluginData ) +{ + int retVal( gNoneScore ); + QList< int >::const_iterator iter( pluginData.supportedId().begin() ); + for( ; iter != pluginData.supportedId().end(); ++iter ){ + if( ( *iter ) == uid ){ + retVal += gSupportedScore; + } + } + if( pluginData.id() == uid ){ + retVal += gImplementationScore; + } + if( pluginData.type() == uid ){ + retVal += gTypeScore; + } + + qDebug(QString("Score 0x%1: %2").arg(uid, 0, 16).arg(retVal).toLatin1().data()); + + return retVal; +} diff -r d45095c2f4f3 -r b1fb57be53fe mpx/playbackframework/playbackengine/inc/mpxplaybackengine.h --- a/mpx/playbackframework/playbackengine/inc/mpxplaybackengine.h Tue Feb 02 00:27:58 2010 +0200 +++ b/mpx/playbackframework/playbackengine/inc/mpxplaybackengine.h Fri Mar 19 09:38:24 2010 +0200 @@ -924,6 +924,34 @@ */ void Init64L(RFile64* aFile, TInt aAccessPoint=0); #endif // SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API + /** + * Callback for sync message timer + * + * @since 9.2 + * @param this + * @return systme error + */ + static TInt SyncMsgTimerCallback(TAny* aPtr); + /** + * Cancel the sync message timer + * + * @since 9.2 + */ + void CancelSyncMsgTimer(); + /** + * Stop the wait loop + * + * @since 9.2 + */ + void StopWaitLoop(); + /** + * Handle a synchronous message + * + * @since 9.2 + * @param aMsg, message + * @return system error + */ + TInt HandlePlaybackSyncMessage (const CMPXMessage& aMsg); private: friend class TCallbackReflector; @@ -992,6 +1020,8 @@ TBool iInitVolume; // Initialize volume on first creation // the index which be firstly saved when request media TInt iFirstRequestMediaIndex; + CPeriodic* iSyncMsgTimer; //timer for sync message + CActiveSchedulerWait* iSyncMsgWait; // wait loop use to sync message #if defined(__HIGH_RESOLUTION_VOLUME) // flag to indicate whether the volume setting has been rounded up last // used to adjust volume up button setting diff -r d45095c2f4f3 -r b1fb57be53fe mpx/playbackframework/playbackengine/src/mpxaccessoryobserver.cpp --- a/mpx/playbackframework/playbackengine/src/mpxaccessoryobserver.cpp Tue Feb 02 00:27:58 2010 +0200 +++ b/mpx/playbackframework/playbackengine/src/mpxaccessoryobserver.cpp Fri Mar 19 09:38:24 2010 +0200 @@ -211,9 +211,6 @@ case EAccModeHeadphones: mode = EPbAccessoryHeadphones; break; - case EAccModeHDMI: - mode = EPbAccessoryHDMI; - break; default: break; } diff -r d45095c2f4f3 -r b1fb57be53fe mpx/playbackframework/playbackengine/src/mpxplaybackengine.cpp --- a/mpx/playbackframework/playbackengine/src/mpxplaybackengine.cpp Tue Feb 02 00:27:58 2010 +0200 +++ b/mpx/playbackframework/playbackengine/src/mpxplaybackengine.cpp Fri Mar 19 09:38:24 2010 +0200 @@ -47,6 +47,7 @@ const TInt KMPXSmallVolumeIncrement = 5; const TInt KMPXLargeVolumeIncrement = 10; const TInt KPercentMultiplier = 100; +const TInt KMPXSyncMsgTimer = 3000000; // 3 seconds _LIT(KWmaExtension, ".wma"); _LIT(KRaExtension, ".ra"); @@ -186,6 +187,8 @@ iVolRoundedUp = EFalse; #endif iPluginHandler->Plugin()->PropertyL( EPbPropertyVolume ); + iSyncMsgTimer = CPeriodic::NewL( CActive::EPriorityIdle ); + iSyncMsgWait = new (ELeave) CActiveSchedulerWait; } // ---------------------------------------------------------------------------- @@ -232,6 +235,12 @@ #ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API iFile64.Close(); #endif // SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API + delete iSyncMsgTimer; + if (iSyncMsgWait && iSyncMsgWait->IsStarted() ) + { + iSyncMsgWait->AsyncStop(); + } + delete iSyncMsgWait; } // ---------------------------------------------------------------------------- @@ -2175,6 +2184,11 @@ iAutoResumeHandler->SetAutoResume( aData ); break; } + case EPbCmdSyncMsgComplete: + { + StopWaitLoop(); + break; + } default: ASSERT(0); } @@ -3859,4 +3873,71 @@ } #endif // SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API +// ---------------------------------------------------------------------------- +// Cancel timer. +// ---------------------------------------------------------------------------- +void CMPXPlaybackEngine::CancelSyncMsgTimer() + { + MPX_FUNC("CMPXPlaybackEngine::CancelSyncMsgTimer()"); + // Cancel timer. + if ( iSyncMsgTimer && iSyncMsgTimer->IsActive() ) + { + MPX_DEBUG1("CMPXPlaybackEngine::CancelSyncMsgTimer(): Timer active, cancelling"); + iSyncMsgTimer->Cancel(); + } + } +// ---------------------------------------------------------------------------- +// Callback for timer. +// ---------------------------------------------------------------------------- +TInt CMPXPlaybackEngine::SyncMsgTimerCallback(TAny* aPtr) + { + MPX_FUNC("CMPXPlaybackEngine::SyncMsgTimerCallback()"); + CMPXPlaybackEngine* ptr = + static_cast(aPtr); + ptr->StopWaitLoop(); + return KErrNone; + } +// ---------------------------------------------------------------------------- +// Handle a synchronous message +// ---------------------------------------------------------------------------- +// +TInt CMPXPlaybackEngine::HandlePlaybackSyncMessage (const CMPXMessage& aMsg) + { + MPX_FUNC("CMPXPlaybackEngine::HandlePlaybackSyncMessage()"); + TInt err = iClientList->SendSyncMsg(&aMsg); + if (err != KErrNone) + { + return err; + } + // Cancel timer. + CancelSyncMsgTimer(); + // Start timer in case there is no callback from primary client. + iSyncMsgTimer->Start( + KMPXSyncMsgTimer, + KMPXSyncMsgTimer, + TCallBack(SyncMsgTimerCallback, this )); + + // Start wait loop until we get a callback from primary client + if ( !iSyncMsgWait->IsStarted() ) + { + iSyncMsgWait->Start(); + } + return KErrNone; + } +// ---------------------------------------------------------------------------- +// Stop the wait loop. +// ---------------------------------------------------------------------------- +void CMPXPlaybackEngine::StopWaitLoop() + { + MPX_FUNC("CMPXPlaybackEngine::StopWaitLoop()"); + // Cancel timer + CancelSyncMsgTimer(); + + // Stop wait loop to unblock. + if ( iSyncMsgWait->IsStarted() ) + { + MPX_DEBUG1("CMPXPlaybackEngine::StopWaitLoop(): Stopping the wait loop."); + iSyncMsgWait->AsyncStop(); + } + } // End of file diff -r d45095c2f4f3 -r b1fb57be53fe mpx/playbackframework/playbackserver/src/mpxplaybackserversession.cpp --- a/mpx/playbackframework/playbackserver/src/mpxplaybackserversession.cpp Tue Feb 02 00:27:58 2010 +0200 +++ b/mpx/playbackframework/playbackserver/src/mpxplaybackserversession.cpp Fri Mar 19 09:38:24 2010 +0200 @@ -515,6 +515,11 @@ break; } #endif // SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API + case EPbsSetPrimaryClient: + { + aMsgHandleResult = iPlayer->ClientList()->SetPrimaryClient(*iMessageQueue); + break; + } default: { PanicClient(aMessage,KErrNotSupported); diff -r d45095c2f4f3 -r b1fb57be53fe mpx/playbackframework/playbackutility/inc/mpxplaybackutilityimpl.h --- a/mpx/playbackframework/playbackutility/inc/mpxplaybackutilityimpl.h Tue Feb 02 00:27:58 2010 +0200 +++ b/mpx/playbackframework/playbackutility/inc/mpxplaybackutilityimpl.h Fri Mar 19 09:38:24 2010 +0200 @@ -583,6 +583,13 @@ virtual void InitStreaming64L(RFile64& aShareableFile, const TInt aAccessPoint); #endif // SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API + /** + * Sets the primary client + * + * @since S60 9.2 + * @return system error + */ + TInt SetPrimaryClientL(); private: diff -r d45095c2f4f3 -r b1fb57be53fe mpx/playbackframework/playbackutility/src/mpxplaybackutilityimpl.cpp --- a/mpx/playbackframework/playbackutility/src/mpxplaybackutilityimpl.cpp Tue Feb 02 00:27:58 2010 +0200 +++ b/mpx/playbackframework/playbackutility/src/mpxplaybackutilityimpl.cpp Fri Mar 19 09:38:24 2010 +0200 @@ -367,11 +367,8 @@ EPbCmdPlayPause == cmdType || EPbCmdStop == cmdType) { - if( !aCmd.IsSupported( KMPXCommandPlaybackGeneralClientPid ) ) - { - aCmd.SetTObjectValueL ( - KMPXCommandPlaybackGeneralClientPid, RProcess().Id()); // current process id - } + aCmd.SetTObjectValueL(KMPXCommandPlaybackGeneralClientPid, + RProcess().Id()); // current process id } } @@ -1337,4 +1334,13 @@ #endif // SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API +// ---------------------------------------------------------------------------- +// Set primary client +// ---------------------------------------------------------------------------- +// +TInt CMPXPlaybackUtility::SetPrimaryClientL() + { + MPX_FUNC("CMPXPlaybackUtility::SetPrimaryClientL"); + return iPbs.SendReceiveL(EPbsSetPrimaryClient); + } // End of file diff -r d45095c2f4f3 -r b1fb57be53fe sysdef_1_5_1.dtd --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sysdef_1_5_1.dtd Fri Mar 19 09:38:24 2010 +0200 @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +