Add M4A to files pattern
[someplayer] / src / taglib / mp4 / mp4coverart.cpp
1 /**************************************************************************
2     copyright            : (C) 2009 by Lukáš Lalinský
3     email                : lalinsky@gmail.com
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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  *
19  *   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 #ifdef HAVE_CONFIG_H
27 #include <config.h>
28 #endif
29
30 #include <taglib.h>
31 #include <tdebug.h>
32 #include "mp4coverart.h"
33
34 using namespace TagLib;
35
36 class MP4::CoverArt::CoverArtPrivate : public RefCounter
37 {
38 public:
39   CoverArtPrivate() : RefCounter(), format(MP4::CoverArt::JPEG) {}
40
41   Format format;
42   ByteVector data;
43 };
44
45 MP4::CoverArt::CoverArt(Format format, const ByteVector &data)
46 {
47   d = new CoverArtPrivate;
48   d->format = format;
49   d->data = data;
50 }
51
52 MP4::CoverArt::CoverArt(const CoverArt &item) : d(item.d)
53 {
54   d->ref();
55 }
56
57 MP4::CoverArt &
58 MP4::CoverArt::operator=(const CoverArt &item)
59 {
60   if(d->deref()) {
61     delete d;
62   }
63   d = item.d;
64   d->ref();
65   return *this;
66 }
67
68 MP4::CoverArt::~CoverArt()
69 {
70   if(d->deref()) {
71     delete d;
72   }
73 }
74
75 MP4::CoverArt::Format
76 MP4::CoverArt::format() const
77 {
78   return d->format;
79 }
80
81 ByteVector
82 MP4::CoverArt::data() const
83 {
84   return d->data;
85 }