File indexing completed on 2024-05-26 05:02:14
0001 // SPDX-License-Identifier: GPL-2.0-or-later 0002 // SPDX-FileCopyrightText: 2018 Andreas Krutzler <andreas.krutzler@gmx.net> 0003 0004 #pragma once 0005 0006 #include <kmtpfile.h> 0007 0008 /** 0009 * @brief Converts a LIBMTP_filetype_t to a mime-type 0010 */ 0011 static QString getMimetype(LIBMTP_filetype_t filetype) 0012 { 0013 switch (filetype) { 0014 case LIBMTP_FILETYPE_FOLDER: 0015 return QStringLiteral("inode/directory"); 0016 case LIBMTP_FILETYPE_WAV: 0017 return QStringLiteral("audio/wav"); 0018 case LIBMTP_FILETYPE_MP3: 0019 return QStringLiteral("audio/x-mp3"); 0020 case LIBMTP_FILETYPE_WMA: 0021 return QStringLiteral("audio/x-ms-wma"); 0022 case LIBMTP_FILETYPE_OGG: 0023 return QStringLiteral("audio/x-vorbis+ogg"); 0024 case LIBMTP_FILETYPE_AUDIBLE: 0025 return {}; 0026 case LIBMTP_FILETYPE_MP4: 0027 return QStringLiteral("video/mp4"); 0028 case LIBMTP_FILETYPE_UNDEF_AUDIO: 0029 return {}; 0030 case LIBMTP_FILETYPE_WMV: 0031 return QStringLiteral("video/x-ms-wmv"); 0032 case LIBMTP_FILETYPE_AVI: 0033 return QStringLiteral("video/x-msvideo"); 0034 case LIBMTP_FILETYPE_MPEG: 0035 return QStringLiteral("video/mpeg"); 0036 case LIBMTP_FILETYPE_ASF: 0037 return QStringLiteral("video/x-ms-asf"); 0038 case LIBMTP_FILETYPE_QT: 0039 return QStringLiteral("video/quicktime"); 0040 case LIBMTP_FILETYPE_UNDEF_VIDEO: 0041 return {}; 0042 case LIBMTP_FILETYPE_JPEG: 0043 return QStringLiteral("image/jpeg"); 0044 case LIBMTP_FILETYPE_JFIF: 0045 return {}; 0046 case LIBMTP_FILETYPE_TIFF: 0047 return QStringLiteral("image/tiff"); 0048 case LIBMTP_FILETYPE_BMP: 0049 return QStringLiteral("image/bmp"); 0050 case LIBMTP_FILETYPE_GIF: 0051 return QStringLiteral("image/gif"); 0052 case LIBMTP_FILETYPE_PICT: 0053 return QStringLiteral("image/x-pict"); 0054 case LIBMTP_FILETYPE_PNG: 0055 return QStringLiteral("image/png"); 0056 case LIBMTP_FILETYPE_VCALENDAR1: 0057 return QStringLiteral("text/x-vcalendar"); 0058 case LIBMTP_FILETYPE_VCALENDAR2: 0059 return QStringLiteral("text/x-vcalendar"); 0060 case LIBMTP_FILETYPE_VCARD2: 0061 return QStringLiteral("text/x-vcard"); 0062 case LIBMTP_FILETYPE_VCARD3: 0063 return QStringLiteral("text/x-vcard"); 0064 case LIBMTP_FILETYPE_WINDOWSIMAGEFORMAT: 0065 return QStringLiteral("image/x-wmf"); 0066 case LIBMTP_FILETYPE_WINEXEC: 0067 return QStringLiteral("application/x-ms-dos-executable"); 0068 case LIBMTP_FILETYPE_TEXT: 0069 return QStringLiteral("text/plain"); 0070 case LIBMTP_FILETYPE_HTML: 0071 return QStringLiteral("text/html"); 0072 case LIBMTP_FILETYPE_FIRMWARE: 0073 return {}; 0074 case LIBMTP_FILETYPE_AAC: 0075 return QStringLiteral("audio/aac"); 0076 case LIBMTP_FILETYPE_MEDIACARD: 0077 return {}; 0078 case LIBMTP_FILETYPE_FLAC: 0079 return QStringLiteral("audio/flac"); 0080 case LIBMTP_FILETYPE_MP2: 0081 return QStringLiteral("video/mpeg"); 0082 case LIBMTP_FILETYPE_M4A: 0083 return QStringLiteral("audio/mp4"); 0084 case LIBMTP_FILETYPE_DOC: 0085 return QStringLiteral("application/msword"); 0086 case LIBMTP_FILETYPE_XML: 0087 return QStringLiteral("text/xml"); 0088 case LIBMTP_FILETYPE_XLS: 0089 return QStringLiteral("application/vnd.ms-excel"); 0090 case LIBMTP_FILETYPE_PPT: 0091 return QStringLiteral("application/vnd.ms-powerpoint"); 0092 case LIBMTP_FILETYPE_MHT: 0093 return {}; 0094 case LIBMTP_FILETYPE_JP2: 0095 return QStringLiteral("image/jpeg2000"); 0096 case LIBMTP_FILETYPE_JPX: 0097 return QStringLiteral("application/x-jbuilder-project"); 0098 case LIBMTP_FILETYPE_ALBUM: 0099 case LIBMTP_FILETYPE_PLAYLIST: 0100 case LIBMTP_FILETYPE_UNKNOWN: 0101 return {}; 0102 } 0103 return {}; 0104 } 0105 0106 static inline KMTPFile createKMTPFile(const std::unique_ptr<LIBMTP_file_t> &file) 0107 { 0108 Q_ASSERT(file); 0109 return KMTPFile(file->item_id, file->parent_id, file->storage_id, file->filename, file->filesize, file->modificationdate, getMimetype(file->filetype)); 0110 }