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 } |