62 _LIT16( KMpeg16, ".MPEG" ); |
62 _LIT16( KMpeg16, ".MPEG" ); |
63 _LIT16( KMpg16, ".MPG" ); |
63 _LIT16( KMpg16, ".MPG" ); |
64 _LIT16( KMpeg416, ".MPEG4" ); |
64 _LIT16( KMpeg416, ".MPEG4" ); |
65 _LIT16( KAvi16, ".AVI" ); |
65 _LIT16( KAvi16, ".AVI" ); |
66 _LIT16( KMp316, ".MP3" ); |
66 _LIT16( KMp316, ".MP3" ); |
|
67 _LIT16( KMp416, ".MP4" ); |
67 _LIT16( KAac16, ".AAC" ); |
68 _LIT16( KAac16, ".AAC" ); |
68 _LIT16( KWma16, ".WMA" ); |
69 _LIT16( KWma16, ".WMA" ); |
|
70 _LIT16( KTs16, ".TS" ); |
|
71 _LIT16( KMts16, ".MTS" ); |
|
72 _LIT16( KM2ts16, ".M2TS" ); |
69 _LIT8( KXHtml, "application/vnd.pwg-xhtml-print" ); |
73 _LIT8( KXHtml, "application/vnd.pwg-xhtml-print" ); |
70 _LIT8( KHtml, "text/html" ); |
74 _LIT8( KHtml, "text/html" ); |
71 _LIT8( KXml, "text/xml" ); |
75 _LIT8( KXml, "text/xml" ); |
72 _LIT8( KTxt, "text/plain" ); |
76 _LIT8( KTxt, "text/plain" ); |
73 _LIT8( KJpg, "image/jpeg" ); |
77 _LIT8( KJpg, "image/jpeg" ); |
74 _LIT8( KGif, "image/gif" ); |
78 _LIT8( KGif, "image/gif" ); |
75 _LIT8( KPng, "image/png" ); |
79 _LIT8( KPng, "image/png" ); |
76 _LIT8( KMpeg, "video/mpeg" ); |
80 _LIT8( KMpeg, "video/mpeg" ); |
77 _LIT8( KMpeg4, "video/mpeg4" ); |
81 _LIT8( KMpeg4, "video/mpeg4" ); |
78 _LIT8( KMp3, "audio/mpeg" ); |
82 _LIT8( KMp3, "audio/mpeg" ); |
|
83 _LIT8( KMp4, "video/mp4" ); |
79 _LIT8( KAac, "audio/aac" ); |
84 _LIT8( KAac, "audio/aac" ); |
80 _LIT8( KWma, "audio/x-ms-wma" ); |
85 _LIT8( KWma, "audio/x-ms-wma" ); |
81 _LIT8( KAvi, "video/x-msvideo" ); |
86 _LIT8( KAvi, "video/x-msvideo" ); |
82 |
87 _LIT8( KTs, "video/mpeg" ); |
|
88 _LIT8( KM2ts, "video/vnd.dlna.mpeg-tts" ); |
83 |
89 |
84 _LIT( KLineFeed, "\r\n"); |
90 _LIT( KLineFeed, "\r\n"); |
85 _LIT8( KHttpDes, "http://" ); |
91 _LIT8( KHttpDes, "http://" ); |
86 _LIT( KTemp, "upnpfwtemp"); |
92 _LIT( KTemp, "upnpfwtemp"); |
87 |
93 |
229 tempFilename = NULL; |
238 tempFilename = NULL; |
230 |
239 |
231 // FindC and length calculation is used, |
240 // FindC and length calculation is used, |
232 // because compareC does not work for undefined reason |
241 // because compareC does not work for undefined reason |
233 |
242 |
234 if ( ext.FindC( KHtml16 ) == 0 && |
243 GetMimeTypeforImageExtensionsL( ext,&mimetype ); |
235 ext.Length() == KHtml16().Length() ) |
244 GetMimeTypeforAudioVideoExtensionsL( ext,&mimetype ); |
236 { |
245 GetMimeTypeforExtensionsL( ext,&mimetype ); |
237 mimetype = HBufC8::NewLC( KHtml().Length() ); |
|
238 mimetype->Des().Zero(); |
|
239 mimetype->Des().Append( KHtml() ); |
|
240 } |
|
241 else if ( ext.FindC( KXml16 ) == 0 && |
|
242 ext.Length() == KXml16().Length() ) |
|
243 { |
|
244 mimetype = HBufC8::NewLC( KXml().Length() ); |
|
245 mimetype->Des().Zero(); |
|
246 mimetype->Des().Append( KXml() ); |
|
247 } |
|
248 else if ( ext.FindC( KTxt16 ) == 0 && |
|
249 ext.Length() == KTxt16().Length() ) |
|
250 { |
|
251 mimetype = HBufC8::NewLC( KTxt().Length() ); |
|
252 mimetype->Des().Zero(); |
|
253 mimetype->Des().Append( KTxt() ); |
|
254 } |
|
255 else if ( ( ext.FindC( KJpg16 ) == 0 && |
|
256 ext.Length() == KJpg16().Length() ) || |
|
257 ( ext.FindC( KJpeg16 ) == 0 && |
|
258 ext.Length() == KJpeg16().Length() ) ) |
|
259 { |
|
260 mimetype = HBufC8::NewLC( KJpg().Length() ); |
|
261 mimetype->Des().Zero(); |
|
262 mimetype->Des().Append( KJpg() ); |
|
263 } |
|
264 else if ( ext.FindC( KGif16 ) == 0 && |
|
265 ext.Length() == KGif16().Length() ) |
|
266 { |
|
267 mimetype = HBufC8::NewLC( KGif().Length() ); |
|
268 mimetype->Des().Zero(); |
|
269 mimetype->Des().Append( KGif() ); |
|
270 } |
|
271 else if ( ext.FindC( KPng16 ) == 0 && |
|
272 ext.Length() == KPng16().Length() ) |
|
273 { |
|
274 mimetype = HBufC8::NewLC( KPng().Length() ); |
|
275 mimetype->Des().Zero(); |
|
276 mimetype->Des().Append( KPng() ); |
|
277 } |
|
278 else if ( ( ext.FindC( KMpg16 ) == 0 && |
|
279 ext.Length() == KMpg16().Length() ) || |
|
280 ( ext.FindC( KMpeg16 ) == 0 && |
|
281 ext.Length() == KMpeg16().Length() ) ) |
|
282 { |
|
283 mimetype = HBufC8::NewLC( KMpeg().Length() ); |
|
284 mimetype->Des().Zero(); |
|
285 mimetype->Des().Append( KMpeg() ); |
|
286 } |
|
287 else if ( ( ext.FindC( KMpeg416 ) == 0 && |
|
288 ext.Length() == KMpeg416().Length() ) ) |
|
289 { |
|
290 mimetype = HBufC8::NewLC( KMpeg4().Length() ); |
|
291 mimetype->Des().Zero(); |
|
292 mimetype->Des().Append( KMpeg4() ); |
|
293 } |
|
294 else if ( ext.FindC( KAvi16 ) == 0 && |
|
295 ext.Length() == KAvi16().Length() ) |
|
296 { |
|
297 mimetype = HBufC8::NewLC( KAvi().Length() ); |
|
298 mimetype->Des().Zero(); |
|
299 mimetype->Des().Append( KAvi() ); |
|
300 } |
|
301 else if ( ext.FindC( KMp316 ) == 0 && |
|
302 ext.Length() == KMp316().Length() ) |
|
303 { |
|
304 mimetype = HBufC8::NewLC( KMp3().Length() ); |
|
305 mimetype->Des().Zero(); |
|
306 mimetype->Des().Append( KMp3() ); |
|
307 } |
|
308 else if ( ext.FindC( KXHtml16 ) == 0 && |
|
309 ext.Length() == KXHtml16().Length() ) |
|
310 { |
|
311 mimetype = HBufC8::NewLC( KXHtml().Length() ); |
|
312 mimetype->Des().Zero(); |
|
313 mimetype->Des().Append( KXHtml() ); |
|
314 } |
|
315 else if ( ext.FindC( KAac16 ) == 0 && |
|
316 ext.Length() == KAac16().Length() ) |
|
317 { |
|
318 mimetype = HBufC8::NewLC( KAac().Length() ); |
|
319 mimetype->Des().Zero(); |
|
320 mimetype->Des().Append( KAac() ); |
|
321 } |
|
322 else if ( ext.FindC( KWma16 ) == 0 && |
|
323 ext.Length() == KWma16().Length() ) |
|
324 { |
|
325 mimetype = HBufC8::NewLC( KWma().Length() ); |
|
326 mimetype->Des().Zero(); |
|
327 mimetype->Des().Append( KWma() ); |
|
328 } |
|
329 else |
|
330 { |
|
331 // Mime type not recognized. Return NULL. |
|
332 } |
|
333 |
|
334 if( mimetype ) |
|
335 { |
|
336 CleanupStack::Pop( mimetype ); |
|
337 } |
|
338 |
246 |
339 return mimetype; |
247 return mimetype; |
340 } |
248 } |
341 |
249 |
342 // -------------------------------------------------------------------------- |
250 // -------------------------------------------------------------------------- |
926 // |
834 // |
927 EXPORT_C HBufC* UPnPCommonUtils::FileExtensionByMimeTypeL( |
835 EXPORT_C HBufC* UPnPCommonUtils::FileExtensionByMimeTypeL( |
928 const TDesC8& aMimeType ) |
836 const TDesC8& aMimeType ) |
929 { |
837 { |
930 HBufC* fileExt = NULL; |
838 HBufC* fileExt = NULL; |
931 |
839 |
|
840 GetFileExtensionForImageMimeTypesL( aMimeType,&fileExt ); |
|
841 |
|
842 if(!fileExt) |
|
843 { |
|
844 GetFileExtensionForAudioMimeTypesL( aMimeType,&fileExt ); |
|
845 } |
|
846 if(!fileExt) |
|
847 { |
|
848 GetFileExtensionForVideoMimeTypesL( aMimeType,&fileExt ); |
|
849 } |
|
850 if(!fileExt) |
|
851 { |
|
852 GetFileExtensionForMimeTypesL( aMimeType,&fileExt ); |
|
853 } |
|
854 if(!fileExt) |
|
855 { |
|
856 // AMR |
|
857 if( aMimeType.CompareC( KAudioAMR ) == 0 ) |
|
858 { |
|
859 fileExt = KAmrExt().AllocL(); |
|
860 } |
|
861 // Real audio |
|
862 else if ( aMimeType.CompareC( KRAMime8 ) == 0 ) |
|
863 { |
|
864 fileExt = KRAExt().AllocL(); |
|
865 } |
|
866 } |
|
867 |
|
868 return fileExt; |
|
869 } |
|
870 |
|
871 //--------------------------------------------------------------------------- |
|
872 // UPnPCommonUtils::FixListboxItemTextL |
|
873 // Removes the tab character of the given text |
|
874 // and returns a new fixed text string. 8bit version. |
|
875 //--------------------------------------------------------------------------- |
|
876 // |
|
877 EXPORT_C HBufC8* UPnPCommonUtils::FixListboxItemTextL( const TDesC8& aText ) |
|
878 { |
|
879 HBufC8* fixedText = HBufC8::NewLC( aText.Length() ); |
|
880 TPtr8 ptr = fixedText->Des(); |
|
881 ptr.Copy( aText ); |
|
882 |
|
883 UpnpString::StringReplaceInPlaceL( ptr, |
|
884 KTab(), |
|
885 KSpace() ); |
|
886 CleanupStack::Pop(); // Can't pop by name, name invalid now |
|
887 return fixedText; |
|
888 } |
|
889 |
|
890 // -------------------------------------------------------------------------- |
|
891 // UPnPCommonUtils::FileTypeByMimeTypeL |
|
892 // Get the file type based on MIME type of the file. Leaves in error cases. |
|
893 // -------------------------------------------------------------------------- |
|
894 EXPORT_C TUPnPItemType UPnPCommonUtils::FileTypeByMimeTypeL( |
|
895 const TDesC8& aMimeType ) |
|
896 { |
|
897 TUPnPItemType returnValue = ETypeOther; |
|
898 |
|
899 if( aMimeType != KNullDesC8 ) |
|
900 { |
|
901 if( aMimeType.Find( KMimeImage() ) >= 0 ) |
|
902 { |
|
903 returnValue = ETypeImage; |
|
904 } |
|
905 else if( aMimeType.Find( KMimePlaylist() ) >= 0 ) |
|
906 { |
|
907 returnValue = ETypePlaylist; |
|
908 } |
|
909 else if( aMimeType.Find( KMimeAudio() ) >= 0 ) |
|
910 { |
|
911 returnValue = ETypeAudio; |
|
912 } |
|
913 else if( aMimeType.Find( KMimeVideo() ) >= 0 ) |
|
914 { |
|
915 returnValue = ETypeVideo; |
|
916 } |
|
917 else |
|
918 { |
|
919 returnValue = ETypeOther; |
|
920 } |
|
921 } |
|
922 else |
|
923 { |
|
924 User::Leave( KErrArgument ); |
|
925 } |
|
926 |
|
927 return returnValue; |
|
928 } |
|
929 |
|
930 void UPnPCommonUtils::GetMimeTypeforImageExtensionsL( const TDesC& aExt , HBufC8** aMimeType) |
|
931 { |
|
932 if(*aMimeType != NULL) |
|
933 return; |
|
934 // FindC and length calculation is used, |
|
935 // because compareC does not work for undefined reason |
|
936 if ( ( aExt.FindC( KJpg16 ) == 0 && |
|
937 aExt.Length() == KJpg16().Length() ) || |
|
938 ( aExt.FindC( KJpeg16 ) == 0 && |
|
939 aExt.Length() == KJpeg16().Length() ) ) |
|
940 { |
|
941 *aMimeType = HBufC8::NewLC( KJpg().Length() ); |
|
942 (*aMimeType)->Des().Zero(); |
|
943 (*aMimeType)->Des().Append( KJpg() ); |
|
944 } |
|
945 else if ( aExt.FindC( KGif16 ) == 0 && |
|
946 aExt.Length() == KGif16().Length() ) |
|
947 { |
|
948 *aMimeType = HBufC8::NewLC( KGif().Length() ); |
|
949 (*aMimeType)->Des().Zero(); |
|
950 (*aMimeType)->Des().Append( KGif() ); |
|
951 } |
|
952 else if ( aExt.FindC( KPng16 ) == 0 && |
|
953 aExt.Length() == KPng16().Length() ) |
|
954 { |
|
955 *aMimeType = HBufC8::NewLC( KPng().Length() ); |
|
956 (*aMimeType)->Des().Zero(); |
|
957 (*aMimeType)->Des().Append( KPng() ); |
|
958 } |
|
959 if( *aMimeType ) |
|
960 { |
|
961 CleanupStack::Pop( *aMimeType ); |
|
962 } |
|
963 |
|
964 } |
|
965 |
|
966 void UPnPCommonUtils::GetMimeTypeforAudioVideoExtensionsL( const TDesC& aExt , HBufC8** aMimeType) |
|
967 { |
|
968 if(*aMimeType != NULL) |
|
969 return; |
|
970 |
|
971 // FindC and length calculation is used, |
|
972 // because compareC does not work for undefined reason |
|
973 if ( ( aExt.FindC( KMpg16 ) == 0 && |
|
974 aExt.Length() == KMpg16().Length() ) || |
|
975 ( aExt.FindC( KMpeg16 ) == 0 && |
|
976 aExt.Length() == KMpeg16().Length() ) ) |
|
977 { |
|
978 *aMimeType = HBufC8::NewLC( KMpeg().Length() ); |
|
979 (*aMimeType)->Des().Zero(); |
|
980 (*aMimeType)->Des().Append( KMpeg() ); |
|
981 } |
|
982 else if ( ( aExt.FindC( KMpeg416 ) == 0 && |
|
983 aExt.Length() == KMpeg416().Length() ) ) |
|
984 { |
|
985 *aMimeType = HBufC8::NewLC( KMpeg4().Length() ); |
|
986 (*aMimeType)->Des().Zero(); |
|
987 (*aMimeType)->Des().Append( KMpeg4() ); |
|
988 } |
|
989 else if ( aExt.FindC( KAvi16 ) == 0 && |
|
990 aExt.Length() == KAvi16().Length() ) |
|
991 { |
|
992 *aMimeType = HBufC8::NewLC( KAvi().Length() ); |
|
993 (*aMimeType)->Des().Zero(); |
|
994 (*aMimeType)->Des().Append( KAvi() ); |
|
995 } |
|
996 else if ( aExt.FindC( KMp316 ) == 0 && |
|
997 aExt.Length() == KMp316().Length() ) |
|
998 { |
|
999 *aMimeType = HBufC8::NewLC( KMp3().Length() ); |
|
1000 (*aMimeType)->Des().Zero(); |
|
1001 (*aMimeType)->Des().Append( KMp3() ); |
|
1002 } |
|
1003 else if ( aExt.FindC( KMp416 ) == 0 && |
|
1004 aExt.Length() == KMp416().Length() ) |
|
1005 { |
|
1006 *aMimeType = HBufC8::NewLC( KMp4().Length() ); |
|
1007 (*aMimeType)->Des().Zero(); |
|
1008 (*aMimeType)->Des().Append( KMp4() ); |
|
1009 } |
|
1010 else if ( aExt.FindC( KAac16 ) == 0 && |
|
1011 aExt.Length() == KAac16().Length() ) |
|
1012 { |
|
1013 *aMimeType = HBufC8::NewLC( KAac().Length() ); |
|
1014 (*aMimeType)->Des().Zero(); |
|
1015 (*aMimeType)->Des().Append( KAac() ); |
|
1016 } |
|
1017 else if ( aExt.FindC( KWma16 ) == 0 && |
|
1018 aExt.Length() == KWma16().Length() ) |
|
1019 { |
|
1020 *aMimeType = HBufC8::NewLC( KWma().Length() ); |
|
1021 (*aMimeType)->Des().Zero(); |
|
1022 (*aMimeType)->Des().Append( KWma() ); |
|
1023 } |
|
1024 else if ( aExt.FindC( KTs16 ) == 0 && |
|
1025 aExt.Length() == KTs16().Length() ) |
|
1026 { |
|
1027 *aMimeType = HBufC8::NewLC( KTs().Length() ); |
|
1028 (*aMimeType)->Des().Zero(); |
|
1029 (*aMimeType)->Des().Append( KTs() ); |
|
1030 } |
|
1031 else if ( ( aExt.FindC( KMts16 ) == 0 && |
|
1032 aExt.Length() == KMts16().Length() ) || |
|
1033 ( aExt.FindC( KM2ts16 ) == 0 && |
|
1034 aExt.Length() == KM2ts16().Length() ) ) |
|
1035 { |
|
1036 *aMimeType = HBufC8::NewLC( KM2ts().Length() ); |
|
1037 (*aMimeType)->Des().Zero(); |
|
1038 (*aMimeType)->Des().Append( KM2ts() ); |
|
1039 } |
|
1040 if( *aMimeType ) |
|
1041 { |
|
1042 CleanupStack::Pop( *aMimeType ); |
|
1043 } |
|
1044 } |
|
1045 |
|
1046 void UPnPCommonUtils::GetMimeTypeforExtensionsL( const TDesC& aExt , HBufC8** aMimeType) |
|
1047 { |
|
1048 if(*aMimeType != NULL) |
|
1049 return; |
|
1050 |
|
1051 // FindC and length calculation is used, |
|
1052 // because compareC does not work for undefined reason |
|
1053 if ( aExt.FindC( KHtml16 ) == 0 && |
|
1054 aExt.Length() == KHtml16().Length() ) |
|
1055 { |
|
1056 *aMimeType = HBufC8::NewLC( KHtml().Length() ); |
|
1057 (*aMimeType)->Des().Zero(); |
|
1058 (*aMimeType)->Des().Append( KHtml() ); |
|
1059 } |
|
1060 else if ( aExt.FindC( KXml16 ) == 0 && |
|
1061 aExt.Length() == KXml16().Length() ) |
|
1062 { |
|
1063 *aMimeType = HBufC8::NewLC( KXml().Length() ); |
|
1064 (*aMimeType)->Des().Zero(); |
|
1065 (*aMimeType)->Des().Append( KXml() ); |
|
1066 } |
|
1067 else if ( aExt.FindC( KTxt16 ) == 0 && |
|
1068 aExt.Length() == KTxt16().Length() ) |
|
1069 { |
|
1070 *aMimeType = HBufC8::NewLC( KTxt().Length() ); |
|
1071 (*aMimeType)->Des().Zero(); |
|
1072 (*aMimeType)->Des().Append( KTxt() ); |
|
1073 } |
|
1074 else if ( aExt.FindC( KXHtml16 ) == 0 && |
|
1075 aExt.Length() == KXHtml16().Length() ) |
|
1076 { |
|
1077 *aMimeType = HBufC8::NewLC( KXHtml().Length() ); |
|
1078 (*aMimeType)->Des().Zero(); |
|
1079 (*aMimeType)->Des().Append( KXHtml() ); |
|
1080 } |
|
1081 |
|
1082 if( *aMimeType ) |
|
1083 { |
|
1084 CleanupStack::Pop( *aMimeType ); |
|
1085 } |
|
1086 } |
|
1087 |
|
1088 void UPnPCommonUtils::GetFileExtensionForMimeTypesL(const TDesC8& aMimeType,HBufC** aFileExt) |
|
1089 { |
|
1090 if(*aFileExt != NULL) |
|
1091 return; |
932 // XHTML |
1092 // XHTML |
933 if( aMimeType.CompareC( KXHtmlMime ) == 0 ) |
1093 if( aMimeType.CompareC( KXHtmlMime ) == 0 ) |
934 { |
1094 { |
935 fileExt = KXHtmlExt().AllocL(); |
1095 *aFileExt = KXHtmlExt().AllocL(); |
936 } |
1096 } |
937 // HTML |
1097 // HTML |
938 else if( aMimeType.CompareC( KHtmlMime ) == 0 ) |
1098 else if( aMimeType.CompareC( KHtmlMime ) == 0 ) |
939 { |
1099 { |
940 fileExt = KHtmlExt().AllocL(); |
1100 *aFileExt = KHtmlExt().AllocL(); |
941 } |
1101 } |
942 // XML |
1102 // XML |
943 else if( aMimeType.CompareC( KXmlMime1 ) == 0 || |
1103 else if( aMimeType.CompareC( KXmlMime1 ) == 0 || |
944 aMimeType.CompareC( KXmlMime2 ) == 0 || |
1104 aMimeType.CompareC( KXmlMime2 ) == 0 || |
945 aMimeType.CompareC( KXmlMime3 ) == 0 ) |
1105 aMimeType.CompareC( KXmlMime3 ) == 0 ) |
946 { |
1106 { |
947 fileExt = KXmlExt().AllocL(); |
1107 *aFileExt = KXmlExt().AllocL(); |
948 } |
1108 } |
949 // TXT |
1109 // TXT |
950 else if( aMimeType.CompareC( KTxtMime ) == 0 || |
1110 else if( aMimeType.CompareC( KTxtMime ) == 0 || |
951 aMimeType.CompareC( KTxtMime2 ) == 0 || |
1111 aMimeType.CompareC( KTxtMime2 ) == 0 || |
952 aMimeType.CompareC( KTxtMime3 ) == 0 || |
1112 aMimeType.CompareC( KTxtMime3 ) == 0 || |
953 aMimeType.CompareC( KTxtMime4 ) == 0 || |
1113 aMimeType.CompareC( KTxtMime4 ) == 0 || |
954 aMimeType.CompareC( KTxtMime5 ) == 0 || |
1114 aMimeType.CompareC( KTxtMime5 ) == 0 || |
955 aMimeType.CompareC( KTxtMime6 ) == 0 ) |
1115 aMimeType.CompareC( KTxtMime6 ) == 0 ) |
956 { |
1116 { |
957 fileExt = KTxtExt().AllocL(); |
1117 *aFileExt = KTxtExt().AllocL(); |
958 } |
1118 } |
|
1119 } |
|
1120 |
|
1121 void UPnPCommonUtils::GetFileExtensionForImageMimeTypesL(const TDesC8& aMimeType,HBufC** aFileExt) |
|
1122 { |
959 // JPEG |
1123 // JPEG |
960 else if( aMimeType.CompareC( KJpegMime ) == 0 ) |
1124 if( aMimeType.CompareC( KJpegMime ) == 0 ) |
961 { |
1125 { |
962 fileExt = KJpegExt().AllocL(); |
1126 *aFileExt = KJpegExt().AllocL(); |
963 } |
1127 } |
964 // JPG |
1128 // JPG |
965 else if( aMimeType.CompareC( KJpegMime2 ) == 0 || |
1129 else if( aMimeType.CompareC( KJpegMime2 ) == 0 || |
966 aMimeType.CompareC( KJpegMime3 ) == 0 || |
1130 aMimeType.CompareC( KJpegMime3 ) == 0 || |
967 aMimeType.CompareC( KJpegMime4 ) == 0 || |
1131 aMimeType.CompareC( KJpegMime4 ) == 0 || |
968 aMimeType.CompareC( KJpegMime5 ) == 0 ) |
1132 aMimeType.CompareC( KJpegMime5 ) == 0 ) |
969 { |
1133 { |
970 fileExt = KJpgExt().AllocL(); |
1134 *aFileExt = KJpgExt().AllocL(); |
971 } |
1135 } |
972 // GIF |
1136 // GIF |
973 else if( aMimeType.CompareC( KGifMime ) == 0 || |
1137 else if( aMimeType.CompareC( KGifMime ) == 0 || |
974 aMimeType.CompareC( KGifMime2 ) == 0 || |
1138 aMimeType.CompareC( KGifMime2 ) == 0 || |
975 aMimeType.CompareC( KGifMime3 ) == 0 ) |
1139 aMimeType.CompareC( KGifMime3 ) == 0 ) |
976 { |
1140 { |
977 fileExt = KGifExt().AllocL(); |
1141 *aFileExt = KGifExt().AllocL(); |
978 } |
1142 } |
979 // PNG |
1143 // PNG |
980 else if( aMimeType.CompareC( KPngMime ) == 0 || |
1144 else if( aMimeType.CompareC( KPngMime ) == 0 || |
981 aMimeType.CompareC( KPngMime2 ) == 0 || |
1145 aMimeType.CompareC( KPngMime2 ) == 0 || |
982 aMimeType.CompareC( KPngMime3 ) == 0 ) |
1146 aMimeType.CompareC( KPngMime3 ) == 0 ) |
983 { |
1147 { |
984 fileExt = KPngExt().AllocL(); |
1148 *aFileExt = KPngExt().AllocL(); |
985 } |
1149 } |
986 // MPG |
1150 else |
987 else if( aMimeType.CompareC( KMpgMime1 ) == 0 || |
1151 { |
988 aMimeType.CompareC( KMpgMime2 ) == 0 || |
1152 GetFileExtensionForBMPandMP3MimeTypesL( aMimeType,aFileExt ); |
989 aMimeType.CompareC( KMpgMime3 ) == 0 || |
1153 } |
990 aMimeType.CompareC( KMpgMime4 ) == 0 || |
1154 |
991 aMimeType.CompareC( KMpgMime5 ) == 0 || |
1155 } |
992 aMimeType.CompareC( KMpgMime6 ) == 0 || |
1156 |
993 aMimeType.CompareC( KMpgMime7 ) == 0 || |
1157 void UPnPCommonUtils::GetFileExtensionForBMPandMP3MimeTypesL(const TDesC8& aMimeType,HBufC** aFileExt) |
994 aMimeType.CompareC( KMpgMime10 ) == 0 ) |
1158 { |
995 { |
1159 if( aMimeType.CompareC( KBmpMime ) == 0 || |
996 fileExt = KMpgExt1().AllocL(); |
1160 aMimeType.CompareC( KBmpMime2 ) == 0 || |
997 } |
1161 aMimeType.CompareC( KBmpMime3 ) == 0 || |
998 // MPEG4 |
1162 aMimeType.CompareC( KBmpMime4 ) == 0 || |
999 else if( aMimeType.CompareC( KMpeg4Mime ) == 0 ) |
1163 aMimeType.CompareC( KBmpMime5 ) == 0 || |
1000 { |
1164 aMimeType.CompareC( KBmpMime6 ) == 0 || |
1001 fileExt = KMpeg4Ext().AllocL(); |
1165 aMimeType.CompareC( KBmpMime7 ) == 0 || |
1002 } |
1166 aMimeType.CompareC( KBmpMime8 ) == 0 || |
1003 // MP4 |
1167 aMimeType.CompareC( KBmpMime9 ) == 0 ) |
1004 else if( aMimeType.CompareC( KMp4Mime ) == 0 || |
1168 { |
1005 aMimeType.CompareC( KMp4Mime2 ) == 0 || |
1169 *aFileExt = KBmpExt().AllocL(); |
1006 aMimeType.CompareC( KMp4Mime3 ) == 0 ) |
|
1007 { |
|
1008 fileExt = KMp4Ext().AllocL(); |
|
1009 } |
|
1010 // AVI |
|
1011 else if( aMimeType.CompareC( KAviMime1 ) == 0 || |
|
1012 aMimeType.CompareC( KAviMime2 ) == 0 || |
|
1013 aMimeType.CompareC( KAviMime3 ) == 0 || |
|
1014 aMimeType.CompareC( KAviMime4 ) == 0 || |
|
1015 aMimeType.CompareC( KAviMime5 ) == 0 || |
|
1016 aMimeType.CompareC( KAviMime6 ) == 0 || |
|
1017 aMimeType.CompareC( KAviMime7 ) == 0 || |
|
1018 aMimeType.CompareC( KAviMime8 ) == 0 || |
|
1019 aMimeType.CompareC( KAviMime9 ) == 0 ) |
|
1020 { |
|
1021 fileExt = KAviExt().AllocL(); |
|
1022 } |
1170 } |
1023 // MP3 |
1171 // MP3 |
1024 else if( aMimeType.CompareC( KMp3Mime1 ) == 0 || |
1172 else if( aMimeType.CompareC( KMp3Mime1 ) == 0 || |
1025 aMimeType.CompareC( KMp3Mime2 ) == 0 || |
1173 aMimeType.CompareC( KMp3Mime2 ) == 0 || |
1026 aMimeType.CompareC( KMp3Mime3 ) == 0 || |
1174 aMimeType.CompareC( KMp3Mime3 ) == 0 || |
1030 aMimeType.CompareC( KMp3Mime7 ) == 0 || |
1178 aMimeType.CompareC( KMp3Mime7 ) == 0 || |
1031 aMimeType.CompareC( KMp3Mime8 ) == 0 || |
1179 aMimeType.CompareC( KMp3Mime8 ) == 0 || |
1032 aMimeType.CompareC( KMp3Mime9 ) == 0 || |
1180 aMimeType.CompareC( KMp3Mime9 ) == 0 || |
1033 aMimeType.CompareC( KMp3Mime10 ) == 0 ) |
1181 aMimeType.CompareC( KMp3Mime10 ) == 0 ) |
1034 { |
1182 { |
1035 fileExt = KMp3Ext().AllocL(); |
1183 *aFileExt = KMp3Ext().AllocL(); |
|
1184 } |
|
1185 |
|
1186 } |
|
1187 |
|
1188 |
|
1189 void UPnPCommonUtils::GetFileExtensionForAudioMimeTypesL(const TDesC8& aMimeType,HBufC** aFileExt) |
|
1190 { |
|
1191 // MPG |
|
1192 if( aMimeType.CompareC( KMpgMime1 ) == 0 || |
|
1193 aMimeType.CompareC( KMpgMime2 ) == 0 || |
|
1194 aMimeType.CompareC( KMpgMime3 ) == 0 || |
|
1195 aMimeType.CompareC( KMpgMime4 ) == 0 || |
|
1196 aMimeType.CompareC( KMpgMime5 ) == 0 || |
|
1197 aMimeType.CompareC( KMpgMime6 ) == 0 || |
|
1198 aMimeType.CompareC( KMpgMime7 ) == 0 || |
|
1199 aMimeType.CompareC( KMpgMime10 ) == 0 ) |
|
1200 { |
|
1201 *aFileExt = KMpgExt1().AllocL(); |
1036 } |
1202 } |
1037 // AAC |
1203 // AAC |
1038 else if( aMimeType.CompareC( KAacMime ) == 0 || |
1204 else if( aMimeType.CompareC( KAacMime ) == 0 || |
1039 aMimeType.CompareC( KAacMime2 ) == 0 || |
1205 aMimeType.CompareC( KAacMime2 ) == 0 || |
1040 aMimeType.CompareC( KAacMime3 ) == 0 || |
1206 aMimeType.CompareC( KAacMime3 ) == 0 || |
1041 aMimeType.CompareC( KAacMime4 ) == 0 ) |
1207 aMimeType.CompareC( KAacMime4 ) == 0 ) |
1042 { |
1208 { |
1043 fileExt = KAacExt().AllocL(); |
1209 *aFileExt = KAacExt().AllocL(); |
1044 } |
1210 } |
1045 //M4a |
1211 //M4a |
1046 else if( aMimeType.CompareC( KM4aMime ) == 0 ) |
1212 else if( aMimeType.CompareC( KM4aMime ) == 0 ) |
1047 { |
1213 { |
1048 fileExt = KM4aExt().AllocL(); |
1214 *aFileExt = KM4aExt().AllocL(); |
1049 } |
1215 } |
1050 // WMA |
|
1051 else if( aMimeType.CompareC( KWmaMime ) == 0 || |
|
1052 aMimeType.CompareC( KWmaMime2 ) == 0 ) |
|
1053 { |
|
1054 fileExt = KWmaExt().AllocL(); |
|
1055 } |
|
1056 // BMP |
|
1057 else if( aMimeType.CompareC( KBmpMime ) == 0 || |
|
1058 aMimeType.CompareC( KBmpMime2 ) == 0 || |
|
1059 aMimeType.CompareC( KBmpMime3 ) == 0 || |
|
1060 aMimeType.CompareC( KBmpMime4 ) == 0 || |
|
1061 aMimeType.CompareC( KBmpMime5 ) == 0 || |
|
1062 aMimeType.CompareC( KBmpMime6 ) == 0 || |
|
1063 aMimeType.CompareC( KBmpMime7 ) == 0 || |
|
1064 aMimeType.CompareC( KBmpMime8 ) == 0 || |
|
1065 aMimeType.CompareC( KBmpMime9 ) == 0 ) |
|
1066 { |
|
1067 fileExt = KBmpExt().AllocL(); |
|
1068 } |
|
1069 // 3GP |
|
1070 else if( aMimeType.CompareC( KAudio3gpp ) == 0 || |
|
1071 aMimeType.CompareC( KVideo3gpp ) == 0 ) |
|
1072 { |
|
1073 fileExt = K3gpExt().AllocL(); |
|
1074 } |
|
1075 // AMR |
|
1076 else if( aMimeType.CompareC( KAudioAMR ) == 0 ) |
|
1077 { |
|
1078 fileExt = KAmrExt().AllocL(); |
|
1079 } |
|
1080 // WAV |
1216 // WAV |
1081 else if( aMimeType.CompareC( KAudioWav ) == 0 || |
1217 else if( aMimeType.CompareC( KAudioWav ) == 0 || |
1082 aMimeType.CompareC( KAudioXWav ) == 0 || |
1218 aMimeType.CompareC( KAudioXWav ) == 0 || |
1083 aMimeType.FindC( KAudioL16 ) != KErrNotFound ) |
1219 aMimeType.FindC( KAudioL16 ) != KErrNotFound ) |
1084 { |
1220 { |
1085 fileExt = KWavExt().AllocL(); |
1221 *aFileExt = KWavExt().AllocL(); |
1086 } |
1222 } |
1087 // Real audio |
1223 // WMA |
1088 else if ( aMimeType.CompareC( KRAMime8 ) == 0 ) |
1224 else if( aMimeType.CompareC( KWmaMime ) == 0 || |
1089 { |
1225 aMimeType.CompareC( KWmaMime2 ) == 0 ) |
1090 fileExt = KRAExt().AllocL(); |
1226 { |
|
1227 *aFileExt = KWmaExt().AllocL(); |
|
1228 } |
|
1229 |
|
1230 } |
|
1231 |
|
1232 void UPnPCommonUtils::GetFileExtensionForVideoMimeTypesL(const TDesC8& aMimeType,HBufC** aFileExt) |
|
1233 { |
|
1234 // MPEG4 |
|
1235 if( aMimeType.CompareC( KMpeg4Mime ) == 0 ) |
|
1236 { |
|
1237 *aFileExt = KMpeg4Ext().AllocL(); |
|
1238 } |
|
1239 // MP4 |
|
1240 else if( aMimeType.CompareC( KMp4Mime ) == 0 || |
|
1241 aMimeType.CompareC( KMp4Mime2 ) == 0 || |
|
1242 aMimeType.CompareC( KMp4Mime3 ) == 0 ) |
|
1243 { |
|
1244 *aFileExt = KMp4Ext().AllocL(); |
|
1245 } |
|
1246 // AVI |
|
1247 else if( aMimeType.CompareC( KAviMime1 ) == 0 || |
|
1248 aMimeType.CompareC( KAviMime2 ) == 0 || |
|
1249 aMimeType.CompareC( KAviMime3 ) == 0 || |
|
1250 aMimeType.CompareC( KAviMime4 ) == 0 || |
|
1251 aMimeType.CompareC( KAviMime5 ) == 0 || |
|
1252 aMimeType.CompareC( KAviMime6 ) == 0 || |
|
1253 aMimeType.CompareC( KAviMime7 ) == 0 || |
|
1254 aMimeType.CompareC( KAviMime8 ) == 0 || |
|
1255 aMimeType.CompareC( KAviMime9 ) == 0 ) |
|
1256 { |
|
1257 *aFileExt = KAviExt().AllocL(); |
|
1258 } |
|
1259 // 3GP |
|
1260 else if( aMimeType.CompareC( KAudio3gpp ) == 0 || |
|
1261 aMimeType.CompareC( KVideo3gpp ) == 0 ) |
|
1262 { |
|
1263 *aFileExt = K3gpExt().AllocL(); |
1091 } |
1264 } |
1092 // TTS |
1265 // TTS |
1093 else if( aMimeType.CompareC( KVideoTts ) == 0 ) |
1266 else if( aMimeType.CompareC( KVideoTts ) == 0 ) |
1094 { |
1267 { |
1095 fileExt = KTtsExt().AllocL(); |
1268 *aFileExt = KTtsExt().AllocL(); |
1096 } |
1269 } |
1097 // WMV |
1270 // WMV |
1098 else if( aMimeType.CompareC( KWmvMime ) == 0 ) |
1271 else if( aMimeType.CompareC( KWmvMime ) == 0 ) |
1099 { |
1272 { |
1100 fileExt = KWmvExt().AllocL(); |
1273 *aFileExt = KWmvExt().AllocL(); |
1101 } |
1274 } |
1102 return fileExt; |
1275 } |
1103 } |
1276 |
1104 |
1277 EXPORT_C HBufC8* UPnPCommonUtils::ReplaceIllegalDirNameCharactersL( |
1105 //--------------------------------------------------------------------------- |
1278 const TDesC8& aDirName ) |
1106 // UPnPCommonUtils::FixListboxItemTextL |
1279 { |
1107 // Removes the tab character of the given text |
1280 HBufC8* replacedDirName = ReplaceIllegalFilenameCharactersL( aDirName ); |
1108 // and returns a new fixed text string. 8bit version. |
1281 TPtr8 ptr( replacedDirName->Des() ); |
1109 //--------------------------------------------------------------------------- |
1282 |
1110 // |
1283 // In case of a dir name, if the last char is a dot, it must be |
1111 EXPORT_C HBufC8* UPnPCommonUtils::FixListboxItemTextL( const TDesC8& aText ) |
1284 // replaced |
1112 { |
1285 TInt length( aDirName.Length() ); |
1113 HBufC8* fixedText = HBufC8::NewLC( aText.Length() ); |
1286 TChar dot( KCodeDot ); |
1114 TPtr8 ptr = fixedText->Des(); |
1287 if( length > 0 && ptr.LocateReverse( dot ) == length - 1 ) |
1115 ptr.Copy( aText ); |
1288 { |
1116 |
1289 ptr.Replace( length - 1, 1, KUnderScore() ); |
1117 UpnpString::StringReplaceInPlaceL( ptr, |
1290 } |
1118 KTab(), |
1291 |
1119 KSpace() ); |
1292 return replacedDirName; |
1120 CleanupStack::Pop(); // Can't pop by name, name invalid now |
1293 } |
1121 return fixedText; |
1294 |
|
1295 EXPORT_C HBufC* UPnPCommonUtils::ReplaceIllegalDirNameCharactersL( |
|
1296 const TDesC& aDirName ) |
|
1297 { |
|
1298 HBufC8* convertedParam = NULL; |
|
1299 convertedParam = UpnpString::FromUnicodeL( aDirName ); |
|
1300 CleanupStack::PushL( convertedParam ); |
|
1301 |
|
1302 HBufC8* replacedDirName8 = NULL; |
|
1303 replacedDirName8 = ReplaceIllegalDirNameCharactersL( *convertedParam ); |
|
1304 CleanupStack::PushL( replacedDirName8 ); |
|
1305 |
|
1306 HBufC* replacedDirName16 = NULL; |
|
1307 replacedDirName16 = UpnpString::ToUnicodeL( *replacedDirName8 ); |
|
1308 |
|
1309 // Clean up |
|
1310 CleanupStack::PopAndDestroy( replacedDirName8 ); |
|
1311 CleanupStack::PopAndDestroy( convertedParam ); |
|
1312 |
|
1313 return replacedDirName16; |
1122 } |
1314 } |
1123 |
1315 |
1124 // End of File |
1316 // End of File |