mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadatampxaccess.cpp
branchRCL_3
changeset 19 51035f0751c2
parent 17 780c925249c1
child 23 4740b34b83ce
equal deleted inserted replaced
17:780c925249c1 19:51035f0751c2
   666 void CMmMtpDpMetadataMpxAccess::SetMetadataValueL( const TUint16 aPropCode,
   666 void CMmMtpDpMetadataMpxAccess::SetMetadataValueL( const TUint16 aPropCode,
   667     const MMTPType& aNewData,
   667     const MMTPType& aNewData,
   668     CMPXMedia& aMediaProp )
   668     CMPXMedia& aMediaProp )
   669     {
   669     {
   670     PRINT1( _L( "MM MTP => CMmMtpDpMetadataMpxAccess::SetMetadataValueL aPropCode = 0x%x" ), aPropCode );
   670     PRINT1( _L( "MM MTP => CMmMtpDpMetadataMpxAccess::SetMetadataValueL aPropCode = 0x%x" ), aPropCode );
   671     CMTPTypeString* textData = CMTPTypeString::NewLC(); // + textData
       
   672     CMTPTypeArray* desData = NULL;
   671     CMTPTypeArray* desData = NULL;
   673     TMTPTypeUint16 uint16Data;
   672     TMTPTypeUint16 uint16Data;
   674     TMTPTypeUint32 uint32Data;
   673     TMTPTypeUint32 uint32Data;
   675 
   674 
   676     TMPXAttributeData attrib( MpxAttribFromPropL( aPropCode ) );
   675     TMPXAttributeData attrib( MpxAttribFromPropL( aPropCode ) );
   682         case EMTPObjectPropCodeGenre:
   681         case EMTPObjectPropCodeGenre:
   683         case EMTPObjectPropCodeAlbumName:
   682         case EMTPObjectPropCodeAlbumName:
   684         case EMTPObjectPropCodeComposer:
   683         case EMTPObjectPropCodeComposer:
   685         case EMTPObjectPropCodeAlbumArtist:
   684         case EMTPObjectPropCodeAlbumArtist:
   686             {
   685             {
   687             PRINT1( _L( "MM MTP <> SetMetadataValueL Before Copy, string length = %d" ), aNewData.Size() );
   686             const CMTPTypeString& textData = static_cast<const CMTPTypeString&>( aNewData );
   688             MMTPType::CopyL( aNewData, *textData );
   687             HBufC* string = textData.StringChars().AllocLC();    // + string
   689             PRINT1( _L( "MM MTP <> SetMetadataValueL string length = %d" ), textData->StringChars().Length() );
   688             PRINT2( _L( "MM MTP <> SetMetadataValueL des.ptr() = 0x%x, string length = %d" ),string->Des().Ptr(), string->Des().Length() );
   690             aMediaProp.SetTextValueL( attrib, textData->StringChars() );
   689             PRINT1( _L( "MM MTP <> CMmMtpDpMetadataMpxAccess::SetMetadataValueL string = %S" ), string );
   691             HBufC* log = textData->StringChars().AllocL();
   690             aMediaProp.SetTextValueL( attrib, string->Des() );
   692             PRINT1( _L( "MM MTP <> CMmMtpDpMetadataMpxAccess::SetMetadataValueL string = %S" ), log );
   691             CleanupStack::PopAndDestroy( string );               // - string
   693             delete log;
       
   694             log = NULL;
       
   695             }
   692             }
   696             break;
   693             break;
   697 
   694 
   698         case EMTPObjectPropCodeTrack:
   695         case EMTPObjectPropCodeTrack:
   699             {
   696             {
   733             }
   730             }
   734             break;
   731             break;
   735 
   732 
   736         case EMTPObjectPropCodeOriginalReleaseDate:
   733         case EMTPObjectPropCodeOriginalReleaseDate:
   737             {
   734             {
   738             MMTPType::CopyL( aNewData, *textData );
   735             const CMTPTypeString& textData = static_cast<const CMTPTypeString&>( aNewData );
   739 
   736 
   740             TBuf<KMtpMaxStringLength> data;
   737             TBuf<KMtpMaxStringLength> data;
   741             data.Copy( textData->StringChars().Left( KMtpMaxDateTimeStringLength ) );
   738             data.Copy( textData.StringChars().Left( KMtpMaxDateTimeStringLength ) );
   742             PRINT1( _L( "MM MTP <> CMmMtpDpMetadataMpxAccess::SetMetadataValueL 0xDC99 date = %S" ),
   739             PRINT1( _L( "MM MTP <> CMmMtpDpMetadataMpxAccess::SetMetadataValueL 0xDC99 date = %S" ),
   743                 &data );
   740                 &data );
   744             if ( data.Length() < KMtpMaxDateTimeStringLength )
   741             if ( data.Length() < KMtpMaxDateTimeStringLength )
   745                 {
   742                 {
   746                 PRINT( _L( "MM MTP <> CMmMtpDpMetadataMpxAccess::SetMetadataValueL 0xDC99 date string is too short" ) );
   743                 PRINT( _L( "MM MTP <> CMmMtpDpMetadataMpxAccess::SetMetadataValueL 0xDC99 date string is too short" ) );
   819             desData = CMTPTypeArray::NewLC( EMTPTypeAUINT16 ); // + desData
   816             desData = CMTPTypeArray::NewLC( EMTPTypeAUINT16 ); // + desData
   820             MMTPType::CopyL( aNewData, *desData );
   817             MMTPType::CopyL( aNewData, *desData );
   821             TUint length = desData->NumElements();
   818             TUint length = desData->NumElements();
   822             PRINT1( _L( "MM MTP <> CMmMtpDpMetadataMpxAccess::SetMetadataValueL length = %d" ),
   819             PRINT1( _L( "MM MTP <> CMmMtpDpMetadataMpxAccess::SetMetadataValueL length = %d" ),
   823                 length );
   820                 length );
   824             if ( length != 0 )
   821 
   825                 {
   822             length = ( length < KMTPMaxDescriptionLen ) ? length : KMTPMaxDescriptionLen;
   826                 length = ( length < KMTPMaxDescriptionLen ) ? length : KMTPMaxDescriptionLen;
   823             HBufC* text = HBufC::NewLC( length );    // + text
   827                 HBufC* text = HBufC::NewLC( length );    // + text
   824             TPtr ptr = text->Des();
   828                 TPtr ptr = text->Des();
   825 
   829 
   826             for ( TUint i = 0; i < length; i++ )
   830                 for ( TUint i = 0; i < length; i++ )
   827                 ptr.Append( desData->ElementUint( i ) );
   831                     ptr.Append( desData->ElementUint( i ) );
   828             PRINT1( _L( "MM MTP <> CMmMtpDpMetadataMpxAccess::SetMetadataValueL text = %S" ),
   832                 PRINT1( _L( "MM MTP <> CMmMtpDpMetadataMpxAccess::SetMetadataValueL text = %S" ),
   829                 text );
   833                     text );
   830             aMediaProp.SetTextValueL( KMPXMediaGeneralComment, text->Des() );
   834                 aMediaProp.SetTextValueL( KMPXMediaGeneralComment, *text );
   831             CleanupStack::PopAndDestroy( text );    // - text
   835                 CleanupStack::PopAndDestroy( text );    // - text
   832 
   836                 }
       
   837             else
       
   838                 {
       
   839                 aMediaProp.SetTextValueL( KMPXMediaGeneralComment, KEmptyText );
       
   840                 }
       
   841             CleanupStack::PopAndDestroy( desData ); // - desData
   833             CleanupStack::PopAndDestroy( desData ); // - desData
   842 #endif //__MUSIC_ID_SUPPORT
   834 #endif //__MUSIC_ID_SUPPORT
   843             }
   835             }
   844             break;
   836             break;
   845 
   837 
   877             User::Leave( KErrNotSupported );
   869             User::Leave( KErrNotSupported );
   878             }
   870             }
   879             break;
   871             break;
   880         }
   872         }
   881 
   873 
   882     CleanupStack::PopAndDestroy( textData ); // - textData
       
   883     PRINT( _L( "MM MTP <= CMmMtpDpMetadataMpxAccess::SetMetadataValueL" ) );
   874     PRINT( _L( "MM MTP <= CMmMtpDpMetadataMpxAccess::SetMetadataValueL" ) );
   884     }
   875     }
   885 
   876 
   886 // ---------------------------------------------------------------------------
   877 // ---------------------------------------------------------------------------
   887 // CMmMtpDpMetadataMpxAccess::AddSongL
   878 // CMmMtpDpMetadataMpxAccess::AddSongL
  1025 
  1016 
  1026     RArray<TMPXAttribute> abstractMediaAttributes;
  1017     RArray<TMPXAttribute> abstractMediaAttributes;
  1027     CleanupClosePushL( abstractMediaAttributes ); // + abstractMediaAttributes
  1018     CleanupClosePushL( abstractMediaAttributes ); // + abstractMediaAttributes
  1028     abstractMediaAttributes.AppendL( KMPXMediaGeneralId );
  1019     abstractMediaAttributes.AppendL( KMPXMediaGeneralId );
  1029     abstractMediaAttributes.AppendL( KMPXMediaGeneralTitle );
  1020     abstractMediaAttributes.AppendL( KMPXMediaGeneralTitle );
  1030     if ( aCategory == EMPXPlaylist )
  1021     if ( aCategory == EMPXPlaylist )    // rollback until Rename is supported on MPX DB
  1031         {
  1022         {
  1032         abstractMediaAttributes.AppendL( KMPXMediaGeneralUri );
  1023         abstractMediaAttributes.AppendL( KMPXMediaGeneralUri );
  1033         }
  1024         }
  1034 
  1025 
  1035     PERFLOGSTART( KMpxCollectionFindAllLBeforeAdd );
  1026     PERFLOGSTART( KMpxCollectionFindAllLBeforeAdd );
  1073         // File Path
  1064         // File Path
  1074         //
  1065         //
  1075         media->SetTextValueL( KMPXMediaGeneralUri, aFullFileName );
  1066         media->SetTextValueL( KMPXMediaGeneralUri, aFullFileName );
  1076 
  1067 
  1077         TParsePtrC parse( aFullFileName );
  1068         TParsePtrC parse( aFullFileName );
  1078 
       
  1079         media->SetTextValueL( KMPXMediaGeneralDrive, parse.Drive() );
  1069         media->SetTextValueL( KMPXMediaGeneralDrive, parse.Drive() );
  1080         if ( ( aCategory == EMPXPlaylist ) || ( aCategory == EMPXAbstractAlbum ) )
  1070         if ( aCategory == EMPXPlaylist )    // rollback until Rename is supported on MPX DB
  1081             {
  1071             {
  1082             media->SetTextValueL( KMPXMediaGeneralTitle, parse.Name() );
  1072             media->SetTextValueL( KMPXMediaGeneralTitle, parse.Name() );
  1083             }
  1073             }
  1084         media->SetTObjectValueL<TBool>( KMPXMediaGeneralSynchronized, ETrue );
  1074         media->SetTObjectValueL<TBool>( KMPXMediaGeneralSynchronized, ETrue );
  1085         media->SetCObjectValueL( KMPXMediaArrayContents, abstractMediaArray );
  1075         media->SetCObjectValueL( KMPXMediaArrayContents, abstractMediaArray );
  1321 
  1311 
  1322     RArray<TMPXAttribute> abstractMediaAttributes;
  1312     RArray<TMPXAttribute> abstractMediaAttributes;
  1323     CleanupClosePushL( abstractMediaAttributes ); // + abstractMediaAttributes
  1313     CleanupClosePushL( abstractMediaAttributes ); // + abstractMediaAttributes
  1324     abstractMediaAttributes.AppendL( KMPXMediaGeneralId );
  1314     abstractMediaAttributes.AppendL( KMPXMediaGeneralId );
  1325     abstractMediaAttributes.AppendL( KMPXMediaGeneralTitle );
  1315     abstractMediaAttributes.AppendL( KMPXMediaGeneralTitle );
  1326     if ( aCategory == EMPXPlaylist )
  1316     if ( aCategory == EMPXPlaylist )    // rollback until Rename is supported on MPX DB
  1327         {
  1317         {
  1328         abstractMediaAttributes.AppendL( KMPXMediaGeneralUri );
  1318         abstractMediaAttributes.AppendL( KMPXMediaGeneralUri );
  1329         }
  1319         }
  1330 
  1320 
  1331     PERFLOGSTART( KMpxCollectionGetAbstractMedia );
  1321     PERFLOGSTART( KMpxCollectionGetAbstractMedia );
  1455 HBufC* CMmMtpDpMetadataMpxAccess::GetAbstractMediaNameL( CMPXMedia* aAbstractMedia,
  1445 HBufC* CMmMtpDpMetadataMpxAccess::GetAbstractMediaNameL( CMPXMedia* aAbstractMedia,
  1456     TMPXGeneralCategory aCategory )
  1446     TMPXGeneralCategory aCategory )
  1457     {
  1447     {
  1458     PRINT( _L( "MM MTP => CMmMtpDpMetadataMpxAccess::GetAbstractMediaNameL" ) );
  1448     PRINT( _L( "MM MTP => CMmMtpDpMetadataMpxAccess::GetAbstractMediaNameL" ) );
  1459     HBufC* name = NULL;
  1449     HBufC* name = NULL;
  1460     if ( aCategory == EMPXPlaylist )
  1450     if ( aCategory == EMPXPlaylist )    // rollback until Rename is supported on MPX DB
  1461         {
  1451         {
  1462         if( !aAbstractMedia->IsSupported( KMPXMediaGeneralUri ) )
  1452         if( !aAbstractMedia->IsSupported( KMPXMediaGeneralUri ) )
  1463             {
  1453             {
  1464             User::Leave( KErrNotSupported );
  1454             User::Leave( KErrNotSupported );
  1465             }
  1455             }