--- a/mpxmusicplayer/app/inc/mpxappui.h Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxmusicplayer/app/inc/mpxappui.h Tue Apr 27 16:34:37 2010 +0300
@@ -307,7 +307,7 @@
*
* @param aParameter AIW parameter passed in by other applications
*/
- TBool IsBrowserClosed(const TDesC8& aParameter);
+ TBool IsBrowserClosedL(const TDesC8& aParameter);
/**
* Brings the browser to the foreground.
@@ -658,17 +658,17 @@
*
* @param aVolume volume value.
*/
- void SetVolume( const TInt aVolume );
+ void SetVolumeL( const TInt aVolume );
/**
* Mutes the playback volume.
*/
- void MuteVolume();
+ void MuteVolumeL();
/**
* Unmutes the playback volume.
*/
- void UnMuteVolume();
+ void UnMuteVolumeL();
/**
* Translates Playback commands to MPX commands
@@ -681,7 +681,7 @@
*
* @param music player need memory
*/
- void CheckAvailableMemory( TInt aNeedMemory );
+ void CheckAvailableMemoryL( TInt aNeedMemory );
#ifdef FF_OOM_MONITOR2_COMPONENT
/**
--- a/mpxmusicplayer/app/src/mpxPDcommandhandler.cpp Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxmusicplayer/app/src/mpxPDcommandhandler.cpp Tue Apr 27 16:34:37 2010 +0300
@@ -102,7 +102,7 @@
TRAP_IGNORE( iPdPlaybackUtility->RemoveObserverL( *this ) );
TRAP_IGNORE( iPdPlaybackUtility->CommandL( EPbCmdStop ) );
TRAP_IGNORE( iPdPlaybackUtility->CommandL( EPbCmdClose ) );
- iPdPlaybackUtility->PlayerManager().ClearSelectPlayersL();
+ TRAP_IGNORE( iPdPlaybackUtility->PlayerManager().ClearSelectPlayersL() );
iPdPlaybackUtility->Close();
}
if ( iViewUtility )
--- a/mpxmusicplayer/app/src/mpxappui.cpp Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxmusicplayer/app/src/mpxappui.cpp Tue Apr 27 16:34:37 2010 +0300
@@ -259,7 +259,7 @@
#ifdef FF_OOM_MONITOR2_COMPONENT
CheckAvailableMemoryByOomL( KLowestMemoryNeeded );
#else
- CheckAvailableMemory( KLowestMemoryNeeded );
+ CheckAvailableMemoryL( KLowestMemoryNeeded );
#endif //FF_OOM_MONITOR2_COMPONENT
if ( !IsEmbedded() )
@@ -383,7 +383,7 @@
{
MPX_DEBUG1( "-->CMPXAppUi::~CMPXAppUi()" );
#ifdef FF_OOM_MONITOR2_COMPONENT
- SetMpxOomPriorityL( ROomMonitorSession::EOomPriorityNormal );
+ TRAP_IGNORE( SetMpxOomPriorityL( ROomMonitorSession::EOomPriorityNormal ) );
#endif //FF_OOM_MONITOR2_COMPONENT
if ( !IsEmbedded() )
@@ -749,6 +749,7 @@
{
case EPbCmdSetVolume:
{
+ TRAP_IGNORE(
TMPXPlaybackState playerState( EPbStateNotInitialised );
playerState = iPlaybackUtility->StateL();
if ( !MPXUser::IsCallOngoing( KMPXCallTypeGenericVoice ) ||
@@ -769,16 +770,18 @@
{
if ( aData != iCurrentVolume )
{
- SetVolume( aData );
+ SetVolumeL( aData );
}
// popup volume control even if volume didn't change
HandlePopupL( EPbCmdSetVolume );
}
}
+ );
break;
}
case EPbCmdMuteVolume:
{
+ TRAP_IGNORE(
TMPXPlaybackState playerState( EPbStateNotInitialised );
playerState = iPlaybackUtility->StateL();
if ( !MPXUser::IsCallOngoing( KMPXCallTypeGenericVoice ) ||
@@ -796,14 +799,16 @@
// or if we're actively playing during call
if ( IsForeground() || EPbStatePlaying == playerState || EPbStatePlaying == pdPlayerState )
{
- MuteVolume();
+ MuteVolumeL();
HandlePopupL( EPbCmdMuteVolume );
}
}
+ );
break;
}
case EPbCmdUnMuteVolume:
{
+ TRAP_IGNORE(
TMPXPlaybackState playerState( EPbStateNotInitialised );
playerState = iPlaybackUtility->StateL();
if ( !MPXUser::IsCallOngoing( KMPXCallTypeGenericVoice ) ||
@@ -821,10 +826,11 @@
}
if ( IsForeground() || EPbStatePlaying == playerState || EPbStatePlaying == pdPlayerState )
{
- UnMuteVolume();
+ UnMuteVolumeL();
HandlePopupL( EPbCmdUnMuteVolume );
}
}
+ );
break;
}
default:
@@ -838,15 +844,15 @@
// music is foreground app and not displaying
// dialogs or the options menu
if ( iView )
- {
- MPX_DEBUG2( "CMPXAppUi::HandleMediaKeyCommand sending command %d to view", MPXCmdForPbCmd(aCommand) );
- iView->HandleCommandL( MPXCmdForPbCmd(aCommand) );
+ {
+ MPX_TRAPD( err, iView->HandleCommandL( MPXCmdForPbCmd(aCommand) ) );
+ MPX_DEBUG3( "CMPXAppUi::HandleMediaKeyCommand sending command %d to view err%d", MPXCmdForPbCmd(aCommand), err );
}
}
else
{
TMPXPlaybackState playerState( EPbStateNotInitialised );
- playerState = iPlaybackUtility->StateL();
+ MPX_TRAPD( err, playerState = iPlaybackUtility->StateL() );
if ( foregroundApp && IsDisplayingDialog() )
{
// displaying dialog in the foreground
@@ -859,13 +865,13 @@
{
// In playing/paused state, all media keys are active.
// Now playing view is not bring to foreground.
- // Seeking forward/backwards is also "playing"
- MPX_DEBUG2( "CMPXAppUi::HandleMediaKeyCommand Dialog displaying, sending command %d to DoHandleMediaKeyCommandL", aCommand );
- DoHandleMediaKeyCommandL( aCommand );
+ // Seeking forward/backwards is also "playing"
+ MPX_TRAP( err, DoHandleMediaKeyCommandL( aCommand ) );
+ MPX_DEBUG3( "CMPXAppUi::HandleMediaKeyCommand Dialog displaying, sending command %d to DoHandleMediaKeyCommandL err%d", aCommand, err );
}
else
{
- MPX_DEBUG2( "CMPXAppUi::HandleMediaKeyCommand Dialog displaying, inactive state, command %d ignored", aCommand );
+ MPX_DEBUG3( "CMPXAppUi::HandleMediaKeyCommand Dialog displaying, inactive state, command %d, err%d ignored", aCommand , err );
}
}
else
@@ -876,21 +882,21 @@
EPbStateSeekingForward == playerState ||
EPbStateSeekingBackward == playerState )
{
- MPX_DEBUG2( "CMPXAppUi::HandleMediaKeyCommand Menu displaying/not foreground, sending command %d to DoHandleMediaKeyCommandL", aCommand );
- DoHandleMediaKeyCommandL( aCommand );
+ MPX_TRAP( err, DoHandleMediaKeyCommandL( aCommand ) );
+ MPX_DEBUG3( "CMPXAppUi::HandleMediaKeyCommand Menu displaying/not foreground, sending command %d to DoHandleMediaKeyCommandL err%d", aCommand, err );
}
else if ( ( aCommand == EPbCmdPlay || aCommand == EPbCmdPlayPause ) && iView )
{
if ( !foregroundApp )
- {
- MPX_DEBUG2( "CMPXAppUi::HandleMediaKeyCommand Menu displaying/not foreground, active idle foreground, sending command %d to DoHandleMediaKeyCommandL", aCommand );
+ {
// not foreground, play without loading playback view
- DoHandleMediaKeyCommandL( aCommand );
+ MPX_TRAP( err, DoHandleMediaKeyCommandL( aCommand ) );
+ MPX_DEBUG3( "CMPXAppUi::HandleMediaKeyCommand Menu displaying/not foreground, active idle foreground, sending command %d to DoHandleMediaKeyCommandL err%d", aCommand, err );
}
else
- {
- MPX_DEBUG2( "CMPXAppUi::HandleMediaKeyCommand Menu displaying/not foreground, sending command %d to view", aCommand );
- iView->HandleCommandL( MPXCmdForPbCmd(aCommand) );
+ {
+ MPX_TRAP( err, iView->HandleCommandL( MPXCmdForPbCmd(aCommand) ) );
+ MPX_DEBUG3( "CMPXAppUi::HandleMediaKeyCommand Menu displaying/not foreground, sending command %d to view err%d", aCommand, err );
}
}
else if ( aCommand == EPbCmdPlay || aCommand == EPbCmdPlayPause )
@@ -2012,32 +2018,28 @@
}
else if ( op == EMcMsgDiskRemoved )
{
- if ( !IsEmbedded() )
+ TBool usbDiskRemovalEvent( EFalse );
+ if ( (op == EMcMsgDiskRemoved) && iIsUsbOnGoing )
{
- TBool usbDiskRemovalEvent(EFalse);
- if ( (op == EMcMsgDiskRemoved) && iIsUsbOnGoing )
- {
- usbDiskRemovalEvent = ETrue;
- }
- else
- {
- MPX_DEBUG1( "CMPXAppUi::HandleBroadcastMessageL. MMC ejected and the application needs to close." );
- RunAppShutter();
- return;
- }
+ usbDiskRemovalEvent = ETrue;
+ }
+ else
+ {
+ MPX_DEBUG1( "CMPXAppUi::HandleBroadcastMessageL. MMC ejected and the application needs to close." );
+ RunAppShutter();
+ return;
+ }
CMPXCollectionPath* cPath = iCollectionUtility->Collection().PathL ( );
CleanupStack::PushL ( cPath );
if ( cPath->Levels ( )> 1 && !iFormattingOnGoing && !usbDiskRemovalEvent &&
iCurrentViewType.iUid != KMPXPluginTypePlaybackUid )
{
-
- cPath->Back ( );
- iCollectionUtility->Collection().OpenL ( *cPath );
-
- }
- CleanupStack::PopAndDestroy ( cPath );
+ cPath->Back();
+ iCollectionUtility->Collection().OpenL( *cPath );
+
}
+ CleanupStack::PopAndDestroy( cPath );
}
// Re-open the collection view after a refresh
// and after album art or metadata dialog or add songs editor dialog closes
@@ -3939,7 +3941,7 @@
ASSERT(!IsEmbedded());////browser should not send messages to music player if it is not RootApp.
if ( aMessageParameters.Length() )
{
- if ( IsBrowserClosed(aMessageParameters) )
+ if ( IsBrowserClosedL(aMessageParameters) )
{
if ( iAppStartedByBrowser )
{
@@ -4016,7 +4018,7 @@
// Convert param to 8-bit.
HBufC8* param8 = HBufC8::NewLC( param.Length() );
param8->Des().Copy( param );
- if ( IsBrowserClosed(*param8) )
+ if ( IsBrowserClosedL(*param8) )
{
Exit();
}
@@ -4284,10 +4286,10 @@
}
#ifdef RD_BROWSER_PROGRESSIVE_DOWNLOAD
// -----------------------------------------------------------------------------
-// CMPXAppUi::IsBrowserClosed
+// CMPXAppUi::IsBrowserClosedL
// -----------------------------------------------------------------------------
//
-TBool CMPXAppUi::IsBrowserClosed(
+TBool CMPXAppUi::IsBrowserClosedL(
const TDesC8& aParams )
{
TBool ret(EFalse);
@@ -4353,10 +4355,10 @@
}
// -----------------------------------------------------------------------------
-// CMPXAppUi::SetVolume
+// CMPXAppUi::SetVolumeL
// -----------------------------------------------------------------------------
//
-void CMPXAppUi::SetVolume( const TInt aVolume )
+void CMPXAppUi::SetVolumeL( const TInt aVolume )
{
CMPXCommand* cmd( CMPXCommand::NewL() );
CleanupStack::PushL( cmd );
@@ -4375,10 +4377,10 @@
}
// -----------------------------------------------------------------------------
-// CMPXAppUi::MuteVolume
+// CMPXAppUi::MuteVolumeL
// -----------------------------------------------------------------------------
//
-void CMPXAppUi::MuteVolume()
+void CMPXAppUi::MuteVolumeL()
{
CMPXCommand* cmd( CMPXCommand::NewL() );
CleanupStack::PushL( cmd );
@@ -4396,10 +4398,10 @@
}
// -----------------------------------------------------------------------------
-// CMPXAppUi::UnMuteVolume
+// CMPXAppUi::UnMuteVolumeL
// -----------------------------------------------------------------------------
//
-void CMPXAppUi::UnMuteVolume()
+void CMPXAppUi::UnMuteVolumeL()
{
CMPXCommand* cmd( CMPXCommand::NewL() );
CleanupStack::PushL( cmd );
@@ -4482,10 +4484,10 @@
}
// -----------------------------------------------------------------------------
-// CMPXAppUi::CheckAvailableMemory
+// CMPXAppUi::CheckAvailableMemoryL
// -----------------------------------------------------------------------------
//
-void CMPXAppUi::CheckAvailableMemory( TInt aNeedMemory )
+void CMPXAppUi::CheckAvailableMemoryL( TInt aNeedMemory )
{
TMemoryInfoV1Buf info;
UserHal::MemoryInfo(info);
--- a/mpxmusicplayer/commonui/inc/mpxfilenamequerydlg.h Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxmusicplayer/commonui/inc/mpxfilenamequerydlg.h Tue Apr 27 16:34:37 2010 +0300
@@ -60,6 +60,11 @@
* @see CAknTextQueryDialog
*/
TBool OkToExitL( TInt aButtonId );
+
+ /**
+ * @see CAknTextQueryDialog
+ */
+ TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType );
private:
/**
--- a/mpxmusicplayer/commonui/src/mpxcommonuihelper.cpp Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxmusicplayer/commonui/src/mpxcommonuihelper.cpp Tue Apr 27 16:34:37 2010 +0300
@@ -1364,6 +1364,26 @@
usingGlobalNote = ETrue;
break;
}
+ case KMPXErrorExpiredRights:
+ {
+ // if cannot retrieve value from aMedia, use invalid_group error
+ if( !aMedia )
+ {
+ errorText = StringLoader::LoadLC( R_MPX_INVALID_GROUP_TEXT );
+ }
+ else
+ {
+ if ( aMedia->IsSupported( KMPXMediaGeneralTitle ) )
+ {
+ const TDesC& trackTitle( aMedia->ValueText(
+ KMPXMediaGeneralTitle ) );
+ errorText = StringLoader::LoadLC(
+ R_MPX_DRM_EXPIRED_PLAYBACK,
+ trackTitle );
+ }
+ }
+ break;
+ }
case KErrLocked:
errorText = StringLoader::LoadLC( R_MPX_CANNOT_PROCEED_WITH_OPERATION );
break;
--- a/mpxmusicplayer/commonui/src/mpxfilenamequerydlg.cpp Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxmusicplayer/commonui/src/mpxfilenamequerydlg.cpp Tue Apr 27 16:34:37 2010 +0300
@@ -228,6 +228,26 @@
}
// -----------------------------------------------------------------------------
+// CMPXFileNameQueryDlg::OfferKeyEventL
+//
+// -----------------------------------------------------------------------------
+//
+TKeyResponse CMPXFileNameQueryDlg::OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType )
+ {
+ TKeyResponse response = EKeyWasNotConsumed;
+ // consume 'enter' so it won't acknowledge the dialog
+ if ( aType == EEventKey && aKeyEvent.iCode == EKeyEnter )
+ {
+ response = EKeyWasConsumed;
+ }
+ else
+ {
+ response = CAknTextQueryDialog::OfferKeyEventL(aKeyEvent, aType);
+ }
+ return response;
+ }
+
+// -----------------------------------------------------------------------------
// CMPXFileNameQueryDlg::IsValidName
// -----------------------------------------------------------------------------
//
--- a/mpxmusicplayer/mediakeyhandler/src/mpxmediakeyhandlerimp.cpp Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxmusicplayer/mediakeyhandler/src/mpxmediakeyhandlerimp.cpp Tue Apr 27 16:34:37 2010 +0300
@@ -472,7 +472,7 @@
}
}
- if( iMuted && aValue > 0 ) // unmute
+ if( !iMuted && aValue > 0 ) // unmute
{
iMuted = EFalse;
iCurrentVol = aValue;
@@ -1107,15 +1107,18 @@
case ERemConCoreApiVolumeDown:
{
iTimer->Cancel();
-
- MMPXPlaybackUtility* pbUtil = MMPXPlaybackUtility::UtilityL( KPbModeActivePlayer );
- CleanupClosePushL(*pbUtil);
-
+ MMPXPlaybackUtility* pbUtil( NULL );
+ MPX_TRAPD( err, pbUtil = MMPXPlaybackUtility::UtilityL( KPbModeActivePlayer ));
+ if( err != KErrNone )
+ {
+ MPX_DEBUG2( "CMPXMediaKeyHandlerImp::MrccatoCommand ERemConCoreApiVolumeDown leave err%d", err );
+ break;
+ }
TMPXPlaybackState playerState( EPbStateNotInitialised );
- playerState = pbUtil->StateL();
-
- CleanupStack::PopAndDestroy(pbUtil);
-
+ TRAP_IGNORE( playerState = pbUtil->StateL());
+ pbUtil->Close();
+ pbUtil = NULL;
+
if( playerState == EPbStatePlaying || IsAppForeground() )
{
iIncreaseVol = (aOperationId == ERemConCoreApiVolumeUp ? ETrue: EFalse);
--- a/mpxplugins/serviceplugins/collectionplugins/inc/mpxdbmanager.h Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/serviceplugins/collectionplugins/inc/mpxdbmanager.h Tue Apr 27 16:34:37 2010 +0300
@@ -391,7 +391,7 @@
* @param aSize - On return, the total size of the databases on the RAM drive.
* @return TInt System error.
*/
- TInt GetTotalRamDatabasesSize(TInt& aSize);
+ TInt GetTotalRamDatabasesSizeL(TInt& aSize);
/**
* Remove dummy file
--- a/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbcommon/src/mpxdbmanager.cpp Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbcommon/src/mpxdbmanager.cpp Tue Apr 27 16:34:37 2010 +0300
@@ -777,11 +777,19 @@
{
if (iDatabaseHandles[i].iDrive == aDrive)
{
+ TBool inTransaction = InTransaction();
TInt transactionCount = iTransactionCount;
- if (iTransactionCount > 0)
+ iTransactionCount = 0;
+
+ if (inTransaction) //if the transaction is ongoing, try committing
{
- iTransactionCount = 0;
- DoCommitL();
+ //if transaction committing fails, try roll-back
+ TInt error = iDatabase.Exec( KCommitTransaction );
+ if ( error != KErrNone )
+ {
+ //The error is ignored since we can't do nothing about it
+ iDatabase.Exec( KRollbackTransaction );
+ }
}
#ifdef __RAMDISK_PERF_ENABLE
@@ -811,8 +819,9 @@
MPX_DEBUG2("CMPXDbManager::CloseDatabaseL found %d", aDrive);
CloseDatabaseAtIndexL( i );
}
-
- if (transactionCount > 0)
+
+ //Let MTP handle the transcation if there is any
+ if ( inTransaction )
{
DoBeginL();
iTransactionCount = transactionCount;
@@ -2806,7 +2815,7 @@
else
{
TInt size=0;
- TInt err = GetTotalRamDatabasesSize(size);
+ TInt err = GetTotalRamDatabasesSizeL(size);
if ( err || (size > iMaximumAllowedRAMDiskSpaceToCopy) )
{
// Databases using too much RAM space, copy back to normal drive and continue to harvest.
@@ -2965,7 +2974,7 @@
// CMPXDbManager::GetTotalRamDatabasesSize
// ---------------------------------------------------------------------------
//
-TInt CMPXDbManager::GetTotalRamDatabasesSize(TInt& aSize)
+TInt CMPXDbManager::GetTotalRamDatabasesSizeL(TInt& aSize)
{
MPX_FUNC("CMPXDbManager::GetTotalRamDatabasesSize");
TInt err = KErrNotSupported;
@@ -2993,21 +3002,21 @@
filename.Format(KSecurePath, User::Identity().iUid, temp);
CleanupStack::PopAndDestroy(temp);
dbFilename.Append(filename);
- MPX_DEBUG2("CMPXDbManager::GetTotalRamDatabasesSize - Database name = %S", &dbFilename);
+ MPX_DEBUG2("CMPXDbManager::GetTotalRamDatabasesSizeL - Database name = %S", &dbFilename);
TEntry entry;
err = iFs.Entry( dbFilename, entry );
if ( (err != KErrNone) && (err != KErrNotFound) )
{
break;
}
- MPX_DEBUG3("CMPXDbManager::GetTotalRamDatabasesSize - Size of Db %S = %d", &dbFilename, entry.iSize);
+ MPX_DEBUG3("CMPXDbManager::GetTotalRamDatabasesSizeL - Size of Db %S = %d", &dbFilename, entry.iSize);
// sum up size
size += entry.iSize;
}
aSize = size;
- MPX_DEBUG2("CMPXDbManager::GetTotalRamDatabasesSize - Total Size of Dbs = %d", size);
+ MPX_DEBUG2("CMPXDbManager::GetTotalRamDatabasesSizeL - Total Size of Dbs = %d", size);
#endif //__RAMDISK_PERF_ENABLE
- MPX_DEBUG2("CMPXDbManager::GetTotalRamDatabasesSize - Return err = %d", err);
+ MPX_DEBUG2("CMPXDbManager::GetTotalRamDatabasesSizeL - Return err = %d", err);
return err;
}
--- a/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/inc/mpxdbabstractalbum.h Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/inc/mpxdbabstractalbum.h Tue Apr 27 16:34:37 2010 +0300
@@ -50,7 +50,7 @@
* @return New CMPXDbCategory instance.
*/
static CMPXDbAbstractAlbum* NewL(CMPXDbManager& aDbManager,
- TMPXGeneralCategory aCategory);
+ TMPXGeneralCategory aCategory, RFs& aFs);
/**
* Two-phased constructor.
@@ -59,7 +59,7 @@
* @return New CMPXDbCategory instance on the cleanup stack.
*/
static CMPXDbAbstractAlbum* NewLC(CMPXDbManager& aDbManager,
- TMPXGeneralCategory aCategory);
+ TMPXGeneralCategory aCategory, RFs& aFs);
/**
* Destructor
@@ -84,9 +84,17 @@
* into consideration when generating the unique row id
* @return The unique id of the row added.
*/
- TUint32 AddItemL( const TDesC& aName, const TDesC& aAlbumArtist, const TDesC& aGenre, TInt aDriveId, TBool& aNewRecord,
- TBool aCaseSensitive = ETrue);
-
+ TUint32 AddItemL( const TDesC& aUri, const TDesC& aName, const TDesC& aAlbumArtist, TInt aDriveId, TBool& aNewRecord,
+ TBool aCaseSensitive = EFalse);
+
+ /**
+ * Add existing item to table with same entry fields values except new Uri.
+ * @param aOldId: existing item Id
+ * @param newUri: new Uri
+ * @return The unique id of the row added.
+ */
+ TUint32 AddUpdatedItemL(TUint32 aOldId, const TDesC& newUri);
+
/**
* Decrement the number of songs for the item. If the count gets to 0, remove
* the item.
@@ -103,13 +111,17 @@
*/
void DecrementSongsForCategoryL(TUint32 aId, TInt aDriveId,
CMPXMessageArray* aItemChangedMessages, TBool& aItemExist, TBool aMtpInUse);
-
+
/**
- * Remove a abstractalbum and return its URI
- * @param aAbstractAlbumId identifies the abstractalbum
- * @return HBufC containing the URI. Ownership is transferred.
+ * Remove a abstractalbum, remove entry from AbstractAlbum table,
+ * Thumbnail table, corresponding alb from file system
+ * @param aAbstractAlbumId ID of the abstractalbum to remove
+ * @param aItemChangedMessages a list of change events as a result of the
+ * abstractalbum removal
+ * @param aFileDeleted indicate if alb file already deleted from file system
*/
- HBufC* DeleteAbstractAlbumL(TUint32 aAbstractAlbumId, TInt aDriveId = 0);
+ void RemoveAbstractAlbumL(TUint32 aAbstractalbumId,
+ CMPXMessageArray& aItemChangedMessages, TBool aFileDeleted);
/**
* Update a category item.
@@ -120,6 +132,29 @@
* category was updated
*/
void UpdateItemL(TUint32 aId, const CMPXMedia& aMedia, TInt aDriveId, CMPXMessageArray* aItemChangedMessages);
+
+ /**
+ * Delete or Rename Thumbnail from TN DB by calling Thumbnail manager
+ * Rename Thumbnail if aNewPath is not NULL, otherwise Delete Thumbnail
+ * @param aOldPath: old Uri
+ * @param aNewPath: new Uri
+ * @param aPriority: priority pass to Thumbnail manager
+ */
+ void HandleTNL( const TDesC& aOldPath, const TDesC& aNewPath = KNullDesC, TInt aPriority =0 );
+
+ /**
+ * Get the uri field for a given ID.
+ * @param aId identifies the abstractalbum item
+ * @return uri that matches aId. Ownership is abandoned.
+ */
+ HBufC* GetUriL(TUint32 aId);
+
+ /**
+ * Get Ids of albstractalbum with no song associated.
+ * Rename Thumbnail if aNewPath is not NULL, otherwise Delete Thumbnail
+ * @param aItemsIds: array of Ids for abstractalbums which have no song associated.
+ */
+ void GetAllItemsWithNoSongL(RArray<TUint32>& aItemsIds);
private:
@@ -142,35 +177,37 @@
*/
void GenerateAbstractAlbumFieldsValuesL(const CMPXMedia& aMedia,
CDesCArray& aFields, CDesCArray& aValues);
-
+
+ /**
+ * Remove a abstractalbum from AbstractAlbum table
+ * @param aAbstractAlbumId identifies the abstractalbum
+ * @param aDriveId drive Id
+ */
+ void DeleteAbstractAlbumEntryL(TUint32 aAbstractAlbumId, TInt aDriveId = 0);
+
/**
* @see MMPXTable
*/
virtual void CreateTableL(RSqlDatabase& aDatabase, TBool aCorruptTable);
-
-
/**
* @see MMPXTable
*/
virtual TBool CheckTableL(RSqlDatabase& aDatabase);
-
-
-
+
/**
* C++ constructor.
* @param aDbManager database manager to use for database interactions
* @param aCategory identifies the category
*/
- CMPXDbAbstractAlbum(CMPXDbManager& aDbManager, TMPXGeneralCategory aCategory);
+ CMPXDbAbstractAlbum(CMPXDbManager& aDbManager, TMPXGeneralCategory aCategory, RFs& aFs);
/**
* Second phase constructor.
*/
void ConstructL();
-
-
+
/**
* MThumbnailManagerObserver
*/
@@ -180,7 +217,7 @@
* MThumbnailManagerObserver
*/
void ThumbnailReady(
- TInt aError,
+ TInt aError,
MThumbnailData& aThumbnail, TThumbnailRequestId aId );
public:
@@ -191,9 +228,9 @@
enum TAbstractAlbumColumns
{
EAbstractAlbumUniqueId = KMPXTableDefaultIndex,
+ EAbstractAlbumUri,
EAbstractAlbumName,
EAbstractAlbumArtist,
- EAbstractAlbumGenre,
EAbstractAlbumSongCount,
EAbstractAlbumVolumeId,
EAbstractAlbumFieldCount
@@ -201,6 +238,8 @@
private: // Data
CThumbnailManager* iTNManager;
+ TBool iRenameTN;
+ RFs& iFs;
};
#endif // MPXDBAbstractAlbum_H
--- a/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/inc/mpxdbhandler.h Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/inc/mpxdbhandler.h Tue Apr 27 16:34:37 2010 +0300
@@ -124,12 +124,13 @@
* @return playlist Id of the playlist
*/
TUint32 AddSongToPlaylistL(const CMPXMedia& aMedia);
-#ifdef ABSTRACTAUDIOALBUM_INCLUDED
+#ifdef ABSTRACTAUDIOALBUM_INCLUDED
/**
* Add an abstractalbum to the collection
* @param aMedia abstractalbum media object with URI of the abstractalbum.
+ * @param aMessageArray change event message to notify client of the changes
* @return abstractalbum Id of the abstractalbum created
- */
+ */
TUint32 AddAbstractAlbumL(const CMPXMedia& aMedia, CMPXMessageArray* aMessageArray=NULL);
#endif // ABSTRACTAUDIOALBUM_INCLUDED
/**
@@ -142,19 +143,30 @@
*/
CMPXDbActiveTask::TChangeVisibility UpdateSongL(const CMPXMedia& aMedia,
CMPXMessageArray& aItemChangedMessages);
-#ifdef ABSTRACTAUDIOALBUM_INCLUDED
+#ifdef ABSTRACTAUDIOALBUM_INCLUDED
/**
- * Update songs info for songs associated with abstractalbum
+ * Update abstractalbum info to AbstractAlbum table and Songs associated with abstractalbum
* in the music collection database
- * @param aMedia songDetails object which contains file path,
+ * @param aMedia media object
+ * @param aItemChangedMessages a list of change events as a result of the
+ * song update
+ * @return ETrue if UI visible change else EFalse
+ */
+ CMPXDbActiveTask::TChangeVisibility UpdateAbstractAlbumL(const CMPXMedia& aMedia,
+ CMPXMessageArray& aItemChangedMessages);
+
+ /**
+ * Update all songs which associate with AbstractAlbum to new AbstractAlbum info
+ * in the collection
+ * @param aMedia media object which contains file path,
* artist, composer, name(title), track, etc...
* @param aItemChangedMessages a list of change events as a result of the
* song update
* @return ETrue if UI visible change else EFalse
- */
- CMPXDbActiveTask::TChangeVisibility UpdateAbstractAlbumSongsL(const CMPXMedia& aMedia,
+ */
+ CMPXDbActiveTask::TChangeVisibility UpdateSongsAbstractAlbumInfoL(const CMPXMedia& aMedia,
CMPXMessageArray& aItemChangedMessages);
-#endif // ABSTRACTAUDIOALBUM_INCLUDED
+#endif // ABSTRACTAUDIOALBUM_INCLUDED
/**
* Update playlist info in the music collection database
* @param aMedia playlist details object which contains file path,
@@ -241,15 +253,16 @@
CMPXMessageArray& aItemChangedMessages);
#ifdef ABSTRACTAUDIOALBUM_INCLUDED
/**
- * Remove a abstractalbum This will remove all the songs from the abstractalbum
+ * Remove a abstractalbum, remove entry from AbstractAlbum table,
+ * Thumbnail table, corresponding alb from file system
* @param aAbstractAlbumId ID of the abstractalbum to remove
- * @param aUriArray a descriptor array to contain the URI of the deleted file
* @param aItemChangedMessages a list of change events as a result of the
* abstractalbum removal
+ * @param aFileDeleted indicate if alb file already deleted from file system
*/
- void RemoveAbstractAlbumL(TUint32 aAbstractAlbumId, CDesCArray& aUriArray,
- CMPXMessageArray& aItemChangedMessages);
-#endif // ABSTRACTAUDIOALBUM_INCLUDED
+ void RemoveAbstractAlbumL(TUint32 aAbstractAlbumId,
+ CMPXMessageArray& aItemChangedMessages, TBool aFileDeleted);
+#endif // ABSTRACTAUDIOALBUM_INCLUDED
/**
* Remove a song from the specified playlist.
@@ -878,17 +891,8 @@
*/
void DoRemovePlaylistL(TUint32 aPlaylistId, CDesCArray& aUriArray,
CMPXMessageArray& aItemChangedMessages);
-#ifdef ABSTRACTAUDIOALBUM_INCLUDED
- /**
- * Deletes a specified abstractalbum.
- * @param aAbstractAlbumId the abstractalbum to be deleted.
- * @param aUriArray on return contains the URIs of the items deleted.
- * @param aItemChangedMessages on return contains changed messages for all
- * affected items
- */
- void DoRemoveAbstractAlbumL(TUint32 aAbstractalbumId, CDesCArray& aUriArray,
- CMPXMessageArray& aItemChangedMessages);
-#endif // ABSTRACTAUDIOALBUM_INCLUDED
+
+
/**
* Deletes a song from a playlist.
* @param aPlaylistId identifies the playlist.
@@ -901,6 +905,22 @@
void DoRemoveSongFromPlaylistL(TUint32 aPlaylistId, const TMPXItemId& aSongId,
TInt aOrdinal, CMPXMessageArray& aItemChangedMessages);
+#ifdef ABSTRACTAUDIOALBUM_INCLUDED
+ /**
+ * Remove all abstractalbum items with no songs associated,
+ * TN and .alb files also removed.
+ *
+ */
+ void RemoveAbstractAlbumsWithNoSongL();
+
+ /**
+ /* When refresh library, Remove .alb entry from AbstractAlnum table, TN table if .alb files deleted
+ /* from file manager
+ */
+ void AbstractAlbumCleanUpL();
+
+#endif // ABSTRACTAUDIOALBUM_INCLUDED
+
/**
* Deletes all song records marked as deleted.
*/
@@ -1008,10 +1028,11 @@
* @see MMPXDbMusicObserver
*/
virtual TUint32 AddCategoryItemL(TMPXGeneralCategory aCategory,
- const TDesC& aName, TInt aDriveId,
+ const TDesC& aName,
+ TInt aDriveId,
CMPXMessageArray* aItemChangedMessages, TBool& aItemExist,
- const TDesC& aAlbumArtist=KNullDesC,
- const TDesC& aGenre=KNullDesC);
+ const TDesC& aUri,
+ const TDesC& aAlbumArtist=KNullDesC);
#else
/**
@@ -1045,7 +1066,7 @@
* @see MMPXDbMusicObserver
*/
virtual void HandlePlaybackTimeModifiedL(CMPXMessageArray& aItemChangedMessages);
-#ifdef ABSTRACTAUDIOALBUM_INCLUDED
+#ifdef ABSTRACTAUDIOALBUM_INCLUDED
/**
* @see MMPXDbMusicObserver
*/
--- a/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/inc/mpxdbmusic.h Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/inc/mpxdbmusic.h Tue Apr 27 16:34:37 2010 +0300
@@ -421,14 +421,13 @@
#ifdef ABSTRACTAUDIOALBUM_INCLUDED
- /**
+ /**
* Returns all songs for a given abstractalbum.
- * @param aDrive drive ID AbstractAlbum stored
* @param aAbstractAlbumId abstractalbum to get the songs for
* @param aAttrs attributes to be retrieved
* @param aMediaArray returns the song attributes.
*/
- void GetAllSongsForAbstractAlbumL(TInt aDrive, TInt aAbstractAlbumId,
+ void GetAllSongsForAbstractAlbumL(TUint aAbstractAlbumId,
const TArray<TMPXAttribute>& aAttrs, CMPXMediaArray& aMediaArray);
#endif // ABSTRACTAUDIOALBUM_INCLUDED
/**
@@ -679,8 +678,8 @@
CMPXMessageArray* aItemChangedMessages, TUint32& aItemId);
TBool UpdateCategoryFieldL(TMPXGeneralCategory aCategory, const CMPXMedia& aMedia,
- const TMPXAttribute& aAttribute, TUint32 aOldId, TInt aDriveId,
- CMPXMessageArray* aItemChangedMessages, TUint32& aItemId, TUint32 aArtistId);
+ const TMPXAttribute& aAttribute, TUint32 aOldId, TInt aDriveId,
+ CMPXMessageArray* aItemChangedMessages, TUint32& aItemId, TUint32 aArtistId);
/**
* Checks if extra attributes are required. The "standard attribute set includes:
* EMPXMediaGeneralId, EMPXMediaGeneralType, EMPXMediaGeneralCategory,
@@ -696,7 +695,7 @@
* @return ETrue if the media contains one or more supported attribute;
* otherwise EFalse.
*/
- TBool IsSupported(const CMPXMedia& aMedia);
+ TBool IsSupported(const CMPXMedia& aMedia);
private: // from MMPXTable
@@ -734,8 +733,8 @@
* Column indexes in the music table
*/
enum TMusicColumns
- {
- EMusicUniqueId = KMPXTableDefaultIndex,
+ {
+ EMusicUniqueId = KMPXTableDefaultIndex,
EMusicDbFlag,
EMusicVolumeId,
EMusicTitle,
--- a/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/inc/mpxdbpluginqueries.h Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/inc/mpxdbpluginqueries.h Tue Apr 27 16:34:37 2010 +0300
@@ -155,7 +155,7 @@
_LIT(KQueryMusicGetMostPlayed, "SELECT Music.*,Artist.Name,Album.Name,Genre.Name,Composer.Name FROM :dbname.Music,:dbname.Artist,:dbname.Album,:dbname.Genre,:dbname.Composer WHERE Music.Deleted=0 AND Music.PlayCount<>0 AND Music.Album=Album.UniqueId AND Music.Artist=Artist.UniqueId AND Music.Genre=Genre.UniqueId AND Music.Composer=Composer.UniqueId ORDER BY PlayCount DESC, TimePlayed DESC LIMIT %u");
_LIT(KQueryMusicGetRecentlyAdded, "SELECT Music.*,Artist.Name,Album.Name,Genre.Name,Composer.Name FROM :dbname.Music,:dbname.Artist,:dbname.Album,:dbname.Genre,:dbname.Composer WHERE Music.Deleted=0 AND (julianday(Music.TimeAdded)>julianday('now','-7 days')) AND Music.Album=Album.UniqueId AND Music.Artist=Artist.UniqueId AND Music.Genre=Genre.UniqueId AND Music.Composer=Composer.UniqueId ORDER BY 11 DESC");
#ifdef ABSTRACTAUDIOALBUM_INCLUDED
-_LIT(KQueryMusicGetSongsForAbstractAlbum,"SELECT Music.*,AbstractAlbum.Name FROM :dbname.Music,:dbname.AbstractAlbum WHERE Music.Deleted=0 AND Music.AbstractAlbum=AbstractAlbum.UniqueId AND AbstractAlbum.UniqueId=%u");
+_LIT(KQueryMusicGetSongsForAbstractAlbum,"SELECT Music.*,AbstractAlbum.Uri FROM :dbname.Music,:dbname.AbstractAlbum WHERE Music.Deleted=0 AND Music.AbstractAlbum=AbstractAlbum.UniqueId AND AbstractAlbum.UniqueId=%u");
#endif // ABSTRACTAUDIOALBUM_INCLUDED
_LIT(KQueryMusicSong, "SELECT UniqueId,DbFlag,VolumeId,Title,0,'',0,Location FROM :dbname.Music WHERE %S");
_LIT(KQueryMusicFindAll, "SELECT Music.*,Artist.Name,Album.Name,Genre.Name,Composer.Name FROM :dbname.Music,:dbname.Artist,:dbname.Album,:dbname.Genre,:dbname.Composer WHERE %S AND Music.Album=Album.UniqueId AND Music.Artist=Artist.UniqueId AND Music.Genre=Genre.UniqueId AND Music.Composer=Composer.UniqueId %S");
@@ -268,7 +268,7 @@
_LIT(KAuxiliaryCheckTable, "SELECT Id,Version,TimeRefreshed,TimeSynced,Corrupt,SaveDeletedRecordCount FROM AUXILIARY");
#ifdef ABSTRACTAUDIOALBUM_INCLUDED
_LIT(KQueryAuxiliaryInsert, "INSERT INTO Auxiliary(Id,Version,Corrupt) VALUES(0,'6.5.0',%u)");
-#else
+#else
_LIT(KQueryAuxiliaryInsert, "INSERT INTO Auxiliary(Id,Version,Corrupt) VALUES(0,'6.4.0',%u)");
#endif // ABSTRACTAUDIOALBUM_INCLUDED
_LIT(KQueryAuxiliarySetTime, "UPDATE :dbname.Auxiliary SET TimeRefreshed='%S', Corrupt=0");
@@ -427,7 +427,7 @@
L"Name TEXT COLLATE NOCASE,"
L"SongCount INTEGER,"
L"Artist INTEGER,"
- L"Art TEXT)");
+ L"Art TEXT)");
_LIT(KAlbumCheckTable,"SELECT UniqueId,Name,SongCount,Artist,Art FROM Album");
@@ -458,16 +458,17 @@
//
_LIT(KAbstractAlbumCreateTable,"CREATE TABLE AbstractAlbum("
L"UniqueId INTEGER PRIMARY KEY,"
+ L"Uri TEXT,"
L"Name TEXT COLLATE NOCASE,"
L"AlbumArtist TEXT,"
- L"Genre TEXT,"
L"SongCount INTEGER,"
L"VolumeId INTEGER)");
-_LIT(KAbstractAlbumCheckTable,"SELECT UniqueId,Name,SongCount,VolumeId FROM AbstractAlbum");
+_LIT(KAbstractAlbumCheckTable,"SELECT UniqueId,Uri,Name,AlbumArtist,SongCount,VolumeId FROM AbstractAlbum");
_LIT(KCriterionAbstractAlbumVolumeId, "VolumeId=%u");
-_LIT(KQueryAbstractAlbumInsert, "INSERT INTO :dbname.AbstractAlbum(UniqueId,Name,AlbumArtist,Genre,SongCount,VolumeId) VALUES(%u,'%S','%S','%S',%u,%u)");
+_LIT(KQueryAbstractAlbumInsert, "INSERT INTO :dbname.AbstractAlbum(UniqueId,Uri,Name,AlbumArtist,SongCount,VolumeId) VALUES(%u,'%S','%S','%S',%u,%u)");
_LIT(KQueryAbstractAlbumUpdate, "UPDATE :dbname.AbstractAlbum SET %S WHERE UniqueId=%u");
_LIT(KCriterionCategoryVolumeId, "SELECT VolumeId FROM :dbname.AbstractAlbum WHERE UniqueId=%u");
+_LIT(KQueryAbstractAlbumsWithNoSong, "SELECT * FROM :dbname.AbstractAlbum WHERE SongCount=0");
#endif // ABSTRACTAUDIOALBUM_INCLUDED
#endif // MPXDBPLUGINQUERIES_H
--- a/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/src/mpxdbabstractalbum.cpp Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/src/mpxdbabstractalbum.cpp Tue Apr 27 16:34:37 2010 +0300
@@ -37,9 +37,6 @@
// CONSTANTS
-
-
-
// ============================ MEMBER FUNCTIONS ==============================
// ----------------------------------------------------------------------------
@@ -48,11 +45,11 @@
//
CMPXDbAbstractAlbum* CMPXDbAbstractAlbum::NewL(
CMPXDbManager& aDbManager,
- TMPXGeneralCategory aCategory)
+ TMPXGeneralCategory aCategory, RFs& aFs)
{
MPX_FUNC("CMPXDbAbstractAlbum::NewL");
- CMPXDbAbstractAlbum* self = CMPXDbAbstractAlbum::NewLC(aDbManager, aCategory);
+ CMPXDbAbstractAlbum* self = CMPXDbAbstractAlbum::NewLC(aDbManager, aCategory, aFs);
CleanupStack::Pop(self);
return self;
}
@@ -63,11 +60,11 @@
//
CMPXDbAbstractAlbum* CMPXDbAbstractAlbum::NewLC(
CMPXDbManager& aDbManager,
- TMPXGeneralCategory aCategory)
+ TMPXGeneralCategory aCategory, RFs& aFs)
{
MPX_FUNC("CMPXDbAbstractAlbum::NewLC");
- CMPXDbAbstractAlbum* self = new (ELeave) CMPXDbAbstractAlbum(aDbManager, aCategory);
+ CMPXDbAbstractAlbum* self = new (ELeave) CMPXDbAbstractAlbum(aDbManager, aCategory, aFs);
CleanupStack::PushL(self);
self->ConstructL();
return self;
@@ -103,9 +100,9 @@
// ----------------------------------------------------------------------------
//
TUint32 CMPXDbAbstractAlbum::AddItemL(
+ const TDesC& aUri,
const TDesC& aName,
const TDesC& aAlbumArtist,
- const TDesC& aGenre,
TInt aDriveId,
TBool& aNewRecord,
TBool aCaseSensitive)
@@ -113,19 +110,21 @@
MPX_FUNC("CMPXDbAbstractAlbum::AddItemL");
TUint32 rowId(MPXDbCommonUtil::GenerateUniqueIdL(iDbManager.Fs(), EMPXAbstractAlbum,
- aName, aCaseSensitive));
-
+ aUri, aCaseSensitive));
+ aNewRecord = !CategoryItemExistsL(aDriveId, rowId);
+
if ( aNewRecord )
{
+ HBufC* uri = MPXDbCommonUtil::ProcessSingleQuotesLC(aUri);
HBufC* name = MPXDbCommonUtil::ProcessSingleQuotesLC(aName);
HBufC* albumartist = MPXDbCommonUtil::ProcessSingleQuotesLC(aAlbumArtist);
- HBufC* genre = MPXDbCommonUtil::ProcessSingleQuotesLC(aGenre);
-
- iDbManager.ExecuteQueryL(aDriveId, KQueryAbstractAlbumInsert, rowId, name, albumartist, genre, 0, MPXDbCommonUtil::GetVolIdMatchDriveIdL(iDbManager.Fs(), aDriveId));
- CleanupStack::PopAndDestroy(3, name);
+
+ iDbManager.ExecuteQueryL(aDriveId, KQueryAbstractAlbumInsert, rowId, uri, name, albumartist, 0, MPXDbCommonUtil::GetVolIdMatchDriveIdL(iDbManager.Fs(), aDriveId));
+ CleanupStack::PopAndDestroy(3, uri);
}
else
{
+ MPX_DEBUG1("CMPXDbAbstractAlbum::AddItemL, increase song count for abstractalbum");
// increment the number of songs for the category
HBufC* query = PreProcessStringLC(KQueryCategoryIncrementSongCount);
iDbManager.ExecuteQueryL(aDriveId, *query, rowId);
@@ -135,7 +134,36 @@
return rowId;
}
+// ----------------------------------------------------------------------------
+// CMPXDbAbstractAlbum::AddUpdatedItemL
+// ----------------------------------------------------------------------------
+//
+TUint32 CMPXDbAbstractAlbum::AddUpdatedItemL(TUint32 aOldId, const TDesC& newUri)
+ {
+ MPX_FUNC("CMPXDbAbstractAlbum::AddUpdatedItemL");
+ iRenameTN = ETrue;
+
+ //get the existing item based on aOldId
+ HBufC* query = NULL;
+ query = PreProcessStringLC(KQueryCategoryItem);
+ RSqlStatement recordset(iDbManager.ExecuteSelectQueryL(*query, aOldId));
+ CleanupStack::PopAndDestroy(query);
+
+ CleanupClosePushL(recordset);
+ TBool newRecord(ETrue);
+ if (recordset.Next() != KSqlAtRow)
+ {
+ User::Leave(KErrNotFound);
+ }
+ //save the existing entry fields values for renaming purpose
+ const TDesC& name(MPXDbCommonUtil::GetColumnTextL (recordset, EAbstractAlbumName));
+ const TDesC& albumartist(MPXDbCommonUtil::GetColumnTextL (recordset, EAbstractAlbumArtist));
+ TUint32 itemId = AddItemL(newUri, name, albumartist, GetDriveIdL(aOldId), newRecord, EFalse);
+ CleanupStack::PopAndDestroy(&recordset);
+
+ return itemId;
+ }
// ----------------------------------------------------------------------------
// CMPXDbAbstractAlbum::DecrementSongsForCategoryL
@@ -151,8 +179,7 @@
MPX_FUNC("CMPXDbAbstractAlbum::DecrementSongsForCategoryL");
TInt songCount = GetSongsCountL(aDriveId, aId);
- // if just one song uses this category. Use <= just in case
- //while MTP connection, just decrease songCount in DB, do not do deletion.
+ //while MTP connection, just decrease songCount in DB, do not do deletion.
if ( songCount > 0 )
{
aItemExist = ETrue;
@@ -162,74 +189,91 @@
CleanupStack::PopAndDestroy(query);
songCount--;
}
-
- if ((songCount == 0) && !aMtpInUse)
+ if (songCount == 0)
{
- HBufC* uri = DeleteAbstractAlbumL(aId, aDriveId);
- MPX_DEBUG1("CMPXDbAbstractAlbum::DeleteAbstractAlbumL,implicitly delete AbstractAlbum Object when it has 0 references");
- aItemExist = EFalse;
- if (aItemChangedMessages)
+ //get uri
+ HBufC* uri = GetUriL(aId);
+ CleanupStack::PushL(uri);
+
+ if (!aMtpInUse)
+ {
+ DeleteAbstractAlbumEntryL(aId, aDriveId);
+ MPX_DEBUG1("CMPXDbAbstractAlbum::DecrementSongsForCategoryL,implicitly delete AbstractAlbum Object when it has 0 references");
+ aItemExist = EFalse;
+ if (aItemChangedMessages)
+ {
+ // add the item changed message
+ MPXDbCommonUtil::AddItemChangedMessageL(*aItemChangedMessages, aId, EMPXItemDeleted,
+ EMPXAbstractAlbum, KDBPluginUid);
+ }
+ //delete .alb file from file system
+ TInt err = BaflUtils::DeleteFile(iFs, *uri);
+ if(KErrNone != err)
+ {
+ MPX_DEBUG2("CMPXDbAbstractAlbum::DecrementSongsForCategoryL,File not deleted from file system with err=%d", err);
+ }
+ }
+ if(!iRenameTN)
+ {
+ HandleTNL(*uri);
+ }
+ CleanupStack::PopAndDestroy(uri);
+ }
+ }
+
+// ----------------------------------------------------------------------------
+// CMPXDbAbstractAlbum::RemoveAbstractAlbumL
+// ----------------------------------------------------------------------------
+//
+void CMPXDbAbstractAlbum::RemoveAbstractAlbumL(TUint32 aAbstractAlbumId,
+ CMPXMessageArray& aItemChangedMessages, TBool aFileDeleted)
+ {
+ MPX_FUNC("CMPXDbAbstractAlbum::RemoveAbstractAlbumL");
+ HBufC* uri = GetUriL(aAbstractAlbumId);
+ CleanupStack::PushL(uri);
+
+ DeleteAbstractAlbumEntryL(aAbstractAlbumId);
+ HandleTNL(*uri);
+ if (!aFileDeleted)
+ {
+ TInt err = BaflUtils::DeleteFile(iFs, *uri);
+ if(KErrNone != err)
{
- // add the item changed message
- MPXDbCommonUtil::AddItemChangedMessageL(*aItemChangedMessages, aId, EMPXItemDeleted,
- EMPXAbstractAlbum, KDBPluginUid);
- }
- delete uri;
- }
+ MPX_DEBUG2("CMPXDbAbstractAlbum::RemoveAbstractAlbumL,File not deleted from file system with err=%d", err);
+ }
+ }
+ MPXDbCommonUtil::AddItemChangedMessageL(aItemChangedMessages, aAbstractAlbumId, EMPXItemDeleted, EMPXAbstractAlbum, KDBPluginUid);
+ CleanupStack::PopAndDestroy(uri);
}
// ----------------------------------------------------------------------------
-// CMPXDbAbstractAlbum::DeleteAbstractAlbumL
+// CMPXDbAbstractAlbum::HandleTNL
// ----------------------------------------------------------------------------
//
-HBufC* CMPXDbAbstractAlbum::DeleteAbstractAlbumL(
- TUint32 aAbstractAlbumId, TInt aDriveId)
- {
- MPX_FUNC("CMPXDbAbstractAlbum::DeleteAbstractAlbumL");
+void CMPXDbAbstractAlbum::HandleTNL( const TDesC& aOldPath,
+ const TDesC& aNewPath, TInt aPriority )
+ {
+ MPX_FUNC("CMPXDbAbstractAlbum::HandleTNL");
- //before delete category, get the abstract album path
- HBufC* uri = GetNameL(aAbstractAlbumId);
- // delete the category
- if (uri)
- {
- CleanupStack::PushL(uri);
-
- if (aDriveId)
- DeleteCategoryL(aAbstractAlbumId, aDriveId);
- else
- {
- TInt drive = MPXDbCommonUtil::GetDriveIdMatchVolIdL(iDbManager.Fs(),
- ExecuteIntQueryL(KCriterionCategoryVolumeId, aAbstractAlbumId));
- DeleteCategoryL(aAbstractAlbumId, drive);
- }
-//delete abstract album .alb from TN table
-#ifdef RD_MPX_TNM_INTEGRATION
- // remove from thumbnail database table
- CThumbnailObjectSource* source = CThumbnailObjectSource::NewLC(
- *uri, KImageFileType );
- iTNManager->DeleteThumbnails( *source );
- CleanupStack::PopAndDestroy( source );
-#endif //RD_MPX_TNM_INTEGRATION
-
-
- //delete abstract album .alb file from file system
- RFs rFs;
- User::LeaveIfError( rFs.Connect() );
- CleanupClosePushL( rFs );
-
- TInt err = BaflUtils::DeleteFile(rFs, *uri);
- if(KErrNone != err)
- {
- MPX_DEBUG2("CMPXDbAbstractAlbum::DeleteAbstractAlbumL,File not deleted from file system with err=%d", err);
- }
-
- CleanupStack::PopAndDestroy( &rFs );
- }
-
- CleanupStack::Pop(uri);
- return uri;
- }
+ if (aNewPath.Compare(KNullDesC)==0 && aOldPath.Compare(KNullDesC)!=0)
+ {
+ // remove from thumbnail database table
+ MPX_DEBUG1("CMPXDbAbstractAlbum::HandleTNL, delete TN");
+ CThumbnailObjectSource* source = CThumbnailObjectSource::NewLC(
+ aOldPath, KImageFileType );
+ iTNManager->DeleteThumbnails( *source );
+ CleanupStack::PopAndDestroy( source );
+ }
+ else if (aNewPath.Compare(KNullDesC)!=0)
+ {
+ //rename thumbnail
+ MPX_DEBUG1("CMPXDbAbstractAlbum::HandleTNL, rename TN");
+ iTNManager->RenameThumbnailsL( aOldPath, aNewPath, aPriority );
+ //after rename, reset flag
+ iRenameTN = EFalse;
+ }
+ }
// ----------------------------------------------------------------------------
@@ -262,12 +306,34 @@
MPXDbCommonUtil::AddItemAlbumChangedMessageL(*aItemChangedMessages, aId, EMPXItemModified,
EMPXAbstractAlbum, KDBPluginUid, ETrue, 0 );
}
-
CleanupStack::PopAndDestroy(setStr);
CleanupStack::PopAndDestroy(values);
CleanupStack::PopAndDestroy(fields);
}
+
+// ----------------------------------------------------------------------------
+// CMPXDbAbstractAlbum::GetUriL
+// ----------------------------------------------------------------------------
+//
+HBufC* CMPXDbAbstractAlbum::GetUriL(
+ TUint32 aId)
+ {
+ MPX_FUNC("CMPXDbAbstractAlbum::GetUriL");
+
+ RSqlStatement recordset(GetCategoryRecordL(aId));
+ CleanupClosePushL(recordset);
+
+ if (recordset.Next() != KSqlAtRow)
+ {
+ User::LeaveIfError(KErrNotFound);
+ }
+ HBufC* uri = MPXDbCommonUtil::GetColumnTextL(recordset, EAbstractAlbumUri).AllocL();
+ CleanupStack::PopAndDestroy(&recordset);
+ return uri;
+ }
+
+
// ----------------------------------------------------------------------------
// CMPXDbAbstractAlbum::UpdateMediaL
// ----------------------------------------------------------------------------
@@ -277,41 +343,41 @@
const TArray<TMPXAttribute>& aAttrs,
CMPXMedia& aMedia)
{
- MPX_FUNC("CMPXDbAbstractAlbum::UpdateMediaL");
+ MPX_FUNC("CMPXDbAbstractAlbum::UpdateMediaL");
- TInt count(aAttrs.Count());
- for (TInt i = 0; i < count; ++i)
- {
- TInt contentId(aAttrs[i].ContentId());
- TUint attributeId(aAttrs[i].AttributeId());
+ TInt count(aAttrs.Count());
+ for (TInt i = 0; i < count; ++i)
+ {
+ TInt contentId(aAttrs[i].ContentId());
+ TUint attributeId(aAttrs[i].AttributeId());
if (contentId == KMPXMediaIdGeneral)
{
if (attributeId & EMPXMediaGeneralId)
{
+ MPX_DEBUG1(" EMPXMediaGeneralId");
aMedia.SetTObjectValueL<TMPXItemId>(KMPXMediaGeneralId,
aRecord.ColumnInt64(EAbstractAlbumUniqueId));
}
if (attributeId & EMPXMediaGeneralTitle)
{
+ MPX_DEBUG1(" EMPXMediaGeneralTitle");
TPtrC title(MPXDbCommonUtil::GetColumnTextL(aRecord, EAbstractAlbumName));
aMedia.SetTextValueL(KMPXMediaGeneralTitle, title);
MPX_DEBUG2(" AbstractAlbumName[%S]", &title);
- }
+ }
if (attributeId & EMPXMediaGeneralCount)
{
+ MPX_DEBUG1(" EMPXMediaGeneralCount");
TInt songCount = GetSongsCountL(KDbManagerAllDrives,
aRecord.ColumnInt64(EAbstractAlbumUniqueId));
aMedia.SetTObjectValueL<TInt>(KMPXMediaGeneralCount, songCount );
}
- if (attributeId & EMPXMediaGeneralDrive)
- {
+ if (attributeId & EMPXMediaGeneralDrive ||
+ (attributeId & EMPXMediaGeneralUri))
+ {
TUint32 volId(aRecord.ColumnInt64(EAbstractAlbumVolumeId));
TInt driveId = MPXDbCommonUtil::GetDriveIdMatchVolIdL(iDbManager.Fs(), volId);
-
- // LTAN-7GH6BZ, crash if eject memory card when adding song to existing AbstractAlbum
- // due to special timing issue, it is possible drive number is -1 and create a
- // panic when use for TDriveUnit
MPX_DEBUG3("volId = %d, driveId = %d", volId, driveId);
// handle possibly delay from framework notification
@@ -321,63 +387,100 @@
User::Leave(KErrNotReady);
}
TDriveUnit driveUnit(driveId);
-
- aMedia.SetTextValueL(KMPXMediaGeneralDrive, driveUnit.Name());
+ if (attributeId & EMPXMediaGeneralUri)
+ {
+ TPtrC uri(MPXDbCommonUtil::GetColumnTextL(aRecord, EAbstractAlbumUri));
+ aMedia.SetTextValueL(KMPXMediaGeneralUri, uri);
+ MPX_DEBUG2(" AbstractAlbum URI[%S]", &uri);
+ }
+ if (attributeId & EMPXMediaGeneralDrive)
+ {
+ aMedia.SetTextValueL(KMPXMediaGeneralDrive, driveUnit.Name());
+ }
+ }
+ } // end if contentId == KMPXMediaIdGeneral
- }
- } // end if contentId == KMPXMediaIdGeneral
else if ( contentId == KMPXMediaIdMusic)
{
if (attributeId & EMPXMediaMusicAlbumArtist)
- {
+ {
+ MPX_DEBUG1(" EMPXMediaMusicAlbumArtist");
TPtrC albumartist(MPXDbCommonUtil::GetColumnTextL(aRecord, EAbstractAlbumArtist));
aMedia.SetTextValueL(KMPXMediaMusicAlbumArtist, albumartist);
-
-
-
MPX_DEBUG2(" albumartist[%S]", &albumartist);
- }
- if (attributeId & EMPXMediaMusicGenre)
- {
- TPtrC genre(MPXDbCommonUtil::GetColumnTextL(aRecord, EAbstractAlbumGenre));
- aMedia.SetTextValueL(KMPXMediaMusicGenre, genre);
- MPX_DEBUG2(" Genre[%S]", &genre);
}
}
-
+
} // end for
aMedia.SetTObjectValueL<TMPXGeneralType>(KMPXMediaGeneralType, EMPXItem);
aMedia.SetTObjectValueL<TMPXGeneralCategory>(KMPXMediaGeneralCategory, EMPXAbstractAlbum);
}
+// ----------------------------------------------------------------------------
+// CMPXDbAbstractAlbum::GetAllItemsWithNoSongL
+// ----------------------------------------------------------------------------
+//
+void CMPXDbAbstractAlbum::GetAllItemsWithNoSongL(RArray<TUint32>& aItemsIds)
+ {
+ MPX_FUNC("CMPXDbAbstractAlbum::GetAllItemsWithNoSongL");
+ RSqlStatement recordset(iDbManager.ExecuteSelectQueryL(KQueryAbstractAlbumsWithNoSong));
+ CleanupClosePushL(recordset);
+
+ TInt err(KErrNone);
+ while ((err = recordset.Next()) == KSqlAtRow)
+ {
+ TUint32 uniqueID(recordset.ColumnInt64(EAbstractAlbumUniqueId));
+ aItemsIds.AppendL(uniqueID);
+ }
+ CleanupStack::PopAndDestroy(&recordset);
+ if (err!= KSqlAtEnd)
+ {
+ User::Leave(KErrCorrupt);
+ }
+ }
+
// ----------------------------------------------------------------------------
-// CMPXDbAbstractAlbum::GenerateAlbumFieldsValuesL
+// CMPXDbAbstractAlbum::GenerateAbstractAlbumFieldsValuesL
// ----------------------------------------------------------------------------
//
void CMPXDbAbstractAlbum::GenerateAbstractAlbumFieldsValuesL(const CMPXMedia& aMedia, CDesCArray& aFields, CDesCArray& aValues)
{
MPX_FUNC("CMPXDbAbstractAlbum::GenerateAbstractAlbumFieldsValuesL");
-//support Winlogo use case
- if (aMedia.IsSupported(KMPXMediaGeneralTitle))
+ //support Winlogo use case
+ if (aMedia.IsSupported(KMPXMediaGeneralTitle))
{
TPtrC truncatedName(aMedia.ValueText(KMPXMediaGeneralTitle).Left(KMCMaxTextLen));
MPXDbCommonUtil::AppendValueL(aFields, aValues, KMCCategoryName, truncatedName);
}
-//support Winlogo use case
- if (aMedia.IsSupported(KMPXMediaMusicAlbumArtist))
+ //support Winlogo use case
+ if (aMedia.IsSupported(KMPXMediaMusicAlbumArtist))
{
TPtrC truncatedAlbumArtist(aMedia.ValueText(KMPXMediaMusicAlbumArtist).Left(KMCMaxTextLen));
MPXDbCommonUtil::AppendValueL(aFields, aValues, KMCMusicAlbumArtist, truncatedAlbumArtist);
}
- if (aMedia.IsSupported(KMPXMediaMusicGenre))
+ }
+
+// ----------------------------------------------------------------------------
+// CMPXDbAbstractAlbum::DeleteAbstractAlbumEntryL
+// ----------------------------------------------------------------------------
+//
+void CMPXDbAbstractAlbum::DeleteAbstractAlbumEntryL(
+ TUint32 aAbstractAlbumId, TInt aDriveId)
+ {
+ MPX_FUNC("CMPXDbAbstractAlbum::DeleteAbstractAlbumEntryL");
+
+ //delete entry from table
+ if (aDriveId)
+ DeleteCategoryL(aAbstractAlbumId, aDriveId);
+ else
{
- TPtrC truncatedGenre(aMedia.ValueText(KMPXMediaMusicGenre).Left(KMCMaxTextLen));
- MPXDbCommonUtil::AppendValueL(aFields, aValues, KMCMusicGenre, truncatedGenre);
+ TInt drive = MPXDbCommonUtil::GetDriveIdMatchVolIdL(iDbManager.Fs(),
+ ExecuteIntQueryL(KCriterionCategoryVolumeId, aAbstractAlbumId));
+ DeleteCategoryL(aAbstractAlbumId, drive);
}
}
-
// ----------------------------------------------------------------------------
// CMPXDbAlbum::CreateTableL
// ----------------------------------------------------------------------------
@@ -420,8 +523,9 @@
//
CMPXDbAbstractAlbum::CMPXDbAbstractAlbum(
CMPXDbManager& aDbManager,
- TMPXGeneralCategory aCategory) :
- CMPXDbCategory(aDbManager, aCategory)
+ TMPXGeneralCategory aCategory, RFs& aFs) :
+ CMPXDbCategory(aDbManager, aCategory),
+ iFs(aFs)
{
MPX_FUNC("CMPXDbAbstractAlbum::CMPXDbAbstractAlbum");
}
@@ -438,26 +542,27 @@
#ifdef RD_MPX_TNM_INTEGRATION
// Create Thumbnail Manager instance. This object is the observer.
iTNManager = CThumbnailManager::NewL( *this );
+ iRenameTN = EFalse;
#endif //RD_MPX_TNM_INTEGRATION
}
// ---------------------------------------------------------------------------
-// CMPXDbAbstractAlbum::ThumbnailReady
+// CMPXDbAbstractAlbum::ThumbnailReady
// Callback but not used here
// ---------------------------------------------------------------------------
-void CMPXDbAbstractAlbum::ThumbnailPreviewReady(
+void CMPXDbAbstractAlbum::ThumbnailPreviewReady(
MThumbnailData& /*aThumbnail*/, TThumbnailRequestId /*aId*/ )
{
}
-
+
// ---------------------------------------------------------------------------
// CMPXDbAbstractAlbum::ThumbnailReady
// Callback but not used here
// ---------------------------------------------------------------------------
-void CMPXDbAbstractAlbum::ThumbnailReady( TInt /*aError*/,
+void CMPXDbAbstractAlbum::ThumbnailReady( TInt /*aError*/,
MThumbnailData& /*aThumbnail*/, TThumbnailRequestId /*aId*/ )
{
}
--- a/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/src/mpxdbcategory.cpp Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/src/mpxdbcategory.cpp Tue Apr 27 16:34:37 2010 +0300
@@ -212,14 +212,19 @@
#endif //RD_MPX_COLLECTION_CACHE
}
#ifdef ABSTRACTAUDIOALBUM_INCLUDED
- else if (criterion == KMPXMediaGeneralUri)
- {
- TUint32 itemId(MPXDbCommonUtil::GenerateUniqueIdL(iDbManager.Fs(), iCategory,
- aCriteria.ValueText(KMPXMediaGeneralUri), (iCategory != EMPXGenre)));
- HBufC* critStr = PreProcessStringLC(KCriterionCategoryUniqueId);
- MPXDbCommonUtil::AddSqlCriterionL(*criteriaArray, *critStr, itemId);
- CleanupStack::PopAndDestroy(critStr);
- }
+ else if (criterion == KMPXMediaGeneralUri)
+ {
+ //only Genre and AbstractAlbum are not case sensitive
+ TBool caseSensitive = ETrue;
+ if ((iCategory == EMPXGenre) || (iCategory == EMPXAbstractAlbum))
+ caseSensitive = EFalse;
+
+ TUint32 itemId(MPXDbCommonUtil::GenerateUniqueIdL(iDbManager.Fs(), iCategory,
+ aCriteria.ValueText(KMPXMediaGeneralUri), caseSensitive));
+ HBufC* critStr = PreProcessStringLC(KCriterionCategoryUniqueId);
+ MPXDbCommonUtil::AddSqlCriterionL(*criteriaArray, *critStr, itemId);
+ CleanupStack::PopAndDestroy(critStr);
+ }
else if (criterion == KMPXMediaGeneralDrive)
{
const TDesC& drive(aCriteria.ValueText(KMPXMediaGeneralDrive));
@@ -257,8 +262,12 @@
const TUint32 aId,
TInt aDriveId,
CMPXMessageArray* aItemChangedMessages,
- TBool& aItemExist,
- TBool /*aMTPInUse*/)
+ TBool& aItemExist
+#ifdef ABSTRACTAUDIOALBUM_INCLUDED
+ ,
+ TBool /*aMTPInUse*/
+#endif //ABSTRACTAUDIOALBUM_INCLUDED
+)
{
MPX_FUNC("CMPXDbCategory::DecrementSongsForCategoryL");
--- a/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/src/mpxdbhandler.cpp Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/src/mpxdbhandler.cpp Tue Apr 27 16:34:37 2010 +0300
@@ -178,9 +178,9 @@
iDbAlbum = CMPXDbAlbum::NewL(*iDbManager, EMPXAlbum, *this);
iDbGenre = CMPXDbGenre::NewL(*iDbManager, EMPXGenre);
iDbComposer = CMPXDbComposer::NewL(*iDbManager, EMPXComposer);
-#ifdef ABSTRACTAUDIOALBUM_INCLUDED
- iDbAbstractAlbum = CMPXDbAbstractAlbum::NewL(*iDbManager, EMPXAbstractAlbum);
-#endif // ABSTRACTAUDIOALBUM_INCLUDED
+#ifdef ABSTRACTAUDIOALBUM_INCLUDED
+ iDbAbstractAlbum = CMPXDbAbstractAlbum::NewL(*iDbManager, EMPXAbstractAlbum, iFs);
+#endif // ABSTRACTAUDIOALBUM_INCLUDED
iAutoPlaylist = CMPXDbAutoPlaylist::NewL(*iDbManager, iFs, iResource);
iDbAuxiliary = CMPXDbAuxiliary::NewL(*iDbManager);
@@ -315,24 +315,22 @@
MPX_FUNC("CMPXDbHandler::AddAbstractAlbumL");
BeginTransactionL();
- // TUint32 abstractAlbumId(0);
TBool newRecord(EFalse);
TInt err(KErrNone);
TDriveUnit drive(aMedia.ValueText(KMPXMediaGeneralUri));
- TPtrC name(aMedia.ValueText(KMPXMediaGeneralUri).Left(KMCMaxTextLen));
+ TPtrC uri(aMedia.ValueText(KMPXMediaGeneralUri).Left(KMCMaxTextLen));
+ TPtrC name(aMedia.ValueText(KMPXMediaGeneralTitle).Left(KMCMaxTextLen));
TPtrC albumartist(aMedia.ValueText(KMPXMediaMusicAlbumArtist).Left(KMCMaxTextLen));
- TPtrC genre(aMedia.ValueText(KMPXMediaMusicGenre).Left(KMCMaxTextLen));
-
- //only insert to AbstractAlbum table when it is new item
- TUint32 abstractAlbumId(MPXDbCommonUtil::GenerateUniqueIdL(iFs, EMPXAbstractAlbum, name, (EMPXAbstractAlbum!=EMPXGenre)));
-
+
+ //only insert to AbstractAlbum table when it is new item
+ TUint32 abstractAlbumId(MPXDbCommonUtil::GenerateUniqueIdL(iFs, EMPXAbstractAlbum, uri, EFalse));
+
newRecord = !iDbAbstractAlbum->CategoryItemExistsL(drive, abstractAlbumId);
-
-
- if (newRecord)
+
+ if (newRecord)
{
- MPX_TRAP(err, abstractAlbumId = iDbAbstractAlbum->AddItemL( name, albumartist, genre, drive, newRecord, (EMPXAbstractAlbum != EMPXGenre)));
+ MPX_TRAP(err, abstractAlbumId = iDbAbstractAlbum->AddItemL(uri, name, albumartist, drive, newRecord, EFalse));
if (iOutOfDisk && (err == KErrNotFound))
{
err = KErrDiskFull;
@@ -345,57 +343,134 @@
}
EndTransactionL(err);
- return abstractAlbumId;
+ return abstractAlbumId;
}
// ----------------------------------------------------------------------------
-// Update all songs which associate with AbstractAlbum in the collection
+// Update abstractalbum info to AbstractAlbum table and all songs which associate
+// with AbstractAlbum in the collection
// ----------------------------------------------------------------------------
//
-CMPXDbActiveTask::TChangeVisibility CMPXDbHandler::UpdateAbstractAlbumSongsL(
+CMPXDbActiveTask::TChangeVisibility CMPXDbHandler::UpdateAbstractAlbumL(
const CMPXMedia& aMedia,
CMPXMessageArray& aItemChangedMessages)
{
- MPX_FUNC("CMPXDbHandler::UpdateAbstractAlbumSongsL");
+ MPX_FUNC("CMPXDbHandler::UpdateAbstractAlbumL");
CMPXDbActiveTask::TChangeVisibility visibleChange(CMPXDbActiveTask::ENotVisibile);
-
+ TUint32 itemId(0);
if (aMedia.IsSupported(KMPXMediaGeneralUri))
{
- const TDesC& art(aMedia.ValueText (KMPXMediaGeneralUri));
-
- TBool existRecord(EFalse);
+ const TDesC& uri(aMedia.ValueText (KMPXMediaGeneralUri));
TDriveUnit drive(aMedia.ValueText(KMPXMediaGeneralUri));
- TUint32 rowId(MPXDbCommonUtil::GenerateUniqueIdL(iFs, EMPXAbstractAlbum, art, (EMPXAbstractAlbum != EMPXGenre)));
- //check if abstractAlbum in ABSTRACTALBUM table before update songs
- existRecord = iDbAbstractAlbum->CategoryItemExistsL(drive, rowId);
-
- //update songs associated with abstractalbum only when abstractalbum associated already
- //in the AbstractAlbum table
- if (existRecord)
- {
- if (aMedia.IsSupported(KMPXMediaArrayContents))
+
+ //get Id based on new uri
+ itemId = MPXDbCommonUtil::GenerateUniqueIdL(iFs, EMPXAbstractAlbum, uri, EFalse);
+ if (!itemId)
+ {
+ User::Leave(KErrNotSupported);
+ }
+
+ //if updating to new item, need do renaming for AbstractAlbum: delete old one and insert a new entry to AbstractAlbum table
+ //if a new item, need update songs associated and renaming albstractalbum table
+ if (aMedia.IsSupported(KMPXMediaGeneralId))
+ {
+ MPX_DEBUG1("CMPXDbHandler::UpdateAbstractAlbumL, rename case");
+
+ BeginTransactionL();
+ //get old id, for renaming
+ TInt err(KErrNone);
+ TUint32 oldId = (aMedia.ValueTObjectL<TMPXItemId>(KMPXMediaGeneralId)).iId2;
+ if (oldId && (oldId != itemId) ) //pass the old UID for renaming, do not care if new itemId exist or not
{
-
- CMPXMediaArray* mediaArray = aMedia.Value<CMPXMediaArray>(KMPXMediaArrayContents);
- User::LeaveIfNull(mediaArray);
+ //get old Uri based on old Id
+ HBufC* oldUri = iDbAbstractAlbum->GetUriL(oldId);
+ CleanupStack::PushL(oldUri);
+
+ //add and update new item to AbstractAlbum table
+ //old existing item field values need to be saved and added when adding new item
+ MPX_TRAP(err, itemId = iDbAbstractAlbum->AddUpdatedItemL(oldId, uri ));
+
+ if (iOutOfDisk && (err == KErrNotFound))
+ {
+ err = KErrDiskFull;
+ }
+
+ MPXDbCommonUtil::AddItemChangedMessageL(aItemChangedMessages, itemId, EMPXItemInserted,
+ EMPXAbstractAlbum, KDBPluginUid);
+
+ //find and update all songs associated with oldId
+ RArray<TMPXAttribute> songAttributes;
+ CleanupClosePushL(songAttributes);
+ songAttributes.AppendL(KMPXMediaGeneralId);
+
+ CMPXMediaArray* mediaArray = CMPXMediaArray::NewL();
+ CleanupStack::PushL(mediaArray);
+
+ //get all songs associated
+ MPX_TRAP(err, iDbMusic->GetAllSongsForAbstractAlbumL(oldId, songAttributes.Array(), *mediaArray));
+ if (err == KErrNotFound)
+ {
+ // Leave with KErrNotFound
+ MPX_DEBUG1("CMPXDbHandler::UpdateAbstractAlbumL, leave with not found");
+ User::Leave(KErrNotFound);
+ }
+
TInt count(mediaArray->Count());
+ MPX_DEBUG2("CMPXDbHandler::UpdateAbstractAlbumL, [%d] songs associated", count);
+ //go through all songs for updating
for (TInt i = 0; i < count; i++)
{
- CMPXMedia* element = mediaArray->AtL(i);
- element->SetTextValueL(KMPXMediaMusicAlbumArtFileName, art );
- visibleChange = UpdateSongL(*element, aItemChangedMessages);
+ CMPXMedia* song = mediaArray->AtL(i);
+ song->SetTextValueL(KMPXMediaMusicAlbumArtFileName, uri );
+ visibleChange = UpdateSongL(*song, aItemChangedMessages);
}
- }
- else
- {
- iDbAbstractAlbum->UpdateItemL(rowId, aMedia, drive, &aItemChangedMessages);
+ CleanupStack::PopAndDestroy(mediaArray);
+ CleanupStack::PopAndDestroy(&songAttributes);
+
+ //rename TN
+ iDbAbstractAlbum->HandleTNL(*oldUri, uri, 0);
+ CleanupStack::PopAndDestroy(oldUri);
}
- }
+ EndTransactionL(err);
+ }//renaming
+
+ //check if abstractAlbum exist in ABSTRACTALBUM table before update it
+ else if (iDbAbstractAlbum->CategoryItemExistsL(drive, itemId))
+ {
+ //support updating Name, AlbumArtist fields for AbstractAlbum table
+ iDbAbstractAlbum->UpdateItemL(itemId, aMedia, drive, &aItemChangedMessages);
+ }
}
return visibleChange;
-}
+ }
+
+// ----------------------------------------------------------------------------
+// Update all songs which associate with AbstractAlbum to new AbstractAlbum info
+// in the collection
+// ----------------------------------------------------------------------------
+//
+CMPXDbActiveTask::TChangeVisibility CMPXDbHandler::UpdateSongsAbstractAlbumInfoL(
+ const CMPXMedia& aMedia,
+ CMPXMessageArray& aItemChangedMessages)
+ {
+ MPX_FUNC("CMPXDbHandler::UpdateSongsAbstractAlbumInfoL");
+ const TDesC& uri(aMedia.ValueText (KMPXMediaGeneralUri));
+ //need to update songs information to music table
+ CMPXMediaArray* mediaArray = aMedia.Value<CMPXMediaArray>(KMPXMediaArrayContents);
+ User::LeaveIfNull(mediaArray);
+ TInt count(mediaArray->Count());
+ CMPXDbActiveTask::TChangeVisibility visibleChange(CMPXDbActiveTask::ENotVisibile);
+ for (TInt i = 0; i < count; i++)
+ {
+ CMPXMedia* mediaSong = mediaArray->AtL(i);
+ mediaSong->SetTextValueL(KMPXMediaMusicAlbumArtFileName, uri );
+ visibleChange = UpdateSongL(*mediaSong, aItemChangedMessages);
+ }
+ return visibleChange;
+ }
#endif // ABSTRACTAUDIOALBUM_INCLUDED
+
// ----------------------------------------------------------------------------
// Update a song in the collection
// ----------------------------------------------------------------------------
@@ -589,40 +664,10 @@
//
void CMPXDbHandler::RemoveAbstractAlbumL(
TUint32 aAbstractAlbumId,
- CDesCArray& aUriArray,
- CMPXMessageArray& aItemChangedMessages)
+ CMPXMessageArray& aItemChangedMessages, TBool aFileDeleted)
{
MPX_FUNC("CMPXDbHandler::RemoveAbstractAlbumL");
-
- BeginTransactionL();
- MPX_TRAPD(err, DoRemoveAbstractAlbumL(aAbstractAlbumId, aUriArray, aItemChangedMessages));
- EndTransactionL(err);
- }
-
-// ----------------------------------------------------------------------------
-// Remove specified abstractalbum
-// ----------------------------------------------------------------------------
-//
-void CMPXDbHandler::DoRemoveAbstractAlbumL(
- TUint32 aAbstractAlbumId,
- CDesCArray& aUriArray,
- CMPXMessageArray& aItemChangedMessages)
- {
- MPX_FUNC("CMPXDbHandler::DoRemoveAbstractAlbumL");
-
-
- HBufC* uri(iDbAbstractAlbum->DeleteAbstractAlbumL(aAbstractAlbumId));
- if (uri)
- {
- CleanupStack::PushL(uri);
- aUriArray.AppendL(*uri);
- CleanupStack::PopAndDestroy(uri);
- }
-
- MPXDbCommonUtil::AddItemChangedMessageL(aItemChangedMessages, aAbstractAlbumId, EMPXItemDeleted,
- EMPXAbstractAlbum, KDBPluginUid);
-
-
+ iDbAbstractAlbum->RemoveAbstractAlbumL(aAbstractAlbumId, aItemChangedMessages, aFileDeleted);
}
#endif // ABSTRACTAUDIOALBUM_INCLUDED
@@ -889,7 +934,7 @@
const TDesC& aUri)
{
MPX_FUNC("CMPXDbHandler::GetAbstractAlbumIdMatchingUriL");
- return MPXDbCommonUtil::GenerateUniqueIdL(iFs, EMPXAbstractAlbum, aUri, ETrue);
+ return MPXDbCommonUtil::GenerateUniqueIdL(iFs, EMPXAbstractAlbum, aUri, EFalse);
}
#endif // ABSTRACTAUDIOALBUM_INCLUDED
@@ -1501,7 +1546,6 @@
iOutOfDisk = ETrue;
}
}
-
#ifdef __RAMDISK_PERF_ENABLE
iDbManager->CopyDBsToRamL();
#endif //__RAMDISK_PERF_ENABLE
@@ -1527,6 +1571,13 @@
curTime.HomeTime();
SetLastRefreshedTimeL(curTime);
}
+
+#ifdef ABSTRACTAUDIOALBUM_INCLUDED
+ //for AbstractAlbum garbage collection
+ //can not leave
+ TRAP_IGNORE( AbstractAlbumCleanUpL() );
+#endif
+
#ifdef __RAMDISK_PERF_ENABLE
iDbManager->CopyDBsFromRamL();
#endif //__RAMDISK_PERF_ENABLE
@@ -1567,15 +1618,24 @@
iMtpInUse = EFalse;
iOpOnDbCount = 0;
iDbManager->CommitL();
+ TInt err = KErrNone;
+
#ifdef __RAMDISK_PERF_ENABLE
- TRAPD(err, iDbManager->CopyDBsFromRamL());
+ TRAP(err, iDbManager->CopyDBsFromRamL());
if ( err != KErrNone )
{
MPX_DEBUG2("CMPXDbHandler::MtpEndL error=%d", err);
}
#endif //__RAMDISK_PERF_ENABLE
-
+
+#ifdef ABSTRACTAUDIOALBUM_INCLUDED
+ TRAP(err, RemoveAbstractAlbumsWithNoSongL());
+ if ( err != KErrNone )
+ {
+ MPX_DEBUG2("CMPXDbHandler::MtpEndL error happened when cleanup albstractalbum with no songs association[%d]", err);
+ }
+#endif
MPX_DEBUG1("<--CMPXDbHandler::MtpEndL");
}
@@ -2302,6 +2362,84 @@
MPXDbCommonUtil::AddItemChangedMessageL(aItemChangedMessages, aSongId, EMPXItemDeleted,
EMPXSong, KDBPluginUid);
}
+
+#ifdef ABSTRACTAUDIOALBUM_INCLUDED
+// ----------------------------------------------------------------------------
+// Remove abstractalbums which have no songs associated.
+// ----------------------------------------------------------------------------
+//
+void CMPXDbHandler::RemoveAbstractAlbumsWithNoSongL()
+ {
+ MPX_FUNC("CMPXDbHandler::RemoveAbstractAlbumsWithNoSongL");
+
+ BeginTransactionL();
+ RArray<TUint32> iItemsIds;
+ CleanupClosePushL(iItemsIds);
+ //get all abstractalbum with no songs associated.
+ iDbAbstractAlbum->GetAllItemsWithNoSongL(iItemsIds);
+ TInt count = iItemsIds.Count();
+ TInt err = KErrNone;
+ if (count)
+ {
+ MPX_DEBUG2("CMPXDbHandler::RemoveAbstractAlbumsWithNoSongL, abstractalbum count[%d] ", iItemsIds.Count());
+ CMPXMessageArray* itemChangedMessages = CMPXMediaArray::NewL();
+ CleanupStack::PushL(itemChangedMessages);
+
+ //go through each one to delete
+ for (TInt i=0; i< count; i++)
+ {
+ TRAP(err, RemoveAbstractAlbumL(iItemsIds[i], *itemChangedMessages, EFalse));
+ if (err != KErrNone)
+ {
+ MPX_DEBUG2("CMPXDbHandler::RemoveAbstractAlbumsWithNoSongL, error happens when delete abstractalbum, err ", err);
+ }
+ }
+ CleanupStack::PopAndDestroy(itemChangedMessages);
+ }
+ CleanupStack::PopAndDestroy(&iItemsIds);
+ EndTransactionL(err);
+ }
+
+// ----------------------------------------------------------------------------
+// Remove .alb entry from AbstractAlnum table, TN table if .alb files deleted
+// from file manager when refresh library
+// ----------------------------------------------------------------------------
+//
+void CMPXDbHandler::AbstractAlbumCleanUpL()
+ {
+ MPX_FUNC("CMPXDbHandler::AbstractAlbumCleanUpL");
+ RArray<TMPXAttribute> attributes;
+ CleanupClosePushL(attributes);
+ attributes.AppendL(KMPXMediaGeneralUri);
+ CMPXMediaArray* mediaArray = CMPXMediaArray::NewL();
+ CleanupStack::PushL(mediaArray);
+
+ iDbAbstractAlbum->GetAllCategoryItemsL(attributes.Array(), *mediaArray);
+
+ TInt count(mediaArray->Count());
+ if (count)
+ {
+ CMPXMessageArray* itemChangedMessages = CMPXMediaArray::NewL();
+ CleanupStack::PushL(itemChangedMessages);
+ for (TInt i = 0; i < count; i++)
+ {
+ CMPXMedia* element = mediaArray->AtL(i);
+ const TDesC& uri = element->ValueText(KMPXMediaGeneralUri);
+
+ //check if the file exists in file system
+ if (!(BaflUtils::FileExists(iFs, uri)))
+ {
+ //generate abstractalbum UID with the Uri
+ TUint32 abstractAlbumId(MPXDbCommonUtil::GenerateUniqueIdL(iFs, EMPXAbstractAlbum, uri, EFalse));
+ RemoveAbstractAlbumL(abstractAlbumId, *itemChangedMessages, ETrue);
+ }
+ }
+ CleanupStack::PopAndDestroy(itemChangedMessages);
+ }
+ CleanupStack::PopAndDestroy(mediaArray);
+ CleanupStack::PopAndDestroy(&attributes);
+ }
+#endif //ABSTRACTAUDIOALBUM_INCLUDED
// ----------------------------------------------------------------------------
// CMPXDbHandler::DoCleanupDeletedRecordsL
@@ -2425,8 +2563,7 @@
TInt attrCount(aAttrs.Count());
if ( attrCount > 1 || (attrCount == 1 && !(aAttrs[0] == KMPXMediaGeneralId)) )
{
- TInt abstractAlbumDrive(iDbAbstractAlbum->GetDriveIdL(abstractAlbumId));
- MPX_TRAPD(err, iDbMusic->GetAllSongsForAbstractAlbumL(abstractAlbumDrive, abstractAlbumId, aAttrs, aMediaArray));
+ MPX_TRAPD(err, iDbMusic->GetAllSongsForAbstractAlbumL( abstractAlbumId, aAttrs, aMediaArray));
if (err == KErrNotFound)
{
//
@@ -2987,9 +3124,9 @@
TInt aDriveId,
CMPXMessageArray* aItemChangedMessages,
TBool& aItemExist
-#ifdef ABSTRACTAUDIOALBUM_INCLUDED
- ,const TDesC& aAlbumArtist,
- const TDesC& aGenre
+#ifdef ABSTRACTAUDIOALBUM_INCLUDED
+ ,const TDesC& aUri
+ ,const TDesC& aAlbumArtist
#endif // ABSTRACTAUDIOALBUM_INCLUDED
)
{
@@ -2998,21 +3135,28 @@
MPX_PERF_START(CMPXDbHandler_AddCategoryItemL);
TBool newRecord(EFalse);
-#ifdef ABSTRACTAUDIOALBUM_INCLUDED
- TUint32 id(0);
+#ifdef ABSTRACTAUDIOALBUM_INCLUDED
+ TUint32 id(0);
//for AbstractAlbum, SetAbstractAlbum, associate songs with abstractalbum.
//only called with newRecord as EFalse
//increment songCount if id exist in AbstractAlbum table, otherwise do nothing.
+
+ //only Genre, AbstractAlbum are not case sensitive
+ TBool caseSensitive = ETrue;
+ if ((aCategory == EMPXGenre) || (aCategory == EMPXAbstractAlbum))
+ caseSensitive = EFalse;
+
if (aCategory == EMPXAbstractAlbum)
- {
- id = iDbAbstractAlbum->AddItemL( aName, aAlbumArtist, aGenre, aDriveId, newRecord, (aCategory != EMPXGenre));
- }
+ {
+ id = iDbAbstractAlbum->AddItemL(aUri, aName, aAlbumArtist, aDriveId, newRecord, caseSensitive);
+ }
else
{
- id = DbCategoryL(aCategory)->AddItemL(aName, aDriveId, newRecord, (aCategory != EMPXGenre));
-#else
+ id = DbCategoryL(aCategory)->AddItemL(aName, aDriveId, newRecord, caseSensitive);
+#else
TUint32 id(DbCategoryL(aCategory)->AddItemL(aName, aDriveId, newRecord, (aCategory != EMPXGenre)));
#endif // ABSTRACTAUDIOALBUM_INCLUDED
+
if (newRecord && aItemChangedMessages)
{
MPXDbCommonUtil::AddItemChangedMessageL(*aItemChangedMessages, id, EMPXItemInserted,
@@ -3022,7 +3166,7 @@
// and it is NOT a new record,
// we should send the item number changed message
else if ( ( aCategory == EMPXGenre || aCategory == EMPXComposer ) &&
- !newRecord && aItemChangedMessages )
+ !newRecord && aItemChangedMessages )
{
MPXDbCommonUtil::AddItemChangedMessageL(*aItemChangedMessages, id, EMPXItemModified,
aCategory, KDBPluginUid);
@@ -3032,7 +3176,6 @@
}
#endif // ABSTRACTAUDIOALBUM_INCLUDED
MPX_PERF_END(CMPXDbHandler_AddCategoryItemL);
-
return id;
}
@@ -3220,10 +3363,10 @@
// ----------------------------------------------------------------------------------------------------------
// CMPXDbHandler::HandleGetAlbumNameForSongL
// ----------------------------------------------------------------------------------------------------------
-//
+//
HBufC* CMPXDbHandler::HandleGetAlbumNameFromIdL(TUint32 aId)
{
- return iDbAbstractAlbum->GetNameL(aId);
+ return iDbAbstractAlbum->GetUriL(aId);
}
#endif // ABSTRACTAUDIOALBUM_INCLUDED
// End of file
--- a/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/src/mpxdbmusic.cpp Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/src/mpxdbmusic.cpp Tue Apr 27 16:34:37 2010 +0300
@@ -112,7 +112,7 @@
iObserver(aObserver)
#ifdef ABSTRACTAUDIOALBUM_INCLUDED
,iArtNeedUpdated(ETrue)
-#endif
+#endif
{
MPX_FUNC("CMPXDbMusic::CMPXDbMusic");
}
@@ -260,19 +260,19 @@
if(iArtNeedUpdated)
{
#endif // ABSTRACTAUDIOALBUM_INCLUDED
- // Update Album table
- if (aMedia.IsSupported(KMPXMediaMusicAlbumArtFileName) || aMedia.IsSupported(KMPXMediaMusicArtist))
- {
- TUint32 albumId = recordset.ColumnInt64(EMusicAlbum);
- iObserver.UpdateCategoryItemL(EMPXAlbum, albumId, aMedia, driveUnit, aItemChangedMessages);
- }
+ // Update Album table
+ if (aMedia.IsSupported(KMPXMediaMusicAlbumArtFileName) || aMedia.IsSupported(KMPXMediaMusicArtist))
+ {
+ TUint32 albumId = recordset.ColumnInt64(EMusicAlbum);
+ iObserver.UpdateCategoryItemL(EMPXAlbum, albumId, aMedia, driveUnit, aItemChangedMessages);
+ }
- // Update Artist table
- if ( aMedia.IsSupported(KMPXMediaMusicAlbumArtFileName) )
- {
- TUint32 artistId = recordset.ColumnInt64(EMusicArtist);
- iObserver.UpdateCategoryItemL(EMPXArtist, artistId, aMedia, driveUnit, aItemChangedMessages);
- }
+ // Update Artist table
+ if ( aMedia.IsSupported(KMPXMediaMusicAlbumArtFileName) )
+ {
+ TUint32 artistId = recordset.ColumnInt64(EMusicArtist);
+ iObserver.UpdateCategoryItemL(EMPXArtist, artistId, aMedia, driveUnit, aItemChangedMessages);
+ }
#ifdef ABSTRACTAUDIOALBUM_INCLUDED
}
iArtNeedUpdated = ETrue; //reset flag
@@ -822,13 +822,12 @@
// ----------------------------------------------------------------------------
//
void CMPXDbMusic::GetAllSongsForAbstractAlbumL(
- TInt aDrive,
- TInt aAbstractAlbumId,
+ TUint aAbstractAlbumId,
const TArray<TMPXAttribute>& aAttrs,
CMPXMediaArray& aMediaArray)
{
- MPX_FUNC("CMPXDbMusic::GetAllSongsL");
- ExecuteMediaQueryL(aDrive, aAttrs, aMediaArray, KQueryMusicGetSongsForAbstractAlbum(), aAbstractAlbumId);
+ MPX_FUNC("CMPXDbMusic::GetAllSongsForAbstractAlbumL");
+ ExecuteMediaQueryL(aAttrs, aMediaArray, KQueryMusicGetSongsForAbstractAlbum(), aAbstractAlbumId);
}
#endif // ABSTRACTAUDIOALBUM_INCLUDED
@@ -1866,12 +1865,12 @@
#ifdef ABSTRACTAUDIOALBUM_INCLUDED
TParsePtrC parse(albumArtFilename);
TPtrC ext(parse.Ext());
- //set flag to false, so .alb will not overwrite art field in album, artist table
- // when song with embedded art
- if ((ext.CompareF(KAbstractAlbumExt)== 0) && containEmbeddedArt)
- {
- iArtNeedUpdated = EFalse;
- }
+ //set flag to false, so .alb will not overwrite art field in album, artist table
+ // when song with embedded art
+ if ((ext.CompareF(KAbstractAlbumExt)== 0) && containEmbeddedArt)
+ {
+ iArtNeedUpdated = EFalse;
+ }
if ( ((ext.CompareF(KAbstractAlbumExt)== 0) && !containEmbeddedArt) || (ext.CompareF(KAbstractAlbumExt)!= 0))
{
@@ -2020,7 +2019,7 @@
} // end switch
} // end for
- // get the current artist/album/genre/composer
+ // get the current artist/album/genre/composer/abstractalbum
// this is required because the recordset may be reused by the code below
TUint32 artistId(0);
TUint32 albumId(0);
@@ -2267,7 +2266,13 @@
{
// validate the drive letter, TDriveUnit panics if given drive isn't between
// 'A' to 'Z'
- TDriveUnit driveUnit(aCriteria.ValueText(KMPXMediaGeneralDrive));
+ const TDesC& drive = aCriteria.ValueText(KMPXMediaGeneralDrive);
+ TInt driveInt = 0;
+ if( drive == KNullDesC || RFs::CharToDrive( drive[0], driveInt )!= KErrNone )
+ {
+ User::Leave(KErrArgument);
+ }
+ TDriveUnit driveUnit(drive);
MPXDbCommonUtil::AddSqlCriterionL(*sqlCriteria, KCriterionMusicVolume,
MPXDbCommonUtil::GetVolIdMatchDriveIdL(iDbManager.Fs(), driveUnit));
volumeAdded = ETrue;
@@ -2389,9 +2394,20 @@
TPtrC name(aMedia.ValueText(aAttribute).Left(KMCMaxTextLen));
// construct the new ID for the category record
+#ifdef ABSTRACTAUDIOALBUM_INCLUDED
+ // genre and abstractalbum are not case sensitive
+ TBool caseSensitive = ETrue;
+ if ((aCategory == EMPXGenre) || (aCategory == EMPXAbstractAlbum))
+ caseSensitive = EFalse;
+
+ aItemId = MPXDbCommonUtil::GenerateUniqueIdL(iDbManager.Fs(), aCategory,
+ name, caseSensitive);
+
+#else
// only genre is not case sensitive
aItemId = MPXDbCommonUtil::GenerateUniqueIdL(iDbManager.Fs(), aCategory,
name, (aCategory != EMPXGenre));
+#endif
if (!aOldId || (aOldId != aItemId))
{
// only add if the ID changed,
@@ -2401,20 +2417,28 @@
{
if (aMedia.ValueTObjectL<TMPXGeneralCategory>(KMPXMediaGeneralCategory) == EMPXSong )
{
- iObserver.AddCategoryItemL(aCategory, name, aDriveId,
- aItemChangedMessages, itemAdded, KNullDesC, KNullDesC);
+ iObserver.AddCategoryItemL(aCategory, KNullDesC, aDriveId,
+ aItemChangedMessages, itemAdded, name, KNullDesC);
}
else
- {
- TPtrC albumartist(aMedia.ValueText(KMPXMediaMusicAlbumArtist).Left(KMCMaxTextLen));
- //get AlbumArt, Genre for AbstractAlbum
- MPX_DEBUG2(" Music albumartist[%S]", &albumartist);
- TPtrC genre(aMedia.ValueText(KMPXMediaMusicGenre).Left(KMCMaxTextLen));
- MPX_DEBUG2(" Music Genre[%S]", &genre);
-
- // ignore the return value
- iObserver.AddCategoryItemL(aCategory, name, aDriveId,
- aItemChangedMessages, itemAdded, albumartist, genre);
+ {
+ TPtrC albumartist(KNullDesC);
+ TPtrC abstractAlbumName(KNullDesC);
+ if (aMedia.IsSupported(KMPXMediaMusicAlbumArtist) )
+ {
+ albumartist.Set(aMedia.ValueText(KMPXMediaMusicAlbumArtist).Left(KMCMaxTextLen));
+ //get AlbumArt AbstractAlbum
+ MPX_DEBUG2(" albumartist[%S]", &albumartist);
+ }
+ if (aMedia.IsSupported(KMPXMediaGeneralTitle) )
+ {
+ abstractAlbumName.Set(aMedia.ValueText(KMPXMediaGeneralTitle).Left(KMCMaxTextLen));
+ MPX_DEBUG2(" abstractAlbumName[%S]", &abstractAlbumName);
+ }
+ // ignore the return value
+
+ iObserver.AddCategoryItemL(aCategory, abstractAlbumName, aDriveId,
+ aItemChangedMessages, itemAdded, name, albumartist);
}
}
else
@@ -2429,24 +2453,29 @@
}
else
{
+#ifdef ABSTRACTAUDIOALBUM_INCLUDED
+ // genre and abstractalbum are not case sensitive
+ aItemId = MPXDbCommonUtil::GenerateUniqueIdL(iDbManager.Fs(), aCategory, KNullDesC,
+ (aCategory != EMPXGenre)&&(aCategory != EMPXAbstractAlbum));
+#else
// only genre is not case sensitive
aItemId = MPXDbCommonUtil::GenerateUniqueIdL(iDbManager.Fs(), aCategory, KNullDesC,
(aCategory != EMPXGenre));
+#endif
if (!aOldId || (aOldId != aItemId))
{
#ifdef ABSTRACTAUDIOALBUM_INCLUDED
if(aCategory == EMPXAbstractAlbum)
- {
- //get AlbumArt, Genre for AbstractAlbum
+ {
+ //get AlbumArt for AbstractAlbum
TPtrC albumartist(aMedia.ValueText(KMPXMediaMusicAlbumArtist).Left(KMCMaxTextLen));
- MPX_DEBUG2(" Music albumartist[%S]", &albumartist);
- TPtrC genre(aMedia.ValueText(KMPXMediaMusicGenre).Left(KMCMaxTextLen));
- MPX_DEBUG2(" Music Genre[%S]", &genre);
-
+ MPX_DEBUG2(" Music albumartist[%S]", &albumartist);
+ TPtrC abstractAlbumName(aMedia.ValueText(KMPXMediaGeneralTitle).Left(KMCMaxTextLen));
+ MPX_DEBUG2(" Music abstractAlbumName[%S]", &abstractAlbumName);
// ignore the return value
- iObserver.AddCategoryItemL(aCategory, KNullDesC, aDriveId,
- aItemChangedMessages, itemAdded, albumartist, genre);
- }
+ iObserver.AddCategoryItemL(aCategory, abstractAlbumName, aDriveId,
+ aItemChangedMessages, itemAdded, KNullDesC, albumartist);
+ }
else
#endif // ABSTRACTAUDIOALBUM_INCLUDED
{
@@ -2457,12 +2486,8 @@
updated = ETrue;
}
}
-#ifdef ABSTRACTAUDIOALBUM_INCLUDED
- //no need to delete old item for abstractalbum
- if (aOldId && (aOldId != aItemId) && (aCategory != EMPXAbstractAlbum))
-#else
- if (aOldId && (aOldId != aItemId))
-#endif // ABSTRACTAUDIOALBUM_INCLUDED
+
+ if (aOldId && (aOldId != aItemId))
{
iObserver.DeleteSongForCategoryL(aCategory, aOldId, aDriveId,
aItemChangedMessages, itemNotRemoved);
--- a/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/src/mpxdbplugin.cpp Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/src/mpxdbplugin.cpp Tue Apr 27 16:34:37 2010 +0300
@@ -2590,11 +2590,11 @@
mediaId = iDbHandler->GetPlaylistIdMatchingUriL(uri);
iDbHandler->RemovePlaylistL(mediaId, *fp, *itemChangedMessages);
}
-#ifdef ABSTRACTAUDIOALBUM_INCLUDED
+#ifdef ABSTRACTAUDIOALBUM_INCLUDED
else if (category == EMPXAbstractAlbum )
{
mediaId = iDbHandler->GetAbstractAlbumIdMatchingUriL(uri);
- iDbHandler->RemoveAbstractAlbumL(mediaId, *fp, *itemChangedMessages);
+ iDbHandler->RemoveAbstractAlbumL(mediaId, *itemChangedMessages, EFalse);
}
#endif // ABSTRACTAUDIOALBUM_INCLUDED
else
@@ -3530,18 +3530,14 @@
case EMPXAbstractAlbum:
{
if (aMedia.IsSupported(KMPXMediaGeneralUri))
- {
-
+ {
+ //add abstractalbum to AbstractAlbum table
itemId = iDbHandler->AddAbstractAlbumL(aMedia, &aMessageArray);
-
+
+ //in case aMedia as mediaArray which contains songs as arrayContents, need to update all songs associated
if ( aMedia.IsSupported(KMPXMediaArrayContents))
{
- //need to update songs information to music table
- CMPXMediaArray* array = aMedia.Value<CMPXMediaArray>(KMPXMediaArrayContents);
- if (array->Count())
- {
- iDbHandler->UpdateAbstractAlbumSongsL(aMedia, aMessageArray);
- }
+ iDbHandler->UpdateSongsAbstractAlbumInfoL(aMedia, aMessageArray);
}
}
else
@@ -3719,7 +3715,20 @@
#ifdef ABSTRACTAUDIOALBUM_INCLUDED
case EMPXAbstractAlbum:
{
- visibleChange = iDbHandler->UpdateAbstractAlbumSongsL(aMedia, aMessageArray);
+ //update all songes which associate with ABSTRACTALBUM
+ if (aMedia.IsSupported(KMPXMediaGeneralUri))
+ {
+ //in case aMedia as mediaArray which contains songs as arrayContents, need to update all songs associated
+ if ( aMedia.IsSupported(KMPXMediaArrayContents))
+ {
+ iDbHandler->UpdateSongsAbstractAlbumInfoL(aMedia, aMessageArray);
+ }
+ //only update field values in abstractalbum table, or renaming (change uri) for abstractalbum table
+ else
+ {
+ visibleChange = iDbHandler->UpdateAbstractAlbumL(aMedia, aMessageArray);
+ }
+ }
}
break;
#endif // ABSTRACTAUDIOALBUM_INCLUDED
--- a/mpxplugins/serviceplugins/collectionplugins/mpxsqlitepodcastdbplugin/inc/mpxdbpodcast.h Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/serviceplugins/collectionplugins/mpxsqlitepodcastdbplugin/inc/mpxdbpodcast.h Tue Apr 27 16:34:37 2010 +0300
@@ -148,13 +148,16 @@
* @param aEpisodeId the ID of the episode to be removed
* @param aUriArray on return contains the URI of the deleted episode
* @param aItemChangedMessages on return contains changed messages
+ * @param IsAdd denotes whether DeleteEpisodeL is called as part of
+ * adding an episode or deleting an episode ,if called as part of adding
+ * pass ETrue else if part of deletion pass EFalse.
* @param aDeleteRecord indicates whether the client has explictly requested
* to delete the records from the database. If ETrue, records
* associated with the media will be deleted from the database;
* if EFalse, the record will be marked as deleted only.
*/
void DeleteEpisodeL(TUint32 aEpisodeId, CDesCArray& aUriArray,
- CMPXMessageArray& aItemChangedMessages, TBool aDeleteRecord);
+ CMPXMessageArray& aItemChangedMessages, TBool IsAdd, TBool aDeleteRecord);
/**
* Remove episodes matching a category from the Podcast table
@@ -618,6 +621,8 @@
* @param aRecordset episode record to be removed
* @param aUriArray, on return will be filled with all the paths that were removed
* @param aItemChangedMessages: change events as result of the episode removal
+ * @param IsAdd denotes whether DoDeleteEpisodeL is called as part of
+ * adding an episode or deleting an episode.
* @param aDeleteRecord: indicates whether the client has explictly requested
* to delete the records from the database. If ETrue, records
* associated with the media will be deleted from the database;
@@ -626,7 +631,7 @@
* @return Error code.
*/
void DoDeleteEpisodeL(RSqlStatement& aRecordset, CDesCArray& aUriArray,
- CMPXMessageArray& aItemChangedMessages, TBool aDeleteRecord = EFalse);
+ CMPXMessageArray& aItemChangedMessages, TBool IsAdd, TBool aDeleteRecord = EFalse);
/**
* Constructs the fields and corresponding values to be written into the Podcast
--- a/mpxplugins/serviceplugins/collectionplugins/mpxsqlitepodcastdbplugin/src/mpxdbpodcast.cpp Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/serviceplugins/collectionplugins/mpxsqlitepodcastdbplugin/src/mpxdbpodcast.cpp Tue Apr 27 16:34:37 2010 +0300
@@ -144,7 +144,16 @@
CMPXMessageArray* itemChangedMessages = CMPXMediaArray::NewL();
CleanupStack::PushL( itemChangedMessages );
- DeleteEpisodeL( episodeId, *fp, *itemChangedMessages, ETrue );
+ //Isadd is passed as true as its called from AddEpisodeL
+ //IsAdd true means dont decrement the episode count from tables like
+ //Artist Genere, Album, and Composer , which is not needed when
+ //DeleteEpisodeL is called as part of Add operation
+ TRAPD( err, DeleteEpisodeL( episodeId, *fp, *itemChangedMessages, ETrue, ETrue ) );
+
+ if ( err != KErrNone ) // EpisodeExistL has found a record from a previously deleted episode, cleanup it now
+ {
+ iDbManager.ExecuteQueryL( aDrive, KQueryPodcastDelete(), episodeId );
+ }
CleanupStack::PopAndDestroy( itemChangedMessages );
CleanupStack::PopAndDestroy( fp );
@@ -187,7 +196,7 @@
void CMPXDbPodcast::DeleteEpisodeL(
TUint32 aEpisodeId,
CDesCArray& aUriArray,
- CMPXMessageArray& aItemChangedMessages,
+ CMPXMessageArray& aItemChangedMessages, TBool IsAdd,
TBool aDeleteRecord)
{
MPX_FUNC("CMPXDbPodcast::DeleteEpisodeL");
@@ -199,7 +208,7 @@
{
User::Leave(KErrNotFound);
}
- DoDeleteEpisodeL(recordset, aUriArray, aItemChangedMessages, aDeleteRecord);
+ DoDeleteEpisodeL(recordset, aUriArray, aItemChangedMessages, IsAdd, aDeleteRecord);
CleanupStack::PopAndDestroy(&recordset);
}
@@ -1224,7 +1233,7 @@
void CMPXDbPodcast::DoDeleteEpisodeL(
RSqlStatement& aRecordset,
CDesCArray& aUriArray,
- CMPXMessageArray& aItemChangedMessages,
+ CMPXMessageArray& aItemChangedMessages, TBool IsAdd ,
TBool aDeleteRecord)
{
MPX_FUNC("CMPXDbPodcast::DoDeleteEpisodeL");
@@ -1235,22 +1244,28 @@
aUriArray.AppendL(*uri);
TDriveUnit driveUnit(*uri);
CleanupStack::PopAndDestroy(uri);
-
- // process the author
- iObserver.DeleteEpisodeForCategoryL(EMPXArtist, aRecordset.ColumnInt64(EPodcastArtist),
- driveUnit, &aItemChangedMessages);
+
+ //if adding then dont delete episode category
+ if(!IsAdd)
+ {
+ // process the author
+ iObserver.DeleteEpisodeForCategoryL(EMPXArtist, aRecordset.ColumnInt64(EPodcastArtist),
+ driveUnit, &aItemChangedMessages );
+
+ // process the title
+ iObserver.DeleteEpisodeForCategoryL(EMPXAlbum, aRecordset.ColumnInt64(EPodcastAlbum),
+ driveUnit, &aItemChangedMessages);
+
+ // process the genre
+ iObserver.DeleteEpisodeForCategoryL(EMPXGenre, aRecordset.ColumnInt64(EPodcastGenre),
+ driveUnit, &aItemChangedMessages);
+
+ // process the composer
+ iObserver.DeleteEpisodeForCategoryL(EMPXComposer, aRecordset.ColumnInt64(EPodcastComposer),
+ driveUnit, &aItemChangedMessages);
+ }
+
- // process the title
- iObserver.DeleteEpisodeForCategoryL(EMPXAlbum, aRecordset.ColumnInt64(EPodcastAlbum),
- driveUnit, &aItemChangedMessages);
-
- // process the genre
- iObserver.DeleteEpisodeForCategoryL(EMPXGenre, aRecordset.ColumnInt64(EPodcastGenre),
- driveUnit, &aItemChangedMessages);
-
- // process the composer
- iObserver.DeleteEpisodeForCategoryL(EMPXComposer, aRecordset.ColumnInt64(EPodcastComposer),
- driveUnit, &aItemChangedMessages);
// add a change event for removing the episode itself
TUint32 episodeId(aRecordset.ColumnInt64(EPodcastUniqueId));
--- a/mpxplugins/serviceplugins/collectionplugins/mpxsqlitepodcastdbplugin/src/mpxpodcastdbhandler.cpp Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/serviceplugins/collectionplugins/mpxsqlitepodcastdbplugin/src/mpxpodcastdbhandler.cpp Tue Apr 27 16:34:37 2010 +0300
@@ -1211,8 +1211,9 @@
}
#endif
- // delete the episode
- iDbPodcast->DeleteEpisodeL(aEpisodeId, aUriArray, aItemChangedMessages, deleteRecord);
+ // delete the episode
+ // IsAdd is passed EFalse to ensure the episode count will be decremented
+ iDbPodcast->DeleteEpisodeL(aEpisodeId, aUriArray, aItemChangedMessages, EFalse, deleteRecord);
}
// ----------------------------------------------------------------------------
--- a/mpxplugins/serviceplugins/playbackplugins/localaudio/src/mpxlocalaudioplayback.cpp Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/serviceplugins/playbackplugins/localaudio/src/mpxlocalaudioplayback.cpp Tue Apr 27 16:34:37 2010 +0300
@@ -435,10 +435,28 @@
{
// Re-init audio effects
MPX_DEBUG1("CMPXLocalAudioPlayback::CommandL EPbApplyEffect");
+ iAudioEffects->DestroyAudioEffect();
if( ( aData == KAudioEffectsID || aData == KEqualizerID ) &&
( EStateInitialised == iState ) )
{
- TRAP_IGNORE( iAudioEffects->CreateAudioEffectsL() );
+ TRAPD(err, iAudioEffects->CreateAudioEffectsL() );
+ if(err)
+ {
+ MPX_DEBUG2("EPbApplyEffect err = %d", err);
+ TRAPD(err, iAudioEffects->CreateAudioEffectsL() );
+ if(err)
+ {
+ MPX_DEBUG2("EPbApplyEffect again err = %d", err);
+ }
+ else
+ {
+ MPX_DEBUG1("EPbApplyEffect again set");
+ }
+ }
+ else
+ {
+ MPX_DEBUG1("EPbApplyEffect set");
+ }
iAudioEffectsOn = ETrue;
}
break;
--- a/mpxplugins/serviceplugins/playbackplugins/progressdownloadsb/inc/mpxprogressdownloadsb.h Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/serviceplugins/playbackplugins/progressdownloadsb/inc/mpxprogressdownloadsb.h Tue Apr 27 16:34:37 2010 +0300
@@ -208,7 +208,7 @@
void ResetEnhancedMediaClient();
- void MoveDownloadedFileToMusicFolderL();
+ void MoveDownloadedFileToMusicFolder();
/**
* Consumes the rights for the current media according
--- a/mpxplugins/serviceplugins/playbackplugins/progressdownloadsb/src/mpxprogressdownloadsb.cpp Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/serviceplugins/playbackplugins/progressdownloadsb/src/mpxprogressdownloadsb.cpp Tue Apr 27 16:34:37 2010 +0300
@@ -341,7 +341,7 @@
if ( !iFileSaved )
{
iDrmMediaUtility->Close(); // release file handle so we can move file.
- MoveDownloadedFileToMusicFolderL();
+ MoveDownloadedFileToMusicFolder();
}
}
iDrmMediaUtility->Close();
@@ -357,7 +357,7 @@
if ( !iFileSaved )
{
iDrmMediaUtility->Close(); // release file handle so we can move file.
- MoveDownloadedFileToMusicFolderL();
+ MoveDownloadedFileToMusicFolder();
}
}
iDrmMediaUtility->Close();
@@ -646,7 +646,7 @@
RApaLsSession aps;
error = aps.Connect(); // always fail in console test
- if ( KErrNone == error )
+ if ( iPdPath != NULL && KErrNone == error )
{
CleanupClosePushL(aps);
TUid ignore;
@@ -669,7 +669,7 @@
{
TRAP( err, metaDataUtility->OpenFileL( *iFileHandle, iMimeType.Des8() ) );
}
- else
+ else if ( iPdPath != NULL )
{
TRAP( err, metaDataUtility->OpenFileL( *iPdPath, iMimeType.Des8() ) );
}
@@ -680,7 +680,7 @@
{
TRAP( err, metaDataUtility->OpenFileL( *iFileHandle ) );
}
- else
+ else if( iPdPath != NULL )
{
TRAP( err, metaDataUtility->OpenFileL( *iPdPath ) );
}
@@ -791,7 +791,7 @@
break;
}
case EMetaDataJpeg:
- if ( attrM & EMPXMediaMusicAlbumArtFileName )
+ if ( ( iPdPath != NULL ) && attrM & EMPXMediaMusicAlbumArtFileName )
{
media->SetTextValueL(
TMPXAttribute(KMPXMediaIdMusic,EMPXMediaMusicAlbumArtFileName),
@@ -814,7 +814,7 @@
}
- if (attrG & EMPXMediaGeneralUri)
+ if ( ( iPdPath != NULL ) && attrG & EMPXMediaGeneralUri)
{
media->SetTextValueL(
TMPXAttribute(KMPXMediaIdGeneral,EMPXMediaGeneralUri),
@@ -851,7 +851,7 @@
}
- if (attrG & EMPXMediaGeneralSize)
+ if ( ( iPdPath != NULL ) && attrG & EMPXMediaGeneralSize)
{
RFs fs;
User::LeaveIfError(fs.Connect());
@@ -1029,7 +1029,7 @@
{
ConsumeRights( ContentAccess::EPause );
}
- MoveDownloadedFileToMusicFolderL();
+ MoveDownloadedFileToMusicFolder();
}
}
else if ( event->GetErrorCode() == KErrDied || event->GetErrorCode() == KErrInUse ||
@@ -1204,7 +1204,7 @@
(iState == EStateInitialising && iErrorOfStreamClosedEvent == KErrCANoRights))
&& !iFileSaved )
{
- MoveDownloadedFileToMusicFolderL();
+ MoveDownloadedFileToMusicFolder();
}
iErrorOfStreamClosedEvent = KErrNone ;
@@ -1246,7 +1246,12 @@
{
delete iPdPath;
iPdPath = NULL;
- iPdPath = iMovedFileName.AllocL();
+ MPX_TRAPD( err, iPdPath = iMovedFileName.AllocL() );
+ if( err != KErrNone )
+ {
+ MPX_DEBUG2("iPdPath = iMovedFileName.AllocL() with leave err=%d", err );
+ break;
+ }
iFileSaved = ETrue;
}
else
@@ -1258,7 +1263,12 @@
iMAudioProgDLSource->FileName( ptr );
delete iPdPath;
iPdPath = NULL;
- iPdPath = ptr.AllocL();
+ MPX_TRAPD(err, iPdPath = ptr.AllocL() );
+ if( err != KErrNone )
+ {
+ MPX_DEBUG2("iPdPath = ptr.AllocL() with leave err=%d", err );
+ break;
+ }
iFileSaved = ETrue;
}
}
@@ -1393,13 +1403,30 @@
changed = ETrue;
}
}
-
+
// Change setting in cenrep
- if ( aVolume != iVolumeWatcher->CurrentValueL() )
+ TInt currentVol( 0 );
+ MPX_TRAPD( volError, currentVol = iVolumeWatcher->CurrentValueL() );
+ if ( volError == KErrNone && aVolume != currentVol )
{
- iVolumeWatcher->SetValueL( aVolume );
+ MPX_TRAP( volError, iVolumeWatcher->SetValueL( aVolume ) );
+ if( aVolume == 0 )
+ {
+ MPX_TRAP( volError, iMuteWatcher->SetValueL( ETrue ) );
+ }
+ else if( aVolume > 0 )
+ {
+ TBool currentMute( EFalse );
+
+ MPX_TRAP( volError, currentMute = iMuteWatcher->CurrentValueL() );
+ if( volError == KErrNone && currentMute )
+ {
+ MPX_TRAP( volError, iMuteWatcher->SetValueL( EFalse ) );
+ }
+ }
}
+
// Notify observer if value changed
if ( changed )
{
@@ -1468,16 +1495,16 @@
// CMPXProgressDownloadSB::MoveDownloadedFileToMusicFolderL
// -----------------------------------------------------------------------------
//
-void CMPXProgressDownloadSB::MoveDownloadedFileToMusicFolderL()
+void CMPXProgressDownloadSB::MoveDownloadedFileToMusicFolder()
{
- if ( iFileSaved ||
+ if ( iFileSaved || iPdPath == NULL ||
( (*iPdPath).Length() == 0 ) ||
iMAudioProgDLSource->GetDownloadStatus() == MProgDLSource::EDeleted )
{
return;
}
- MPX_DEBUG1("CMPXProgressDownloadSB::MoveDownloadedFileToMusicFolderL() entering");
+ MPX_DEBUG1("CMPXProgressDownloadSB::MoveDownloadedFileToMusicFolder() entering");
TParse parse;
parse.Set(*iPdPath,NULL,NULL);
TPtrC drive = parse.Drive();
@@ -1494,7 +1521,7 @@
iFileSaved = ETrue;
}
- MPX_DEBUG1("CMPXProgressDownloadSB::MoveDownloadedFileToMusicFolderL() exiting");
+ MPX_DEBUG1("CMPXProgressDownloadSB::MoveDownloadedFileToMusicFolder() exiting");
}
// ----------------------------------------------------------------------------
--- a/mpxplugins/viewplugins/inc/mpxcommonplaybackviewimp.h Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/viewplugins/inc/mpxcommonplaybackviewimp.h Tue Apr 27 16:34:37 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description: MPX common playback view implementation
-* Version : %version: da1mmcf#41.1.6.1.1.1.12 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: e003sa33#41.1.6.1.1.1.13 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -120,7 +120,7 @@
*
* @param aPlaybackState Current playback state.
*/
- IMPORT_C virtual void UpdatePlaybackState(
+ IMPORT_C virtual void UpdatePlaybackStateL(
TMPXPlaybackState aPlaybackState );
/**
@@ -292,7 +292,7 @@
/**
* Checks if UPnP AP is defined
*/
- IMPORT_C virtual TBool IsUpnpVisible();
+ IMPORT_C virtual TBool IsUpnpVisibleL();
/**
* Displays the available players in the Play via submenu
@@ -612,7 +612,7 @@
/**
* Updates the middle (play/pause) toolbar control key icon based on playback state
*/
- IMPORT_C void UpdateToolbar();
+ IMPORT_C void UpdateToolbarL();
/**
* Launch Metadata Dialog to show the file details
--- a/mpxplugins/viewplugins/inc/mpxupnpplaybackdialog.h Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/viewplugins/inc/mpxupnpplaybackdialog.h Tue Apr 27 16:34:37 2010 +0300
@@ -105,7 +105,7 @@
*
* @param aPlaybackState Current playback state.
*/
- void UpdatePlaybackState(
+ void UpdatePlaybackStateL(
TMPXPlaybackState aPlaybackState );
/**
@@ -460,21 +460,21 @@
*
* @param aVolume volume value.
*/
- void SetVolume( const TInt aVolume );
+ void SetVolumeL( const TInt aVolume );
/**
* Mutes the playback volume.
*/
- void MuteVolume();
+ void MuteVolumeL();
/**
* Unmutes the playback volume.
*/
- void UnMuteVolume();
+ void UnMuteVolumeL();
/**
* Update toolbar.
*/
- void UpdateToolbar();
+ void UpdateToolbarL();
/**
* From MAknToolbarObserver
* Processes user commands.
--- a/mpxplugins/viewplugins/views/collectionview/src/mpxcollectionviewcontainer.cpp Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/viewplugins/views/collectionview/src/mpxcollectionviewcontainer.cpp Tue Apr 27 16:34:37 2010 +0300
@@ -120,13 +120,13 @@
if ( index != KErrNotFound )
{
// Update the previous item as not playing anymore
- iCommonContainer->DrawLbxItem( index );
+ iCommonContainer->DrawLbxItemL( index );
}
index = iLbxArray->GetPlaybackIndex();
if ( index != KErrNotFound )
{
// Update new item as playing
- iCommonContainer->DrawLbxItem( index );
+ iCommonContainer->DrawLbxItemL( index );
}
}
}
--- a/mpxplugins/viewplugins/views/collectionview/src/mpxcollectionviewimp.cpp Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/viewplugins/views/collectionview/src/mpxcollectionviewimp.cpp Tue Apr 27 16:34:37 2010 +0300
@@ -1432,7 +1432,7 @@
}
iContainer->Common()->SetLbxCurrentItemIndexAndDraw( currentItem );
//show new indicator
- iContainer->Common()->DrawLbxItem(currentItem);
+ iContainer->Common()->DrawLbxItemL(currentItem);
UpdateReorderNaviPaneL();
}
@@ -2009,7 +2009,7 @@
#ifdef UPNP_INCLUDED
if ( iUpnpCopyCommand && iUpnpFrameworkSupport)
{
- returnValue = iUpnpCopyCommand->IsAvailableL();
+ TRAP_IGNORE( returnValue = iUpnpCopyCommand->IsAvailableL() );
}
#endif
return returnValue;
@@ -6342,7 +6342,7 @@
if (!(aResourceId == R_AVKON_MENUPANE_MARKABLE_LIST && usbUnblockingStatus == EMPXUSBUnblockingPSStatusActive))
{
// Custom handling of menu pane for markable lists
- iContainer->Common()->HandleMarkableListDynInitMenuPane(
+ iContainer->Common()->HandleMarkableListDynInitMenuPaneL(
aResourceId,
aMenuPane );
}
--- a/mpxplugins/viewplugins/views/collectionviewhg/data/mpxcollectionviewhg.rss Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/viewplugins/views/collectionviewhg/data/mpxcollectionviewhg.rss Tue Apr 27 16:34:37 2010 +0300
@@ -1653,7 +1653,7 @@
CBA_BUTTON
{
id = EAknSoftkeyYes;
- txt = qtn_mus_sk1_play;
+ txt = "";
},
CBA_BUTTON
{
@@ -1663,7 +1663,7 @@
CBA_BUTTON
{
id = EAknSoftkeyYes;
- txt = qtn_mus_sk1_play;
+ txt = "";
}
};
}
--- a/mpxplugins/viewplugins/views/collectionviewhg/group/mpxcollectionviewhg.mmp Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/viewplugins/views/collectionviewhg/group/mpxcollectionviewhg.mmp Tue Apr 27 16:34:37 2010 +0300
@@ -46,7 +46,8 @@
SOURCE mpxcollectionviewhglistboxarray.cpp
SOURCE mpxcollectionviewhgplaylisthelper.cpp
SOURCE mpxcollectionviewhgtnloader.cpp
-SOURCE mpxpopuplist.cpp
+SOURCE mpxpopuplist.cpp
+SOURCE mpxcollectionviewhgswitchbuffer.cpp
START RESOURCE ../data/mpxcollectionviewhg.rss
HEADER
--- a/mpxplugins/viewplugins/views/collectionviewhg/inc/mpxcollectionviewhgimp.h Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/viewplugins/views/collectionviewhg/inc/mpxcollectionviewhgimp.h Tue Apr 27 16:34:37 2010 +0300
@@ -128,7 +128,7 @@
*
* @param aMedia Album to be stored
*/
- void SaveSelectedAlbum (CMPXMedia &aMedia);
+ void SaveSelectedAlbumL (CMPXMedia &aMedia);
/**
* Restores selected album.
@@ -282,7 +282,7 @@
*
* @return ETrue if visible, EFalse otherwise
*/
- TBool IsUpnpVisible();
+ TBool IsUpnpVisibleL();
/**
* Displays the available players in the Play via submenu
@@ -878,7 +878,6 @@
* Display information about MusicPlayer version.
*/
void DisplayAboutDlgL() const;
-
/*
* Internal functions to show the Educating user URI.
*/
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpxplugins/viewplugins/views/collectionviewhg/inc/mpxcollectionviewhgswitchbuffer.h Tue Apr 27 16:34:37 2010 +0300
@@ -0,0 +1,92 @@
+/*
+* 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: Defines a container for buffer switch handling.
+*
+*/
+
+#ifndef MPXCOLLECTIONVIEWHGSWITCHBUFFER_H_
+#define MPXCOLLECTIONVIEWHGSWITCHBUFFER_H_
+
+#include <e32base.h>
+
+class CHgScroller;
+class CHgVgMediaWall;
+class CGulIcon;
+
+NONSHARABLE_CLASS(CMPXCollectionViewHgSwitchBuffer) : public CBase
+ {
+public:
+
+ static CMPXCollectionViewHgSwitchBuffer* CreateBufferLC( CHgScroller& aScroller );
+
+ static CMPXCollectionViewHgSwitchBuffer* CreateBufferLC( CHgVgMediaWall& aMediaWall );
+
+ virtual ~CMPXCollectionViewHgSwitchBuffer();
+
+public:
+ void FillFromBufferL( CHgVgMediaWall& aMediaWall );
+ void FillFromBufferL( CHgScroller& aScroller, TSize aSize );
+ void SetIndexOffset( TInt aOffset );
+
+protected:
+ CMPXCollectionViewHgSwitchBuffer();
+
+protected:
+ void AddToBufferL( CGulIcon& aIcon, TInt aIndex );
+
+private:
+ NONSHARABLE_CLASS( CBufferItem ) : public CBase
+ {
+ public:
+ CBufferItem(CGulIcon* aIcon, TInt aIndex)
+ : iIcon( aIcon ), iIndex( aIndex )
+ {
+
+ }
+
+ virtual ~CBufferItem()
+ {
+ delete iIcon;
+ iIcon = NULL;
+ }
+
+ /**
+ *
+ */
+ CGulIcon* GetIcon()
+ {
+ CGulIcon* icon = iIcon;
+ iIcon = NULL;
+ return icon;
+ }
+
+ /**
+ *
+ */
+ TInt Index()
+ {
+ return iIndex;
+ }
+
+ private:
+ CGulIcon* iIcon;
+ TInt iIndex;
+ };
+
+ RPointerArray<CBufferItem> iBuffer;
+ TInt iOffset;
+ };
+
+
+#endif /* MPXCOLLECTIONVIEWHGSWITCHBUFFER_H_ */
--- a/mpxplugins/viewplugins/views/collectionviewhg/inc/mpxcollectionviewhgtnloader.h Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/viewplugins/views/collectionviewhg/inc/mpxcollectionviewhgtnloader.h Tue Apr 27 16:34:37 2010 +0300
@@ -74,7 +74,7 @@
TInt FindLoadingById(TThumbnailRequestId aId, TBool aRemove = EFalse);
TInt FindLoadingByIndex(TInt aIndex, TBool aRemove = EFalse);
static TInt LoadThumbnail( TAny* aSelf );
- void LoadNextTN();
+ void LoadNextTNL();
static TInt ResumeCallback(TAny* aPtr);
--- a/mpxplugins/viewplugins/views/collectionviewhg/inc/mpxselectedalbumhandler.h Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/viewplugins/views/collectionviewhg/inc/mpxselectedalbumhandler.h Tue Apr 27 16:34:37 2010 +0300
@@ -31,7 +31,7 @@
* @since S60 5.2
* @param aMedia Album to be stored
*/
- virtual void SaveSelectedAlbum (CMPXMedia &aMedia) = 0;
+ virtual void SaveSelectedAlbumL (CMPXMedia &aMedia) = 0;
/**
* Restores selected album.
--- a/mpxplugins/viewplugins/views/collectionviewhg/src/mpxcollectionviewhgcontainer.cpp Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/viewplugins/views/collectionviewhg/src/mpxcollectionviewhgcontainer.cpp Tue Apr 27 16:34:37 2010 +0300
@@ -81,6 +81,7 @@
#include "mpxcbahandler.h"
#include "mpxselectedalbumhandler.h"
#include "mpxpopuplist.h"
+#include "mpxcollectionviewhgswitchbuffer.h"
// CONSTANTS
_LIT( KMPXCollectionViewRscPath, "mpxcollectionviewhg.rsc" );
@@ -98,7 +99,7 @@
#ifdef __WINS__
const TInt KMPXListBufferSizeWithMediaWall = 20;
#else
-const TInt KMPXListBufferSizeWithMediaWall = 80;
+const TInt KMPXListBufferSizeWithMediaWall = 40;
#endif
const TInt KMPXMaxFileLength = 256;
const TReal KIconFactor = 0.7;
@@ -294,7 +295,7 @@
{
return MAknsControlContext::SupplyMopObject(aId, iBgContext );
}
-
+
return CCoeControl::MopSupplyObject(aId);
}
@@ -765,7 +766,7 @@
TRect clientRect = ((CAknView*)iView)->ClientRect();
SetRect( clientRect );
iBgContext->SetRect(((CAknAppUi*)iCoeEnv->AppUi())->ApplicationRect());
-
+
// call HandleLbxItemAdditionL
HandleLbxItemAdditionL();
}
@@ -1191,9 +1192,9 @@
HandleLbxItemRemovalL();
TViewType prevViewType = iCurrentViewType;
-
+
ResolveCurrentViewType( count );
-
+
iThumbnailReqMap.Reset();
if (ShuffleItemPresent())
iShuffleItem = 1;
@@ -1220,13 +1221,13 @@
if( !iLayoutSwitch )
{
- // We only need to use this for one transition coming
- // from playback view.
- TBool pbv = (iPreviousViewId == TUid::Uid(KMPXPluginTypePlaybackUid)) ? ETrue : EFalse;
- if ( pbv )
- {
+ // We only need to use this for one transition coming
+ // from playback view.
+ TBool pbv = (iPreviousViewId == TUid::Uid(KMPXPluginTypePlaybackUid)) ? ETrue : EFalse;
+ if ( pbv )
+ {
iPreviousViewId = TUid::Uid(0);
- }
+ }
BeginFullScreenAnimation( pbv );
}
@@ -1235,8 +1236,10 @@
case EMPXViewMediawall:
{
TMPXPlaybackState pbState( iPlaybackUtility->StateL() );
- if ( pbState == EPbStatePlaying || pbState == EPbStatePaused )
+ if ( pbState == EPbStatePlaying || pbState == EPbStatePaused || pbState == EPbStateStopped )
+ {
RestoreSelectedAlbumItemL(mediaArray);
+ }
PrepareMediaWallL(mediaArray, count);
iOpenAlbumTracks = EFalse;
break;
@@ -1245,9 +1248,11 @@
{
RestoreSelectedAlbumItemL(mediaArray);
PrepareMediaWallWithListL( mediaArray, count );
- // We need to adjust the CBA for this view.
- if( iCbaHandler )
- iCbaHandler->UpdateCba();
+ // We need to adjust the CBA for this view.
+ if( iCbaHandler )
+ {
+ iCbaHandler->UpdateCba();
+ }
break;
}
case EMPXViewList:
@@ -1463,23 +1468,24 @@
{
MPX_FUNC( "CMPXCollectionViewHgContainer::ResizeListL" );
TInt mediaCount = aMediaArray.Count();
-
+
if( iListWidget )
{
- TRect clientRect = ((CAknView*)iView)->ClientRect();
+ TRect clientRect = ((CAknView*)iView)->ClientRect();
TInt mediaIndex = MediaIndex(iListWidget->SelectedIndex());
+ mediaIndex = ( KErrNotFound == mediaIndex ) ? iListWidget->FirstIndexOnScreen() : mediaIndex;
mediaIndex = ( mediaIndex >= 0 && (mediaIndex < (mediaCount)) ) ? mediaIndex : (mediaCount - 1);
-
+
TInt prevItemCount = iListWidget->ItemCount();
-
+
iListWidget->InitScreenL( clientRect );
iListWidget->Reset();
if ( aCount )
{
- // enable scroll buffering now as it has not been enabled when empty list was constructed
- if ( !prevItemCount )
- {
- iListWidget->EnableScrollBufferL( *this, KMPXListBufferSize, KMPXListBufferSize/4 );
+ // enable scroll buffering now as it has not been enabled when empty list was constructed
+ if ( !prevItemCount )
+ {
+ iListWidget->EnableScrollBufferL( *this, KMPXListBufferSize, KMPXListBufferSize/4 );
}
iListWidget->ResizeL( aCount );
ProvideDataWithoutThumbnailsL(aMediaArray);
@@ -1495,29 +1501,29 @@
// In case of mediawall components we switch to different view type if orientation changes
// so there is no need to set new client rect for mediawall.
TInt mediaIndex = MediaIndex(iMediaWall->SelectedIndex());
-
+
// Correct the array index if it is out of range
- // This case may happen when last album or album beside selected album is deleted
+ // This case may happen when last album or album beside selected album is deleted
// mediaIndex -1 is valid and it represents shuffle item
-
+
if ( mediaIndex >= mediaCount || mediaIndex < -1)
{
mediaIndex = mediaCount - 1; // last item of the list
}
-
+
//in case of shuffle item is seleted (mediaIndex -1), there is no need to save it.
- if( (iSelectedAlbumIndex != mediaIndex) && ( mediaIndex != -1) )
+ if( (iSelectedAlbumIndex != mediaIndex) && ( mediaIndex != -1) )
{
- iSelectedAlbumIndex = mediaIndex;
+ iSelectedAlbumIndex = mediaIndex;
SaveSelectedAlbumItemL( iSelectedAlbumIndex );
}
-
+
iMediaWall->Reset();
if ( aCount )
{
iMediaWall->ResizeL( aCount );
ProvideDataWithoutThumbnailsMwL(aMediaArray);
-
+
iMediaWall->SetSelectedIndex( mediaIndex + iShuffleItem);
if ( iCurrentViewType == EMPXViewTBone )
{
@@ -1538,12 +1544,12 @@
{
MPX_FUNC("CMPXCollectionViewHgContainer::PrepareListL");
- if (!((CAknAppUi*)iCoeEnv->AppUi())->StatusPane()->IsVisible())
- ((CAknAppUi*)iCoeEnv->AppUi())->StatusPane()->MakeVisible(ETrue);
-
- if( iCbaHandler )
- iCbaHandler->UpdateCba();
-
+ if (!((CAknAppUi*)iCoeEnv->AppUi())->StatusPane()->IsVisible())
+ ((CAknAppUi*)iCoeEnv->AppUi())->StatusPane()->MakeVisible(ETrue);
+
+ if( iCbaHandler )
+ iCbaHandler->UpdateCba();
+
TRect clientRect = ((CAknView*)iView)->ClientRect();
iThumbnailManager->SetSizeL( EAudioListThumbnailSize );
iImageSize = CHgDoubleGraphicListFlat::PreferredImageSize();
@@ -1551,10 +1557,10 @@
if( !iListWidget )
{
iListWidget = CHgDoubleGraphicListFlat::NewL (
- clientRect,
- aCount,
- NULL,
- NULL );
+ clientRect,
+ aCount,
+ NULL,
+ NULL );
iListWidget->SetMenuProviderL(this);
iListWidget->SetSelectionObserver(*this);
// TODO. check if this is correct for all lists
@@ -1575,22 +1581,33 @@
iListWidget->InitScreenL(clientRect);
}
- if ( (iAlbumIndex > 0) && (iAlbumIndex < aCount) )
+ if ( (iAlbumIndex >= 0) && (iAlbumIndex < aCount) )
{
iListWidget->SetSelectedIndex( iAlbumIndex + iShuffleItem );
}
-
+ else if ( KErrNotFound == iAlbumIndex )
+ {
+ if ( iSelectedAlbumIndex >= 0 && iSelectedAlbumIndex < aCount)
+ {
+ iListWidget->SetSelectedIndex( iSelectedAlbumIndex + iShuffleItem );
+ }
+ else
+ {
+ iListWidget->SetSelectedIndex( iListWidget->FirstIndexOnScreen() + iShuffleItem );
+ }
+ }
+
// TODO. Define here in which views we need to have buffering enabled in the list
if( ( ( iContext == EContextGroupAlbum ) ||
( iContext == EContextGroupArtist ) ||
( iContext == EContextGroupSong ) ||
- ( iContext == EContextItemGenre ) ||
+ ( iContext == EContextItemGenre ) ||
( iContext == EContextItemPlaylist ) ) &&
// Check if the list is empty, Enable scroll buffer won't call requst if list is empty
( iListWidget->ItemCount() != 0 ) )
{
MPX_DEBUG1("CMPXCollectionViewHgContainer::PrepareListL - EnableScrollBufferL");
- iListWidget->EnableScrollBufferL( *this, KMPXListBufferSize, KMPXListBufferSize/4 );
+ iListWidget->EnableScrollBufferL(*this, KMPXListBufferSize, KMPXListBufferSize/4);
}
else
{
@@ -1731,6 +1748,17 @@
frontRect.LayoutRect( appRect, AknLayoutScalable_Apps::cf0_flow_pane_g1(0) );
iImageSize = frontRect.Rect().Size();
+ CMPXCollectionViewHgSwitchBuffer* switchBuffer(NULL);
+
+ if( iListWidget && (iPrevContext == EContextGroupAlbum || iPrevContext == EContextItemAlbum ) )
+ {
+ switchBuffer = CMPXCollectionViewHgSwitchBuffer::CreateBufferLC( *iListWidget );
+ }
+ else if ( iMediaWall )
+ {
+ switchBuffer = CMPXCollectionViewHgSwitchBuffer::CreateBufferLC( *iMediaWall );
+ switchBuffer->SetIndexOffset(1);
+ }
if( iMediaWall )
{
delete iMediaWall;
@@ -1820,6 +1848,12 @@
iMediaWall->SetOpenedItemRect( iPopupListRect );
iMediaWall->SetOpeningAnimationType( CHgVgMediaWall::EHgVgOpeningAnimationZoomToFront );
+ if( switchBuffer )
+ {
+ switchBuffer->FillFromBufferL( *iMediaWall );
+ CleanupStack::PopAndDestroy( switchBuffer );
+ switchBuffer = NULL;
+ }
iDefaultIconSet = ETrue;
}
@@ -1881,7 +1915,7 @@
{
TBool tBoneView = EFalse;
- if( EMPXViewTBone == iCurrentViewType )
+ if( EMPXViewTBone == iCurrentViewType || iOpenAlbumTracks )
tBoneView = ETrue;
return tBoneView;
@@ -1929,16 +1963,16 @@
iCurrentViewType = EMPXViewList;
break;
}
-
- // if tbone view is empty, switch back to Albums list or meidawall view
+
+ // if tbone view is empty, switch back to Albums list or meidawall view
if( ( iCurrentViewType == EMPXViewTBone ) && ( aCount < 1 ) )
{
if( landscapeOrientation )
iCurrentViewType = EMPXViewMediawall;
else
- iCurrentViewType = EMPXViewList;
+ iCurrentViewType = EMPXViewList;
}
-
+
}
// ----------------------------------------------------------------------------
@@ -2058,12 +2092,12 @@
switch( iContext )
{
case EContextGroupAlbum:
- case EContextItemAlbum:
+ case EContextItemAlbum:
{
iSelectedAlbumIndex = index;
SaveSelectedAlbumItemL(index);
// Open first song of album & playlist for entire album is created.
- PlayAlbumL(index);
+ PlayAlbumL(index);
break;
}
case EContextGroupPlaylist:
@@ -2110,7 +2144,7 @@
if ( aControl == iMediaWall )
{
iSelectedAlbumIndex = index;
- iAlbumIndex = index;
+ iAlbumIndex = index;
OpenAlbumL(index);
}
}
@@ -3048,19 +3082,19 @@
TBool landscapeOrientation = Layout_Meta_Data::IsLandscapeOrientation();
if ( landscapeOrientation )
{
- unknownText =
+ unknownText =
StringLoader::LoadLC( R_MPX_MEDIAWALL_ARTIST_UNKNOWN );
}
else
{
- unknownText =
- StringLoader::LoadLC( R_MPX_MP_LIST_ARTIST_UNKNOWN );
+ unknownText =
+ StringLoader::LoadLC( R_MPX_MP_LIST_ARTIST_UNKNOWN );
}
}
- else
+ else
{
- unknownText =
- StringLoader::LoadLC( R_MPX_MEDIAWALL_ARTIST_UNKNOWN );
+ unknownText =
+ StringLoader::LoadLC( R_MPX_MEDIAWALL_ARTIST_UNKNOWN );
}
aVisualItem->SetTitleL( *unknownText );
CleanupStack::PopAndDestroy( unknownText );
@@ -3126,10 +3160,10 @@
CMPXMedia* aMedia )
{
MPX_FUNC( "CMPXCollectionViewHgContainer::SetDetailCountL" );
- if ( aMedia->IsSupported( KMPXMediaGeneralCount ) )
- {
- TInt count( aMedia->ValueTObjectL<TInt>( KMPXMediaGeneralCount ) );
-
+ if ( aMedia->IsSupported( KMPXMediaGeneralCount ) )
+ {
+ TInt count( aMedia->ValueTObjectL<TInt>( KMPXMediaGeneralCount ) );
+
if ( iContext == EContextGroupGenre )
{
HBufC* numSongsText = NULL;
@@ -3139,7 +3173,7 @@
}
else
{
- numSongsText = StringLoader::LoadLC( R_MPX_MUSIC_ONE_SONG );
+ numSongsText = StringLoader::LoadLC( R_MPX_MUSIC_ONE_SONG );
}
TPtr ptr = numSongsText->Des();
AknTextUtils::LanguageSpecificNumberConversion( ptr );
@@ -3205,26 +3239,26 @@
aVisualItem->SetTextL( detailText );
}
else
- {
+ {
HBufC* unknownText = NULL;
if ( iContext == EContextGroupAlbum )
{
TBool landscapeOrientation = Layout_Meta_Data::IsLandscapeOrientation();
if ( landscapeOrientation )
{
- unknownText =
+ unknownText =
StringLoader::LoadLC( R_MPX_MEDIAWALL_ALBUM_UNKNOWN );
}
else
{
- unknownText =
- StringLoader::LoadLC( R_MPX_MP_LIST_ALBUM_UNKNOWN );
+ unknownText =
+ StringLoader::LoadLC( R_MPX_MP_LIST_ALBUM_UNKNOWN );
}
}
- else
+ else
{
- unknownText =
- StringLoader::LoadLC( R_MPX_MEDIAWALL_ALBUM_UNKNOWN );
+ unknownText =
+ StringLoader::LoadLC( R_MPX_MEDIAWALL_ALBUM_UNKNOWN );
}
aVisualItem->SetTextL( *unknownText );
CleanupStack::PopAndDestroy( unknownText );
@@ -3245,12 +3279,12 @@
if ( iContext == EContextGroupPlaylist &&
aMedia->IsSupported( KMPXMediaGeneralDuration ) &&
aMedia->IsSupported( KMPXMediaGeneralCount ) )
- {
- TBuf<KMPXMaxFileLength> detailText;
- TInt count( aMedia->ValueTObjectL<TInt>( KMPXMediaGeneralCount ) );
- TInt duration = aMedia->ValueTObjectL<TInt>( KMPXMediaGeneralDuration );
-
- UpdateTimeIndicatorsL(detailText, duration);
+ {
+ TBuf<KMPXMaxFileLength> detailText;
+ TInt count( aMedia->ValueTObjectL<TInt>( KMPXMediaGeneralCount ) );
+ TInt duration = aMedia->ValueTObjectL<TInt>( KMPXMediaGeneralDuration );
+
+ UpdateTimeIndicatorsL(detailText, duration);
HBufC* numSongsDurationText = NULL;
if ( count > 1 || count == 0 )
{
@@ -3259,9 +3293,9 @@
else
{
numSongsDurationText = StringLoader::LoadLC( R_MPX_MUSIC_ONE_SONG_DURATION, detailText );
- }
+ }
TPtr ptr = numSongsDurationText->Des();
- AknTextUtils::LanguageSpecificNumberConversion( ptr );
+ AknTextUtils::LanguageSpecificNumberConversion( ptr );
aVisualItem->SetTextL( ptr );
CleanupStack::PopAndDestroy( numSongsDurationText );
}
@@ -3610,13 +3644,13 @@
if ( count > 1 && iContext == EContextGroupAlbum )
{
- TBool landscapeOrientation = Layout_Meta_Data::IsLandscapeOrientation();
+ TBool landscapeOrientation = Layout_Meta_Data::IsLandscapeOrientation();
if ( landscapeOrientation )
{
HBufC* shuffleText = StringLoader::LoadLC(
R_MPX_MEDIAWALL_TITLE_SHUFFLE_ALL );
aItem->SetTitleL( *shuffleText );
- CleanupStack::PopAndDestroy( shuffleText );
+ CleanupStack::PopAndDestroy( shuffleText );
}
else
{
@@ -3624,7 +3658,7 @@
R_MPX_SHUFFLE );
aItem->SetTitleL( *shuffleText );
CleanupStack::PopAndDestroy( shuffleText );
- }
+ }
// We can try to set icon too.
SetDetailIconShuffleL();
@@ -3642,7 +3676,7 @@
R_MPX_SHUFFLE );
aItem->SetTitleL( *shuffleText );
CleanupStack::PopAndDestroy( shuffleText );
-
+
// We can try to set icon too.
SetDetailIconShuffleL();
res = ETrue;
@@ -3660,13 +3694,13 @@
MPX_FUNC( "CMPXCollectionViewHgContainer::SetCollectionContextL" );
const CMPXMedia& media = iListBoxArray->ContainerMedia();
-
+
if ( NULL == &media )
- {
- MPX_DEBUG1( "CMPXCollectionViewHgContainer::SetCollectionContextL NO media");
+ {
+ MPX_DEBUG1( "CMPXCollectionViewHgContainer::SetCollectionContextL NO media");
User::Leave(KErrNotFound);
- }
-
+ }
+
TMPXGeneralType containerType( EMPXNoType );
if ( media.IsSupported( KMPXMediaGeneralType ) )
{
@@ -4405,7 +4439,7 @@
//
void CMPXCollectionViewHgContainer::ShowAlbumSongsDialogL( const CMPXMedia& aResults )
{
- CAknSinglePopupMenuStyleListBox* listBox = new ( ELeave ) CAknSinglePopupMenuStyleListBox;
+ CAknSingleGraphicPopupMenuStyleListBox* listBox = new ( ELeave ) CAknSingleGraphicPopupMenuStyleListBox;
CleanupStack::PushL( listBox );
CAknPopupList* dialog = CAknPopupList::NewL(listBox, R_MPX_COLLECTION_ALBUMSONGS_LIST_CBA,
@@ -4449,8 +4483,25 @@
{
HBufC* shuffleText = StringLoader::LoadLC(
R_MPX_MEDIAWALL_DIALOG_SHUFFLE );
- songList->AppendL( *shuffleText );
+ // Make room for 3 more formatting characters.
+ HBufC* finalText = HBufC::NewLC(shuffleText->Length() + 3);
+ TPtr ptr = finalText->Des();
+ // This tells the list to use icon at index 0 of array index.
+ ptr.Append(_L("0\t"));
+ ptr.Append(shuffleText->Des());
+ songList->AppendL( *finalText );
+ CleanupStack::PopAndDestroy( finalText );
CleanupStack::PopAndDestroy( shuffleText );
+ CAknIconArray* iconArray = new( ELeave ) CAknIconArray( 1 );
+ CleanupStack::PushL( iconArray );
+ // Prepare icon array.
+ CGulIcon* icon = (*iIconArray)[EMPXClvIconShuffle];
+ CGulIcon* iconCopy = CGulIcon::NewL(icon->Bitmap(), icon->Mask());
+ iconCopy->SetBitmapsOwnedExternally(ETrue);
+ iconArray->AppendL(iconCopy);
+
+ listBox->ItemDrawer()->ColumnData()->SetIconArrayL( iconArray );
+ CleanupStack::Pop(); // iconArray
}
for ( TInt i = 0; i < songCount; i++ )
@@ -4466,7 +4517,12 @@
if ( currentMedia->IsSupported( KMPXMediaGeneralTitle ) )
{
const TDesC& title = currentMedia->ValueText( KMPXMediaGeneralTitle );
- songList->AppendL( title );
+ HBufC* finalText = HBufC::NewLC(title.Length() + 2);
+ TPtr ptr = finalText->Des();
+ ptr.Append(_L("\t"));
+ ptr.Append(title);
+ songList->AppendL( *finalText );
+ CleanupStack::PopAndDestroy( finalText );
}
}
@@ -4619,7 +4675,7 @@
CleanupStack::PopAndDestroy( unknownArtistText );
}
- iSelectedAlbumHandler->SaveSelectedAlbum(*iSelectedMediaInAlbumView);
+ iSelectedAlbumHandler->SaveSelectedAlbumL(*iSelectedMediaInAlbumView);
}
}
@@ -4743,17 +4799,22 @@
if( self )
{
//check if the pointer to ContainerMedia exists
- const CMPXMedia& media = self->iListBoxArray->ContainerMedia();
+ const CMPXMedia& media = self->iListBoxArray->ContainerMedia();
if ( NULL == &media )
{
return KErrNone;
- }
-
-
- self->HandleLbxItemAdditionL();
+ }
+
+
+ MPX_TRAPD( err, self->HandleLbxItemAdditionL() );
+ if ( err != KErrNone )
+ {
+ MPX_DEBUG2("CMPXCollectionViewHgContainer::AsyncCallback() return err%d", err );
+ return err;
+ }
if( self->iCbaHandler )
- {
+ {
self->iCbaHandler->UpdateCba();
}
}
@@ -4891,9 +4952,9 @@
{
MPX_FUNC( "CMPXCollectionViewHgContainer::LoadAndSetEmptyTextL" );
MPX_DEBUG2( "CMPXCollectionViewHgContainer::LoadAndSetEmptyTextL - iContext %d", iContext );
-
+
TInt resId( 0 );
-
+
switch ( iContext )
{
case EContextGroupAlbum:
--- a/mpxplugins/viewplugins/views/collectionviewhg/src/mpxcollectionviewhgimp.cpp Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/viewplugins/views/collectionviewhg/src/mpxcollectionviewhgimp.cpp Tue Apr 27 16:34:37 2010 +0300
@@ -365,6 +365,7 @@
if ( iContainer )
{
iContainer->SetRect( ClientRect() );
+ UpdateTitlePaneL();
}
}
@@ -539,7 +540,7 @@
iRepository->Get( KEducatingUserURI, educatingURI );
iRepository->Get( KEducatingPopupState, iEducatingPopupState);
- // Get music store information from cenrep
+ // Get music store information from cenrep
//
TBuf8< KUIDMaxLength > operatorMusicStoreUID;
@@ -1332,15 +1333,6 @@
{
title->SetTextL( *iTitle );
}
- else if ( !iIsEmbedded )
- {
- // use default title if no metadata is available
- // and is not in embedded view
- HBufC* titleText = StringLoader::LoadLC(
- R_MPX_COLLECTION_VIEW_TITLE );
- title->SetTextL( *titleText );
- CleanupStack::PopAndDestroy( titleText );
- }
}
}
}
@@ -2039,7 +2031,7 @@
{
MPX_FUNC( "CMPXCollectionViewHgImp::HandleDynInitUpnpL()" );
- if ( !IsUpnpVisible() )
+ if ( !IsUpnpVisibleL() )
{
GetCurrentPlayerDetails();
@@ -2112,9 +2104,9 @@
// Checks if UPnP access point is defined
// -----------------------------------------------------------------------------
//
-TBool CMPXCollectionViewHgImp::IsUpnpVisible()
+TBool CMPXCollectionViewHgImp::IsUpnpVisibleL()
{
- MPX_FUNC( "CMPXCollectionViewHgImp::IsUpnpVisible" );
+ MPX_FUNC( "CMPXCollectionViewHgImp::IsUpnpVisibleL" );
TBool returnValue = EFalse;
if ( iUpnpCopyCommand && iUpnpFrameworkSupport)
@@ -4383,7 +4375,7 @@
if ( !iContainer->IsInReorderMode() &&
!iAddingSong &&
!iInAlbumArtDialog &&
- !iInSongDetails )
+ !iInSongDetails && !iContainer->IsTBoneView())
{
UpdateTitlePaneL();
}
@@ -5959,6 +5951,26 @@
// Add view deactivation observer
AppUi()->AddViewDeactivationObserverL( this );
+#ifdef __ENABLE_PODCAST_IN_MUSIC_MENU
+ // media is not valid until the first HandleOpenL call
+ CEikButtonGroupContainer* cba = Cba();
+ if ( cba )
+ {
+ cba->SetCommandSetL(R_MPX_OPTIONS_BACK_CBA_NO_ACTION);
+ cba->DrawNow();
+ }
+#else
+ // media is not valid until the first HandleOpenL call
+ CEikButtonGroupContainer* cba = Cba();
+ if ( cba )
+ {
+ cba->SetCommandSetL(
+ ( iViewUtility->ViewHistoryDepth() == 1 && !iIsEmbedded ) ?
+ R_MPX_OPTIONS_EXIT_CBA_NO_ACTION : R_MPX_OPTIONS_BACK_CBA_NO_ACTION );
+ cba->DrawDeferred();
+ }
+#endif
+
// Set status pane layout if switched here directly from another view,
// such as when using the AnyKey
StatusPane()->MakeVisible( ETrue );
@@ -5976,27 +5988,7 @@
CMPXCollectionPath* cpath( iCollectionUtility->Collection().PathL() );
CleanupStack::PushL( cpath );
-#ifdef __ENABLE_PODCAST_IN_MUSIC_MENU
- // media is not valid until the first HandleOpenL call
- CEikButtonGroupContainer* cba = Cba();
- if ( cba )
- {
- cba->SetCommandSetL(
- ( cpath->Levels() == 2 && !iIsEmbedded ) ?
- R_MPX_OPTIONS_BACK_CBA_NO_ACTION : R_MPX_OPTIONS_BACK_CBA_NO_ACTION );
- cba->DrawDeferred();
- }
-#else
- // media is not valid until the first HandleOpenL call
- CEikButtonGroupContainer* cba = Cba();
- if ( cba )
- {
- cba->SetCommandSetL(
- ( iViewUtility->ViewHistoryDepth() == 1 && !iIsEmbedded ) ?
- R_MPX_OPTIONS_EXIT_CBA_NO_ACTION : R_MPX_OPTIONS_BACK_CBA_NO_ACTION );
- cba->DrawDeferred();
- }
-#endif
+
UpdateTitlePaneL();
@@ -6093,7 +6085,11 @@
delete iDuration;
iDuration = NULL;
}
-
+ if (iTitle)
+ {
+ delete iTitle;
+ iTitle = NULL;
+ }
// Cleanup view deactivation observer
AppUi()->RemoveViewDeactivationObserver( this );
}
@@ -6290,8 +6286,6 @@
{
MPX_FUNC( "CMPXCollectionViewHgImp::DynInitMenuPaneAlbumL" );
ASSERT( iContainer && aMenuPane != NULL);
- TBool isListEmpty( iContainer->TotalListItemCount() == 0 );
-
switch ( aResourceId )
{
case R_MPX_COLLECTION_VIEW_MENU_1:
@@ -6309,50 +6303,43 @@
aMenuPane->SetItemDimmed( EMPXCmdDelete, ETrue );
aMenuPane->SetItemDimmed( EMPXCmdRemove, ETrue );
aMenuPane->SetItemDimmed( EMPXCmdPlayItem, ETrue );
-
- if ( isListEmpty )
+ TBool landscapeOrientation = Layout_Meta_Data::IsLandscapeOrientation();
+ if ( !landscapeOrientation )
{
- aMenuPane->SetItemDimmed( EMPXCmdGoToMultipleMusicShop, ETrue);
- }
- else
- {
- TBool landscapeOrientation = Layout_Meta_Data::IsLandscapeOrientation();
- if ( !landscapeOrientation )
+ TInt usbUnblockingStatus;
+ RProperty::Get( KMPXViewPSUid,
+ KMPXUSBUnblockingPSStatus,
+ usbUnblockingStatus);
+
+ if ( iContainer->CurrentLbxItemIndex() > KErrNotFound && !iContainer->IsTBoneView())
+ {
+ if ( usbUnblockingStatus == EMPXUSBUnblockingPSStatusActive )
+ {
+ aMenuPane->SetItemDimmed( EMPXCmdAddToPlaylist, ETrue );
+ aMenuPane->SetItemDimmed( EMPXCmdDelete, ETrue );
+ }
+ else
+ {
+ aMenuPane->SetItemDimmed( EMPXCmdAddToPlaylist, EFalse );
+ aMenuPane->SetItemDimmed( EMPXCmdDelete, EFalse );
+ aMenuPane->SetItemDimmed( EMPXCmdPlayItem, EFalse );
+ }
+ }
+ if ( iContainer->IsSelectedItemASong() && iContainer->IsTBoneView() )
{
- TInt usbUnblockingStatus;
- RProperty::Get( KMPXViewPSUid,
- KMPXUSBUnblockingPSStatus,
- usbUnblockingStatus);
-
- if ( iContainer->CurrentLbxItemIndex() > KErrNotFound && !iContainer->IsTBoneView())
- {
- if ( usbUnblockingStatus == EMPXUSBUnblockingPSStatusActive )
- {
- aMenuPane->SetItemDimmed( EMPXCmdAddToPlaylist, ETrue );
- aMenuPane->SetItemDimmed( EMPXCmdDelete, ETrue );
- }
- else
- {
- aMenuPane->SetItemDimmed( EMPXCmdAddToPlaylist, EFalse );
- aMenuPane->SetItemDimmed( EMPXCmdDelete, EFalse );
- aMenuPane->SetItemDimmed( EMPXCmdPlayItem, EFalse );
- }
- }
- if ( iContainer->IsSelectedItemASong() && iContainer->IsTBoneView() )
+ if ( usbUnblockingStatus == EMPXUSBUnblockingPSStatusActive )
{
- if ( usbUnblockingStatus == EMPXUSBUnblockingPSStatusActive )
- {
- aMenuPane->SetItemDimmed( EMPXCmdAddToPlaylist, ETrue );
- aMenuPane->SetItemDimmed( EMPXCmdDelete, ETrue );
- }
- else
- {
- aMenuPane->SetItemDimmed( EMPXCmdAddToPlaylist, EFalse );
- aMenuPane->SetItemDimmed( EMPXCmdDelete, EFalse );
- aMenuPane->SetItemDimmed( EMPXCmdSend, EFalse );
- }
+ aMenuPane->SetItemDimmed( EMPXCmdAddToPlaylist, ETrue );
+ aMenuPane->SetItemDimmed( EMPXCmdDelete, ETrue );
+ }
+ else
+ {
+ aMenuPane->SetItemDimmed( EMPXCmdAddToPlaylist, EFalse );
+ aMenuPane->SetItemDimmed( EMPXCmdDelete, EFalse );
+ aMenuPane->SetItemDimmed( EMPXCmdSend, EFalse );
}
}
+ }
//If Operator Music store exist, show the cascade menu with Nokia and Operator music store.
if ( iOperatorMusicStore )
@@ -6363,7 +6350,6 @@
{
aMenuPane->SetItemDimmed(EMPXCmdGoToMultipleMusicShop, ETrue);
}
- }
break;
}
@@ -6376,18 +6362,21 @@
aMenuPane->SetItemDimmed( EMPXCmdSongDetails, ETrue );
aMenuPane->SetItemDimmed( EMPXCmdUseAsCascade, ETrue );
aMenuPane->SetItemDimmed( EMPXCmdPlaylistDetails, ETrue );
- if( !iContainer->IsTBoneView()&& (iContainer->CurrentLbxItemIndex() > KErrNotFound))
- {
- CMPXCollectionViewListBoxArray* array =
- static_cast<CMPXCollectionViewListBoxArray*>(
- iContainer->ListBoxArray() );
- const CMPXMedia& media = array->MediaL( iContainer->CurrentLbxItemIndex() );
- const TDesC& title( media.ValueText( KMPXMediaGeneralTitle ) );
- if( title.Length() > 0)
- {
- aMenuPane->SetItemDimmed( EMPXCmdFindInMusicShop, !iUsingNokiaService );
- }
- }
+ if ( !Layout_Meta_Data::IsLandscapeOrientation() )
+ {
+ if( !iContainer->IsTBoneView()&& (iContainer->CurrentLbxItemIndex() > KErrNotFound))
+ {
+ CMPXCollectionViewListBoxArray* array =
+ static_cast<CMPXCollectionViewListBoxArray*>(
+ iContainer->ListBoxArray() );
+ const CMPXMedia& media = array->MediaL( iContainer->CurrentLbxItemIndex() );
+ const TDesC& title( media.ValueText( KMPXMediaGeneralTitle ) );
+ if( title.Length() > 0)
+ {
+ aMenuPane->SetItemDimmed( EMPXCmdFindInMusicShop, !iUsingNokiaService );
+ }
+ }
+ }
break;
}
case R_MPX_ADD_TO_PL_SUB_MENU:
@@ -6412,9 +6401,7 @@
CEikMenuPane* aMenuPane )
{
MPX_FUNC( "CMPXCollectionViewHgImp::DynInitMenuPanePlaylistL" );
-
- TBool isListEmpty( (iContainer->TotalListItemCount()) == 0 );
-
+
switch ( aResourceId )
{
case R_MPX_COLLECTION_VIEW_MENU_1:
@@ -6644,8 +6631,6 @@
CEikMenuPane* aMenuPane )
{
MPX_FUNC( "CMPXCollectionViewHgImp::DynInitMenuPaneAllSongsL" );
-
- TBool isListEmpty( iContainer->TotalListItemCount() == 0 );
TInt selectionCount( 0 );
iSelectionIndexCache = iContainer->CurrentSelectionIndicesL(); // not owned
switch ( aResourceId )
@@ -6665,43 +6650,34 @@
aMenuPane->SetItemDimmed( EMPXCmdRemove, ETrue );
aMenuPane->SetItemDimmed( EMPXCmdDelete, ETrue );
aMenuPane->SetItemDimmed( EMPXCmdPlayItem, ETrue );
-
- if ( isListEmpty )
- {
- aMenuPane->SetItemDimmed( EMPXCmdGoToMultipleMusicShop, ETrue);
- }
- else
- {
- TInt usbUnblockingStatus;
- RProperty::Get( KMPXViewPSUid,
+ TInt usbUnblockingStatus;
+ RProperty::Get( KMPXViewPSUid,
KMPXUSBUnblockingPSStatus,
usbUnblockingStatus);
- if ( iContainer->IsSelectedItemASong() )
+ if ( iContainer->IsSelectedItemASong() )
+ {
+ if ( usbUnblockingStatus == EMPXUSBUnblockingPSStatusActive )
+ {
+ aMenuPane->SetItemDimmed( EMPXCmdAddToPlaylist, ETrue );
+ aMenuPane->SetItemDimmed( EMPXCmdSend, SendOptionVisibilityL() );
+ aMenuPane->SetItemDimmed( EMPXCmdDelete, ETrue );
+ }
+ else
{
- if ( usbUnblockingStatus == EMPXUSBUnblockingPSStatusActive )
- {
- aMenuPane->SetItemDimmed( EMPXCmdAddToPlaylist, ETrue );
- aMenuPane->SetItemDimmed( EMPXCmdSend, SendOptionVisibilityL() );
- aMenuPane->SetItemDimmed( EMPXCmdDelete, ETrue );
- }
- else
- {
- aMenuPane->SetItemDimmed( EMPXCmdAddToPlaylist, EFalse );
- aMenuPane->SetItemDimmed( EMPXCmdSend, SendOptionVisibilityL() );
- aMenuPane->SetItemDimmed( EMPXCmdDelete, EFalse );
- }
+ aMenuPane->SetItemDimmed( EMPXCmdAddToPlaylist, EFalse );
+ aMenuPane->SetItemDimmed( EMPXCmdSend, SendOptionVisibilityL() );
+ aMenuPane->SetItemDimmed( EMPXCmdDelete, EFalse );
}
- if ( iOperatorMusicStore )
- {
- aMenuPane->SetItemDimmed(EMPXCmdGoToMusicShop, ETrue);
- }
- else
- {
- aMenuPane->SetItemDimmed(EMPXCmdGoToMultipleMusicShop, ETrue);
- }
}
-
+ if ( iOperatorMusicStore )
+ {
+ aMenuPane->SetItemDimmed(EMPXCmdGoToMusicShop, ETrue);
+ }
+ else
+ {
+ aMenuPane->SetItemDimmed(EMPXCmdGoToMultipleMusicShop, ETrue);
+ }
break;
}
@@ -8274,12 +8250,12 @@
// -----------------------------------------------------------------------------
-// CMPXCollectionViewHgImp::SaveSelectedAlbum
+// CMPXCollectionViewHgImp::SaveSelectedAlbumL
// -----------------------------------------------------------------------------
//
-void CMPXCollectionViewHgImp::SaveSelectedAlbum (CMPXMedia &aMedia)
+void CMPXCollectionViewHgImp::SaveSelectedAlbumL(CMPXMedia &aMedia)
{
- MPX_FUNC( "CMPXCollectionViewHgImp::SaveSelectedAlbum" );
+ MPX_FUNC( "CMPXCollectionViewHgImp::SaveSelectedAlbumL" );
if (iStoredAlbum)
{
delete iStoredAlbum;
@@ -8413,7 +8389,7 @@
//
TBool CMPXCollectionViewHgImp::NeedToShowEducatingDialog()
{
- if(iEducateUserURI && iCollectionReady && //If educating user URI is in cenrep and Collection is Ready
+ if(iEducateUserURI->Length() > 0 && iCollectionReady && //If educating user URI is in cenrep and Collection is Ready
(iEducatingPopupState == EMPXInitialEducatingPopup || //If Music Player is launched first time after phone flash
(iEducatingPopupState == EMPXShowEducatingPopup && iPopuponRefresh))) //If user pressed yes on "Remind me later" and its manual refresh with some song added
{
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpxplugins/viewplugins/views/collectionviewhg/src/mpxcollectionviewhgswitchbuffer.cpp Tue Apr 27 16:34:37 2010 +0300
@@ -0,0 +1,130 @@
+/*
+* 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: Implements a container for buffer switch handling.
+*
+*/
+
+
+#include "mpxcollectionviewhgswitchbuffer.h"
+
+#include <gulicon.h>
+
+#include <ganes/HgScroller.h>
+#include <ganes/HgVgMediaWall.h>
+#include <ganes/HgItem.h>
+#include <ganes/HgVgItem.h>
+
+// ----------------------------------------------------------------------------
+// Create a copy of the icons used from input
+// ----------------------------------------------------------------------------
+CMPXCollectionViewHgSwitchBuffer* CMPXCollectionViewHgSwitchBuffer::CreateBufferLC( CHgScroller& aScroller )
+ {
+ CMPXCollectionViewHgSwitchBuffer* buffer = new (ELeave) CMPXCollectionViewHgSwitchBuffer();
+ CleanupStack::PushL(buffer);
+
+ for(TInt i = 0; i < aScroller.ItemCount(); ++i)
+ {
+ CGulIcon* icon = aScroller.ItemL(i).Icon();
+ if(icon)
+ {
+ buffer->AddToBufferL(*icon, i);
+ }
+ }
+
+ return buffer;
+ }
+
+// ----------------------------------------------------------------------------
+// Create a copy of the icons used from input
+// ----------------------------------------------------------------------------
+CMPXCollectionViewHgSwitchBuffer* CMPXCollectionViewHgSwitchBuffer::CreateBufferLC( CHgVgMediaWall& aMediaWall )
+ {
+ CMPXCollectionViewHgSwitchBuffer* buffer = new (ELeave) CMPXCollectionViewHgSwitchBuffer();
+ CleanupStack::PushL(buffer);
+
+ for(TInt i = 0; i < aMediaWall.ItemCount(); ++i)
+ {
+ CGulIcon* icon = aMediaWall.ItemL(i).Icon();
+ if(icon)
+ {
+ buffer->AddToBufferL(*icon, i);
+ }
+ }
+
+ return buffer;
+ }
+
+// ----------------------------------------------------------------------------
+//
+// ----------------------------------------------------------------------------
+CMPXCollectionViewHgSwitchBuffer::~CMPXCollectionViewHgSwitchBuffer ()
+ {
+ iBuffer.ResetAndDestroy();
+ }
+
+// ----------------------------------------------------------------------------
+// Provide mediawall with the data from buffer.
+// ----------------------------------------------------------------------------
+void CMPXCollectionViewHgSwitchBuffer::FillFromBufferL( CHgVgMediaWall& aMediaWall )
+ {
+ for(TInt i = 0; i < iBuffer.Count(); ++i)
+ {
+ CGulIcon* icon = iBuffer[i]->GetIcon();
+ CleanupStack::PushL(icon);
+ if(icon)
+ aMediaWall.ItemL(iBuffer[i]->Index() + iOffset).SetIcon(icon);
+
+ CleanupStack::Pop(icon);
+ }
+ }
+
+// ----------------------------------------------------------------------------
+//
+// ----------------------------------------------------------------------------
+void CMPXCollectionViewHgSwitchBuffer::FillFromBufferL( CHgScroller& aScroller, TSize aSize )
+ {
+ User::Leave(KErrNotSupported);
+ }
+
+// ----------------------------------------------------------------------------
+// Offset to start filling.
+// ----------------------------------------------------------------------------
+void CMPXCollectionViewHgSwitchBuffer::SetIndexOffset( TInt aOffset )
+ {
+ iOffset = aOffset;
+ }
+
+// ----------------------------------------------------------------------------
+// Add icon to the buffer.
+// ----------------------------------------------------------------------------
+void CMPXCollectionViewHgSwitchBuffer::AddToBufferL(CGulIcon& aIcon, TInt aIndex)
+ {
+ CGulIcon* newIcon = CGulIcon::NewL(aIcon.Bitmap(), aIcon.Mask());
+ TBool isShared = aIcon.BitmapsOwnedExternally();
+ aIcon.SetBitmapsOwnedExternally(ETrue);
+ newIcon->SetBitmapsOwnedExternally(isShared);
+
+ CleanupStack::PushL(newIcon);
+ CBufferItem* item = new (ELeave) CBufferItem( newIcon, aIndex );
+ iBuffer.AppendL(item);
+ CleanupStack::Pop(newIcon);
+ }
+
+// ----------------------------------------------------------------------------
+//
+// ----------------------------------------------------------------------------
+CMPXCollectionViewHgSwitchBuffer::CMPXCollectionViewHgSwitchBuffer ()
+ {
+
+ }
--- a/mpxplugins/viewplugins/views/collectionviewhg/src/mpxcollectionviewhgtnloader.cpp Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/viewplugins/views/collectionviewhg/src/mpxcollectionviewhgtnloader.cpp Tue Apr 27 16:34:37 2010 +0300
@@ -67,11 +67,11 @@
TInt CMpxTNLoader::LoadThumbnail( TAny* aSelf )
{
CMpxTNLoader* self = (CMpxTNLoader*)aSelf;
- self->LoadNextTN();
- return KErrNone;
+ MPX_TRAPD( err, self->LoadNextTNL() );
+ return err;
}
-void CMpxTNLoader::LoadNextTN()
+void CMpxTNLoader::LoadNextTNL()
{
if( iPaused )
return;
--- a/mpxplugins/viewplugins/views/commoncontainer/inc/mpxcommoncontaineravkonimp.h Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/viewplugins/views/commoncontainer/inc/mpxcommoncontaineravkonimp.h Tue Apr 27 16:34:37 2010 +0300
@@ -236,7 +236,7 @@
*
* @since 3.2
*/
- void DrawLbxItem( TInt aIndex );
+ void DrawLbxItemL( TInt aIndex );
/**
* Set Find box's focus.
@@ -329,7 +329,7 @@
/**
* Custom handling of menu pane for markable lists
*/
- void HandleMarkableListDynInitMenuPane(
+ void HandleMarkableListDynInitMenuPaneL(
TInt aResourceId,
CEikMenuPane* aMenuPane );
--- a/mpxplugins/viewplugins/views/commoncontainer/inc/mpxcommoncontainerhgimp.h Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/viewplugins/views/commoncontainer/inc/mpxcommoncontainerhgimp.h Tue Apr 27 16:34:37 2010 +0300
@@ -263,7 +263,7 @@
*
* @since 3.2
*/
- void DrawLbxItem( TInt aIndex );
+ void DrawLbxItemL( TInt aIndex );
/**
* Set Find box's focus.
@@ -356,7 +356,7 @@
/**
* Custom handling of menu pane for markable lists
*/
- void HandleMarkableListDynInitMenuPane(
+ void HandleMarkableListDynInitMenuPaneL(
TInt aResourceId,
CEikMenuPane* aMenuPane );
@@ -552,7 +552,7 @@
void ProvideDataL( TInt aStart, TInt aEnd );
- void SetScrollbarType();
+ void SetScrollbarTypeL();
void CancelTNRequest();
@@ -579,7 +579,7 @@
/**
* Refresh list as needed
*/
- void RefreshL(TInt aIndex);
+ void Refresh(TInt aIndex);
/**
* Refresh list as needed
--- a/mpxplugins/viewplugins/views/commoncontainer/src/mpxcommoncontaineravkonimp.cpp Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/viewplugins/views/commoncontainer/src/mpxcommoncontaineravkonimp.cpp Tue Apr 27 16:34:37 2010 +0300
@@ -353,7 +353,7 @@
// Draws a list box item
// -----------------------------------------------------------------------------
//
-void CMPXCommonContainerAvkonImp::DrawLbxItem( TInt aIndex )
+void CMPXCommonContainerAvkonImp::DrawLbxItemL( TInt aIndex )
{
ASSERT( iListBox );
TInt topIndex( TopLbxItemIndex() );
@@ -552,7 +552,7 @@
// Custom handling of menu pane for markable lists
// ---------------------------------------------------------------------------
//
-void CMPXCommonContainerAvkonImp::HandleMarkableListDynInitMenuPane(
+void CMPXCommonContainerAvkonImp::HandleMarkableListDynInitMenuPaneL(
TInt aResourceId,
CEikMenuPane* aMenuPane )
{
--- a/mpxplugins/viewplugins/views/commoncontainer/src/mpxcommoncontainerhgimp.cpp Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/viewplugins/views/commoncontainer/src/mpxcommoncontainerhgimp.cpp Tue Apr 27 16:34:37 2010 +0300
@@ -429,9 +429,9 @@
// Draws a list box item
// -----------------------------------------------------------------------------
//
-void CMPXCommonContainerHgImp::DrawLbxItem( TInt aIndex )
+void CMPXCommonContainerHgImp::DrawLbxItemL( TInt aIndex )
{
- MPX_DEBUG2( "CMPXCommonContainerHgImp::DrawLbxItem (aIndex=%d)", aIndex );
+ MPX_DEBUG2( "CMPXCommonContainerHgImp::DrawLbxItemL (aIndex=%d)", aIndex );
if ( iListWidget && iBottomIndex > 0 )
{
CHgItem* item = &iListWidget->ItemL(aIndex);
@@ -521,7 +521,7 @@
}
}
SetDefaultIconL();
- SetScrollbarType();
+ SetScrollbarTypeL();
}
}
@@ -706,7 +706,7 @@
// Custom handling of menu pane for markable lists
// ---------------------------------------------------------------------------
//
-void CMPXCommonContainerHgImp::HandleMarkableListDynInitMenuPane(
+void CMPXCommonContainerHgImp::HandleMarkableListDynInitMenuPaneL(
TInt aResourceId,
CEikMenuPane* aMenuPane )
{
@@ -899,7 +899,7 @@
{
iListWidget->InitScreenL(clientRect);
}
- SetScrollbarType();
+ SetScrollbarTypeL();
}
);
}
@@ -1003,20 +1003,24 @@
iThumbnailReqMap[ i ] = EFalse;
}
-
- if ( aDirection == EHgBufferReset || aDirection == EHgBufferScrollDown || aDirection == EHgBufferScrollUp)
- {
- // For index range in visible-area
- ProvideDataIntersectL(aBufferStart, aBufferEnd);
- // For index range elsewhere
- ProvideDataDifferenceL(aBufferStart, aBufferEnd);
- }
- else
- {
- ProvideDataL(aBufferStart, aBufferEnd);
- }
-
- //RefreshL(aBufferStart);
+ MPX_TRAPD( err,
+ if ( aDirection == EHgBufferReset || aDirection == EHgBufferScrollDown || aDirection == EHgBufferScrollUp)
+ {
+ // For index range in visible-area
+ ProvideDataIntersectL(aBufferStart, aBufferEnd);
+ // For index range elsewhere
+ ProvideDataDifferenceL(aBufferStart, aBufferEnd);
+ }
+ else
+ {
+ ProvideDataL(aBufferStart, aBufferEnd);
+ } );
+
+ if( err != KErrNone )
+ {
+ MPX_DEBUG2( "CMPXCommonContainerHgImp::Request leave err = %d", err );
+ }
+ //Refresh(aBufferStart);
// When in main collection view, list can be refresh
// without waiting on thumbnails since this list doesn't
// require thumbnails.
@@ -1230,15 +1234,28 @@
if ( aError == KErrNone && ret )
{
+ CMPXMedia* currentMedia( NULL );
const CMPXMediaArray& mediaArray = iListBoxArray->MediaArray();
- CMPXMedia* currentMedia( mediaArray.AtL( index ) );
+ MPX_TRAPD( err, currentMedia = mediaArray.AtL( index ) );
+ if( err != KErrNone )
+ {
+ __ASSERT_DEBUG( EFalse, User::Panic( _L( "CMPXCommonContainerHgImp::ThumbnailReady()" ), err ) );
+ return;
+ }
+
if ( currentMedia->IsSupported( KMPXMediaGeneralId ) )
{
CFbsBitmap* bmap = aThumbnail.DetachBitmap();
if ( bmap )
{
- CGulIcon* icon = CGulIcon::NewL(bmap, NULL);
-
+ CGulIcon* icon( NULL );
+ MPX_TRAP( err, icon = CGulIcon::NewL( bmap, NULL ) );
+ if( err != KErrNone )
+ {
+ __ASSERT_DEBUG( EFalse, User::Panic( _L( "CMPXCommonContainerHgImp::ThumbnailReady()" ), err ) );
+ return;
+ }
+
if ( iScrollerWithTitle && !iTitleSet )
{
iScrollerWithTitle->TitleItem().SetIcon(icon);
@@ -1250,9 +1267,13 @@
}
else
{
- iListWidget->ItemL(index).SetIcon(icon);
+ MPX_TRAPD( err, iListWidget->ItemL(index).SetIcon(icon); )
+ if( err != KErrNone )
+ {
+ MPX_DEBUG2( "CMPXCommonContainerHgImp::ThumbnailReady--iListWidget->ItemL(index).SetIcon(icon) leave err%d", err);
+ }
iThumbnailReqMap[index] = ETrue;
- RefreshL(index);
+ Refresh( index );
}
}
}
@@ -1267,21 +1288,22 @@
TInt index = iAlbumArtRequest->iIndex;
const TDesC& albumArtUri = *(iAlbumArtRequest->iAlbumArtUri);
-
+ TRAP_IGNORE
+ (
CThumbnailObjectSource* source = CThumbnailObjectSource::NewLC( albumArtUri, KMPXAlbumMimeType );
-
delete iAlbumArtRequest->iAlbumArtUri;
delete iAlbumArtRequest;
// Using negative index as priority will ensure that thumbnail requests
// are processed in the order they were requested.
TInt ret = NULL;
TInt reqId;
- TRAPD(err, reqId = (TInt) iThumbnailManager->GetThumbnailL( *source, (TAny*)ret, -index ));
+ MPX_TRAP(err, reqId = (TInt) iThumbnailManager->GetThumbnailL( *source, (TAny*)ret, -index ));
if ( err == KErrNone)
{
iThumbnailReqHashMap.InsertL( reqId, index );
}
CleanupStack::PopAndDestroy( source );
+ );
}
else
{
@@ -1302,7 +1324,8 @@
{
return;
}
-
+ TRAP_IGNORE
+ (
//no albumart supported
SetDefaultIconL(index);
if ( iScrollerWithTitle && !iTitleSet )
@@ -1315,9 +1338,10 @@
else
{
iThumbnailReqMap[index] = ETrue;
- RefreshL(index);
+ Refresh(index);
}
- }
+ );
+ }
}
@@ -1338,7 +1362,7 @@
}
else
{
- RefreshL(aIndex);
+ Refresh(aIndex);
}
}
// ---------------------------------------------------------------------------
@@ -1347,7 +1371,7 @@
// avoid too many redraws. In some cases, multiple refresh is unavoidable.
// ---------------------------------------------------------------------------
//
-void CMPXCommonContainerHgImp::RefreshL(TInt aIndex)
+void CMPXCommonContainerHgImp::Refresh(TInt aIndex)
{
MPX_FUNC( "CMPXCommonContainerHgImp::Refresh" );
@@ -2428,7 +2452,7 @@
// CMPXCommonContainerHgImp::SetScrollbarType
// -----------------------------------------------------------------------------
//
-void CMPXCommonContainerHgImp::SetScrollbarType()
+void CMPXCommonContainerHgImp::SetScrollbarTypeL()
{
MPX_FUNC( "CMPXCommonContainerHgImp::SetScrollbarType" );
--- a/mpxplugins/viewplugins/views/commoncontainer/src/mpxcommoncontainermediahelper.cpp Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/viewplugins/views/commoncontainer/src/mpxcommoncontainermediahelper.cpp Tue Apr 27 16:34:37 2010 +0300
@@ -237,7 +237,7 @@
// Update the list box item
*media = aMedia;
// Refresh the list box item
- iCommonContainer->DrawLbxItem( index );
+ iCommonContainer->DrawLbxItemL( index );
break;
}
}
--- a/mpxplugins/viewplugins/views/commonplaybackview/bwinscw/mpxcommonplaybackviewU.DEF Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/viewplugins/views/commonplaybackview/bwinscw/mpxcommonplaybackviewU.DEF Tue Apr 27 16:34:37 2010 +0300
@@ -5,109 +5,110 @@
?SetRepeatMode@CMPXCommonPlaybackViewContainer@@UAEXHH@Z @ 4 NONAME ; void CMPXCommonPlaybackViewContainer::SetRepeatMode(int, int)
?CreateColorIconL@CMPXCommonPlaybackViewLayout@@IAEPAVCGulIcon@@PAVMAknsSkinInstance@@ABVTAknsItemID@@1HABVTDesC16@@HH@Z @ 5 NONAME ; class CGulIcon * CMPXCommonPlaybackViewLayout::CreateColorIconL(class MAknsSkinInstance *, class TAknsItemID const &, class TAknsItemID const &, int, class TDesC16 const &, int, int)
?ConstructL@CMPXCommonPlaybackViewContainer@@UAEXABVTRect@@@Z @ 6 NONAME ; void CMPXCommonPlaybackViewContainer::ConstructL(class TRect const &)
- ?UpdateTimeIndicatorsL@CMPXCommonPlaybackViewContainer@@UAEXHH@Z @ 7 NONAME ; void CMPXCommonPlaybackViewContainer::UpdateTimeIndicatorsL(int, int)
- ?DisplayConfirmionNoteL@CMPXCommonPlaybackViewImp@@MAEXH@Z @ 8 NONAME ; void CMPXCommonPlaybackViewImp::DisplayConfirmionNoteL(int)
- ?HandlePlaybackMessage@CMPXCommonPlaybackViewImp@@MAEXPAVCMPXMedia@@H@Z @ 9 NONAME ; void CMPXCommonPlaybackViewImp::HandlePlaybackMessage(class CMPXMedia *, int)
- ?HandleSettingChange@CMPXCommonPlaybackViewImp@@MAEXABVTUid@@K@Z @ 10 NONAME ; void CMPXCommonPlaybackViewImp::HandleSettingChange(class TUid const &, unsigned long)
- ?HandleForegroundEventL@CMPXCommonPlaybackViewImp@@MAEXH@Z @ 11 NONAME ; void CMPXCommonPlaybackViewImp::HandleForegroundEventL(int)
- ?HandleErrorL@CMPXCommonPlaybackViewImp@@MAEXH@Z @ 12 NONAME ; void CMPXCommonPlaybackViewImp::HandleErrorL(int)
- ?GetCurrentPlayerDetails@CMPXCommonPlaybackViewImp@@MAEXXZ @ 13 NONAME ; void CMPXCommonPlaybackViewImp::GetCurrentPlayerDetails(void)
- ?UpdateDurationLabelL@CMPXCommonPlaybackViewContainer@@UAEXH@Z @ 14 NONAME ; void CMPXCommonPlaybackViewContainer::UpdateDurationLabelL(int)
- ?DoHandleStateChangedL@CMPXCommonPlaybackViewImp@@MAEXW4TMPXPlaybackState@@H@Z @ 15 NONAME ; void CMPXCommonPlaybackViewImp::DoHandleStateChangedL(enum TMPXPlaybackState, int)
- ?DisplayInfoNoteL@CMPXCommonPlaybackViewImp@@MAEXH@Z @ 16 NONAME ; void CMPXCommonPlaybackViewImp::DisplayInfoNoteL(int)
- ?RequestMediaL@CMPXCommonPlaybackViewImp@@MAEXH@Z @ 17 NONAME ; void CMPXCommonPlaybackViewImp::RequestMediaL(int)
- ?HandleStatusPaneSizeChange@CMPXCommonPlaybackViewImp@@MAEXXZ @ 18 NONAME ; void CMPXCommonPlaybackViewImp::HandleStatusPaneSizeChange(void)
- ?UpdateTrackInfoL@CMPXCommonPlaybackViewImp@@MAEXPBVCMPXMedia@@@Z @ 19 NONAME ; void CMPXCommonPlaybackViewImp::UpdateTrackInfoL(class CMPXMedia const *)
- ?PrepareMediaForPlaylistLC@CMPXCommonPlaybackViewImp@@MAEPAVCMPXMedia@@ABV2@@Z @ 20 NONAME ; class CMPXMedia * CMPXCommonPlaybackViewImp::PrepareMediaForPlaylistLC(class CMPXMedia const &)
- ?ExtractAlbumArtCompleted@CMPXCommonPlaybackViewContainer@@UAEXPAVCFbsBitmap@@H@Z @ 21 NONAME ; void CMPXCommonPlaybackViewContainer::ExtractAlbumArtCompleted(class CFbsBitmap *, int)
- ?HandleViewActivation@CMPXCommonPlaybackViewImp@@MAEXABVTUid@@0@Z @ 22 NONAME ; void CMPXCommonPlaybackViewImp::HandleViewActivation(class TUid const &, class TUid const &)
- ?IsCommandSupportedL@CMPXCommonPlaybackViewImp@@MAEHXZ @ 23 NONAME ; int CMPXCommonPlaybackViewImp::IsCommandSupportedL(void)
- ?GetIndicatorIconMaskL@CMPXCommonPlaybackViewLayout@@UAEPAVCGulIcon@@W4TMPXPbvIndicator@@@Z @ 24 NONAME ; class CGulIcon * CMPXCommonPlaybackViewLayout::GetIndicatorIconMaskL(enum TMPXPbvIndicator)
- ?GetButtonBitmapsL@CMPXCommonPlaybackViewLayout@@UAEXW4TMPXPbvButton@@HAAPAVCFbsBitmap@@1@Z @ 25 NONAME ; void CMPXCommonPlaybackViewLayout::GetButtonBitmapsL(enum TMPXPbvButton, int, class CFbsBitmap * &, class CFbsBitmap * &)
- ?UpdateBackgroundSkinControlContext@CMPXCommonPlaybackViewContainer@@MAEXABVTRect@@@Z @ 26 NONAME ; void CMPXCommonPlaybackViewContainer::UpdateBackgroundSkinControlContext(class TRect const &)
- ?HandleOpenL@CMPXCommonPlaybackViewImp@@MAEXABVCMPXCollectionPlaylist@@H@Z @ 27 NONAME ; void CMPXCommonPlaybackViewImp::HandleOpenL(class CMPXCollectionPlaylist const &, int)
- ?GetTextVariant@CMPXCommonPlaybackViewLayout@@IAE?AW4TMPXPbvLayoutVariants@@W4TMPXPbvTextIndicator@@@Z @ 28 NONAME ; enum TMPXPbvLayoutVariants CMPXCommonPlaybackViewLayout::GetTextVariant(enum TMPXPbvTextIndicator)
- ??1CMPXCommonPlaybackViewContainer@@UAE@XZ @ 29 NONAME ; CMPXCommonPlaybackViewContainer::~CMPXCommonPlaybackViewContainer(void)
- ?SetRealAudioMode@CMPXCommonPlaybackViewContainer@@UAEXH@Z @ 30 NONAME ; void CMPXCommonPlaybackViewContainer::SetRealAudioMode(int)
- ?DetermineLayoutVariant@CMPXCommonPlaybackViewLayout@@IAE?AW4TMPXPbvLayoutVariants@@XZ @ 31 NONAME ; enum TMPXPbvLayoutVariants CMPXCommonPlaybackViewLayout::DetermineLayoutVariant(void)
- ?SetMode@CMPXCommonPlaybackViewContainer@@UAEXW4TMPXPbvPlaybackMode@@@Z @ 32 NONAME ; void CMPXCommonPlaybackViewContainer::SetMode(enum TMPXPbvPlaybackMode)
- ?AddPlayersNamesToMenuL@CMPXCommonPlaybackViewImp@@MAEXAAVCEikMenuPane@@@Z @ 33 NONAME ; void CMPXCommonPlaybackViewImp::AddPlayersNamesToMenuL(class CEikMenuPane &)
- ?DynInitMenuPaneL@CMPXCommonPlaybackViewImp@@MAEXHPAVCEikMenuPane@@@Z @ 34 NONAME ; void CMPXCommonPlaybackViewImp::DynInitMenuPaneL(int, class CEikMenuPane *)
- ?HandlePropertyL@CMPXCommonPlaybackViewImp@@MAEXW4TMPXPlaybackProperty@@HH@Z @ 35 NONAME ; void CMPXCommonPlaybackViewImp::HandlePropertyL(enum TMPXPlaybackProperty, int, int)
- ?SkipOnErrorL@CMPXCommonPlaybackViewImp@@MAEXHH@Z @ 36 NONAME ; void CMPXCommonPlaybackViewImp::SkipOnErrorL(int, int)
- ?HandleOpenL@CMPXCommonPlaybackViewImp@@MAEXABVCMPXMedia@@HHH@Z @ 37 NONAME ; void CMPXCommonPlaybackViewImp::HandleOpenL(class CMPXMedia const &, int, int, int)
- ?LayoutLabel@CMPXCommonPlaybackViewLayout@@UAEXPAVCEikLabel@@ABVTRect@@W4TMPXPbvTextIndicator@@HH@Z @ 38 NONAME ; void CMPXCommonPlaybackViewLayout::LayoutLabel(class CEikLabel *, class TRect const &, enum TMPXPbvTextIndicator, int, int)
- ?RefreshProgressBar@CMPXCommonPlaybackViewContainer@@MAEXXZ @ 39 NONAME ; void CMPXCommonPlaybackViewContainer::RefreshProgressBar(void)
- ?HandleLayoutChange@CMPXCommonPlaybackViewImp@@MAEXXZ @ 40 NONAME ; void CMPXCommonPlaybackViewImp::HandleLayoutChange(void)
- ?IsUpnpVisible@CMPXCommonPlaybackViewImp@@MAEHXZ @ 41 NONAME ; int CMPXCommonPlaybackViewImp::IsUpnpVisible(void)
- ?CountComponentControls@CMPXCommonPlaybackViewContainer@@MBEHXZ @ 42 NONAME ; int CMPXCommonPlaybackViewContainer::CountComponentControls(void) const
- ?DoHandlePropertyL@CMPXCommonPlaybackViewImp@@MAEXW4TMPXPlaybackProperty@@HH@Z @ 43 NONAME ; void CMPXCommonPlaybackViewImp::DoHandlePropertyL(enum TMPXPlaybackProperty, int, int)
- ?ExtractAlbumArtStarted@CMPXCommonPlaybackViewContainer@@UAEXXZ @ 44 NONAME ; void CMPXCommonPlaybackViewContainer::ExtractAlbumArtStarted(void)
- ?UpdateDownloadStateLabelL@CMPXCommonPlaybackViewImp@@MAEXXZ @ 45 NONAME ; void CMPXCommonPlaybackViewImp::UpdateDownloadStateLabelL(void)
- ?SetFMTXMode@CMPXCommonPlaybackViewContainer@@MAEXH@Z @ 46 NONAME ; void CMPXCommonPlaybackViewContainer::SetFMTXMode(int)
- ?ProcessCommandL@CMPXCommonPlaybackViewImp@@MAEXH@Z @ 47 NONAME ; void CMPXCommonPlaybackViewImp::ProcessCommandL(int)
- ?LaunchMusicSettingsL@CMPXCommonPlaybackViewImp@@MAEXXZ @ 48 NONAME ; void CMPXCommonPlaybackViewImp::LaunchMusicSettingsL(void)
- ?GetNewSongPosition@CMPXCommonPlaybackViewContainer@@UAEHXZ @ 49 NONAME ; int CMPXCommonPlaybackViewContainer::GetNewSongPosition(void)
- ?UpdateMiddleSoftKeyDisplayL@CMPXCommonPlaybackViewImp@@IAEXXZ @ 50 NONAME ; void CMPXCommonPlaybackViewImp::UpdateMiddleSoftKeyDisplayL(void)
- ?SizeChanged@CMPXCommonPlaybackViewContainer@@MAEXXZ @ 51 NONAME ; void CMPXCommonPlaybackViewContainer::SizeChanged(void)
- ?HandleOperationCompleteL@CMPXCommonPlaybackViewImp@@MAEXW4TCHelperOperation@@HPAX@Z @ 52 NONAME ; void CMPXCommonPlaybackViewImp::HandleOperationCompleteL(enum TCHelperOperation, int, void *)
- ?LaunchFMTransmitterL@CMPXCommonPlaybackViewImp@@MAEXXZ @ 53 NONAME ; void CMPXCommonPlaybackViewImp::LaunchFMTransmitterL(void)
- ?UpdateViewL@CMPXCommonPlaybackViewImp@@MAEXXZ @ 54 NONAME ; void CMPXCommonPlaybackViewImp::UpdateViewL(void)
- ?DrawIndicator@CMPXCommonPlaybackViewContainer@@MBEXAAVCWindowGc@@ABVTRect@@1PBVCGulIcon@@H@Z @ 55 NONAME ; void CMPXCommonPlaybackViewContainer::DrawIndicator(class CWindowGc &, class TRect const &, class TRect const &, class CGulIcon const *, int) const
- ?FreeIcons@CMPXCommonPlaybackViewContainer@@IAEXXZ @ 56 NONAME ; void CMPXCommonPlaybackViewContainer::FreeIcons(void)
- ?HandleSubPlayerNamesL@CMPXCommonPlaybackViewImp@@MAEXVTUid@@PBVMDesC16Array@@HH@Z @ 57 NONAME ; void CMPXCommonPlaybackViewImp::HandleSubPlayerNamesL(class TUid, class MDesC16Array const *, int, int)
- ?UpdateLabelL@CMPXCommonPlaybackViewContainer@@UAEXW4TMPXPbvTextIndicator@@ABVTDesC16@@@Z @ 58 NONAME ; void CMPXCommonPlaybackViewContainer::UpdateLabelL(enum TMPXPbvTextIndicator, class TDesC16 const &)
- ?DoDeactivate@CMPXCommonPlaybackViewImp@@MAEXXZ @ 59 NONAME ; void CMPXCommonPlaybackViewImp::DoDeactivate(void)
- ?HandleCommandComplete@CMPXCommonPlaybackViewImp@@MAEXPAVCMPXMedia@@H@Z @ 60 NONAME ; void CMPXCommonPlaybackViewImp::HandleCommandComplete(class CMPXMedia *, int)
- ?HandleButtonCommandL@CMPXCommonPlaybackViewContainer@@MAEXH@Z @ 61 NONAME ; void CMPXCommonPlaybackViewContainer::HandleButtonCommandL(int)
- ?OfferKeyEventL@CMPXCommonPlaybackViewContainer@@UAE?AW4TKeyResponse@@ABUTKeyEvent@@W4TEventCode@@@Z @ 62 NONAME ; enum TKeyResponse CMPXCommonPlaybackViewContainer::OfferKeyEventL(struct TKeyEvent const &, enum TEventCode)
- ?SetRandomMode@CMPXCommonPlaybackViewContainer@@UAEXH@Z @ 63 NONAME ; void CMPXCommonPlaybackViewContainer::SetRandomMode(int)
- ?HandleCollectionMessage@CMPXCommonPlaybackViewImp@@MAEXPAVCMPXMedia@@H@Z @ 64 NONAME ; void CMPXCommonPlaybackViewImp::HandleCollectionMessage(class CMPXMedia *, int)
- ?ComponentControl@CMPXCommonPlaybackViewContainer@@MBEPAVCCoeControl@@H@Z @ 65 NONAME ; class CCoeControl * CMPXCommonPlaybackViewContainer::ComponentControl(int) const
- ?UpdateTrackPosInPlaylistL@CMPXCommonPlaybackViewImp@@MAEXXZ @ 66 NONAME ; void CMPXCommonPlaybackViewImp::UpdateTrackPosInPlaylistL(void)
- ?LaunchEqualizerL@CMPXCommonPlaybackViewImp@@MAEXXZ @ 67 NONAME ; void CMPXCommonPlaybackViewImp::LaunchEqualizerL(void)
- ?HandleAllTracksInvalidL@CMPXCommonPlaybackViewImp@@MAEXXZ @ 68 NONAME ; void CMPXCommonPlaybackViewImp::HandleAllTracksInvalidL(void)
- ?AddToNewPlaylistL@CMPXCommonPlaybackViewImp@@MAEXXZ @ 69 NONAME ; void CMPXCommonPlaybackViewImp::AddToNewPlaylistL(void)
- ?IndicatorLayout@CMPXCommonPlaybackViewLayout@@UAE?AVTRect@@ABV2@W4TMPXPbvIndicator@@@Z @ 70 NONAME ; class TRect CMPXCommonPlaybackViewLayout::IndicatorLayout(class TRect const &, enum TMPXPbvIndicator)
- ?UpdateTrackPlaybackPositionL@CMPXCommonPlaybackViewImp@@MAEXHH@Z @ 71 NONAME ; void CMPXCommonPlaybackViewImp::UpdateTrackPlaybackPositionL(int, int)
- ?UpdateTitlePaneL@CMPXCommonPlaybackViewImp@@MAEXXZ @ 72 NONAME ; void CMPXCommonPlaybackViewImp::UpdateTitlePaneL(void)
- ?HandlePointerEventL@CMPXCommonPlaybackViewContainer@@MAEXABUTPointerEvent@@@Z @ 73 NONAME ; void CMPXCommonPlaybackViewContainer::HandlePointerEventL(struct TPointerEvent const &)
- ?DoActivateL@CMPXCommonPlaybackViewImp@@MAEXABVTVwsViewId@@VTUid@@ABVTDesC8@@@Z @ 74 NONAME ; void CMPXCommonPlaybackViewImp::DoActivateL(class TVwsViewId const &, class TUid, class TDesC8 const &)
- ?SelectNewPlayerL@CMPXCommonPlaybackViewImp@@MAEXH@Z @ 75 NONAME ; void CMPXCommonPlaybackViewImp::SelectNewPlayerL(int)
- ?DoHandlePlaybackMessageL@CMPXCommonPlaybackViewImp@@MAEXABVCMPXMedia@@@Z @ 76 NONAME ; void CMPXCommonPlaybackViewImp::DoHandlePlaybackMessageL(class CMPXMedia const &)
- ?UpdateButtons@CMPXCommonPlaybackViewContainer@@UAEXW4TMPXPlaybackState@@@Z @ 77 NONAME ; void CMPXCommonPlaybackViewContainer::UpdateButtons(enum TMPXPlaybackState)
- ?ButtonLayout@CMPXCommonPlaybackViewLayout@@UAE?AVTRect@@ABV2@H@Z @ 78 NONAME ; class TRect CMPXCommonPlaybackViewLayout::ButtonLayout(class TRect const &, int)
- ?UpdateProgressBarGraphics@CMPXCommonPlaybackViewContainer@@MAEXXZ @ 79 NONAME ; void CMPXCommonPlaybackViewContainer::UpdateProgressBarGraphics(void)
- ?UpdateFMTransmitterInfoL@CMPXCommonPlaybackViewImp@@MAEXH@Z @ 80 NONAME ; void CMPXCommonPlaybackViewImp::UpdateFMTransmitterInfoL(int)
- ?HandleMediaL@CMPXCommonPlaybackViewImp@@MAEXABVCMPXMedia@@H@Z @ 81 NONAME ; void CMPXCommonPlaybackViewImp::HandleMediaL(class CMPXMedia const &, int)
- ?UpdateAlbumArtL@CMPXCommonPlaybackViewImp@@MAEXPBVCMPXMedia@@@Z @ 82 NONAME ; void CMPXCommonPlaybackViewImp::UpdateAlbumArtL(class CMPXMedia const *)
- ?HandlePSEvent@CMPXCommonPlaybackViewImp@@MAEXVTUid@@H@Z @ 83 NONAME ; void CMPXCommonPlaybackViewImp::HandlePSEvent(class TUid, int)
- ?HandleViewUpdate@CMPXCommonPlaybackViewImp@@MAEXVTUid@@W4TViewUpdateEvent@MMPXViewActivationObserver@@HH@Z @ 84 NONAME ; void CMPXCommonPlaybackViewImp::HandleViewUpdate(class TUid, enum MMPXViewActivationObserver::TViewUpdateEvent, int, int)
- ?RedrawRect@CMPXCommonPlaybackViewContainer@@MBEXABVTRect@@@Z @ 85 NONAME ; void CMPXCommonPlaybackViewContainer::RedrawRect(class TRect const &) const
- ?HandleCommandL@CMPXCommonPlaybackViewImp@@MAEXH@Z @ 86 NONAME ; void CMPXCommonPlaybackViewImp::HandleCommandL(int)
- ??1CMPXCommonPlaybackViewImp@@UAE@XZ @ 87 NONAME ; CMPXCommonPlaybackViewImp::~CMPXCommonPlaybackViewImp(void)
- ?HandleForegroundEventL@CMPXCommonPlaybackViewContainer@@UAEXH@Z @ 88 NONAME ; void CMPXCommonPlaybackViewContainer::HandleForegroundEventL(int)
- ?UpdateLabelColorsL@CMPXCommonPlaybackViewContainer@@MAEXXZ @ 89 NONAME ; void CMPXCommonPlaybackViewContainer::UpdateLabelColorsL(void)
- ?IsEmbedded@CMPXCommonPlaybackViewImp@@MBEHXZ @ 90 NONAME ; int CMPXCommonPlaybackViewImp::IsEmbedded(void) const
- ?SimpleEmbeddedMode@CMPXCommonPlaybackViewImp@@MBEHXZ @ 91 NONAME ; int CMPXCommonPlaybackViewImp::SimpleEmbeddedMode(void) const
- ?UpdateToolbar@CMPXCommonPlaybackViewImp@@IAEXXZ @ 92 NONAME ; void CMPXCommonPlaybackViewImp::UpdateToolbar(void)
- ?UpdateLayout@CMPXCommonPlaybackViewContainer@@UAEXXZ @ 93 NONAME ; void CMPXCommonPlaybackViewContainer::UpdateLayout(void)
- ?ButtonLayout@CMPXCommonPlaybackViewLayout@@UAE?AVTRect@@ABV2@@Z @ 94 NONAME ; class TRect CMPXCommonPlaybackViewLayout::ButtonLayout(class TRect const &)
- ?UpdatePlaybackState@CMPXCommonPlaybackViewImp@@MAEXW4TMPXPlaybackState@@@Z @ 95 NONAME ; void CMPXCommonPlaybackViewImp::UpdatePlaybackState(enum TMPXPlaybackState)
- ?HandleResourceChange@CMPXCommonPlaybackViewContainer@@UAEXH@Z @ 96 NONAME ; void CMPXCommonPlaybackViewContainer::HandleResourceChange(int)
- ?AddPlayerNameToMenuL@CMPXCommonPlaybackViewImp@@MAEXAAVCEikMenuPane@@HAAVMMPXPlayerManager@@AAW4TMPXPlaybackPlayerType@@ABVTDesC16@@@Z @ 97 NONAME ; void CMPXCommonPlaybackViewImp::AddPlayerNameToMenuL(class CEikMenuPane &, int, class MMPXPlayerManager &, enum TMPXPlaybackPlayerType &, class TDesC16 const &)
- ?Draw@CMPXCommonPlaybackViewContainer@@MBEXABVTRect@@@Z @ 98 NONAME ; void CMPXCommonPlaybackViewContainer::Draw(class TRect const &) const
- ?ConstructL@CMPXCommonPlaybackViewImp@@MAEXXZ @ 99 NONAME ; void CMPXCommonPlaybackViewImp::ConstructL(void)
- ?DoLayoutLabelL@CMPXCommonPlaybackViewLayout@@IAEXPAVCEikLabel@@ABVTRect@@HHH@Z @ 100 NONAME ; void CMPXCommonPlaybackViewLayout::DoLayoutLabelL(class CEikLabel *, class TRect const &, int, int, int)
- ?HandleViewActivation@CMPXCommonPlaybackViewImp@@MAEXABVTVwsViewId@@0@Z @ 101 NONAME ; void CMPXCommonPlaybackViewImp::HandleViewActivation(class TVwsViewId const &, class TVwsViewId const &)
- ?AddToSavedPlaylistL@CMPXCommonPlaybackViewImp@@MAEXXZ @ 102 NONAME ; void CMPXCommonPlaybackViewImp::AddToSavedPlaylistL(void)
- ?CreateLabelsL@CMPXCommonPlaybackViewContainer@@MAEXXZ @ 103 NONAME ; void CMPXCommonPlaybackViewContainer::CreateLabelsL(void)
- ?CreateIconsL@CMPXCommonPlaybackViewContainer@@MAEXXZ @ 104 NONAME ; void CMPXCommonPlaybackViewContainer::CreateIconsL(void)
- ?UpdateSoftkeyColors@CMPXCommonPlaybackViewContainer@@UAEXXZ @ 105 NONAME ; void CMPXCommonPlaybackViewContainer::UpdateSoftkeyColors(void)
- ?StartMarquee@CMPXCommonPlaybackViewContainer@@UAEXW4TMPXPbvTextIndicator@@@Z @ 106 NONAME ; void CMPXCommonPlaybackViewContainer::StartMarquee(enum TMPXPbvTextIndicator)
- ?GetIndicatorVariant@CMPXCommonPlaybackViewLayout@@IAE?AW4TMPXPbvLayoutVariants@@W4TMPXPbvIndicator@@@Z @ 107 NONAME ; enum TMPXPbvLayoutVariants CMPXCommonPlaybackViewLayout::GetIndicatorVariant(enum TMPXPbvIndicator)
- ?HandleCollectionMediaL@CMPXCommonPlaybackViewImp@@MAEXABVCMPXMedia@@H@Z @ 108 NONAME ; void CMPXCommonPlaybackViewImp::HandleCollectionMediaL(class CMPXMedia const &, int)
- ?GetHelpContext@CMPXCommonPlaybackViewContainer@@UBEXAAVTCoeHelpContext@@@Z @ 109 NONAME ; void CMPXCommonPlaybackViewContainer::GetHelpContext(class TCoeHelpContext &) const
- ?LightStatusChanged@CMPXCommonPlaybackViewContainer@@UAEXHW4TLightStatus@CHWRMLight@@@Z @ 110 NONAME ; void CMPXCommonPlaybackViewContainer::LightStatusChanged(int, enum CHWRMLight::TLightStatus)
- ?LaunchFileDetailsDialogL@CMPXCommonPlaybackViewImp@@MAEXXZ @ 111 NONAME ; void CMPXCommonPlaybackViewImp::LaunchFileDetailsDialogL(void)
+ ?UpdateToolbarL@CMPXCommonPlaybackViewImp@@IAEXXZ @ 7 NONAME ; void CMPXCommonPlaybackViewImp::UpdateToolbarL(void)
+ ?UpdateTimeIndicatorsL@CMPXCommonPlaybackViewContainer@@UAEXHH@Z @ 8 NONAME ; void CMPXCommonPlaybackViewContainer::UpdateTimeIndicatorsL(int, int)
+ ?DisplayConfirmionNoteL@CMPXCommonPlaybackViewImp@@MAEXH@Z @ 9 NONAME ; void CMPXCommonPlaybackViewImp::DisplayConfirmionNoteL(int)
+ ?LightStatusChanged@CMPXCommonPlaybackViewContainer@@UAEXHW4TLightStatus@CHWRMLight@@@Z @ 10 NONAME ; void CMPXCommonPlaybackViewContainer::LightStatusChanged(int, enum CHWRMLight::TLightStatus)
+ ?HandlePlaybackMessage@CMPXCommonPlaybackViewImp@@MAEXPAVCMPXMedia@@H@Z @ 11 NONAME ; void CMPXCommonPlaybackViewImp::HandlePlaybackMessage(class CMPXMedia *, int)
+ ?HandleSettingChange@CMPXCommonPlaybackViewImp@@MAEXABVTUid@@K@Z @ 12 NONAME ; void CMPXCommonPlaybackViewImp::HandleSettingChange(class TUid const &, unsigned long)
+ ?HandleForegroundEventL@CMPXCommonPlaybackViewImp@@MAEXH@Z @ 13 NONAME ; void CMPXCommonPlaybackViewImp::HandleForegroundEventL(int)
+ ?HandleErrorL@CMPXCommonPlaybackViewImp@@MAEXH@Z @ 14 NONAME ; void CMPXCommonPlaybackViewImp::HandleErrorL(int)
+ ?GetCurrentPlayerDetails@CMPXCommonPlaybackViewImp@@MAEXXZ @ 15 NONAME ; void CMPXCommonPlaybackViewImp::GetCurrentPlayerDetails(void)
+ ?UpdateDurationLabelL@CMPXCommonPlaybackViewContainer@@UAEXH@Z @ 16 NONAME ; void CMPXCommonPlaybackViewContainer::UpdateDurationLabelL(int)
+ ?DoHandleStateChangedL@CMPXCommonPlaybackViewImp@@MAEXW4TMPXPlaybackState@@H@Z @ 17 NONAME ; void CMPXCommonPlaybackViewImp::DoHandleStateChangedL(enum TMPXPlaybackState, int)
+ ?DisplayInfoNoteL@CMPXCommonPlaybackViewImp@@MAEXH@Z @ 18 NONAME ; void CMPXCommonPlaybackViewImp::DisplayInfoNoteL(int)
+ ?RequestMediaL@CMPXCommonPlaybackViewImp@@MAEXH@Z @ 19 NONAME ; void CMPXCommonPlaybackViewImp::RequestMediaL(int)
+ ?LaunchFileDetailsDialogL@CMPXCommonPlaybackViewImp@@MAEXXZ @ 20 NONAME ; void CMPXCommonPlaybackViewImp::LaunchFileDetailsDialogL(void)
+ ?HandleStatusPaneSizeChange@CMPXCommonPlaybackViewImp@@MAEXXZ @ 21 NONAME ; void CMPXCommonPlaybackViewImp::HandleStatusPaneSizeChange(void)
+ ?UpdateTrackInfoL@CMPXCommonPlaybackViewImp@@MAEXPBVCMPXMedia@@@Z @ 22 NONAME ; void CMPXCommonPlaybackViewImp::UpdateTrackInfoL(class CMPXMedia const *)
+ ?PrepareMediaForPlaylistLC@CMPXCommonPlaybackViewImp@@MAEPAVCMPXMedia@@ABV2@@Z @ 23 NONAME ; class CMPXMedia * CMPXCommonPlaybackViewImp::PrepareMediaForPlaylistLC(class CMPXMedia const &)
+ ?ExtractAlbumArtCompleted@CMPXCommonPlaybackViewContainer@@UAEXPAVCFbsBitmap@@H@Z @ 24 NONAME ; void CMPXCommonPlaybackViewContainer::ExtractAlbumArtCompleted(class CFbsBitmap *, int)
+ ?HandleViewActivation@CMPXCommonPlaybackViewImp@@MAEXABVTUid@@0@Z @ 25 NONAME ; void CMPXCommonPlaybackViewImp::HandleViewActivation(class TUid const &, class TUid const &)
+ ?IsCommandSupportedL@CMPXCommonPlaybackViewImp@@MAEHXZ @ 26 NONAME ; int CMPXCommonPlaybackViewImp::IsCommandSupportedL(void)
+ ?GetIndicatorIconMaskL@CMPXCommonPlaybackViewLayout@@UAEPAVCGulIcon@@W4TMPXPbvIndicator@@@Z @ 27 NONAME ; class CGulIcon * CMPXCommonPlaybackViewLayout::GetIndicatorIconMaskL(enum TMPXPbvIndicator)
+ ?GetButtonBitmapsL@CMPXCommonPlaybackViewLayout@@UAEXW4TMPXPbvButton@@HAAPAVCFbsBitmap@@1@Z @ 28 NONAME ; void CMPXCommonPlaybackViewLayout::GetButtonBitmapsL(enum TMPXPbvButton, int, class CFbsBitmap * &, class CFbsBitmap * &)
+ ?UpdateBackgroundSkinControlContext@CMPXCommonPlaybackViewContainer@@MAEXABVTRect@@@Z @ 29 NONAME ; void CMPXCommonPlaybackViewContainer::UpdateBackgroundSkinControlContext(class TRect const &)
+ ?HandleOpenL@CMPXCommonPlaybackViewImp@@MAEXABVCMPXCollectionPlaylist@@H@Z @ 30 NONAME ; void CMPXCommonPlaybackViewImp::HandleOpenL(class CMPXCollectionPlaylist const &, int)
+ ??1CMPXCommonPlaybackViewContainer@@UAE@XZ @ 31 NONAME ; CMPXCommonPlaybackViewContainer::~CMPXCommonPlaybackViewContainer(void)
+ ?SetRealAudioMode@CMPXCommonPlaybackViewContainer@@UAEXH@Z @ 32 NONAME ; void CMPXCommonPlaybackViewContainer::SetRealAudioMode(int)
+ ?DetermineLayoutVariant@CMPXCommonPlaybackViewLayout@@IAE?AW4TMPXPbvLayoutVariants@@XZ @ 33 NONAME ; enum TMPXPbvLayoutVariants CMPXCommonPlaybackViewLayout::DetermineLayoutVariant(void)
+ ?SetMode@CMPXCommonPlaybackViewContainer@@UAEXW4TMPXPbvPlaybackMode@@@Z @ 34 NONAME ; void CMPXCommonPlaybackViewContainer::SetMode(enum TMPXPbvPlaybackMode)
+ ?AddPlayersNamesToMenuL@CMPXCommonPlaybackViewImp@@MAEXAAVCEikMenuPane@@@Z @ 35 NONAME ; void CMPXCommonPlaybackViewImp::AddPlayersNamesToMenuL(class CEikMenuPane &)
+ ?DynInitMenuPaneL@CMPXCommonPlaybackViewImp@@MAEXHPAVCEikMenuPane@@@Z @ 36 NONAME ; void CMPXCommonPlaybackViewImp::DynInitMenuPaneL(int, class CEikMenuPane *)
+ ?HandlePropertyL@CMPXCommonPlaybackViewImp@@MAEXW4TMPXPlaybackProperty@@HH@Z @ 37 NONAME ; void CMPXCommonPlaybackViewImp::HandlePropertyL(enum TMPXPlaybackProperty, int, int)
+ ?SkipOnErrorL@CMPXCommonPlaybackViewImp@@MAEXHH@Z @ 38 NONAME ; void CMPXCommonPlaybackViewImp::SkipOnErrorL(int, int)
+ ?HandleOpenL@CMPXCommonPlaybackViewImp@@MAEXABVCMPXMedia@@HHH@Z @ 39 NONAME ; void CMPXCommonPlaybackViewImp::HandleOpenL(class CMPXMedia const &, int, int, int)
+ ?LayoutLabel@CMPXCommonPlaybackViewLayout@@UAEXPAVCEikLabel@@ABVTRect@@W4TMPXPbvTextIndicator@@HH@Z @ 40 NONAME ; void CMPXCommonPlaybackViewLayout::LayoutLabel(class CEikLabel *, class TRect const &, enum TMPXPbvTextIndicator, int, int)
+ ?RefreshProgressBar@CMPXCommonPlaybackViewContainer@@MAEXXZ @ 41 NONAME ; void CMPXCommonPlaybackViewContainer::RefreshProgressBar(void)
+ ?HandleLayoutChange@CMPXCommonPlaybackViewImp@@MAEXXZ @ 42 NONAME ; void CMPXCommonPlaybackViewImp::HandleLayoutChange(void)
+ ?CountComponentControls@CMPXCommonPlaybackViewContainer@@MBEHXZ @ 43 NONAME ; int CMPXCommonPlaybackViewContainer::CountComponentControls(void) const
+ ?DoHandlePropertyL@CMPXCommonPlaybackViewImp@@MAEXW4TMPXPlaybackProperty@@HH@Z @ 44 NONAME ; void CMPXCommonPlaybackViewImp::DoHandlePropertyL(enum TMPXPlaybackProperty, int, int)
+ ?ExtractAlbumArtStarted@CMPXCommonPlaybackViewContainer@@UAEXXZ @ 45 NONAME ; void CMPXCommonPlaybackViewContainer::ExtractAlbumArtStarted(void)
+ ?UpdateDownloadStateLabelL@CMPXCommonPlaybackViewImp@@MAEXXZ @ 46 NONAME ; void CMPXCommonPlaybackViewImp::UpdateDownloadStateLabelL(void)
+ ?SetFMTXMode@CMPXCommonPlaybackViewContainer@@MAEXH@Z @ 47 NONAME ; void CMPXCommonPlaybackViewContainer::SetFMTXMode(int)
+ ?ProcessCommandL@CMPXCommonPlaybackViewImp@@MAEXH@Z @ 48 NONAME ; void CMPXCommonPlaybackViewImp::ProcessCommandL(int)
+ ?LaunchMusicSettingsL@CMPXCommonPlaybackViewImp@@MAEXXZ @ 49 NONAME ; void CMPXCommonPlaybackViewImp::LaunchMusicSettingsL(void)
+ ?GetNewSongPosition@CMPXCommonPlaybackViewContainer@@UAEHXZ @ 50 NONAME ; int CMPXCommonPlaybackViewContainer::GetNewSongPosition(void)
+ ?UpdateMiddleSoftKeyDisplayL@CMPXCommonPlaybackViewImp@@IAEXXZ @ 51 NONAME ; void CMPXCommonPlaybackViewImp::UpdateMiddleSoftKeyDisplayL(void)
+ ?SizeChanged@CMPXCommonPlaybackViewContainer@@MAEXXZ @ 52 NONAME ; void CMPXCommonPlaybackViewContainer::SizeChanged(void)
+ ?HandleOperationCompleteL@CMPXCommonPlaybackViewImp@@MAEXW4TCHelperOperation@@HPAX@Z @ 53 NONAME ; void CMPXCommonPlaybackViewImp::HandleOperationCompleteL(enum TCHelperOperation, int, void *)
+ ?LaunchFMTransmitterL@CMPXCommonPlaybackViewImp@@MAEXXZ @ 54 NONAME ; void CMPXCommonPlaybackViewImp::LaunchFMTransmitterL(void)
+ ?UpdateViewL@CMPXCommonPlaybackViewImp@@MAEXXZ @ 55 NONAME ; void CMPXCommonPlaybackViewImp::UpdateViewL(void)
+ ?DrawIndicator@CMPXCommonPlaybackViewContainer@@MBEXAAVCWindowGc@@ABVTRect@@1PBVCGulIcon@@H@Z @ 56 NONAME ; void CMPXCommonPlaybackViewContainer::DrawIndicator(class CWindowGc &, class TRect const &, class TRect const &, class CGulIcon const *, int) const
+ ?FreeIcons@CMPXCommonPlaybackViewContainer@@IAEXXZ @ 57 NONAME ; void CMPXCommonPlaybackViewContainer::FreeIcons(void)
+ ?GetIndicatorVariantL@CMPXCommonPlaybackViewLayout@@IAE?AW4TMPXPbvLayoutVariants@@W4TMPXPbvIndicator@@@Z @ 58 NONAME ; enum TMPXPbvLayoutVariants CMPXCommonPlaybackViewLayout::GetIndicatorVariantL(enum TMPXPbvIndicator)
+ ?HandleSubPlayerNamesL@CMPXCommonPlaybackViewImp@@MAEXVTUid@@PBVMDesC16Array@@HH@Z @ 59 NONAME ; void CMPXCommonPlaybackViewImp::HandleSubPlayerNamesL(class TUid, class MDesC16Array const *, int, int)
+ ?UpdateLabelL@CMPXCommonPlaybackViewContainer@@UAEXW4TMPXPbvTextIndicator@@ABVTDesC16@@@Z @ 60 NONAME ; void CMPXCommonPlaybackViewContainer::UpdateLabelL(enum TMPXPbvTextIndicator, class TDesC16 const &)
+ ?DoDeactivate@CMPXCommonPlaybackViewImp@@MAEXXZ @ 61 NONAME ; void CMPXCommonPlaybackViewImp::DoDeactivate(void)
+ ?HandleCommandComplete@CMPXCommonPlaybackViewImp@@MAEXPAVCMPXMedia@@H@Z @ 62 NONAME ; void CMPXCommonPlaybackViewImp::HandleCommandComplete(class CMPXMedia *, int)
+ ?HandleButtonCommandL@CMPXCommonPlaybackViewContainer@@MAEXH@Z @ 63 NONAME ; void CMPXCommonPlaybackViewContainer::HandleButtonCommandL(int)
+ ?IsUpnpVisibleL@CMPXCommonPlaybackViewImp@@MAEHXZ @ 64 NONAME ; int CMPXCommonPlaybackViewImp::IsUpnpVisibleL(void)
+ ?OfferKeyEventL@CMPXCommonPlaybackViewContainer@@UAE?AW4TKeyResponse@@ABUTKeyEvent@@W4TEventCode@@@Z @ 65 NONAME ; enum TKeyResponse CMPXCommonPlaybackViewContainer::OfferKeyEventL(struct TKeyEvent const &, enum TEventCode)
+ ?SetRandomMode@CMPXCommonPlaybackViewContainer@@UAEXH@Z @ 66 NONAME ; void CMPXCommonPlaybackViewContainer::SetRandomMode(int)
+ ?HandleCollectionMessage@CMPXCommonPlaybackViewImp@@MAEXPAVCMPXMedia@@H@Z @ 67 NONAME ; void CMPXCommonPlaybackViewImp::HandleCollectionMessage(class CMPXMedia *, int)
+ ?ComponentControl@CMPXCommonPlaybackViewContainer@@MBEPAVCCoeControl@@H@Z @ 68 NONAME ; class CCoeControl * CMPXCommonPlaybackViewContainer::ComponentControl(int) const
+ ?UpdateTrackPosInPlaylistL@CMPXCommonPlaybackViewImp@@MAEXXZ @ 69 NONAME ; void CMPXCommonPlaybackViewImp::UpdateTrackPosInPlaylistL(void)
+ ?LaunchEqualizerL@CMPXCommonPlaybackViewImp@@MAEXXZ @ 70 NONAME ; void CMPXCommonPlaybackViewImp::LaunchEqualizerL(void)
+ ?HandleAllTracksInvalidL@CMPXCommonPlaybackViewImp@@MAEXXZ @ 71 NONAME ; void CMPXCommonPlaybackViewImp::HandleAllTracksInvalidL(void)
+ ?AddToNewPlaylistL@CMPXCommonPlaybackViewImp@@MAEXXZ @ 72 NONAME ; void CMPXCommonPlaybackViewImp::AddToNewPlaylistL(void)
+ ?IndicatorLayout@CMPXCommonPlaybackViewLayout@@UAE?AVTRect@@ABV2@W4TMPXPbvIndicator@@@Z @ 73 NONAME ; class TRect CMPXCommonPlaybackViewLayout::IndicatorLayout(class TRect const &, enum TMPXPbvIndicator)
+ ?UpdateTrackPlaybackPositionL@CMPXCommonPlaybackViewImp@@MAEXHH@Z @ 74 NONAME ; void CMPXCommonPlaybackViewImp::UpdateTrackPlaybackPositionL(int, int)
+ ?UpdateTitlePaneL@CMPXCommonPlaybackViewImp@@MAEXXZ @ 75 NONAME ; void CMPXCommonPlaybackViewImp::UpdateTitlePaneL(void)
+ ?HandlePointerEventL@CMPXCommonPlaybackViewContainer@@MAEXABUTPointerEvent@@@Z @ 76 NONAME ; void CMPXCommonPlaybackViewContainer::HandlePointerEventL(struct TPointerEvent const &)
+ ?DoActivateL@CMPXCommonPlaybackViewImp@@MAEXABVTVwsViewId@@VTUid@@ABVTDesC8@@@Z @ 77 NONAME ; void CMPXCommonPlaybackViewImp::DoActivateL(class TVwsViewId const &, class TUid, class TDesC8 const &)
+ ?SelectNewPlayerL@CMPXCommonPlaybackViewImp@@MAEXH@Z @ 78 NONAME ; void CMPXCommonPlaybackViewImp::SelectNewPlayerL(int)
+ ?DoHandlePlaybackMessageL@CMPXCommonPlaybackViewImp@@MAEXABVCMPXMedia@@@Z @ 79 NONAME ; void CMPXCommonPlaybackViewImp::DoHandlePlaybackMessageL(class CMPXMedia const &)
+ ?UpdatePlaybackStateL@CMPXCommonPlaybackViewImp@@MAEXW4TMPXPlaybackState@@@Z @ 80 NONAME ; void CMPXCommonPlaybackViewImp::UpdatePlaybackStateL(enum TMPXPlaybackState)
+ ?UpdateButtons@CMPXCommonPlaybackViewContainer@@UAEXW4TMPXPlaybackState@@@Z @ 81 NONAME ; void CMPXCommonPlaybackViewContainer::UpdateButtons(enum TMPXPlaybackState)
+ ?ButtonLayout@CMPXCommonPlaybackViewLayout@@UAE?AVTRect@@ABV2@H@Z @ 82 NONAME ; class TRect CMPXCommonPlaybackViewLayout::ButtonLayout(class TRect const &, int)
+ ?GetTextVariantL@CMPXCommonPlaybackViewLayout@@IAE?AW4TMPXPbvLayoutVariants@@W4TMPXPbvTextIndicator@@@Z @ 83 NONAME ; enum TMPXPbvLayoutVariants CMPXCommonPlaybackViewLayout::GetTextVariantL(enum TMPXPbvTextIndicator)
+ ?UpdateProgressBarGraphics@CMPXCommonPlaybackViewContainer@@MAEXXZ @ 84 NONAME ; void CMPXCommonPlaybackViewContainer::UpdateProgressBarGraphics(void)
+ ?UpdateFMTransmitterInfoL@CMPXCommonPlaybackViewImp@@MAEXH@Z @ 85 NONAME ; void CMPXCommonPlaybackViewImp::UpdateFMTransmitterInfoL(int)
+ ?HandleMediaL@CMPXCommonPlaybackViewImp@@MAEXABVCMPXMedia@@H@Z @ 86 NONAME ; void CMPXCommonPlaybackViewImp::HandleMediaL(class CMPXMedia const &, int)
+ ?UpdateAlbumArtL@CMPXCommonPlaybackViewImp@@MAEXPBVCMPXMedia@@@Z @ 87 NONAME ; void CMPXCommonPlaybackViewImp::UpdateAlbumArtL(class CMPXMedia const *)
+ ?HandlePSEvent@CMPXCommonPlaybackViewImp@@MAEXVTUid@@H@Z @ 88 NONAME ; void CMPXCommonPlaybackViewImp::HandlePSEvent(class TUid, int)
+ ?HandleViewUpdate@CMPXCommonPlaybackViewImp@@MAEXVTUid@@W4TViewUpdateEvent@MMPXViewActivationObserver@@HH@Z @ 89 NONAME ; void CMPXCommonPlaybackViewImp::HandleViewUpdate(class TUid, enum MMPXViewActivationObserver::TViewUpdateEvent, int, int)
+ ?RedrawRect@CMPXCommonPlaybackViewContainer@@MBEXABVTRect@@@Z @ 90 NONAME ; void CMPXCommonPlaybackViewContainer::RedrawRect(class TRect const &) const
+ ?HandleCommandL@CMPXCommonPlaybackViewImp@@MAEXH@Z @ 91 NONAME ; void CMPXCommonPlaybackViewImp::HandleCommandL(int)
+ ??1CMPXCommonPlaybackViewImp@@UAE@XZ @ 92 NONAME ; CMPXCommonPlaybackViewImp::~CMPXCommonPlaybackViewImp(void)
+ ?HandleForegroundEventL@CMPXCommonPlaybackViewContainer@@UAEXH@Z @ 93 NONAME ; void CMPXCommonPlaybackViewContainer::HandleForegroundEventL(int)
+ ?UpdateLabelColorsL@CMPXCommonPlaybackViewContainer@@MAEXXZ @ 94 NONAME ; void CMPXCommonPlaybackViewContainer::UpdateLabelColorsL(void)
+ ?IsEmbedded@CMPXCommonPlaybackViewImp@@MBEHXZ @ 95 NONAME ; int CMPXCommonPlaybackViewImp::IsEmbedded(void) const
+ ?SimpleEmbeddedMode@CMPXCommonPlaybackViewImp@@MBEHXZ @ 96 NONAME ; int CMPXCommonPlaybackViewImp::SimpleEmbeddedMode(void) const
+ ?UpdateLayout@CMPXCommonPlaybackViewContainer@@UAEXXZ @ 97 NONAME ; void CMPXCommonPlaybackViewContainer::UpdateLayout(void)
+ ?ButtonLayout@CMPXCommonPlaybackViewLayout@@UAE?AVTRect@@ABV2@@Z @ 98 NONAME ; class TRect CMPXCommonPlaybackViewLayout::ButtonLayout(class TRect const &)
+ ?HandleResourceChange@CMPXCommonPlaybackViewContainer@@UAEXH@Z @ 99 NONAME ; void CMPXCommonPlaybackViewContainer::HandleResourceChange(int)
+ ?AddPlayerNameToMenuL@CMPXCommonPlaybackViewImp@@MAEXAAVCEikMenuPane@@HAAVMMPXPlayerManager@@AAW4TMPXPlaybackPlayerType@@ABVTDesC16@@@Z @ 100 NONAME ; void CMPXCommonPlaybackViewImp::AddPlayerNameToMenuL(class CEikMenuPane &, int, class MMPXPlayerManager &, enum TMPXPlaybackPlayerType &, class TDesC16 const &)
+ ?Draw@CMPXCommonPlaybackViewContainer@@MBEXABVTRect@@@Z @ 101 NONAME ; void CMPXCommonPlaybackViewContainer::Draw(class TRect const &) const
+ ?ConstructL@CMPXCommonPlaybackViewImp@@MAEXXZ @ 102 NONAME ; void CMPXCommonPlaybackViewImp::ConstructL(void)
+ ?DoLayoutLabelL@CMPXCommonPlaybackViewLayout@@IAEXPAVCEikLabel@@ABVTRect@@HHH@Z @ 103 NONAME ; void CMPXCommonPlaybackViewLayout::DoLayoutLabelL(class CEikLabel *, class TRect const &, int, int, int)
+ ?HandleViewActivation@CMPXCommonPlaybackViewImp@@MAEXABVTVwsViewId@@0@Z @ 104 NONAME ; void CMPXCommonPlaybackViewImp::HandleViewActivation(class TVwsViewId const &, class TVwsViewId const &)
+ ?InitCommonLayoutL@CMPXCommonPlaybackViewLayout@@IAEXXZ @ 105 NONAME ; void CMPXCommonPlaybackViewLayout::InitCommonLayoutL(void)
+ ?AddToSavedPlaylistL@CMPXCommonPlaybackViewImp@@MAEXXZ @ 106 NONAME ; void CMPXCommonPlaybackViewImp::AddToSavedPlaylistL(void)
+ ?CreateLabelsL@CMPXCommonPlaybackViewContainer@@MAEXXZ @ 107 NONAME ; void CMPXCommonPlaybackViewContainer::CreateLabelsL(void)
+ ?CreateIconsL@CMPXCommonPlaybackViewContainer@@MAEXXZ @ 108 NONAME ; void CMPXCommonPlaybackViewContainer::CreateIconsL(void)
+ ?UpdateSoftkeyColors@CMPXCommonPlaybackViewContainer@@UAEXXZ @ 109 NONAME ; void CMPXCommonPlaybackViewContainer::UpdateSoftkeyColors(void)
+ ?StartMarquee@CMPXCommonPlaybackViewContainer@@UAEXW4TMPXPbvTextIndicator@@@Z @ 110 NONAME ; void CMPXCommonPlaybackViewContainer::StartMarquee(enum TMPXPbvTextIndicator)
+ ?HandleCollectionMediaL@CMPXCommonPlaybackViewImp@@MAEXABVCMPXMedia@@H@Z @ 111 NONAME ; void CMPXCommonPlaybackViewImp::HandleCollectionMediaL(class CMPXMedia const &, int)
+ ?GetHelpContext@CMPXCommonPlaybackViewContainer@@UBEXAAVTCoeHelpContext@@@Z @ 112 NONAME ; void CMPXCommonPlaybackViewContainer::GetHelpContext(class TCoeHelpContext &) const
--- a/mpxplugins/viewplugins/views/commonplaybackview/data/mpxcommonplaybackview.rss Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/viewplugins/views/commonplaybackview/data/mpxcommonplaybackview.rss Tue Apr 27 16:34:37 2010 +0300
@@ -2255,7 +2255,7 @@
//
RESOURCE AVKON_TOOLBAR r_mpx_pbv_touch_toolbar
{
- flags = KAknToolbarFixed|KAknToolbarTransparent|KAknToolbarWithoutCba;
+ flags = KAknToolbarFixed|KAknToolbarWithoutCba;
items =
{
TBAR_CTRL
--- a/mpxplugins/viewplugins/views/commonplaybackview/eabi/mpxcommonplaybackviewU.DEF Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/viewplugins/views/commonplaybackview/eabi/mpxcommonplaybackviewU.DEF Tue Apr 27 16:34:37 2010 +0300
@@ -9,11 +9,11 @@
_ZN25CMPXCommonPlaybackViewImp12HandleMediaLERK9CMPXMediai @ 8 NONAME
_ZN25CMPXCommonPlaybackViewImp12SkipOnErrorLEii @ 9 NONAME
_ZN25CMPXCommonPlaybackViewImp13HandlePSEventE4TUidi @ 10 NONAME
- _ZN25CMPXCommonPlaybackViewImp13IsUpnpVisibleEv @ 11 NONAME
- _ZN25CMPXCommonPlaybackViewImp13RequestMediaLEi @ 12 NONAME
- _ZN25CMPXCommonPlaybackViewImp13UpdateToolbarEv @ 13 NONAME
- _ZN25CMPXCommonPlaybackViewImp14DoHandleMediaLERK9CMPXMediai @ 14 NONAME
- _ZN25CMPXCommonPlaybackViewImp14HandleCommandLEi @ 15 NONAME
+ _ZN25CMPXCommonPlaybackViewImp13RequestMediaLEi @ 11 NONAME
+ _ZN25CMPXCommonPlaybackViewImp14DoHandleMediaLERK9CMPXMediai @ 12 NONAME
+ _ZN25CMPXCommonPlaybackViewImp14HandleCommandLEi @ 13 NONAME
+ _ZN25CMPXCommonPlaybackViewImp14IsUpnpVisibleLEv @ 14 NONAME
+ _ZN25CMPXCommonPlaybackViewImp14UpdateToolbarLEv @ 15 NONAME
_ZN25CMPXCommonPlaybackViewImp15HandlePropertyLE20TMPXPlaybackPropertyii @ 16 NONAME
_ZN25CMPXCommonPlaybackViewImp15ProcessCommandLEi @ 17 NONAME
_ZN25CMPXCommonPlaybackViewImp15UpdateAlbumArtLEPK9CMPXMedia @ 18 NONAME
@@ -32,12 +32,12 @@
_ZN25CMPXCommonPlaybackViewImp19AddToSavedPlaylistLEv @ 31 NONAME
_ZN25CMPXCommonPlaybackViewImp19HandleSettingChangeERK4TUidm @ 32 NONAME
_ZN25CMPXCommonPlaybackViewImp19IsCommandSupportedLEv @ 33 NONAME
- _ZN25CMPXCommonPlaybackViewImp19UpdatePlaybackStateE17TMPXPlaybackState @ 34 NONAME
- _ZN25CMPXCommonPlaybackViewImp20AddPlayerNameToMenuLER12CEikMenuPaneiR17MMPXPlayerManagerR22TMPXPlaybackPlayerTypeRK7TDesC16 @ 35 NONAME
- _ZN25CMPXCommonPlaybackViewImp20HandleViewActivationERK10TVwsViewIdS2_ @ 36 NONAME
- _ZN25CMPXCommonPlaybackViewImp20HandleViewActivationERK4TUidS2_ @ 37 NONAME
- _ZN25CMPXCommonPlaybackViewImp20LaunchFMTransmitterLEv @ 38 NONAME
- _ZN25CMPXCommonPlaybackViewImp20LaunchMusicSettingsLEv @ 39 NONAME
+ _ZN25CMPXCommonPlaybackViewImp20AddPlayerNameToMenuLER12CEikMenuPaneiR17MMPXPlayerManagerR22TMPXPlaybackPlayerTypeRK7TDesC16 @ 34 NONAME
+ _ZN25CMPXCommonPlaybackViewImp20HandleViewActivationERK10TVwsViewIdS2_ @ 35 NONAME
+ _ZN25CMPXCommonPlaybackViewImp20HandleViewActivationERK4TUidS2_ @ 36 NONAME
+ _ZN25CMPXCommonPlaybackViewImp20LaunchFMTransmitterLEv @ 37 NONAME
+ _ZN25CMPXCommonPlaybackViewImp20LaunchMusicSettingsLEv @ 38 NONAME
+ _ZN25CMPXCommonPlaybackViewImp20UpdatePlaybackStateLE17TMPXPlaybackState @ 39 NONAME
_ZN25CMPXCommonPlaybackViewImp21DoHandleStateChangedLE17TMPXPlaybackStatei @ 40 NONAME
_ZN25CMPXCommonPlaybackViewImp21HandleCommandCompleteEP9CMPXMediai @ 41 NONAME
_ZN25CMPXCommonPlaybackViewImp21HandlePlaybackMessageEP9CMPXMediai @ 42 NONAME
@@ -51,101 +51,103 @@
_ZN25CMPXCommonPlaybackViewImp23HandleCollectionMessageEP9CMPXMediai @ 50 NONAME
_ZN25CMPXCommonPlaybackViewImp24DoHandlePlaybackMessageLERK9CMPXMedia @ 51 NONAME
_ZN25CMPXCommonPlaybackViewImp24HandleOperationCompleteLE17TCHelperOperationiPv @ 52 NONAME
- _ZN25CMPXCommonPlaybackViewImp24UpdateFMTransmitterInfoLEi @ 53 NONAME
- _ZN25CMPXCommonPlaybackViewImp25PrepareMediaForPlaylistLCERK9CMPXMedia @ 54 NONAME
- _ZN25CMPXCommonPlaybackViewImp25UpdateDownloadStateLabelLEv @ 55 NONAME
- _ZN25CMPXCommonPlaybackViewImp25UpdateTrackPosInPlaylistLEv @ 56 NONAME
- _ZN25CMPXCommonPlaybackViewImp26HandleStatusPaneSizeChangeEv @ 57 NONAME
- _ZN25CMPXCommonPlaybackViewImp27UpdateMiddleSoftKeyDisplayLEv @ 58 NONAME
- _ZN25CMPXCommonPlaybackViewImp28UpdateTrackPlaybackPositionLEii @ 59 NONAME
- _ZN25CMPXCommonPlaybackViewImpD0Ev @ 60 NONAME
- _ZN25CMPXCommonPlaybackViewImpD1Ev @ 61 NONAME
- _ZN25CMPXCommonPlaybackViewImpD2Ev @ 62 NONAME
- _ZN28CMPXCommonPlaybackViewLayout11LayoutLabelEP9CEikLabelRK5TRect20TMPXPbvTextIndicatorii @ 63 NONAME
- _ZN28CMPXCommonPlaybackViewLayout12ButtonLayoutERK5TRect @ 64 NONAME
- _ZN28CMPXCommonPlaybackViewLayout12ButtonLayoutERK5TRecti @ 65 NONAME
- _ZN28CMPXCommonPlaybackViewLayout14DoLayoutLabelLEP9CEikLabelRK5TRectiii @ 66 NONAME
- _ZN28CMPXCommonPlaybackViewLayout14GetTextVariantE20TMPXPbvTextIndicator @ 67 NONAME
- _ZN28CMPXCommonPlaybackViewLayout15IndicatorLayoutERK5TRect16TMPXPbvIndicator @ 68 NONAME
- _ZN28CMPXCommonPlaybackViewLayout16CreateColorIconLEP17MAknsSkinInstanceRK11TAknsItemIDS4_iRK7TDesC16ii @ 69 NONAME
- _ZN28CMPXCommonPlaybackViewLayout17GetButtonBitmapsLE13TMPXPbvButtoniRP10CFbsBitmapS3_ @ 70 NONAME
- _ZN28CMPXCommonPlaybackViewLayout19GetIndicatorVariantE16TMPXPbvIndicator @ 71 NONAME
- _ZN28CMPXCommonPlaybackViewLayout21GetIndicatorIconMaskLE16TMPXPbvIndicator @ 72 NONAME
- _ZN28CMPXCommonPlaybackViewLayout22DetermineLayoutVariantEv @ 73 NONAME
- _ZN31CMPXCommonPlaybackViewContainer10ConstructLERK5TRect @ 74 NONAME
- _ZN31CMPXCommonPlaybackViewContainer11SetFMTXModeEi @ 75 NONAME
- _ZN31CMPXCommonPlaybackViewContainer11SizeChangedEv @ 76 NONAME
- _ZN31CMPXCommonPlaybackViewContainer12CreateIconsLEv @ 77 NONAME
- _ZN31CMPXCommonPlaybackViewContainer12StartMarqueeE20TMPXPbvTextIndicator @ 78 NONAME
- _ZN31CMPXCommonPlaybackViewContainer12UpdateLabelLE20TMPXPbvTextIndicatorRK7TDesC16 @ 79 NONAME
- _ZN31CMPXCommonPlaybackViewContainer12UpdateLayoutEv @ 80 NONAME
- _ZN31CMPXCommonPlaybackViewContainer13CreateLabelsLEv @ 81 NONAME
- _ZN31CMPXCommonPlaybackViewContainer13SetRandomModeEi @ 82 NONAME
- _ZN31CMPXCommonPlaybackViewContainer13SetRepeatModeEii @ 83 NONAME
- _ZN31CMPXCommonPlaybackViewContainer13UpdateButtonsE17TMPXPlaybackState @ 84 NONAME
- _ZN31CMPXCommonPlaybackViewContainer14OfferKeyEventLERK9TKeyEvent10TEventCode @ 85 NONAME
- _ZN31CMPXCommonPlaybackViewContainer16SetRealAudioModeEi @ 86 NONAME
- _ZN31CMPXCommonPlaybackViewContainer18GetNewSongPositionEv @ 87 NONAME
- _ZN31CMPXCommonPlaybackViewContainer18RefreshProgressBarEv @ 88 NONAME
- _ZN31CMPXCommonPlaybackViewContainer18UpdateLabelColorsLEv @ 89 NONAME
- _ZN31CMPXCommonPlaybackViewContainer19HandlePointerEventLERK13TPointerEvent @ 90 NONAME
- _ZN31CMPXCommonPlaybackViewContainer19UpdateSoftkeyColorsEv @ 91 NONAME
- _ZN31CMPXCommonPlaybackViewContainer20HandleButtonCommandLEi @ 92 NONAME
- _ZN31CMPXCommonPlaybackViewContainer20HandleResourceChangeEi @ 93 NONAME
- _ZN31CMPXCommonPlaybackViewContainer20UpdateDurationLabelLEi @ 94 NONAME
- _ZN31CMPXCommonPlaybackViewContainer21UpdateTimeIndicatorsLEii @ 95 NONAME
- _ZN31CMPXCommonPlaybackViewContainer22ExtractAlbumArtStartedEv @ 96 NONAME
- _ZN31CMPXCommonPlaybackViewContainer22HandleForegroundEventLEi @ 97 NONAME
- _ZN31CMPXCommonPlaybackViewContainer24ExtractAlbumArtCompletedEP10CFbsBitmapi @ 98 NONAME
- _ZN31CMPXCommonPlaybackViewContainer25UpdateProgressBarGraphicsEv @ 99 NONAME
- _ZN31CMPXCommonPlaybackViewContainer34UpdateBackgroundSkinControlContextERK5TRect @ 100 NONAME
- _ZN31CMPXCommonPlaybackViewContainer7SetModeE19TMPXPbvPlaybackMode @ 101 NONAME
- _ZN31CMPXCommonPlaybackViewContainer9FreeIconsEv @ 102 NONAME
- _ZN31CMPXCommonPlaybackViewContainerD0Ev @ 103 NONAME
- _ZN31CMPXCommonPlaybackViewContainerD1Ev @ 104 NONAME
- _ZN31CMPXCommonPlaybackViewContainerD2Ev @ 105 NONAME
- _ZNK25CMPXCommonPlaybackViewImp10IsEmbeddedEv @ 106 NONAME
- _ZNK25CMPXCommonPlaybackViewImp18SimpleEmbeddedModeEv @ 107 NONAME
- _ZNK31CMPXCommonPlaybackViewContainer10RedrawRectERK5TRect @ 108 NONAME
- _ZNK31CMPXCommonPlaybackViewContainer13DrawIndicatorER9CWindowGcRK5TRectS4_PK8CGulIconi @ 109 NONAME
- _ZNK31CMPXCommonPlaybackViewContainer14GetHelpContextER15TCoeHelpContext @ 110 NONAME
- _ZNK31CMPXCommonPlaybackViewContainer16ComponentControlEi @ 111 NONAME
- _ZNK31CMPXCommonPlaybackViewContainer22CountComponentControlsEv @ 112 NONAME
- _ZNK31CMPXCommonPlaybackViewContainer4DrawERK5TRect @ 113 NONAME
- _ZTI25CMPXCommonPlaybackViewImp @ 114 NONAME
- _ZTI28CMPXCommonPlaybackViewLayout @ 115 NONAME
- _ZTI31CMPXCommonPlaybackViewContainer @ 116 NONAME
- _ZTV25CMPXCommonPlaybackViewImp @ 117 NONAME
- _ZTV28CMPXCommonPlaybackViewLayout @ 118 NONAME
- _ZTV31CMPXCommonPlaybackViewContainer @ 119 NONAME
- _ZThn100_N25CMPXCommonPlaybackViewImp20HandleViewActivationERK10TVwsViewIdS2_ @ 120 NONAME
- _ZThn108_N25CMPXCommonPlaybackViewImp24HandleOperationCompleteLE17TCHelperOperationiPv @ 121 NONAME
- _ZThn112_N25CMPXCommonPlaybackViewImp13HandlePSEventE4TUidi @ 122 NONAME
- _ZThn116_N25CMPXCommonPlaybackViewImp19HandleSettingChangeERK4TUidm @ 123 NONAME
- _ZThn120_N25CMPXCommonPlaybackViewImp16DialogDismissedLEi @ 124 NONAME
- _ZThn124_N25CMPXCommonPlaybackViewImp16HandleViewUpdateE4TUidN26MMPXViewActivationObserver16TViewUpdateEventEii @ 125 NONAME
- _ZThn124_N25CMPXCommonPlaybackViewImp20HandleViewActivationERK4TUidS2_ @ 126 NONAME
- _ZThn128_N25CMPXCommonPlaybackViewImp11HandleOpenLERK22CMPXCollectionPlaylisti @ 127 NONAME
- _ZThn128_N25CMPXCommonPlaybackViewImp11HandleOpenLERK9CMPXMediaiii @ 128 NONAME
- _ZThn128_N25CMPXCommonPlaybackViewImp21HandleCommandCompleteEP9CMPXMediai @ 129 NONAME
- _ZThn128_N25CMPXCommonPlaybackViewImp22HandleCollectionMediaLERK9CMPXMediai @ 130 NONAME
- _ZThn128_N25CMPXCommonPlaybackViewImp23HandleCollectionMessageEP9CMPXMediai @ 131 NONAME
- _ZThn12_N25CMPXCommonPlaybackViewImp15ProcessCommandLEi @ 132 NONAME
- _ZThn12_N25CMPXCommonPlaybackViewImp16DynInitMenuPaneLEiP12CEikMenuPane @ 133 NONAME
- _ZThn4_N28CMPXCommonPlaybackViewLayout11LayoutLabelEP9CEikLabelRK5TRect20TMPXPbvTextIndicatorii @ 134 NONAME
- _ZThn4_N28CMPXCommonPlaybackViewLayout12ButtonLayoutERK5TRect @ 135 NONAME
- _ZThn4_N28CMPXCommonPlaybackViewLayout12ButtonLayoutERK5TRecti @ 136 NONAME
- _ZThn4_N28CMPXCommonPlaybackViewLayout15IndicatorLayoutERK5TRect16TMPXPbvIndicator @ 137 NONAME
- _ZThn4_N28CMPXCommonPlaybackViewLayout17GetButtonBitmapsLE13TMPXPbvButtoniRP10CFbsBitmapS3_ @ 138 NONAME
- _ZThn4_N28CMPXCommonPlaybackViewLayout21GetIndicatorIconMaskLE16TMPXPbvIndicator @ 139 NONAME
- _ZThn52_N31CMPXCommonPlaybackViewContainer22ExtractAlbumArtStartedEv @ 140 NONAME
- _ZThn52_N31CMPXCommonPlaybackViewContainer24ExtractAlbumArtCompletedEP10CFbsBitmapi @ 141 NONAME
- _ZThn56_N31CMPXCommonPlaybackViewContainer20HandleButtonCommandLEi @ 142 NONAME
- _ZThn80_N25CMPXCommonPlaybackViewImp21HandlePlaybackMessageEP9CMPXMediai @ 143 NONAME
- _ZThn84_N25CMPXCommonPlaybackViewImp12HandleMediaLERK9CMPXMediai @ 144 NONAME
- _ZThn84_N25CMPXCommonPlaybackViewImp15HandlePropertyLE20TMPXPlaybackPropertyii @ 145 NONAME
- _ZThn84_N25CMPXCommonPlaybackViewImp21HandleSubPlayerNamesLE4TUidPK12MDesC16Arrayii @ 146 NONAME
- _ZThn96_N25CMPXCommonPlaybackViewImp18HandleLayoutChangeEv @ 147 NONAME
- _ZN31CMPXCommonPlaybackViewContainer18LightStatusChangedEiN10CHWRMLight12TLightStatusE @ 148 NONAME
- _ZThn60_N31CMPXCommonPlaybackViewContainer18LightStatusChangedEiN10CHWRMLight12TLightStatusE @ 149 NONAME
- _ZN25CMPXCommonPlaybackViewImp24LaunchFileDetailsDialogLEv @ 150 NONAME
+ _ZN25CMPXCommonPlaybackViewImp24LaunchFileDetailsDialogLEv @ 53 NONAME
+ _ZN25CMPXCommonPlaybackViewImp24UpdateFMTransmitterInfoLEi @ 54 NONAME
+ _ZN25CMPXCommonPlaybackViewImp25PrepareMediaForPlaylistLCERK9CMPXMedia @ 55 NONAME
+ _ZN25CMPXCommonPlaybackViewImp25UpdateDownloadStateLabelLEv @ 56 NONAME
+ _ZN25CMPXCommonPlaybackViewImp25UpdateTrackPosInPlaylistLEv @ 57 NONAME
+ _ZN25CMPXCommonPlaybackViewImp26HandleStatusPaneSizeChangeEv @ 58 NONAME
+ _ZN25CMPXCommonPlaybackViewImp27UpdateMiddleSoftKeyDisplayLEv @ 59 NONAME
+ _ZN25CMPXCommonPlaybackViewImp28UpdateTrackPlaybackPositionLEii @ 60 NONAME
+ _ZN25CMPXCommonPlaybackViewImpD0Ev @ 61 NONAME
+ _ZN25CMPXCommonPlaybackViewImpD1Ev @ 62 NONAME
+ _ZN25CMPXCommonPlaybackViewImpD2Ev @ 63 NONAME
+ _ZN28CMPXCommonPlaybackViewLayout11LayoutLabelEP9CEikLabelRK5TRect20TMPXPbvTextIndicatorii @ 64 NONAME
+ _ZN28CMPXCommonPlaybackViewLayout12ButtonLayoutERK5TRect @ 65 NONAME
+ _ZN28CMPXCommonPlaybackViewLayout12ButtonLayoutERK5TRecti @ 66 NONAME
+ _ZN28CMPXCommonPlaybackViewLayout14DoLayoutLabelLEP9CEikLabelRK5TRectiii @ 67 NONAME
+ _ZN28CMPXCommonPlaybackViewLayout15GetTextVariantLE20TMPXPbvTextIndicator @ 68 NONAME
+ _ZN28CMPXCommonPlaybackViewLayout15IndicatorLayoutERK5TRect16TMPXPbvIndicator @ 69 NONAME
+ _ZN28CMPXCommonPlaybackViewLayout16CreateColorIconLEP17MAknsSkinInstanceRK11TAknsItemIDS4_iRK7TDesC16ii @ 70 NONAME
+ _ZN28CMPXCommonPlaybackViewLayout17GetButtonBitmapsLE13TMPXPbvButtoniRP10CFbsBitmapS3_ @ 71 NONAME
+ _ZN28CMPXCommonPlaybackViewLayout17InitCommonLayoutLEv @ 72 NONAME
+ _ZN28CMPXCommonPlaybackViewLayout20GetIndicatorVariantLE16TMPXPbvIndicator @ 73 NONAME
+ _ZN28CMPXCommonPlaybackViewLayout21GetIndicatorIconMaskLE16TMPXPbvIndicator @ 74 NONAME
+ _ZN28CMPXCommonPlaybackViewLayout22DetermineLayoutVariantEv @ 75 NONAME
+ _ZN31CMPXCommonPlaybackViewContainer10ConstructLERK5TRect @ 76 NONAME
+ _ZN31CMPXCommonPlaybackViewContainer11SetFMTXModeEi @ 77 NONAME
+ _ZN31CMPXCommonPlaybackViewContainer11SizeChangedEv @ 78 NONAME
+ _ZN31CMPXCommonPlaybackViewContainer12CreateIconsLEv @ 79 NONAME
+ _ZN31CMPXCommonPlaybackViewContainer12StartMarqueeE20TMPXPbvTextIndicator @ 80 NONAME
+ _ZN31CMPXCommonPlaybackViewContainer12UpdateLabelLE20TMPXPbvTextIndicatorRK7TDesC16 @ 81 NONAME
+ _ZN31CMPXCommonPlaybackViewContainer12UpdateLayoutEv @ 82 NONAME
+ _ZN31CMPXCommonPlaybackViewContainer13CreateLabelsLEv @ 83 NONAME
+ _ZN31CMPXCommonPlaybackViewContainer13SetRandomModeEi @ 84 NONAME
+ _ZN31CMPXCommonPlaybackViewContainer13SetRepeatModeEii @ 85 NONAME
+ _ZN31CMPXCommonPlaybackViewContainer13UpdateButtonsE17TMPXPlaybackState @ 86 NONAME
+ _ZN31CMPXCommonPlaybackViewContainer14OfferKeyEventLERK9TKeyEvent10TEventCode @ 87 NONAME
+ _ZN31CMPXCommonPlaybackViewContainer16SetRealAudioModeEi @ 88 NONAME
+ _ZN31CMPXCommonPlaybackViewContainer18GetNewSongPositionEv @ 89 NONAME
+ _ZN31CMPXCommonPlaybackViewContainer18LightStatusChangedEiN10CHWRMLight12TLightStatusE @ 90 NONAME
+ _ZN31CMPXCommonPlaybackViewContainer18RefreshProgressBarEv @ 91 NONAME
+ _ZN31CMPXCommonPlaybackViewContainer18UpdateLabelColorsLEv @ 92 NONAME
+ _ZN31CMPXCommonPlaybackViewContainer19HandlePointerEventLERK13TPointerEvent @ 93 NONAME
+ _ZN31CMPXCommonPlaybackViewContainer19UpdateSoftkeyColorsEv @ 94 NONAME
+ _ZN31CMPXCommonPlaybackViewContainer20HandleButtonCommandLEi @ 95 NONAME
+ _ZN31CMPXCommonPlaybackViewContainer20HandleResourceChangeEi @ 96 NONAME
+ _ZN31CMPXCommonPlaybackViewContainer20UpdateDurationLabelLEi @ 97 NONAME
+ _ZN31CMPXCommonPlaybackViewContainer21UpdateTimeIndicatorsLEii @ 98 NONAME
+ _ZN31CMPXCommonPlaybackViewContainer22ExtractAlbumArtStartedEv @ 99 NONAME
+ _ZN31CMPXCommonPlaybackViewContainer22HandleForegroundEventLEi @ 100 NONAME
+ _ZN31CMPXCommonPlaybackViewContainer24ExtractAlbumArtCompletedEP10CFbsBitmapi @ 101 NONAME
+ _ZN31CMPXCommonPlaybackViewContainer25UpdateProgressBarGraphicsEv @ 102 NONAME
+ _ZN31CMPXCommonPlaybackViewContainer34UpdateBackgroundSkinControlContextERK5TRect @ 103 NONAME
+ _ZN31CMPXCommonPlaybackViewContainer7SetModeE19TMPXPbvPlaybackMode @ 104 NONAME
+ _ZN31CMPXCommonPlaybackViewContainer9FreeIconsEv @ 105 NONAME
+ _ZN31CMPXCommonPlaybackViewContainerD0Ev @ 106 NONAME
+ _ZN31CMPXCommonPlaybackViewContainerD1Ev @ 107 NONAME
+ _ZN31CMPXCommonPlaybackViewContainerD2Ev @ 108 NONAME
+ _ZNK25CMPXCommonPlaybackViewImp10IsEmbeddedEv @ 109 NONAME
+ _ZNK25CMPXCommonPlaybackViewImp18SimpleEmbeddedModeEv @ 110 NONAME
+ _ZNK31CMPXCommonPlaybackViewContainer10RedrawRectERK5TRect @ 111 NONAME
+ _ZNK31CMPXCommonPlaybackViewContainer13DrawIndicatorER9CWindowGcRK5TRectS4_PK8CGulIconi @ 112 NONAME
+ _ZNK31CMPXCommonPlaybackViewContainer14GetHelpContextER15TCoeHelpContext @ 113 NONAME
+ _ZNK31CMPXCommonPlaybackViewContainer16ComponentControlEi @ 114 NONAME
+ _ZNK31CMPXCommonPlaybackViewContainer22CountComponentControlsEv @ 115 NONAME
+ _ZNK31CMPXCommonPlaybackViewContainer4DrawERK5TRect @ 116 NONAME
+ _ZTI25CMPXCommonPlaybackViewImp @ 117 NONAME
+ _ZTI28CMPXCommonPlaybackViewLayout @ 118 NONAME
+ _ZTI31CMPXCommonPlaybackViewContainer @ 119 NONAME
+ _ZTV25CMPXCommonPlaybackViewImp @ 120 NONAME
+ _ZTV28CMPXCommonPlaybackViewLayout @ 121 NONAME
+ _ZTV31CMPXCommonPlaybackViewContainer @ 122 NONAME
+ _ZThn100_N25CMPXCommonPlaybackViewImp20HandleViewActivationERK10TVwsViewIdS2_ @ 123 NONAME
+ _ZThn108_N25CMPXCommonPlaybackViewImp24HandleOperationCompleteLE17TCHelperOperationiPv @ 124 NONAME
+ _ZThn112_N25CMPXCommonPlaybackViewImp13HandlePSEventE4TUidi @ 125 NONAME
+ _ZThn116_N25CMPXCommonPlaybackViewImp19HandleSettingChangeERK4TUidm @ 126 NONAME
+ _ZThn120_N25CMPXCommonPlaybackViewImp16DialogDismissedLEi @ 127 NONAME
+ _ZThn124_N25CMPXCommonPlaybackViewImp16HandleViewUpdateE4TUidN26MMPXViewActivationObserver16TViewUpdateEventEii @ 128 NONAME
+ _ZThn124_N25CMPXCommonPlaybackViewImp20HandleViewActivationERK4TUidS2_ @ 129 NONAME
+ _ZThn128_N25CMPXCommonPlaybackViewImp11HandleOpenLERK22CMPXCollectionPlaylisti @ 130 NONAME
+ _ZThn128_N25CMPXCommonPlaybackViewImp11HandleOpenLERK9CMPXMediaiii @ 131 NONAME
+ _ZThn128_N25CMPXCommonPlaybackViewImp21HandleCommandCompleteEP9CMPXMediai @ 132 NONAME
+ _ZThn128_N25CMPXCommonPlaybackViewImp22HandleCollectionMediaLERK9CMPXMediai @ 133 NONAME
+ _ZThn128_N25CMPXCommonPlaybackViewImp23HandleCollectionMessageEP9CMPXMediai @ 134 NONAME
+ _ZThn12_N25CMPXCommonPlaybackViewImp15ProcessCommandLEi @ 135 NONAME
+ _ZThn12_N25CMPXCommonPlaybackViewImp16DynInitMenuPaneLEiP12CEikMenuPane @ 136 NONAME
+ _ZThn4_N28CMPXCommonPlaybackViewLayout11LayoutLabelEP9CEikLabelRK5TRect20TMPXPbvTextIndicatorii @ 137 NONAME
+ _ZThn4_N28CMPXCommonPlaybackViewLayout12ButtonLayoutERK5TRect @ 138 NONAME
+ _ZThn4_N28CMPXCommonPlaybackViewLayout12ButtonLayoutERK5TRecti @ 139 NONAME
+ _ZThn4_N28CMPXCommonPlaybackViewLayout15IndicatorLayoutERK5TRect16TMPXPbvIndicator @ 140 NONAME
+ _ZThn4_N28CMPXCommonPlaybackViewLayout17GetButtonBitmapsLE13TMPXPbvButtoniRP10CFbsBitmapS3_ @ 141 NONAME
+ _ZThn4_N28CMPXCommonPlaybackViewLayout21GetIndicatorIconMaskLE16TMPXPbvIndicator @ 142 NONAME
+ _ZThn52_N31CMPXCommonPlaybackViewContainer22ExtractAlbumArtStartedEv @ 143 NONAME
+ _ZThn52_N31CMPXCommonPlaybackViewContainer24ExtractAlbumArtCompletedEP10CFbsBitmapi @ 144 NONAME
+ _ZThn56_N31CMPXCommonPlaybackViewContainer20HandleButtonCommandLEi @ 145 NONAME
+ _ZThn60_N31CMPXCommonPlaybackViewContainer18LightStatusChangedEiN10CHWRMLight12TLightStatusE @ 146 NONAME
+ _ZThn80_N25CMPXCommonPlaybackViewImp21HandlePlaybackMessageEP9CMPXMediai @ 147 NONAME
+ _ZThn84_N25CMPXCommonPlaybackViewImp12HandleMediaLERK9CMPXMediai @ 148 NONAME
+ _ZThn84_N25CMPXCommonPlaybackViewImp15HandlePropertyLE20TMPXPlaybackPropertyii @ 149 NONAME
+ _ZThn84_N25CMPXCommonPlaybackViewImp21HandleSubPlayerNamesLE4TUidPK12MDesC16Arrayii @ 150 NONAME
+ _ZThn96_N25CMPXCommonPlaybackViewImp18HandleLayoutChangeEv @ 151 NONAME
+
--- a/mpxplugins/viewplugins/views/commonplaybackview/inc/mpxbuttonmanager.h Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/viewplugins/views/commonplaybackview/inc/mpxbuttonmanager.h Tue Apr 27 16:34:37 2010 +0300
@@ -173,7 +173,7 @@
/**
* Sets the avkon rocker button state and send observer commands
*/
- TKeyResponse SetAvkonButtonState( const TKeyEvent& aKeyEvent, TEventCode aType );
+ TKeyResponse SetAvkonButtonStateL( const TKeyEvent& aKeyEvent, TEventCode aType );
/**
* Callback for long-press timer
@@ -183,7 +183,7 @@
/**
* Handle long press event.
*/
- void HandleLongPress();
+ void HandleLongPressL();
private: // Data
TRect iParentRect;
--- a/mpxplugins/viewplugins/views/commonplaybackview/src/mpxbuttonmanager.cpp Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/viewplugins/views/commonplaybackview/src/mpxbuttonmanager.cpp Tue Apr 27 16:34:37 2010 +0300
@@ -203,7 +203,7 @@
MPX_DEBUG3("CMPXButtonManager::OfferKeyEventL(%d, %d) entering", aKeyEvent.iScanCode, aType);
TKeyResponse response( EKeyWasNotConsumed );
- response = SetAvkonButtonState(aKeyEvent, aType);
+ response = SetAvkonButtonStateL(aKeyEvent, aType);
MPX_DEBUG2("CMPXButtonManager::OfferKeyEventL() exiting %d", response);
return response;
}
@@ -327,7 +327,7 @@
// CMPXCommonPlaybackViewContainer::SetAvkonButtonState
// -----------------------------------------------------------------------------
//
-TKeyResponse CMPXButtonManager::SetAvkonButtonState(const TKeyEvent& aKeyEvent,
+TKeyResponse CMPXButtonManager::SetAvkonButtonStateL(const TKeyEvent& aKeyEvent,
TEventCode aType)
{
@@ -335,7 +335,7 @@
if (aKeyEvent.iScanCode == EStdKeyLeftArrow || aKeyEvent.iCode == EKeyLeftArrow)
{
- MPX_DEBUG1( "CMPXButtonManager::SetAvkonButtonState LeftArrow" );
+ MPX_DEBUG1( "CMPXButtonManager::SetAvkonButtonStateL LeftArrow" );
if (aType == EEventKeyDown)
{
if (!iIsTouchUi)
@@ -358,13 +358,13 @@
iLongKeyTimer->Cancel();
if (iIsLongPress)
{
- MPX_DEBUG1( "CMPXButtonManager::SetAvkonButtonState LeftArrow long press" );
+ MPX_DEBUG1( "CMPXButtonManager::SetAvkonButtonStateL LeftArrow long press" );
iIsLongPress = EFalse;
iObserver->HandleButtonCommandL(EMPXPbvCmdEndSeek);
}
else
{
- MPX_DEBUG1( "CMPXButtonManager::SetAvkonButtonState LeftArrow short press" );
+ MPX_DEBUG1( "CMPXButtonManager::SetAvkonButtonStateL LeftArrow short press" );
iObserver->HandleButtonCommandL(EMPXPbvCmdPreviousListItem);
}
iIsLongPress = EFalse;
@@ -396,13 +396,13 @@
iLongKeyTimer->Cancel();
if (iIsLongPress)
{
- MPX_DEBUG1( "CMPXButtonManager::SetAvkonButtonState RightArrow long press" );
+ MPX_DEBUG1( "CMPXButtonManager::SetAvkonButtonStateL RightArrow long press" );
iIsLongPress = EFalse;
iObserver->HandleButtonCommandL(EMPXPbvCmdEndSeek);
}
else
{
- MPX_DEBUG1( "CMPXButtonManager::SetAvkonButtonState RightArrow short press" );
+ MPX_DEBUG1( "CMPXButtonManager::SetAvkonButtonStateL RightArrow short press" );
iObserver->HandleButtonCommandL(EMPXPbvCmdNextListItem);
}
iIsLongPress = EFalse;
@@ -413,7 +413,7 @@
else if (aKeyEvent.iScanCode == EStdKeyDevice3 || aKeyEvent.iCode == EKeyDevice3
|| aKeyEvent.iScanCode == EStdKeyEnter || aKeyEvent.iCode == EKeyEnter)
{
- MPX_DEBUG1( "CMPXButtonManager::SetAvkonButtonState EStdKeyDevice3 or EStdKeyEnter pressed" );
+ MPX_DEBUG1( "CMPXButtonManager::SetAvkonButtonStateL EStdKeyDevice3 or EStdKeyEnter pressed" );
if (!iIsTouchUi)
{
if (aType == EEventKeyDown)
@@ -468,7 +468,7 @@
}
else if (aKeyEvent.iScanCode == EStdKeyDownArrow || aKeyEvent.iCode == EKeyDownArrow)
{
- MPX_DEBUG1( "CMPXButtonManager::SetAvkonButtonState EStdKeyDownArrow pressed" );
+ MPX_DEBUG1( "CMPXButtonManager::SetAvkonButtonStateL EStdKeyDownArrow pressed" );
if (iVolumeInRocker || iStopInRocker)
{
if (!iIsTouchUi)
@@ -507,7 +507,7 @@
}
else if (aKeyEvent.iScanCode == EStdKeyUpArrow || aKeyEvent.iCode == EKeyUpArrow)
{
- MPX_DEBUG1( "CMPXButtonManager::SetAvkonButtonState EStdKeyUpArrow pressed" );
+ MPX_DEBUG1( "CMPXButtonManager::SetAvkonButtonStateL EStdKeyUpArrow pressed" );
if(iVolumeInRocker)
{
if (!iIsTouchUi)
@@ -543,15 +543,15 @@
TInt CMPXButtonManager::TimerCallback(TAny* aPtr)
{
//HandleLongPress();
- static_cast<CMPXButtonManager*>(aPtr)->HandleLongPress();
- return KErrNone;
+ MPX_TRAPD( err, static_cast<CMPXButtonManager*>(aPtr)->HandleLongPressL() );
+ return err;
}
// -----------------------------------------------------------------------------
// CMPlayerPlaybackContainer::HandleLongPress
// -----------------------------------------------------------------------------
//
-void CMPXButtonManager::HandleLongPress()
+void CMPXButtonManager::HandleLongPressL()
{
iObserver->HandleButtonCommandL(iLongPressCommandId);
iLongKeyTimer->Cancel();
--- a/mpxplugins/viewplugins/views/commonplaybackview/src/mpxcommonplaybackviewimp.cpp Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/viewplugins/views/commonplaybackview/src/mpxcommonplaybackviewimp.cpp Tue Apr 27 16:34:37 2010 +0300
@@ -503,7 +503,7 @@
if ( iContainer && !iSwitchingView )
{
- UpdatePlaybackState( iPlaybackState );
+ UpdatePlaybackStateL( iPlaybackState );
UpdateTrackInfoL( iMedia );
UpdateTrackPlaybackPositionL( iPosition, iDuration );
UpdateTrackPosInPlaylistL();
@@ -615,7 +615,7 @@
// Update current playback state.
// ---------------------------------------------------------------------------
//
-EXPORT_C void CMPXCommonPlaybackViewImp::UpdatePlaybackState(
+EXPORT_C void CMPXCommonPlaybackViewImp::UpdatePlaybackStateL(
TMPXPlaybackState aPlaybackState )
{
MPX_DEBUG2("CMPXCommonPlaybackViewImp::UpdatePlaybackState(%d): Entering", aPlaybackState);
@@ -1354,7 +1354,7 @@
{
MPX_FUNC_EX( "CMPXCommonPlaybackViewImp::DoHandleStateChangedL" );
MPX_DEBUG2( "CMPXCommonPlaybackViewImp::DoHandleStateChangedL %d", aState );
- UpdatePlaybackState( aState );
+ UpdatePlaybackStateL( aState );
switch ( aState )
{
@@ -1497,6 +1497,11 @@
case KErrCANewFileHandleRequired:
case KErrPermissionDenied:
{
+ if (aError == KErrCANoPermission ||
+ aError == KErrCANoRights)
+ {
+ iCommonUiHelper->HandleErrorL( KMPXErrorExpiredRights, iMedia );
+ }
TBool skip(ETrue);
if ( iMedia )
@@ -1654,7 +1659,7 @@
MPX_DEBUG2("CMPXCommonPlaybackViewImp::HandleAllTracksInvalidL: iDatabaseNotReady (%d)", iDatabaseNotReady);
iPlaybackUtility->CommandL( EPbCmdStop );
- UpdatePlaybackState( EPbStateStopped );
+ UpdatePlaybackStateL( EPbStateStopped );
TInt mpxWindowGroupId = CEikonEnv::Static()->RootWin().Identifier();
@@ -2591,7 +2596,7 @@
{
delete iMedia;
iMedia = NULL;
- UpdatePlaybackState( iPlaybackState );
+ UpdatePlaybackStateL( iPlaybackState );
UpdateTrackInfoL( iMedia );
}
else
@@ -2617,7 +2622,7 @@
if ( playlist->Count() > 0 )
{
RequestMediaL();
- UpdatePlaybackState( iPlaybackState );
+ UpdatePlaybackStateL( iPlaybackState );
}
else
{
@@ -2862,8 +2867,13 @@
ETrue );
}
+ // Check if HDMI cable is connected
+ TBool isHDMIConnected = iTvOutConfig->HdmiCableConnected();
+ aMenuPane->SetItemDimmed( EMPXPbvCmdOpenMusicSettings, isHDMIConnected );
+ aMenuPane->SetItemDimmed( EMPXPbvCmdEqualizer, isHDMIConnected );
+
// Check if FM Transmitter is supported
- if ( !FeatureManager::FeatureSupported( KFeatureIdFmtx ) )
+ if ( !FeatureManager::FeatureSupported( KFeatureIdFmtx ) || isHDMIConnected )
{
aMenuPane->SetItemDimmed(
EMPXPbvCmdFMTransmitter,
@@ -2873,7 +2883,7 @@
if ( iUpnpFrameworkSupport )
{
- if ( !iMedia || !IsUpnpVisible() )
+ if ( !iMedia || !IsUpnpVisibleL() )
{
GetCurrentPlayerDetails();
if ( iCurrentPlayerType == EPbLocal )
@@ -2893,7 +2903,6 @@
{
return;
}
- aMenuPane->SetItemDimmed( EMPXPbvCmdOpenMusicSettings, iTvOutConfig->HdmiCableConnected());
}
break;
}
@@ -3022,10 +3031,10 @@
else
{
if ( StatusPane()->CurrentLayoutResId() !=
- R_AVKON_STATUS_PANE_LAYOUT_USUAL )
+ R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL_FLAT )
{
TRAP_IGNORE(
- StatusPane()->SwitchLayoutL( R_AVKON_STATUS_PANE_LAYOUT_USUAL ));
+ StatusPane()->SwitchLayoutL( R_AVKON_WIDESCREEN_PANE_LAYOUT_USUAL_FLAT ));
}
}
@@ -3134,7 +3143,7 @@
// Taken from Gallery upnp support implementation
// -----------------------------------------------------------------------------
//
-EXPORT_C TBool CMPXCommonPlaybackViewImp::IsUpnpVisible()
+EXPORT_C TBool CMPXCommonPlaybackViewImp::IsUpnpVisibleL()
{
MPX_FUNC( "CMPXCommonPlaybackViewImp::IsUpnpVisible" );
TBool returnValue = EFalse;
@@ -3542,7 +3551,7 @@
EXPORT_C TBool CMPXCommonPlaybackViewImp::IsCommandSupportedL()
{
TBool forwardCommand = ETrue;
- if ( iUpnpFrameworkSupport && IsUpnpVisible() )
+ if ( iUpnpFrameworkSupport && IsUpnpVisibleL() )
{
// retrieve iCurrentPlayerType info
GetCurrentPlayerDetails();
@@ -3908,9 +3917,9 @@
// Updates the middle toolbar button
// ---------------------------------------------------------------------------
//
-EXPORT_C void CMPXCommonPlaybackViewImp::UpdateToolbar()
+EXPORT_C void CMPXCommonPlaybackViewImp::UpdateToolbarL()
{
- MPX_FUNC("CMPXCommonPlaybackViewImp::UpdateToolbar");
+ MPX_FUNC("CMPXCommonPlaybackViewImp::UpdateToolbarL");
if ( AknLayoutUtils::PenEnabled() )
{
@@ -3987,29 +3996,34 @@
//
TInt CMPXCommonPlaybackViewImp::HandleDelayedError( TAny* aPtr )
{
+ TInt ret( KErrNone );
CMPXCommonPlaybackViewImp* pv = reinterpret_cast<CMPXCommonPlaybackViewImp*>( aPtr );
pv->iDelayedErrorTimer->Cancel();
-
// compare index
if ( pv->iPlaybackUtility )
{
MMPXSource* source( pv->iPlaybackUtility->Source() );
if ( source )
{
- CMPXCollectionPlaylist* pl( source->PlaylistL() );
- if ( pl )
- {
- CleanupStack::PushL( pl );
- if ( pv->iErrIndex == pl->Index() )
- {
- pv->HandleErrorL( pv->iLastDelayedErr );
- }
- CleanupStack::PopAndDestroy( pl );
- }
+ CMPXCollectionPlaylist* pl( NULL );
+ MPX_TRAP( ret, pl = source->PlaylistL() );
+ if( ret != KErrNone )
+ {
+ return ret;
+ }
+
+ if ( pv->iErrIndex == pl->Index() )
+ {
+ MPX_TRAP( ret, pv->HandleErrorL( pv->iLastDelayedErr ) );
+ }
+
+ delete pl;
+ pl = NULL;
+
}
}
- return KErrNone;
+ return ret;
}
// ---------------------------------------------------------------------------
@@ -4077,7 +4091,7 @@
{
toolbar->SetToolbarVisibility(EFalse);
}
- iViewUtility->ActivateViewL( TUid::Uid(KMPXPluginTypeMetadataEditorUid) );
+ TRAP_IGNORE( iViewUtility->ActivateViewL( TUid::Uid(KMPXPluginTypeMetadataEditorUid) ) );
if ( toolbar )
{
toolbar->SetToolbarVisibility(ETrue);
--- a/mpxplugins/viewplugins/views/commonplaybackview/src/mpxcommonplaybackviewlayout.cpp Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/viewplugins/views/commonplaybackview/src/mpxcommonplaybackviewlayout.cpp Tue Apr 27 16:34:37 2010 +0300
@@ -81,8 +81,8 @@
TAknLayoutRect res;
TMPXPbvLayoutVariants lafVariant(EPbvUndefinedVariant);
- lafVariant = GetIndicatorVariant(aIndicator);
- if (lafVariant == EPbvUndefinedVariant)
+ MPX_TRAPD( err, lafVariant = GetIndicatorVariantL(aIndicator) );
+ if ( err != KErrNone || lafVariant == EPbvUndefinedVariant)
{
// unsupported
ASSERT(0);
@@ -178,8 +178,8 @@
TInt /*aOffsety*/ /* =0 */ )
{
TMPXPbvLayoutVariants lafVariant(EPbvUndefinedVariant);
- lafVariant = GetTextVariant(aText);
- if (lafVariant == EPbvUndefinedVariant)
+ MPX_TRAPD( err, lafVariant = GetTextVariantL(aText) );
+ if ( lafVariant == EPbvUndefinedVariant || err != KErrNone )
{
ASSERT(0);
}
@@ -520,6 +520,19 @@
return res.Rect();
}
+// ---------------------------------------------------------------------------
+// Init common layout data
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CMPXCommonPlaybackViewLayout::InitCommonLayoutL()
+ {
+ TInt flags( 0 );
+ CRepository* repository = CRepository::NewL( KCRUidMPXMPFeatures );
+ User::LeaveIfError( repository->Get( KMPXMPLocalVariation, flags ));
+ delete repository;
+ repository = NULL;
+ iShowRockerGraphics = static_cast<TBool>( flags & KMPXRockerMappingSupport );
+ }
// ---------------------------------------------------------------------------
// Determine the layout (touch, non-touch, landscape, portrait, rocker, etc...)
@@ -529,12 +542,6 @@
{
TMPXPbvLayoutVariants variant(EPbvUndefinedVariant);
- TInt flags( 0 );
- CRepository* repository = CRepository::NewL( KCRUidMPXMPFeatures );
- User::LeaveIfError( repository->Get( KMPXMPLocalVariation, flags ));
- delete repository;
- repository = NULL;
- TBool showRockerGraphics = static_cast<TBool>( flags & KMPXRockerMappingSupport );
TBool isLandscape = Layout_Meta_Data::IsLandscapeOrientation();
@@ -548,19 +555,19 @@
{
variant = EPbvLandscapeNhdTouchWithFM;
}
- else if (!showRockerGraphics && !isLandscape )
+ else if (!iShowRockerGraphics && !isLandscape )
{
variant = EPbvPortraitWithoutRocker;
}
- else if (!showRockerGraphics && isLandscape)
+ else if (!iShowRockerGraphics && isLandscape)
{
variant = EPbvLandscapeWithoutRocker;
}
- else if (showRockerGraphics && !isLandscape)
+ else if (iShowRockerGraphics && !isLandscape)
{
variant = EPbvPortraitWithRocker;
}
- else if (showRockerGraphics && isLandscape)
+ else if (iShowRockerGraphics && isLandscape)
{
variant = EPbvLandscapeWithRocker;
}
@@ -569,11 +576,12 @@
return(variant);
}
+
// ---------------------------------------------------------------------------
// Determine the layout variant for a text item
// ---------------------------------------------------------------------------
//
-EXPORT_C TMPXPbvLayoutVariants CMPXCommonPlaybackViewLayout::GetTextVariant(TMPXPbvTextIndicator aText)
+EXPORT_C TMPXPbvLayoutVariants CMPXCommonPlaybackViewLayout::GetTextVariantL(TMPXPbvTextIndicator aText)
{
TMPXPbvLayoutVariants layoutVariant = DetermineLayoutVariant();
TMPXPbvLayoutVariants textVariant;
@@ -608,7 +616,7 @@
// Determine the layout variant type for an indicator item
// ---------------------------------------------------------------------------
//
-EXPORT_C TMPXPbvLayoutVariants CMPXCommonPlaybackViewLayout::GetIndicatorVariant(TMPXPbvIndicator aIndicator)
+EXPORT_C TMPXPbvLayoutVariants CMPXCommonPlaybackViewLayout::GetIndicatorVariantL(TMPXPbvIndicator aIndicator)
{
TMPXPbvLayoutVariants layoutVariant = DetermineLayoutVariant();
TMPXPbvLayoutVariants indicatorVariant;
--- a/mpxplugins/viewplugins/views/embeddedplaybackview/src/mpxembeddedplaybackviewimp.cpp Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/viewplugins/views/embeddedplaybackview/src/mpxembeddedplaybackviewimp.cpp Tue Apr 27 16:34:37 2010 +0300
@@ -703,7 +703,7 @@
{
case TMPXPlaybackMessage::EStateChanged:
UpdateMiddleSoftKeyDisplayL();
- UpdateToolbar();
+ UpdateToolbarL();
break;
default:
@@ -723,7 +723,7 @@
if (aResourceId == R_MPX_PBV_TOUCH_TOOLBAR)
{
// Put initializations here to take effect before toolbar is shown
- UpdateToolbar();
+ UpdateToolbarL();
aToolbar->UpdateBackground();
}
}
--- a/mpxplugins/viewplugins/views/embeddedplaybackview/src/mpxembeddedplaybackviewlayout.cpp Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/viewplugins/views/embeddedplaybackview/src/mpxembeddedplaybackviewlayout.cpp Tue Apr 27 16:34:37 2010 +0300
@@ -96,6 +96,7 @@
{
MPX_FUNC( "CMPXEmbeddedPlaybackViewLayout::ConstructL" );
iCommonUiHelper = CMPXCommonUiHelper::NewL();
+ InitCommonLayoutL();
}
// ---------------------------------------------------------------------------
--- a/mpxplugins/viewplugins/views/inc/mpxcommoncontainer.h Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/viewplugins/views/inc/mpxcommoncontainer.h Tue Apr 27 16:34:37 2010 +0300
@@ -234,7 +234,7 @@
*
* @since 3.2
*/
- virtual void DrawLbxItem( TInt aIndex ) = 0;
+ virtual void DrawLbxItemL( TInt aIndex ) = 0;
/**
* Set Find box's focus.
@@ -327,7 +327,7 @@
/**
* Custom handling of menu pane for markable lists
*/
- virtual void HandleMarkableListDynInitMenuPane(
+ virtual void HandleMarkableListDynInitMenuPaneL(
TInt aResourceId,
CEikMenuPane* aMenuPane ) = 0;
--- a/mpxplugins/viewplugins/views/inc/mpxcommonplaybackviewlayout.h Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/viewplugins/views/inc/mpxcommonplaybackviewlayout.h Tue Apr 27 16:34:37 2010 +0300
@@ -174,7 +174,7 @@
* @param aText Enumeration value identifying the text
* @return layout variant id
*/
- IMPORT_C TMPXPbvLayoutVariants GetTextVariant(TMPXPbvTextIndicator aText);
+ IMPORT_C TMPXPbvLayoutVariants GetTextVariantL(TMPXPbvTextIndicator aText);
/**
* Get layout data for an indicator item
@@ -182,8 +182,16 @@
* @param aIndicator Enumeration value identifying the indicator
* @return Layout variant id
*/
- IMPORT_C TMPXPbvLayoutVariants GetIndicatorVariant(TMPXPbvIndicator aIndicator);
+ IMPORT_C TMPXPbvLayoutVariants GetIndicatorVariantL(TMPXPbvIndicator aIndicator);
+ /**
+ * Init common layout data
+ * @since 5.0
+ */
+ IMPORT_C void InitCommonLayoutL();
+
+private:
+ TBool iShowRockerGraphics;
};
#endif // CMPXCOMMONPLAYBACKVIEWLAYOUT_H
--- a/mpxplugins/viewplugins/views/pdplaybackview/inc/mpxpdplaybackviewimp.h Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/viewplugins/views/pdplaybackview/inc/mpxpdplaybackviewimp.h Tue Apr 27 16:34:37 2010 +0300
@@ -221,7 +221,7 @@
* @since 5.0
*
*/
- void UpdateToolbar();
+ void UpdateToolbarL();
private: // data
CMPXPdPlaybackViewLayout* iPlaybackViewLayout; // owned
--- a/mpxplugins/viewplugins/views/pdplaybackview/src/mpxpdplaybackviewimp.cpp Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/viewplugins/views/pdplaybackview/src/mpxpdplaybackviewimp.cpp Tue Apr 27 16:34:37 2010 +0300
@@ -277,7 +277,7 @@
MPX_DEBUG2( "CMPXPdPlaybackViewImp::DoHandlePlaybackMessageL - EStateChanged(%d)", type );
UpdateMiddleSoftKeyDisplayL();
- UpdateToolbar();
+ UpdateToolbarL();
TMPXPlaybackState state =
static_cast<TMPXPlaybackState>( type );
DoHandleStateChangedL( state, data );
@@ -313,7 +313,7 @@
{
case EPbStateInitialising:
{
- UpdatePlaybackState( aState );
+ UpdatePlaybackStateL( aState );
UpdateDownloadStateLabelL();
RequestMediaL();
break;
@@ -730,7 +730,7 @@
// Put initializations here to take effect before toolbar is shown
aToolbar->SetItemDimmed( EMPXPbvCmdPreviousListItem, ETrue, EFalse );
aToolbar->SetItemDimmed( EMPXPbvCmdNextListItem, ETrue, EFalse );
- UpdateToolbar();
+ UpdateToolbarL();
aToolbar->UpdateBackground();
}
}
@@ -749,7 +749,7 @@
// Updates the middle toolbar button
// ---------------------------------------------------------------------------
//
-void CMPXPdPlaybackViewImp::UpdateToolbar()
+void CMPXPdPlaybackViewImp::UpdateToolbarL()
{
MPX_FUNC( "CMPXPdPlaybackViewImp::UpdateToolbar" );
--- a/mpxplugins/viewplugins/views/pdplaybackview/src/mpxpdplaybackviewlayout.cpp Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/viewplugins/views/pdplaybackview/src/mpxpdplaybackviewlayout.cpp Tue Apr 27 16:34:37 2010 +0300
@@ -87,6 +87,7 @@
void CMPXPdPlaybackViewLayout::ConstructL()
{
MPX_FUNC( "CMPXPdPlaybackViewLayout::ConstructL" );
+ InitCommonLayoutL();
}
// End of File
--- a/mpxplugins/viewplugins/views/pdsbplaybackview/inc/mpxpdsbplaybackviewimp.h Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/viewplugins/views/pdsbplaybackview/inc/mpxpdsbplaybackviewimp.h Tue Apr 27 16:34:37 2010 +0300
@@ -231,7 +231,7 @@
* @since 5.0
*
*/
- void UpdateToolbar();
+ void UpdateToolbarL();
private: // data
CMPXPdSbPlaybackViewLayout* iPlaybackViewLayout; // owned
--- a/mpxplugins/viewplugins/views/pdsbplaybackview/src/mpxpdsbplaybackviewimp.cpp Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/viewplugins/views/pdsbplaybackview/src/mpxpdsbplaybackviewimp.cpp Tue Apr 27 16:34:37 2010 +0300
@@ -280,7 +280,7 @@
{
MPX_DEBUG2( "CMPXPdSbPlaybackViewImp::DoHandlePlaybackMessageL - EStateChanged(%d)", type );
- UpdateToolbar();
+ UpdateToolbarL();
UpdateMiddleSoftKeyDisplayL();
TInt data( *aMessage.Value<TInt>( KMPXMessageGeneralData ) );
TMPXPlaybackState state =
@@ -353,7 +353,7 @@
{
case EPbStateInitialising:
{
- UpdatePlaybackState( aState );
+ UpdatePlaybackStateL( aState );
UpdateDownloadStateLabelL();
RequestMediaL();
break;
@@ -854,7 +854,7 @@
// Put initializations here to take effect before toolbar is shown
aToolbar->SetItemDimmed( EMPXPbvCmdPreviousListItem, ETrue, EFalse );
aToolbar->SetItemDimmed( EMPXPbvCmdNextListItem, ETrue, EFalse );
- UpdateToolbar();
+ UpdateToolbarL();
aToolbar->UpdateBackground();
}
}
@@ -873,7 +873,7 @@
// Updates the middle toolbar button
// ---------------------------------------------------------------------------
//
-void CMPXPdSbPlaybackViewImp::UpdateToolbar()
+void CMPXPdSbPlaybackViewImp::UpdateToolbarL()
{
MPX_FUNC( "CMPXPdSbPlaybackViewImp::UpdateToolbar" );
--- a/mpxplugins/viewplugins/views/pdsbplaybackview/src/mpxpdsbplaybackviewlayout.cpp Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/viewplugins/views/pdsbplaybackview/src/mpxpdsbplaybackviewlayout.cpp Tue Apr 27 16:34:37 2010 +0300
@@ -87,6 +87,7 @@
void CMPXPdSbPlaybackViewLayout::ConstructL()
{
MPX_FUNC( "CMPXPdSbPlaybackViewLayout::ConstructL" );
+ InitCommonLayoutL();
}
// End of File
--- a/mpxplugins/viewplugins/views/playbackview/src/mpxplaybackviewimp.cpp Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/viewplugins/views/playbackview/src/mpxplaybackviewimp.cpp Tue Apr 27 16:34:37 2010 +0300
@@ -208,7 +208,7 @@
{
case TMPXPlaybackMessage::EStateChanged:
UpdateMiddleSoftKeyDisplayL();
- UpdateToolbar();
+ UpdateToolbarL();
break;
default:
@@ -228,7 +228,7 @@
if (aResourceId == R_MPX_PBV_TOUCH_TOOLBAR)
{
// Put initializations here to take effect before toolbar is shown
- UpdateToolbar();
+ UpdateToolbarL();
aToolbar->UpdateBackground();
}
}
--- a/mpxplugins/viewplugins/views/playbackview/src/mpxplaybackviewlayout.cpp Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/viewplugins/views/playbackview/src/mpxplaybackviewlayout.cpp Tue Apr 27 16:34:37 2010 +0300
@@ -87,6 +87,7 @@
void CMPXPlaybackViewLayout::ConstructL()
{
MPX_FUNC( "CMPXPlaybackViewLayout::ConstructL" );
+ InitCommonLayoutL();
}
// End of File
--- a/mpxplugins/viewplugins/views/podcastplaybackview/inc/mpxpodcastplaybackviewimp.h Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/viewplugins/views/podcastplaybackview/inc/mpxpodcastplaybackviewimp.h Tue Apr 27 16:34:37 2010 +0300
@@ -182,7 +182,7 @@
* Updates the middle (play/pause) toolbar control key
* icon based on playback state
*/
- void UpdateToolbar();
+ void UpdateToolbarL();
private: // data
--- a/mpxplugins/viewplugins/views/podcastplaybackview/src/mpxpodcastplaybackviewimp.cpp Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/viewplugins/views/podcastplaybackview/src/mpxpodcastplaybackviewimp.cpp Tue Apr 27 16:34:37 2010 +0300
@@ -447,7 +447,7 @@
if (aResourceId == R_MPX_PBV_TOUCH_TOOLBAR)
{
// Put initializations here to take effect before toolbar is shown
- UpdateToolbar();
+ UpdateToolbarL();
aToolbar->UpdateBackground();
}
}
@@ -501,7 +501,7 @@
{
case TMPXPlaybackMessage::EStateChanged:
UpdateMiddleSoftKeyDisplayL();
- UpdateToolbar();
+ UpdateToolbarL();
break;
default:
@@ -515,7 +515,7 @@
// Updates the middle toolbar button
// ---------------------------------------------------------------------------
//
-void CMPXPodcastPlaybackViewImp::UpdateToolbar()
+void CMPXPodcastPlaybackViewImp::UpdateToolbarL()
{
MPX_FUNC("CMPXPodcastPlaybackViewImp::UpdateToolbar");
--- a/mpxplugins/viewplugins/views/podcastplaybackview/src/mpxpodcastplaybackviewlayout.cpp Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/viewplugins/views/podcastplaybackview/src/mpxpodcastplaybackviewlayout.cpp Tue Apr 27 16:34:37 2010 +0300
@@ -91,6 +91,7 @@
void CMPXPodcastPlaybackViewLayout::ConstructL()
{
MPX_FUNC( "CMPXPodcastPlaybackViewLayout::ConstructL" );
+ InitCommonLayoutL();
}
// ---------------------------------------------------------------------------
--- a/mpxplugins/viewplugins/views/podcastview/inc/mpxpodcastcollectionviewimp.h Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/viewplugins/views/podcastview/inc/mpxpodcastcollectionviewimp.h Tue Apr 27 16:34:37 2010 +0300
@@ -205,7 +205,7 @@
*
* @return ETrue if visible, EFalse otherwise
*/
- TBool IsUpnpVisible();
+ TBool IsUpnpVisibleL();
/**
* Displays the available players in the Play via submenu
--- a/mpxplugins/viewplugins/views/podcastview/src/mpxpodcastcollectionviewcontainer.cpp Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/viewplugins/views/podcastview/src/mpxpodcastcollectionviewcontainer.cpp Tue Apr 27 16:34:37 2010 +0300
@@ -112,13 +112,13 @@
if ( index != KErrNotFound )
{
// Update the previous item as not playing anymore
- iCommonContainer->DrawLbxItem( index );
+ iCommonContainer->DrawLbxItemL( index );
}
index = iLbxArray->GetPlaybackIndex();
if ( index != KErrNotFound )
{
// Update new item as playing
- iCommonContainer->DrawLbxItem( index );
+ iCommonContainer->DrawLbxItemL( index );
}
}
}
--- a/mpxplugins/viewplugins/views/podcastview/src/mpxpodcastcollectionviewimp.cpp Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/viewplugins/views/podcastview/src/mpxpodcastcollectionviewimp.cpp Tue Apr 27 16:34:37 2010 +0300
@@ -1241,7 +1241,7 @@
{
MPX_FUNC("CMPXPodcastCollectionViewImp::HandleDynInitUpnpL()");
- if ( !IsUpnpVisible() )
+ if ( !IsUpnpVisibleL() )
{
GetCurrentPlayerDetails();
@@ -1314,9 +1314,9 @@
// Checks if UPnP access point is defined
// -----------------------------------------------------------------------------
//
-TBool CMPXPodcastCollectionViewImp::IsUpnpVisible()
+TBool CMPXPodcastCollectionViewImp::IsUpnpVisibleL()
{
- MPX_FUNC( "CMPXPodcastCollectionViewImp::IsUpnpVisible" );
+ MPX_FUNC( "CMPXPodcastCollectionViewImp::IsUpnpVisibleL" );
TBool returnValue = EFalse;
#ifdef UPNP_INCLUDED
@@ -3854,7 +3854,7 @@
if (!(aResourceId == R_AVKON_MENUPANE_MARKABLE_LIST && usbUnblockingStatus == EMPXUSBUnblockingPSStatusActive))
{
// Custom handling of menu pane for markable lists
- iContainer->Common()->HandleMarkableListDynInitMenuPane(
+ iContainer->Common()->HandleMarkableListDynInitMenuPaneL(
aResourceId,
aMenuPane );
}
--- a/mpxplugins/viewplugins/views/upnpplaybackdialog/src/mpxupnpplaybackdialog.cpp Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/viewplugins/views/upnpplaybackdialog/src/mpxupnpplaybackdialog.cpp Tue Apr 27 16:34:37 2010 +0300
@@ -317,7 +317,7 @@
if ( GetUPnPPlaybackDialogCustomControl() && !iSwitchingView )
{
- UpdatePlaybackState( iPlaybackState );
+ UpdatePlaybackStateL( iPlaybackState );
UpdateTrackInfoL( iMedia );
UpdateTrackPlaybackPositionL( iPosition, iDuration );
UpdateTrackPosInPlaylistL();
@@ -434,11 +434,11 @@
// Update current playback state.
// ---------------------------------------------------------------------------
//
-void CMPXUPnPPlaybackDialog::UpdatePlaybackState(
+void CMPXUPnPPlaybackDialog::UpdatePlaybackStateL(
TMPXPlaybackState aPlaybackState )
{
- MPX_FUNC( "CMPXUPnPPlaybackDialog::UpdatePlaybackState()" );
- MPX_DEBUG2("CMPXUPnPPlaybackDialog::UpdatePlaybackState(%d): Entering", aPlaybackState);
+ MPX_FUNC( "CMPXUPnPPlaybackDialog::UpdatePlaybackStateL()" );
+ MPX_DEBUG2("CMPXUPnPPlaybackDialog::UpdatePlaybackStateL(%d): Entering", aPlaybackState);
if ( GetUPnPPlaybackDialogCustomControl() && !iSwitchingView )
{
@@ -486,7 +486,7 @@
}
GetUPnPPlaybackDialogCustomControl()->UpdateButtons( aPlaybackState );
- UpdateToolbar();
+ UpdateToolbarL();
}
else
{
@@ -1116,7 +1116,7 @@
}
else
{
- UpdatePlaybackState( aState );
+ UpdatePlaybackStateL( aState );
switch ( aState )
{
@@ -1338,7 +1338,7 @@
MPX_FUNC( "CMPXUPnPPlaybackDialog::HandleAllTracksInvalidL()" );
iPlaybackUtility->CommandL( EPbCmdStop );
- UpdatePlaybackState( EPbStateStopped );
+ UpdatePlaybackStateL( EPbStateStopped );
// Do not display error if view is not active
if ( GetUPnPPlaybackDialogCustomControl() )
@@ -1920,7 +1920,7 @@
{
delete iMedia;
iMedia = NULL;
- UpdatePlaybackState( iPlaybackState );
+ UpdatePlaybackStateL( iPlaybackState );
UpdateTrackInfoL( iMedia );
}
else if ( iMedia == NULL )
@@ -1935,7 +1935,7 @@
if ( playlist->Count() > 0 )
{
RequestMediaL();
- UpdatePlaybackState( iPlaybackState );
+ UpdatePlaybackStateL( iPlaybackState );
}
else
{
@@ -2144,37 +2144,56 @@
{
case EPbCmdSetVolume:
{
- TMPXPlaybackState playerState( iPlaybackUtility->StateL() );
- if ( iAvkonAppUi->IsForeground() || playerState == EPbStatePlaying )
- {
- if ( aData != iCurrentVolume )
- {
- SetVolume( aData );
- }
- // popup volume control even if volume didn't change
- HandlePopupL( EPbCmdSetVolume );
- }
- break;
+ MPX_TRAPD( err,
+ TMPXPlaybackState playerState( iPlaybackUtility->StateL() );
+ if ( iAvkonAppUi->IsForeground() || playerState == EPbStatePlaying )
+ {
+ if ( aData != iCurrentVolume )
+ {
+ SetVolumeL( aData );
+ }
+ // popup volume control even if volume didn't change
+ HandlePopupL( EPbCmdSetVolume );
+ }
+ );
+ if( err != KErrNone )
+ {
+ MPX_DEBUG2( "CMPXUPnPPlaybackDialog::HandleMediaKeyCommand EPbCmdSetVolume leave err%d", err );
+ }
+ break;
}
case EPbCmdMuteVolume:
- {
- TMPXPlaybackState playerState( iPlaybackUtility->StateL() );
- if ( iAvkonAppUi->IsForeground() || playerState == EPbStatePlaying )
- {
- MuteVolume();
- HandlePopupL( EPbCmdMuteVolume );
- }
- break;
+ {
+ MPX_TRAPD( err,
+ TMPXPlaybackState playerState( iPlaybackUtility->StateL() );
+ if ( iAvkonAppUi->IsForeground() || playerState == EPbStatePlaying )
+ {
+ MuteVolumeL();
+ HandlePopupL( EPbCmdMuteVolume );
+ }
+ );
+ if( err != KErrNone )
+ {
+ MPX_DEBUG2( "CMPXUPnPPlaybackDialog::HandleMediaKeyCommand EPbCmdMuteVolume leave err%d", err );
+ }
+ break;
}
case EPbCmdUnMuteVolume:
- {
- TMPXPlaybackState playerState( iPlaybackUtility->StateL() );
- if ( iAvkonAppUi->IsForeground() || playerState == EPbStatePlaying )
- {
- UnMuteVolume();
- HandlePopupL( EPbCmdUnMuteVolume );
- }
- break;
+ {
+ MPX_TRAPD( err,
+ TMPXPlaybackState playerState( iPlaybackUtility->StateL() );
+ if ( iAvkonAppUi->IsForeground() || playerState == EPbStatePlaying )
+ {
+ UnMuteVolumeL();
+ HandlePopupL( EPbCmdUnMuteVolume );
+ }
+ );
+ if( err != KErrNone )
+ {
+ MPX_DEBUG2( "CMPXUPnPPlaybackDialog::HandleMediaKeyCommand EPbCmdUnMuteVolume leave err%d", err );
+ }
+
+ break;
}
default:
{
@@ -2197,14 +2216,14 @@
playerState == EPbStateSeekingBackward )
{
MPX_DEBUG2( "CMPXUPnPPlaybackDialog::HandleCustomCommand not foreground, sending command %d to HandleMediaKeyCommandL", aCommand );
- TRAP_IGNORE( DoHandleMediaKeyCommandL( aCommand ) );
- }
- else if ( aCommand == EPbCmdPlay || aCommand == EPbCmdPlayPause )
- {
+ TRAP_IGNORE( DoHandleMediaKeyCommandL( aCommand ) );
+ }
+ else if ( aCommand == EPbCmdPlay || aCommand == EPbCmdPlayPause )
+ {
MPX_DEBUG2( "CMPXUPnPPlaybackDialog::HandleCustomCommand not foreground, active idle foreground, sending command %d to HandleMediaKeyCommandL", aCommand );
- // not foreground, play without loading playback view
- TRAP_IGNORE( DoHandleMediaKeyCommandL( aCommand ) );
- }
+ // not foreground, play without loading playback view
+ TRAP_IGNORE( DoHandleMediaKeyCommandL( aCommand ) );
+ }
else
{
MPX_DEBUG2( "CMPXUPnPPlaybackDialog::HandleCustomCommand not foreground, inactive state, command %d ignored", aCommand );
@@ -2411,7 +2430,7 @@
// CMPXUPnPPlaybackDialog::SetVolume
// -----------------------------------------------------------------------------
//
-void CMPXUPnPPlaybackDialog::SetVolume( const TInt aVolume )
+void CMPXUPnPPlaybackDialog::SetVolumeL( const TInt aVolume )
{
CMPXCommand* cmd( CMPXCommand::NewL() );
CleanupStack::PushL( cmd );
@@ -2428,7 +2447,7 @@
// CMPXUPnPPlaybackDialog::MuteVolume
// -----------------------------------------------------------------------------
//
-void CMPXUPnPPlaybackDialog::MuteVolume()
+void CMPXUPnPPlaybackDialog::MuteVolumeL()
{
CMPXCommand* cmd( CMPXCommand::NewL() );
CleanupStack::PushL( cmd );
@@ -2444,7 +2463,7 @@
// CMPXUPnPPlaybackDialog::UnMuteVolume
// -----------------------------------------------------------------------------
//
-void CMPXUPnPPlaybackDialog::UnMuteVolume()
+void CMPXUPnPPlaybackDialog::UnMuteVolumeL()
{
CMPXCommand* cmd( CMPXCommand::NewL() );
CleanupStack::PushL( cmd );
@@ -2460,7 +2479,7 @@
// Updates the middle toolbar button
// ---------------------------------------------------------------------------
//
-void CMPXUPnPPlaybackDialog::UpdateToolbar()
+void CMPXUPnPPlaybackDialog::UpdateToolbarL()
{
if ( AknLayoutUtils::PenEnabled() )
{
@@ -2547,7 +2566,7 @@
if ( toolbar == aToolbar )
{
// Put initializations here to take effect before toolbar is shown
- UpdateToolbar();
+ UpdateToolbarL();
aToolbar->UpdateBackground();
}
}
--- a/mpxplugins/viewplugins/views/upnpplaybackdialog/src/mpxupnpplaybackdialoglayout.cpp Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/viewplugins/views/upnpplaybackdialog/src/mpxupnpplaybackdialoglayout.cpp Tue Apr 27 16:34:37 2010 +0300
@@ -94,6 +94,7 @@
void CMPXUPnPPlaybackDialogLayout::ConstructL()
{
MPX_FUNC( "CMPXUPnPPlaybackDialogLayout::ConstructL" );
+ InitCommonLayoutL();
}
// ---------------------------------------------------------------------------
--- a/mpxplugins/viewplugins/views/upnpplaybackview/src/mpxupnpplaybackviewimp.cpp Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/viewplugins/views/upnpplaybackview/src/mpxupnpplaybackviewimp.cpp Tue Apr 27 16:34:37 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description: Implementation of Upnp Playback view
-* Version : %version: e003sa33#35.1.3.1.5 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: e003sa33#35.1.3.1.6 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -263,7 +263,7 @@
{
MPX_DEBUG1( "HandlePlaybackMessageL - EStateChanged" );
UpdateMiddleSoftKeyDisplayL();
- UpdateToolbar();
+ UpdateToolbarL();
break;
}
default:
@@ -774,7 +774,7 @@
if ( aResourceId == R_MPX_PBV_TOUCH_TOOLBAR )
{
// Put initializations here to take effect before toolbar is shown
- UpdateToolbar();
+ UpdateToolbarL();
aToolbar->UpdateBackground();
}
}
--- a/mpxplugins/viewplugins/views/upnpplaybackview/src/mpxupnpplaybackviewlayout.cpp Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/viewplugins/views/upnpplaybackview/src/mpxupnpplaybackviewlayout.cpp Tue Apr 27 16:34:37 2010 +0300
@@ -97,6 +97,7 @@
{
MPX_FUNC( "CMPXUPnPPlaybackViewLayout::ConstructL" );
iPodcastAlbumArt = EFalse;
+ InitCommonLayoutL();
}
// ---------------------------------------------------------------------------
--- a/mpxplugins/viewplugins/views/waitnotedialog/inc/mpxscanningdialog.h Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/viewplugins/views/waitnotedialog/inc/mpxscanningdialog.h Tue Apr 27 16:34:37 2010 +0300
@@ -97,6 +97,14 @@
* Helper function used inside DoHandleCollectionMessageL
*/
inline TInt GetTrackCountL(TInt aDrive,TInt aColDbId, TInt aColTable);
+ static TInt AsyncCallHarvesterEventL( TAny* aSelf );
+private:
+ enum TAsyncEvent
+ {
+ ECmdIdle,
+ ECmdScan,
+ ECmdCancleScan
+ };
private: // data
MMPXHarvesterUtility* iHarvesterUtil;
@@ -115,6 +123,9 @@
* EFalse when CollectionDB has no change
*/
TBool isCollectionDBChanged;
+ CAsyncCallBack* iAsyncCallBack; //owned
+ TAsyncEvent iAsyncEvent;
+ TBool iCancelScan;
};
--- a/mpxplugins/viewplugins/views/waitnotedialog/src/mpxscanningdialog.cpp Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/viewplugins/views/waitnotedialog/src/mpxscanningdialog.cpp Tue Apr 27 16:34:37 2010 +0300
@@ -54,6 +54,8 @@
iTotalNewTracks = 0;
iInitialCount = 0;
isCollectionDBChanged = EFalse;
+ iAsyncEvent = ECmdIdle;
+
}
@@ -63,8 +65,13 @@
//
void CMPXScanningWaitDialog::ConstructL()
{
- iHarvesterUtil = CMPXHarvesterFactory::NewL();
+ MPX_DEBUG1("CMPXScanningWaitDialog::ConstructL <---");
BaseConstructL();
+
+ TCallBack callback( CMPXScanningWaitDialog::AsyncCallHarvesterEventL, this );
+ iAsyncCallBack = new (ELeave) CAsyncCallBack( CActive::EPriorityHigh );
+ iAsyncCallBack->Set( callback );
+ MPX_DEBUG1("CMPXScanningWaitDialog::ConstructL --->");
}
@@ -93,6 +100,9 @@
{
iHarvesterUtil->Close();
}
+ iHarvesterUtil = NULL;
+ delete iAsyncCallBack;
+ iAsyncCallBack = NULL;
}
// ---------------------------------------------------------------------------
@@ -136,8 +146,14 @@
}
// Start the scanning in harvester
- iHarvesterUtil->ScanL();
- iScanningError = KErrNone;
+ // Just to be faster, lets just create a small async callback and then
+ // call ScanL
+ if( !iAsyncCallBack->IsActive() )
+ {
+ iAsyncEvent = ECmdScan;
+ iCancelScan = EFalse;
+ iAsyncCallBack->CallBack();
+ }
}
// ---------------------------------------------------------------------------
@@ -154,16 +170,19 @@
HBufC* text = NULL;
if( aButtonId == EAknSoftkeyCancel )
{
- iScanningError = KErrCancel;
- // If harvester crashed,..... restart it.
- MPX_TRAPD( err, iHarvesterUtil->CancelScanL() );
- if( err != KErrNone )
- {
- iHarvesterUtil->Close();
- iHarvesterUtil = NULL;
- iHarvesterUtil = CMPXHarvesterFactory::NewL();
- }
-
+ // cancel scan in harvester
+ // Just to be faster, lets just create a small async callback and then
+ // call CancelScanL
+ if( !iAsyncCallBack->IsActive() )
+ {
+ iAsyncEvent = ECmdCancleScan;
+ iAsyncCallBack->CallBack();
+ }
+ else
+ {
+ iCancelScan = ETrue;
+ }
+
// When stop refreshing library, prompt a process waiting dialog.
// Inform user to wait for the updating library.
HBufC* waitText = StringLoader::LoadLC( R_MPX_UPDATING_LIBRARY_TXT );
@@ -272,7 +291,10 @@
void CMPXScanningWaitDialog::HandleDatabaseCorruptionL()
{
// Cleanup Harvester
- iHarvesterUtil->RecreateDatabasesL();
+ if( iHarvesterUtil != NULL )
+ {
+ iHarvesterUtil->RecreateDatabasesL();
+ }
}
// ---------------------------------------------------------------------------
@@ -283,6 +305,7 @@
const CMPXMessage& aMessage )
{
MPX_FUNC( "CMPXScanningWaitDialog::DoHandleCollectionMessageL" );
+
TMPXMessageId id( aMessage.ValueTObjectL<TMPXMessageId>( KMPXMessageGeneralId ) );
if ( KMPXMessageGeneral == id )
{
@@ -488,5 +511,46 @@
return count;
}
+// ---------------------------------------------------------------------------
+// async callback
+// ---------------------------------------------------------------------------
+//
+TInt CMPXScanningWaitDialog::AsyncCallHarvesterEventL( TAny* aSelf )
+ {
+ MPX_DEBUG1("CMPXScanningWaitDialog::CallHarvesterScanL <---");
+ CMPXScanningWaitDialog* self = static_cast<CMPXScanningWaitDialog*>( aSelf );
+ if( self->iHarvesterUtil == NULL )
+ {
+ self->iHarvesterUtil = CMPXHarvesterFactory::NewL();
+ }
+ if( self->iAsyncEvent == ECmdScan )
+ {
+ if( !self->iCancelScan )
+ {
+ self->iHarvesterUtil->ScanL();
+ self->iScanningError = KErrNone;
+ }
+ else
+ {
+ self->iCancelScan = EFalse;
+ }
+ }
+
+ if( self->iAsyncEvent == ECmdCancleScan || self->iCancelScan )
+ {
+ self->iScanningError = KErrCancel;
+ // If harvester crashed,..... restart it.
+ MPX_TRAPD( err, self->iHarvesterUtil->CancelScanL() );
+ if( err != KErrNone )
+ {
+ self->iHarvesterUtil->Close();
+ self->iHarvesterUtil = NULL;
+ self->iHarvesterUtil = CMPXHarvesterFactory::NewL();
+ }
+ }
+ self->iAsyncEvent = ECmdIdle;
+ MPX_DEBUG1("CMPXScanningWaitDialog::CallHarvesterScanL --->");
+ return KErrNone;
+ }
// END OF FILE
--- a/mpxplugins/viewplugins/views/waitnotedialog/src/mpxwaitnotedialog.cpp Wed Apr 14 15:54:18 2010 +0300
+++ b/mpxplugins/viewplugins/views/waitnotedialog/src/mpxwaitnotedialog.cpp Tue Apr 27 16:34:37 2010 +0300
@@ -493,7 +493,7 @@
iProcessWaitDialog = new ( ELeave ) CAknWaitDialog(
( CEikDialog** )&iProcessWaitDialog,
- iVisDelayOff );
+ EFalse );
iProcessWaitDialog->PrepareLC( aDlgRsc );
iProcessWaitDialog->SetTextL( aLabel );
@@ -512,3 +512,4 @@
}
}
// End of file
+
--- a/musichomescreen_multiview/mcpmusicplayer/group/mcpmusicplayer.mmp Wed Apr 14 15:54:18 2010 +0300
+++ b/musichomescreen_multiview/mcpmusicplayer/group/mcpmusicplayer.mmp Tue Apr 27 16:34:37 2010 +0300
@@ -63,4 +63,6 @@
LIBRARY aknskins.lib
LIBRARY aknicon.lib
LIBRARY mpxcollectionutility.lib
+LIBRARY mpxharvesterutility.lib
+
// End of File
--- a/musichomescreen_multiview/mcpmusicplayer/inc/mcpmusicplayer.h Wed Apr 14 15:54:18 2010 +0300
+++ b/musichomescreen_multiview/mcpmusicplayer/inc/mcpmusicplayer.h Tue Apr 27 16:34:37 2010 +0300
@@ -24,6 +24,7 @@
#include <mcpplugin.h>
#include <mcppluginobserver.h>
#include <mpxcollectionobserver.h>
+#include <mpxharvesterutilityobserver.h>
#include "aiplayerpluginengineobserver.h"
#include "filemonitorobserver.h"
#include "applicationmonitorobserver.h"
@@ -37,6 +38,7 @@
class CPNSMonitor;
class RResourceFile;
class MMPXCollectionUtility;
+class MMPXHarvesterUtility;
/**
* Music Player MCP plugin.
@@ -387,6 +389,11 @@
*/
MMPXCollectionUtility* iCollectionUtility;
+ /**
+ * harvester utility
+ */
+ MMPXHarvesterUtility* iHarvester;
+
CPeriodic* iMusicPlayerOpeningTimer;
};
--- a/musichomescreen_multiview/mcpmusicplayer/src/mcpmusicplayer.cpp Wed Apr 14 15:54:18 2010 +0300
+++ b/musichomescreen_multiview/mcpmusicplayer/src/mcpmusicplayer.cpp Tue Apr 27 16:34:37 2010 +0300
@@ -33,7 +33,7 @@
#include <mpxcollectionutility.h>
#include <mpxcollectionframeworkdefs.h>
#include <AknTaskList.h>
-
+#include <mpxharvesterutility.h>
#include "cpglobals.h" //to be moved to domain API
@@ -171,6 +171,7 @@
iArtBitmapMask = NULL;
}
iCollectionUtility = MMPXCollectionUtility::NewL( this, KMcModeDefault );
+ iHarvester = CMPXHarvesterFactory::NewL();
iMusicPlayerOpeningTimer = CPeriodic::NewL( CActive::EPriorityLow );
MPX_DEBUG1("CMCPMusicPlayer::ConstructL --->");
}
@@ -212,6 +213,10 @@
{
iCollectionUtility->Close();
}
+ if ( iHarvester )
+ {
+ iHarvester->Close();
+ }
delete iMusicPlayerOpeningTimer;
MPX_DEBUG1("CMCPMusicPlayer::~CMCPMusicPlayer --->");
}
--- a/musichomescreen_multiview/musiccontentpublisher/src/musiccontentpublisher.cpp Wed Apr 14 15:54:18 2010 +0300
+++ b/musichomescreen_multiview/musiccontentpublisher/src/musiccontentpublisher.cpp Tue Apr 27 16:34:37 2010 +0300
@@ -402,9 +402,14 @@
MPX_FUNC("CMusicContentPublisher::DoPublishModifiedL");
if (iCPSInterface && iInstanceId )
{
- CLiwMap * datamap = iPublishingDataMap.GetModifiedLC();
- // Must re-publish all actions even if only one of them has changed,
- // otherwise non-modified actions won't work any more
+ // Must re-publish all data and actions even if only one of them has changed,
+ // otherwise non-modified data might go missing
+ CLiwMap * datamap = NULL;
+ if ( iPublishingDataMap.IsModified() )
+ {
+ datamap = iPublishingDataMap.GetAllLC();
+ }
+
CLiwMap * actionmap = NULL;
if ( iPublishingActionMap.IsModified() )
{
--- a/musicplayer_plat/mpx_music_player_app_api/inc/mpxconstants.h Wed Apr 14 15:54:18 2010 +0300
+++ b/musicplayer_plat/mpx_music_player_app_api/inc/mpxconstants.h Tue Apr 27 16:34:37 2010 +0300
@@ -93,6 +93,10 @@
// Error code to indicate that playback not allowed during video call
const TInt KMPXErrorVideoCall = -40002;
+// Error code to indicate expired DRM rights
+const TInt KMPXErrorExpiredRights = -40003;
+
+
#endif // MPXCONSTANTS_H
// End of File