mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadatampxaccess.cpp
branchRCL_3
changeset 13 4740b34b83ce
parent 12 51035f0751c2
child 14 f56ec6ce2732
equal deleted inserted replaced
12:51035f0751c2 13:4740b34b83ce
   103 // Destructor
   103 // Destructor
   104 // ---------------------------------------------------------------------------
   104 // ---------------------------------------------------------------------------
   105 //
   105 //
   106 CMmMtpDpMetadataMpxAccess::~CMmMtpDpMetadataMpxAccess()
   106 CMmMtpDpMetadataMpxAccess::~CMmMtpDpMetadataMpxAccess()
   107     {
   107     {
   108     if ( iCollectionHelper )
   108     if ( iCollectionHelper != NULL )
   109         {
   109         {
   110         iCollectionHelper->Close();
   110         iCollectionHelper->Close();
   111         iCollectionHelper = NULL;
   111         iCollectionHelper = NULL;
   112         }
   112         }
   113 
   113 
   114     // for performance measurement purpose
   114     // for performance measurement purpose
   115 #if defined(_DEBUG) || defined(MMMTPDP_PERFLOG)
   115 #if defined(_DEBUG) || defined(MMMTPDP_PERFLOG)
   116     delete iPerfLog;
   116     delete iPerfLog;
   117 #endif
   117 #endif
       
   118     }
       
   119 
       
   120 // ---------------------------------------------------------------------------
       
   121 // CMmMtpDpMetadataMpxAccess::OpenSession
       
   122 // This is introduced to fix CollectionHelper Flush problem
       
   123 // ---------------------------------------------------------------------------
       
   124 //
       
   125 void CMmMtpDpMetadataMpxAccess::OpenSession()
       
   126     {
       
   127     // do nothing
       
   128     }
       
   129 
       
   130 // ---------------------------------------------------------------------------
       
   131 // CMmMtpDpMetadataMpxAccess::CloseSession
       
   132 // This is introduced to fix CollectionHelper Flush problem
       
   133 // ---------------------------------------------------------------------------
       
   134 //
       
   135 void CMmMtpDpMetadataMpxAccess::CloseSession()
       
   136     {
       
   137     PRINT( _L( "MM MTP => CMmMtpDpMetadataMpxAccess::CloseSession" ) );
       
   138 
       
   139     // flush cache
       
   140     if ( iCollectionHelper != NULL )
       
   141         {
       
   142         PRINT( _L( "MM MTP <> Delete & Close CollectionHelper" ) );
       
   143         iCollectionHelper->Close();
       
   144         iCollectionHelper = NULL;
       
   145         }
       
   146 
       
   147     PRINT( _L( "MM MTP <= CMmMtpDpMetadataMpxAccess::CloseSession" ) );
   118     }
   148     }
   119 
   149 
   120 // ---------------------------------------------------------------------------
   150 // ---------------------------------------------------------------------------
   121 // CMmMtpDpMetadataMpxAccess::GetObjectMetadataValueL
   151 // CMmMtpDpMetadataMpxAccess::GetObjectMetadataValueL
   122 // Gets a piece of metadata from the collection
   152 // Gets a piece of metadata from the collection
   642     media->SetTObjectValueL<TMPXGeneralType>( KMPXMediaGeneralType, EMPXItem );
   672     media->SetTObjectValueL<TMPXGeneralType>( KMPXMediaGeneralType, EMPXItem );
   643 
   673 
   644     TParsePtrC parse( aFullFileName );
   674     TParsePtrC parse( aFullFileName );
   645     media->SetTextValueL( KMPXMediaGeneralUri, aFullFileName );
   675     media->SetTextValueL( KMPXMediaGeneralUri, aFullFileName );
   646     media->SetTextValueL( KMPXMediaGeneralDrive, parse.Drive() );
   676     media->SetTextValueL( KMPXMediaGeneralDrive, parse.Drive() );
       
   677     media->SetTObjectValueL( KMPXMediaGeneralModified, EFalse );
   647 
   678 
   648     PERFLOGSTART( KSetMetadataValue );
   679     PERFLOGSTART( KSetMetadataValue );
   649     SetMetadataValueL( aPropCode, aNewData, *media );
   680     SetMetadataValueL( aPropCode, aNewData, *media );
   650     PERFLOGSTOP( KSetMetadataValue );
   681     PERFLOGSTOP( KSetMetadataValue );
   651 
   682 
  1016 
  1047 
  1017     RArray<TMPXAttribute> abstractMediaAttributes;
  1048     RArray<TMPXAttribute> abstractMediaAttributes;
  1018     CleanupClosePushL( abstractMediaAttributes ); // + abstractMediaAttributes
  1049     CleanupClosePushL( abstractMediaAttributes ); // + abstractMediaAttributes
  1019     abstractMediaAttributes.AppendL( KMPXMediaGeneralId );
  1050     abstractMediaAttributes.AppendL( KMPXMediaGeneralId );
  1020     abstractMediaAttributes.AppendL( KMPXMediaGeneralTitle );
  1051     abstractMediaAttributes.AppendL( KMPXMediaGeneralTitle );
  1021     if ( aCategory == EMPXPlaylist )    // rollback until Rename is supported on MPX DB
  1052     abstractMediaAttributes.AppendL( KMPXMediaGeneralUri );
  1022         {
       
  1023         abstractMediaAttributes.AppendL( KMPXMediaGeneralUri );
       
  1024         }
       
  1025 
  1053 
  1026     PERFLOGSTART( KMpxCollectionFindAllLBeforeAdd );
  1054     PERFLOGSTART( KMpxCollectionFindAllLBeforeAdd );
  1027     CMPXMedia* foundMedia = CollectionHelperL()->FindAllL( *searchMedia,
  1055     CMPXMedia* foundMedia = CollectionHelperL()->FindAllL( *searchMedia,
  1028         abstractMediaAttributes.Array() );
  1056         abstractMediaAttributes.Array() );
  1029     PERFLOGSTOP( KMpxCollectionFindAllLBeforeAdd );
  1057     PERFLOGSTOP( KMpxCollectionFindAllLBeforeAdd );
  1065         //
  1093         //
  1066         media->SetTextValueL( KMPXMediaGeneralUri, aFullFileName );
  1094         media->SetTextValueL( KMPXMediaGeneralUri, aFullFileName );
  1067 
  1095 
  1068         TParsePtrC parse( aFullFileName );
  1096         TParsePtrC parse( aFullFileName );
  1069         media->SetTextValueL( KMPXMediaGeneralDrive, parse.Drive() );
  1097         media->SetTextValueL( KMPXMediaGeneralDrive, parse.Drive() );
  1070         if ( aCategory == EMPXPlaylist )    // rollback until Rename is supported on MPX DB
  1098         media->SetTextValueL( KMPXMediaGeneralTitle, parse.Name() );
  1071             {
       
  1072             media->SetTextValueL( KMPXMediaGeneralTitle, parse.Name() );
       
  1073             }
       
  1074         media->SetTObjectValueL<TBool>( KMPXMediaGeneralSynchronized, ETrue );
  1099         media->SetTObjectValueL<TBool>( KMPXMediaGeneralSynchronized, ETrue );
  1075         media->SetCObjectValueL( KMPXMediaArrayContents, abstractMediaArray );
  1100         media->SetCObjectValueL( KMPXMediaArrayContents, abstractMediaArray );
  1076         media->SetTObjectValueL( KMPXMediaArrayCount, abstractMediaArray->Count() );
  1101         media->SetTObjectValueL( KMPXMediaArrayCount, abstractMediaArray->Count() );
  1077         if ( aCategory == EMPXAbstractAlbum )
  1102         if ( aCategory == EMPXAbstractAlbum )
  1078             {
  1103             {
  1130 
  1155 
  1131         media->SetTextValueL( KMPXMediaGeneralUri, aRefFileArray[j] );
  1156         media->SetTextValueL( KMPXMediaGeneralUri, aRefFileArray[j] );
  1132         // TODO: need to confirm that should set drive letter or storage root path.
  1157         // TODO: need to confirm that should set drive letter or storage root path.
  1133         TParsePtrC parse( aRefFileArray[j] );
  1158         TParsePtrC parse( aRefFileArray[j] );
  1134         media->SetTextValueL( KMPXMediaGeneralDrive, parse.Drive() );
  1159         media->SetTextValueL( KMPXMediaGeneralDrive, parse.Drive() );
  1135 
  1160         media->SetTObjectValueL( KMPXMediaGeneralModified, EFalse );
       
  1161   
  1136         // Add media into array contents
  1162         // Add media into array contents
  1137         abstractMediaArray->AppendL( media );
  1163         abstractMediaArray->AppendL( media );
  1138 
  1164 
  1139         CleanupStack::Pop( media ); // - media
  1165         CleanupStack::Pop( media ); // - media
  1140         }
  1166         }
  1311 
  1337 
  1312     RArray<TMPXAttribute> abstractMediaAttributes;
  1338     RArray<TMPXAttribute> abstractMediaAttributes;
  1313     CleanupClosePushL( abstractMediaAttributes ); // + abstractMediaAttributes
  1339     CleanupClosePushL( abstractMediaAttributes ); // + abstractMediaAttributes
  1314     abstractMediaAttributes.AppendL( KMPXMediaGeneralId );
  1340     abstractMediaAttributes.AppendL( KMPXMediaGeneralId );
  1315     abstractMediaAttributes.AppendL( KMPXMediaGeneralTitle );
  1341     abstractMediaAttributes.AppendL( KMPXMediaGeneralTitle );
  1316     if ( aCategory == EMPXPlaylist )    // rollback until Rename is supported on MPX DB
  1342 
  1317         {
  1343     abstractMediaAttributes.AppendL( KMPXMediaGeneralUri );
  1318         abstractMediaAttributes.AppendL( KMPXMediaGeneralUri );
       
  1319         }
       
  1320 
  1344 
  1321     PERFLOGSTART( KMpxCollectionGetAbstractMedia );
  1345     PERFLOGSTART( KMpxCollectionGetAbstractMedia );
  1322     CMPXMedia* foundMedia = CollectionHelperL()->FindAllL( *searchMedia,
  1346     CMPXMedia* foundMedia = CollectionHelperL()->FindAllL( *searchMedia,
  1323         abstractMediaAttributes.Array() );
  1347         abstractMediaAttributes.Array() );
  1324     PERFLOGSTOP( KMpxCollectionGetAbstractMedia );
  1348     PERFLOGSTOP( KMpxCollectionGetAbstractMedia );
  1445 HBufC* CMmMtpDpMetadataMpxAccess::GetAbstractMediaNameL( CMPXMedia* aAbstractMedia,
  1469 HBufC* CMmMtpDpMetadataMpxAccess::GetAbstractMediaNameL( CMPXMedia* aAbstractMedia,
  1446     TMPXGeneralCategory aCategory )
  1470     TMPXGeneralCategory aCategory )
  1447     {
  1471     {
  1448     PRINT( _L( "MM MTP => CMmMtpDpMetadataMpxAccess::GetAbstractMediaNameL" ) );
  1472     PRINT( _L( "MM MTP => CMmMtpDpMetadataMpxAccess::GetAbstractMediaNameL" ) );
  1449     HBufC* name = NULL;
  1473     HBufC* name = NULL;
  1450     if ( aCategory == EMPXPlaylist )    // rollback until Rename is supported on MPX DB
  1474     if ( aCategory == EMPXPlaylist || aCategory == EMPXAbstractAlbum )
  1451         {
  1475         {
  1452         if( !aAbstractMedia->IsSupported( KMPXMediaGeneralUri ) )
  1476         if( !aAbstractMedia->IsSupported( KMPXMediaGeneralUri ) )
  1453             {
  1477             {
  1454             User::Leave( KErrNotSupported );
  1478             User::Leave( KErrNotSupported );
  1455             }
  1479             }
  1456         name = aAbstractMedia->ValueText( KMPXMediaGeneralUri ).AllocL();
  1480         name = aAbstractMedia->ValueText( KMPXMediaGeneralUri ).AllocL();
  1457         }
       
  1458     else if ( aCategory == EMPXAbstractAlbum )
       
  1459         {
       
  1460         if ( !aAbstractMedia->IsSupported( KMPXMediaGeneralTitle ) )
       
  1461             {
       
  1462             User::Leave( KErrNotSupported );
       
  1463             }
       
  1464         name = aAbstractMedia->ValueText( KMPXMediaGeneralTitle ).AllocL();
       
  1465         }
  1481         }
  1466     else
  1482     else
  1467         {
  1483         {
  1468         User::Leave( KErrNotSupported );
  1484         User::Leave( KErrNotSupported );
  1469         }
  1485         }