55 // These should be kept in sync with the object formats supported |
56 // These should be kept in sync with the object formats supported |
56 // ----------------------------------------------------------------------------- |
57 // ----------------------------------------------------------------------------- |
57 // |
58 // |
58 EXPORT_C TMTPFormatCode MmMtpDpUtility::FormatFromFilename( const TDesC& aFullFileName ) |
59 EXPORT_C TMTPFormatCode MmMtpDpUtility::FormatFromFilename( const TDesC& aFullFileName ) |
59 { |
60 { |
|
61 TMTPFormatCode format = EMTPFormatCodeUndefined; |
|
62 |
60 if ( aFullFileName.Right( 1 ).CompareF( KTxtBackSlash ) == 0 ) // We have a directory name |
63 if ( aFullFileName.Right( 1 ).CompareF( KTxtBackSlash ) == 0 ) // We have a directory name |
61 { |
64 { |
62 return EMTPFormatCodeAssociation; |
65 format = EMTPFormatCodeAssociation; |
63 } |
66 } |
64 |
67 else |
65 TParsePtrC file( aFullFileName ); |
68 { |
66 |
69 TParsePtrC file( aFullFileName ); |
67 if ( !file.ExtPresent() ) |
70 |
68 return EMTPFormatCodeUndefined; |
71 if ( file.ExtPresent() ) |
69 |
72 { |
70 // need to do it in popularity of format, to optmize performance |
73 // need to do it in popularity of format, to optmize performance |
71 if ( file.Ext().CompareF( KTxtExtensionMP3 ) == 0 ) |
74 if ( file.Ext().CompareF( KTxtExtensionMP3 ) == 0 ) |
72 return EMTPFormatCodeMP3; |
75 format = EMTPFormatCodeMP3; |
73 |
|
74 #ifdef __WINDOWS_MEDIA |
76 #ifdef __WINDOWS_MEDIA |
75 if ( file.Ext().CompareF( KTxtExtensionWMA ) == 0 ) |
77 else if ( file.Ext().CompareF( KTxtExtensionWMA ) == 0 ) |
76 return EMTPFormatCodeWMA; |
78 format = EMTPFormatCodeWMA; |
77 #endif // __WINDOWS_MEDIA |
79 #endif // __WINDOWS_MEDIA |
78 |
80 else if (( file.Ext().CompareF( KTxtExtensionPLA ) == 0 ) |
79 if ( ( file.Ext().CompareF( KTxtExtensionMP4 ) == 0 ) |
81 || ( file.Ext().CompareF( KTxtExtensionVIR ) == 0 ) ) |
80 || ( file.Ext().CompareF( KTxtExtensionM4A ) == 0 ) ) |
82 format = EMTPFormatCodeAbstractAudioVideoPlaylist; |
81 return EMTPFormatCodeMP4Container; |
83 else if ( ( file.Ext().CompareF( KTxtExtensionMP4 ) == 0 ) |
82 |
84 || ( file.Ext().CompareF( KTxtExtensionM4A ) == 0 ) ) |
83 if ( ( file.Ext().CompareF( KTxtExtension3GP ) == 0 ) |
85 format = EMTPFormatCodeMP4Container; |
84 || ( file.Ext().CompareF( KTxtExtension3G2 ) == 0 ) |
86 else if ( ( file.Ext().CompareF( KTxtExtension3GP ) == 0 ) |
85 || ( file.Ext().CompareF( KTxtExtensionO4A ) == 0 ) |
87 || ( file.Ext().CompareF( KTxtExtension3G2 ) == 0 ) |
86 || ( file.Ext().CompareF( KTxtExtensionO4V ) == 0 ) ) |
88 || ( file.Ext().CompareF( KTxtExtensionO4A ) == 0 ) |
87 return EMTPFormatCode3GPContainer; |
89 || ( file.Ext().CompareF( KTxtExtensionO4V ) == 0 ) ) |
88 |
90 format = EMTPFormatCode3GPContainer; |
89 if ( file.Ext().CompareF( KTxtExtensionAAC ) == 0 ) |
91 else if ( file.Ext().CompareF( KTxtExtensionAAC ) == 0 ) |
90 return EMTPFormatCodeAAC; |
92 format = EMTPFormatCodeAAC; |
91 |
93 else if ( file.Ext().CompareF( KTxtExtensionWAV ) == 0 ) |
92 if ( file.Ext().CompareF( KTxtExtensionWAV ) == 0 ) |
94 format = EMTPFormatCodeWAV; |
93 return EMTPFormatCodeWAV; |
|
94 |
|
95 #ifdef __WINDOWS_MEDIA |
95 #ifdef __WINDOWS_MEDIA |
96 if ( file.Ext().CompareF( KTxtExtensionWMV ) == 0 ) |
96 else if ( file.Ext().CompareF( KTxtExtensionWMV ) == 0 ) |
97 return EMTPFormatCodeWMV; |
97 format = EMTPFormatCodeWMV; |
98 |
98 else if ( file.Ext().CompareF( KTxtExtensionASF ) == 0 ) |
99 if ( file.Ext().CompareF( KTxtExtensionASF ) == 0 ) |
99 format = EMTPFormatCodeASF; |
100 return EMTPFormatCodeASF; |
|
101 |
|
102 #endif // __WINDOWS_MEDIA |
100 #endif // __WINDOWS_MEDIA |
103 |
101 else if ( file.Ext().CompareF( KTxtExtensionODF ) == 0 ) |
104 if ( file.Ext().CompareF( KTxtExtensionODF ) == 0 ) |
102 { |
105 { |
103 HBufC8* mime = MmMtpDpUtility::ContainerMimeType( file.FullName() ); |
106 HBufC8* mime = MmMtpDpUtility::ContainerMimeType( file.FullName() ); |
104 if ( mime != NULL ) |
107 if ( mime != NULL ) |
105 { |
108 { |
106 // 3GP |
109 // 3GP |
107 if ( mime->CompareF( KMimeTypeAudio3gpp ) == 0 |
110 if ( mime->CompareF( KMimeTypeAudio3gpp ) == 0 |
108 || mime->CompareF( KMimeTypeVideo3gpp ) == 0 ) |
111 || mime->CompareF( KMimeTypeVideo3gpp ) == 0 ) |
109 { |
112 { |
110 delete mime; |
113 delete mime; |
111 mime = NULL; |
114 mime = NULL; |
112 format = EMTPFormatCode3GPContainer; |
115 return EMTPFormatCode3GPContainer; |
113 } |
116 } |
114 } |
117 } |
115 |
118 |
116 if ( mime != NULL ) |
119 if ( mime != NULL ) |
117 { |
120 { |
118 delete mime; |
121 delete mime; |
119 mime = NULL; |
122 mime = NULL; |
120 } |
123 } |
121 } |
124 } |
122 #ifdef MMMTPDP_ABSTRACTAUDIOALBUM_SUPPORT |
125 |
123 else if ( file.Ext().CompareF( KTxtExtensionALB ) == 0 ) |
126 if ( file.Ext().CompareF( KTxtExtensionALB ) == 0 ) |
124 format = EMTPFormatCodeAbstractAudioAlbum; |
127 return EMTPFormatCodeAbstractAudioAlbum; |
125 #endif // MMMTPDP_ABSTRACTAUDIOALBUM_SUPPORT |
128 |
126 else if ( file.Ext().CompareF( KTxtExtensionM3U ) == 0 ) |
129 if (( file.Ext().CompareF( KTxtExtensionPLA ) == 0 ) || ( file.Ext().CompareF( KTxtExtensionVIR ) == 0 ) ) |
127 format = EMTPFormatCodeM3UPlaylist; |
130 return EMTPFormatCodeAbstractAudioVideoPlaylist; |
128 } |
131 |
129 } |
132 if ( file.Ext().CompareF( KTxtExtensionM3U ) == 0 ) |
130 |
133 return EMTPFormatCodeM3UPlaylist; |
131 return format; |
134 |
|
135 return EMTPFormatCodeUndefined; |
|
136 } |
132 } |
137 |
133 |
138 // ----------------------------------------------------------------------------- |
134 // ----------------------------------------------------------------------------- |
139 // MmMtpDpUtility::HasMetadata |
135 // MmMtpDpUtility::HasMetadata |
140 // Utility function to determine whether a format has metadata support |
136 // Utility function to determine whether a format has metadata support |