1 /************************************************************************** 2 copyright : (C) 2009 by Lukáš Lalinský 3 email : [email protected] 4 **************************************************************************/ 5 6 /*************************************************************************** 7 * This library is free software; you can redistribute it and/or modify * 8 * it under the terms of the GNU Lesser General Public License version * 9 * 2.1 as published by the Free Software Foundation. * 10 * * 11 * This library is distributed in the hope that it will be useful, but * 12 * WITHOUT ANY WARRANTY; without even the implied warranty of * 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * 14 * Lesser General Public License for more details. * 15 * * 16 * You should have received a copy of the GNU Lesser General Public * 17 * License along with this library; if not, write to the Free Software * 18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * 19 * 02110-1301 USA * 20 * * 21 * Alternatively, this file is available under the Mozilla Public * 22 * License Version 1.1. You may obtain a copy of the License at * 23 * http://www.mozilla.org/MPL/ * 24 ***************************************************************************/ 25 26 #ifndef TAGLIB_MP4COVERART_H 27 #define TAGLIB_MP4COVERART_H 28 29 #include "tlist.h" 30 #include "tbytevector.h" 31 #include "taglib_export.h" 32 #include "mp4atom.h" 33 34 namespace TagLib { 35 36 namespace MP4 { 37 38 class TAGLIB_EXPORT CoverArt 39 { 40 public: 41 /*! 42 * This describes the image type. 43 */ 44 enum Format { 45 JPEG = TypeJPEG, 46 PNG = TypePNG, 47 BMP = TypeBMP, 48 GIF = TypeGIF, 49 Unknown = TypeImplicit, 50 }; 51 52 CoverArt(Format format, const ByteVector &data); 53 ~CoverArt(); 54 55 CoverArt(const CoverArt &item); 56 57 /*! 58 * Copies the contents of \a item into this CoverArt. 59 */ 60 CoverArt &operator=(const CoverArt &item); 61 62 /*! 63 * Exchanges the content of the CoverArt by the content of \a item. 64 */ 65 void swap(CoverArt &item); 66 67 //! Format of the image 68 Format format() const; 69 70 //! The image data 71 ByteVector data() const; 72 73 private: 74 class CoverArtPrivate; 75 CoverArtPrivate *d; 76 }; 77 78 typedef List<CoverArt> CoverArtList; 79 80 } 81 82 } 83 84 #endif 85