Added TagLib (with AUTORS and COPYING files)
[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 #ifdef WITH_MP4
31
32 #include <taglib.h>
33 #include <tdebug.h>
34 #include "mp4coverart.h"
35
36 using namespace TagLib;
37
38 class MP4::CoverArt::CoverArtPrivate : public RefCounter
39 {
40 public:
41   CoverArtPrivate() : RefCounter(), format(MP4::CoverArt::JPEG) {}
42
43   Format format;
44   ByteVector data;
45 };
46
47 MP4::CoverArt::CoverArt(Format format, const ByteVector &data)
48 {
49   d = new CoverArtPrivate;
50   d->format = format;
51   d->data = data;
52 }
53
54 MP4::CoverArt::CoverArt(const CoverArt &item) : d(item.d)
55 {
56   d->ref();
57 }
58
59 MP4::CoverArt &
60 MP4::CoverArt::operator=(const CoverArt &item)
61 {
62   if(d->deref()) {
63     delete d;
64   }
65   d = item.d;
66   d->ref();
67   return *this;
68 }
69
70 MP4::CoverArt::~CoverArt()
71 {
72   if(d->deref()) {
73     delete d;
74   }
75 }
76
77 MP4::CoverArt::Format
78 MP4::CoverArt::format() const
79 {
80   return d->format;
81 }
82
83 ByteVector
84 MP4::CoverArt::data() const
85 {
86   return d->data;
87 }
88
89 #endif