2818 } |
2826 } |
2819 } |
2827 } |
2820 return ret; |
2828 return ret; |
2821 } |
2829 } |
2822 |
2830 |
|
2831 |
|
2832 |
|
2833 // ----------------------------------------------------------------------------- |
|
2834 // CMPXMetadataEditorDialog::PopulateFileDetailsL |
|
2835 // ----------------------------------------------------------------------------- |
|
2836 // |
|
2837 void CMPXMetadataEditorDialog::PopulateFileDetailsL() |
|
2838 { |
|
2839 MPX_FUNC( "CMPXMetadataEditorDialog::PopulateFileDetailsL" ); |
|
2840 |
|
2841 ASSERT(iMedia); |
|
2842 TBool drmProtected(iMedia->ValueTObjectL<TBool> (KMPXMediaDrmProtected)); |
|
2843 MPX_DEBUG2( "CMPXMetadataEditorDialog::PopulateFileDetailsL drm protected: %d", drmProtected ); |
|
2844 |
|
2845 if (drmProtected) |
|
2846 { |
|
2847 //TODO: Pending for UI Spec and localisation |
|
2848 } |
|
2849 |
|
2850 // Get filename |
|
2851 const TDesC& uri = iMedia->ValueText(KMPXMediaGeneralUri); |
|
2852 TParsePtrC parse(uri); |
|
2853 |
|
2854 SetControlTextL(EMPXMetadataEditorDlgCtrlIdFileName, parse.Name(), |
|
2855 KNullDesC); |
|
2856 |
|
2857 // Get mime type |
|
2858 SetControlTextL(EMPXMetadataEditorDlgCtrlIdFileFormat, iMedia->ValueText( |
|
2859 KMPXMediaGeneralMimeType), KNullDesC); |
|
2860 |
|
2861 // Get duration |
|
2862 TInt duration(iMedia->ValueTObjectL<TInt> (KMPXMediaGeneralDuration)); |
|
2863 if (duration > 0) |
|
2864 { |
|
2865 // convert milliseconds to seconds |
|
2866 duration = duration / KSecondInMilliseconds; |
|
2867 CMPXCommonUiHelper::TMPXDuratDisplayMode durationMode = |
|
2868 CMPXCommonUiHelper::EMPXDuratAuto; |
|
2869 if (duration > KOneHourInSeconds) |
|
2870 { |
|
2871 durationMode = CMPXCommonUiHelper::EMPXDuratHMS; |
|
2872 } |
|
2873 HBufC* stringBuf = iCommonUiHelper->DisplayableDurationL(duration, |
|
2874 durationMode); |
|
2875 CleanupStack::PushL(stringBuf); |
|
2876 SetControlTextL(EMPXMetadataEditorDlgCtrlIdFileDuration, *stringBuf, |
|
2877 KNullDesC); |
|
2878 CleanupStack::PopAndDestroy(stringBuf); |
|
2879 } |
|
2880 else |
|
2881 { |
|
2882 SetControlTextL(EMPXMetadataEditorDlgCtrlIdFileDuration, KNullDesC, |
|
2883 KNullDesC); |
|
2884 } |
|
2885 |
|
2886 // Get bitrate |
|
2887 TInt bitrate(iMedia->ValueTObjectL<TInt> (KMPXMediaAudioBitrate)); |
|
2888 if (bitrate > 0) |
|
2889 { |
|
2890 // convert bitrate to kpbs |
|
2891 bitrate = bitrate / KMPXBitrateFactor; |
|
2892 HBufC* bitrateText = StringLoader::LoadLC( |
|
2893 R_MPX_CUI_METADATAEDITOR_BITRATE_TXT, bitrate); |
|
2894 SetControlTextL(EMPXMetadataEditorDlgCtrlIdFileBitrate, |
|
2895 bitrateText->Des(), KNullDesC); |
|
2896 CleanupStack::PopAndDestroy(bitrateText); |
|
2897 } |
|
2898 else |
|
2899 { |
|
2900 SetControlTextL(EMPXMetadataEditorDlgCtrlIdFileBitrate, KNullDesC, |
|
2901 KNullDesC); |
|
2902 } |
|
2903 |
|
2904 // Get sampling rate |
|
2905 TInt samplingRateNum((TInt) iMedia->ValueTObjectL<TInt> ( |
|
2906 KMPXMediaAudioSamplerate)); |
|
2907 if (samplingRateNum > 0) |
|
2908 { |
|
2909 HBufC* stringBuf = HBufC::NewLC(KMPXFileDetailsMaxBufferLen); |
|
2910 TPtr stringBufPtr = stringBuf->Des(); |
|
2911 stringBufPtr.AppendNum(samplingRateNum); |
|
2912 HBufC* samplingrate = StringLoader::LoadLC( |
|
2913 R_MPX_CUI_METADATAEDITOR_SAMPLINGRATE_TXT, stringBufPtr); |
|
2914 SetControlTextL(EMPXMetadataEditorDlgCtrlIdSamplingrate, |
|
2915 samplingrate->Des(), KNullDesC); |
|
2916 CleanupStack::PopAndDestroy(samplingrate); |
|
2917 CleanupStack::PopAndDestroy(stringBuf); |
|
2918 } |
|
2919 else |
|
2920 { |
|
2921 SetControlTextL(EMPXMetadataEditorDlgCtrlIdSamplingrate, KNullDesC, |
|
2922 KNullDesC); |
|
2923 } |
|
2924 |
|
2925 // Get size, not stored in collection, have to use RFile |
|
2926 // |
|
2927 RFs& fs = CEikonEnv::Static()->FsSession(); |
|
2928 RFile file; |
|
2929 TInt sizeNum(0); |
|
2930 TInt err(file.Open(fs, uri, EFileRead | EFileShareReadersOrWriters)); |
|
2931 if (err == KErrNone) |
|
2932 { |
|
2933 file.Size(sizeNum); |
|
2934 file.Close(); |
|
2935 } |
|
2936 |
|
2937 if (sizeNum > 0) |
|
2938 { |
|
2939 HBufC* stringBuf = iCommonUiHelper->UnitConversionL(sizeNum); |
|
2940 CleanupStack::PushL(stringBuf); |
|
2941 SetControlTextL(EMPXMetadataEditorDlgCtrlIdSize, *stringBuf, |
|
2942 KNullDesC); |
|
2943 CleanupStack::PopAndDestroy(stringBuf); |
|
2944 } |
|
2945 else |
|
2946 { |
|
2947 SetControlTextL(EMPXMetadataEditorDlgCtrlIdSize, KNullDesC, KNullDesC); |
|
2948 } |
|
2949 |
|
2950 if (iCurrentLibrary == EMPXMetadataEditorDlgPodcast) |
|
2951 { |
|
2952 PopulatePodcastFileDetailsL(); |
|
2953 } |
|
2954 // Get modified |
|
2955 if ( iMedia->IsSupported( KMPXMediaGeneralDate ) ) |
|
2956 { |
|
2957 TInt64 timeInt( ( TInt64 )iMedia->ValueTObjectL<TInt64>( |
|
2958 KMPXMediaGeneralDate ) ); |
|
2959 TTime time( timeInt ); |
|
2960 ConvertToLocalTimeL(time); |
|
2961 HBufC* modDateTime = HBufC::NewLC( |
|
2962 KMPXMaxTimeLength + KMPXDurationDisplayResvLen ); |
|
2963 HBufC* format = StringLoader::LoadLC( |
|
2964 R_QTN_DATE_USUAL_WITH_ZERO ); |
|
2965 TPtr modDatePtr = modDateTime->Des(); |
|
2966 MPX_TRAPD( err, time.FormatL( modDatePtr, *format ) ); |
|
2967 CleanupStack::PopAndDestroy( format ); |
|
2968 if (err != KErrNone) |
|
2969 { |
|
2970 SetControlTextL(EMPXMetadataEditorDlgCtrlIdLastModified, |
|
2971 KNullDesC, KNullDesC); |
|
2972 |
|
2973 } |
|
2974 else |
|
2975 { |
|
2976 format = StringLoader::LoadLC( |
|
2977 R_QTN_TIME_USUAL_WITH_ZERO ); |
|
2978 HBufC* modTime = HBufC::NewLC( |
|
2979 format->Length() + KMPXDurationDisplayResvLen ); |
|
2980 TPtr modTimePtr = modTime->Des(); |
|
2981 MPX_TRAPD( err, time.FormatL( modTimePtr, *format ) ); |
|
2982 if ( err != KErrNone ) |
|
2983 { |
|
2984 SetControlTextL(EMPXMetadataEditorDlgCtrlIdLastModified, |
|
2985 KNullDesC, KNullDesC); |
|
2986 |
|
2987 } |
|
2988 else |
|
2989 { |
|
2990 modDatePtr.Append( KMPXSpace ); |
|
2991 modDatePtr.Append( modTimePtr ); |
|
2992 SetControlTextL(EMPXMetadataEditorDlgCtrlIdLastModified, |
|
2993 modDatePtr, |
|
2994 KNullDesC); |
|
2995 } |
|
2996 CleanupStack::PopAndDestroy( modTime ); |
|
2997 CleanupStack::PopAndDestroy( format ); |
|
2998 } |
|
2999 CleanupStack::PopAndDestroy( modDateTime ); |
|
3000 } |
|
3001 else |
|
3002 { |
|
3003 SetControlTextL(EMPXMetadataEditorDlgCtrlIdLastModified, |
|
3004 KNullDesC, KNullDesC); |
|
3005 |
|
3006 } |
|
3007 |
|
3008 // Get filename |
|
3009 SetControlTextL(EMPXMetadataEditorDlgCtrlIdCopyright, |
|
3010 iMedia->ValueText( |
|
3011 KMPXMediaGeneralCopyright ), KNullDesC); |
|
3012 |
|
3013 // Get URL |
|
3014 SetControlTextL(EMPXMetadataEditorDlgCtrlIdWebaddress, |
|
3015 iMedia->ValueText( |
|
3016 KMPXMediaMusicURL ), KNullDesC); |
|
3017 |
|
3018 CAknForm::SetInitialCurrentLine(); |
|
3019 } |
|
3020 |
|
3021 // ----------------------------------------------------------------------------- |
|
3022 // CMPXMetadataEditorDialog::PopulatePodcastFileDetailsL |
|
3023 // ----------------------------------------------------------------------------- |
|
3024 // |
|
3025 void CMPXMetadataEditorDialog::PopulatePodcastFileDetailsL() |
|
3026 { |
|
3027 InsertLineL(13,R_MPX_CUI_LAST_PLAYBACK_POSITION,ActivePageId() ); |
|
3028 |
|
3029 TInt lastPbPosition((TInt) iMedia->ValueTObjectL<TInt> ( |
|
3030 KMPXMediaGeneralLastPlaybackPosition)); |
|
3031 |
|
3032 if (lastPbPosition > 0) |
|
3033 { |
|
3034 // convert milliseconds to seconds |
|
3035 lastPbPosition = lastPbPosition / KSecondInMilliseconds; |
|
3036 CMPXCommonUiHelper::TMPXDuratDisplayMode lastPbPositionMode = |
|
3037 CMPXCommonUiHelper::EMPXDuratAuto; |
|
3038 if (lastPbPosition > KOneHourInSeconds) |
|
3039 { |
|
3040 lastPbPositionMode = CMPXCommonUiHelper::EMPXDuratHMS; |
|
3041 } |
|
3042 HBufC* stringBuf = iCommonUiHelper->DisplayableDurationL( |
|
3043 lastPbPosition, lastPbPositionMode); |
|
3044 CleanupStack::PushL(stringBuf); |
|
3045 SetControlTextL(EMPXMetadataEditorDlgCtrlIdLastPlayedPosition, |
|
3046 *stringBuf, KNullDesC); |
|
3047 CleanupStack::PopAndDestroy(stringBuf); |
|
3048 } |
|
3049 else if (lastPbPosition == 0 && iMedia->IsSupported( |
|
3050 KMPXMediaGeneralPlayCount) && iMedia->ValueTObjectL<TInt> ( |
|
3051 KMPXMediaGeneralPlayCount) > 0) |
|
3052 { |
|
3053 HBufC* stringBuf = StringLoader::LoadLC( |
|
3054 R_MPX_CUI_METADATAEDITOR_PLAYBACK_COMPLETE); |
|
3055 SetControlTextL(EMPXMetadataEditorDlgCtrlIdLastPlayedPosition, |
|
3056 *stringBuf, KNullDesC); |
|
3057 CleanupStack::PopAndDestroy(stringBuf); |
|
3058 |
|
3059 } |
|
3060 else |
|
3061 { |
|
3062 SetControlTextL(EMPXMetadataEditorDlgCtrlIdLastPlayedPosition, |
|
3063 KNullDesC, KNullDesC); |
|
3064 } |
|
3065 |
|
3066 InsertLineL(14,R_MPX_CUI_DETAILS_PUBLISHED,ActivePageId() ); |
|
3067 |
|
3068 // Get published |
|
3069 if (iMedia->IsSupported(TMPXAttribute(KMPXMediaIdPodcast, |
|
3070 EMPXMediaPodcastPubDate))) |
|
3071 { |
|
3072 TInt64 timeInt( |
|
3073 (TInt64) iMedia->ValueTObjectL<TInt64> (TMPXAttribute( |
|
3074 KMPXMediaIdPodcast, EMPXMediaPodcastPubDate))); |
|
3075 TTime time(timeInt); |
|
3076 ConvertToLocalTimeL(time); |
|
3077 HBufC* modDateTime = HBufC::NewLC(KMPXMaxTimeLength |
|
3078 + KMPXDurationDisplayResvLen); |
|
3079 HBufC* format = StringLoader::LoadLC(R_QTN_DATE_USUAL_WITH_ZERO); |
|
3080 TPtr modDatePtr = modDateTime->Des(); |
|
3081 MPX_TRAPD( err, time.FormatL( modDatePtr, *format ) ); |
|
3082 CleanupStack::PopAndDestroy(format); |
|
3083 if (err != KErrNone || time == 0) |
|
3084 { |
|
3085 SetControlTextL(EMPXMetadataEditorDlgCtrlIdLastPublished, |
|
3086 KNullDesC, KNullDesC); |
|
3087 } |
|
3088 else |
|
3089 { |
|
3090 format = StringLoader::LoadLC(R_QTN_TIME_USUAL_WITH_ZERO); |
|
3091 HBufC* modTime = HBufC::NewLC(format->Length() |
|
3092 + KMPXDurationDisplayResvLen); |
|
3093 TPtr modTimePtr = modTime->Des(); |
|
3094 MPX_TRAPD( err, time.FormatL( modTimePtr, *format ) ); |
|
3095 if (err != KErrNone) |
|
3096 { |
|
3097 SetControlTextL(EMPXMetadataEditorDlgCtrlIdLastPublished, |
|
3098 KNullDesC, KNullDesC); |
|
3099 } |
|
3100 else |
|
3101 { |
|
3102 modDatePtr.Append(KMPXSpace); |
|
3103 modDatePtr.Append(modTimePtr); |
|
3104 SetControlTextL(EMPXMetadataEditorDlgCtrlIdLastPublished, |
|
3105 modTimePtr, KNullDesC); |
|
3106 } |
|
3107 CleanupStack::PopAndDestroy(modTime); |
|
3108 CleanupStack::PopAndDestroy(format); |
|
3109 } |
|
3110 CleanupStack::PopAndDestroy(modDateTime); |
|
3111 } |
|
3112 else |
|
3113 { |
|
3114 SetControlTextL(EMPXMetadataEditorDlgCtrlIdLastPublished, |
|
3115 KNullDesC, KNullDesC); |
|
3116 } |
|
3117 } |
|
3118 |
2823 // End of File |
3119 // End of File |