MsgMedia::Type type;
};
- const std::unordered_multimap<std::string, MediaTypeData> mediaTypeMap =
+ const std::unordered_multimap<std::string, MediaTypeData> mediaTypeByExtMap =
{
// Sound:
{"aac", {"audio/aac", MsgMedia::AudioType}},
{"xxx", {"application/octet-stream", MsgMedia::UnknownType}},
};
- inline static const MediaTypeData getMediaType(const std::string &filePath)
+ const std::unordered_multimap<std::string, MsgMedia::Type> mediaTypeByMimeMap =
+ {
+ // Sound:
+ {"audio/aac", MsgMedia::AudioType},
+ {"audio/amr", MsgMedia::AudioType},
+ {"audio/x-amr", MsgMedia::AudioType},
+ {"audio/amr-wb", MsgMedia::AudioType},
+ {"audio/imelody", MsgMedia::AudioType},
+ {"audio/imy", MsgMedia::AudioType},
+ {"audio/iMelody", MsgMedia::AudioType},
+ {"audio/melody", MsgMedia::AudioType},
+ {"audio/x-iMelody", MsgMedia::AudioType},
+ {"text/iMelody", MsgMedia::AudioType},
+ {"text/x-iMelody", MsgMedia::AudioType},
+ {"text/x-imelody", MsgMedia::AudioType},
+ {"audio/mid", MsgMedia::AudioType},
+ {"audio/midi", MsgMedia::AudioType},
+ {"audio/x-mid", MsgMedia::AudioType},
+ {"audio/x-midi", MsgMedia::AudioType},
+ {"audio/mid", MsgMedia::AudioType},
+ {"application/vnd.smaf", MsgMedia::AudioType},
+ {"application/x-smaf", MsgMedia::AudioType},
+ {"audio/mmf", MsgMedia::AudioType},
+ {"audio/smaf", MsgMedia::AudioType},
+ {"audio/x-mmf", MsgMedia::AudioType},
+ {"audio/x-smaf", MsgMedia::AudioType},
+ {"audio/mpeg", MsgMedia::AudioType},
+ {"audio/mp3", MsgMedia::AudioType},
+ {"audio/mpg3", MsgMedia::AudioType},
+ {"audio/mpeg3", MsgMedia::AudioType},
+ {"audio/mpg", MsgMedia::AudioType},
+ {"audio/x-mp3", MsgMedia::AudioType},
+ {"audio/x-mpeg", MsgMedia::AudioType},
+ {"audio/x-mpeg3", MsgMedia::AudioType},
+ {"audio/x-mpegaudio", MsgMedia::AudioType},
+ {"audio/x-mpg", MsgMedia::AudioType},
+ {"audio/x-mpeg", MsgMedia::AudioType},
+ {"audio/m4a", MsgMedia::AudioType},
+ {"audio/x-pn-realaudio", MsgMedia::AudioType},
+ {"audio/vnd.rn-realaudio", MsgMedia::AudioType},
+ {"audio/x-pn-multirate-realaudio", MsgMedia::AudioType},
+ {"audio/x-pn-multirate-realaudio-live", MsgMedia::AudioType},
+ {"audio/sp-midi", MsgMedia::AudioType},
+ {"audio/wav", MsgMedia::AudioType},
+ {"audio/wave", MsgMedia::AudioType},
+ {"audio/x-wav", MsgMedia::AudioType},
+ {"audio/x-wave", MsgMedia::AudioType},
+ {"audio/wma", MsgMedia::AudioType},
+ {"audio/x-ms-wma", MsgMedia::AudioType},
+ {"audio/mobile-xmf", MsgMedia::AudioType},
+ {"audio/xmf", MsgMedia::AudioType},
+ {"audio/x-xmf", MsgMedia::AudioType},
+ {"audio/3gpp", MsgMedia::AudioType},
+ {"audio/mp4", MsgMedia::AudioType},
+ {"audio/MP4A-LATM", MsgMedia::AudioType},
+ {"audio/mpeg4", MsgMedia::AudioType},
+
+ // Image:
+ {"image/bmp", MsgMedia::ImageType},
+ {"image/x-bmp", MsgMedia::ImageType},
+ {"image/gif", MsgMedia::ImageType},
+ {"image/gif", MsgMedia::ImageType},
+ {"image/vnd.tmo.my5-gif", MsgMedia::ImageType},
+ {"image/jpg", MsgMedia::ImageType},
+ {"image/jpeg", MsgMedia::ImageType},
+ {"image/vnd.tmo.my5-jpg", MsgMedia::ImageType},
+ {"image/jpeg", MsgMedia::ImageType},
+ {"image/jpeg", MsgMedia::ImageType},
+ {"image/pjpeg", MsgMedia::ImageType},
+ {"image/jpeg", MsgMedia::ImageType},
+ {"image/png", MsgMedia::ImageType},
+ {"image/vnd.wap.wbmp", MsgMedia::ImageType},
+ {"image/wbmp", MsgMedia::ImageType},
+ {"application/x-shockwave-flash", MsgMedia::UnknownType},
+ {"image/tiff", MsgMedia::ImageType},
+ {"image/tif", MsgMedia::ImageType},
+ {"audio/pmd", MsgMedia::ImageType},
+
+ // Video:
+ {"video/3gpp", MsgMedia::VideoType},
+ {"video/3gp", MsgMedia::VideoType},
+ {"video/h263", MsgMedia::VideoType},
+ {"video/mp4v-es", MsgMedia::VideoType},
+ {"audio/x-ms-asf", MsgMedia::VideoType},
+ {"video/x-ms-asf", MsgMedia::VideoType},
+ {"video/x-ms-asf", MsgMedia::VideoType},
+ {"video/avi", MsgMedia::VideoType},
+ {"video/mpeg", MsgMedia::VideoType},
+ {"video/mp4", MsgMedia::VideoType},
+ {"video/mpeg4", MsgMedia::VideoType},
+ {"video/x-mp4", MsgMedia::VideoType},
+ {"video/x-pv-mp4", MsgMedia::VideoType},
+ {"video/mpeg", MsgMedia::VideoType},
+ {"video/mpeg", MsgMedia::VideoType},
+ {"video/x-pn-multirate-realvideo", MsgMedia::VideoType},
+ {"video/vnd.rn-realmedia", MsgMedia::VideoType},
+ {"video/vnd.rn-realvideo", MsgMedia::VideoType},
+ {"video/x-pn-realvideo", MsgMedia::VideoType},
+ {"application/sdp", MsgMedia::VideoType},
+ {"video/sdp", MsgMedia::VideoType},
+ {"video/x-ms-wmv", MsgMedia::VideoType},
+
+ // Text:
+ {"text/plain", MsgMedia::TextType}
+ };
+
+ inline static const MediaTypeData getMsgMediaTypeByFileExt(const std::string &filePath)
{
std::string base;
std::string name;
FileUtils::splitPath(filePath, base, name, ext);
std::transform(ext.begin(), ext.end(), ext.begin(), ::tolower);
- auto it = mediaTypeMap.find(ext);
- return it != mediaTypeMap.end() ? it->second : MediaTypeData("", MsgMedia::UnknownType);
+ auto it = mediaTypeByExtMap.find(ext);
+ return it != mediaTypeByExtMap.end() ? it->second : MediaTypeData("", MsgMedia::UnknownType);
+ }
+
+ inline static MsgMedia::Type getMsgMediaTypeByMime(std::string mime)
+ {
+ std::transform(mime.begin(), mime.end(), mime.begin(), ::tolower);
+
+ auto it = mediaTypeByMimeMap.find(mime);
+ return it != mediaTypeByMimeMap.end() ? it->second : MsgMedia::UnknownType;
}
}