File indexing completed on 2025-03-16 06:50:37
0001 /* 0002 EmbeddedImageData extracts binary data of cover art files. 0003 SPDX-FileCopyrightText: 2018 Alexander Stippich <a.stippich@gmx.net> 0004 0005 SPDX-License-Identifier: LGPL-2.1-or-later 0006 */ 0007 0008 #ifndef KFILEMETADATA_EMBEDDEDIMAGEDATA_H 0009 #define KFILEMETADATA_EMBEDDEDIMAGEDATA_H 0010 0011 #include "kfilemetadata_export.h" 0012 #include <QByteArray> 0013 #include <QFlags> 0014 #include <QMap> 0015 #include <QMetaType> 0016 #include <memory> 0017 0018 namespace KFileMetaData { 0019 0020 /** 0021 * \class EmbeddedImageData embeddedimagedata.h <KFileMetaData/EmbeddedImageData> 0022 * 0023 * \brief EmbeddedImageData defines enums for different image types that can 0024 * be extracted from the metadata of e.g. music files 0025 * @todo KF6 make this an enum only in KF6 similar to properties.h 0026 */ 0027 class KFILEMETADATA_EXPORT EmbeddedImageData { 0028 public: 0029 EmbeddedImageData(); 0030 virtual ~EmbeddedImageData(); 0031 /** 0032 * @see ImageTypes 0033 */ 0034 enum ImageType { 0035 FrontCover = 1 << 0x0, 0036 Other = 1 << 0x01, 0037 FileIcon = 1 << 0x02, 0038 OtherFileIcon = 1 << 0x03, 0039 BackCover = 1 << 0x04, 0040 LeafletPage = 1 << 0x05, 0041 Media = 1 << 0x06, 0042 LeadArtist = 1 << 0x07, 0043 Artist = 1 << 0x08, 0044 Conductor = 1 << 0x09, 0045 Band = 1 << 0x0A, 0046 Composer = 1 << 0x0B, 0047 Lyricist = 1 << 0x0C, 0048 RecordingLocation = 1 << 0x0D, 0049 DuringRecording = 1 << 0x0E, 0050 DuringPerformance = 1 << 0x0F, 0051 MovieScreenCapture = 1 << 0x10, 0052 ColouredFish = 1 << 0x11, 0053 Illustration = 1 << 0x12, 0054 BandLogo = 1 << 0x13, 0055 PublisherLogo = 1 << 0x14, 0056 Unknown = 1 << 30, 0057 AllImages = 0x7fffffff 0058 }; 0059 /** 0060 * Stores a combination of #ImageType values. 0061 */ 0062 Q_DECLARE_FLAGS(ImageTypes, ImageType) 0063 0064 private: 0065 class Private; 0066 std::unique_ptr<Private> d; 0067 EmbeddedImageData& operator=(const EmbeddedImageData&) = delete; 0068 }; 0069 0070 } 0071 0072 Q_DECLARE_METATYPE(KFileMetaData::EmbeddedImageData::ImageType) 0073 Q_DECLARE_METATYPE(KFileMetaData::EmbeddedImageData::ImageTypes) 0074 0075 #endif // KFILEMETADATA_EMBEDDEDIMAGEDATA_H