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