TagLib  1.13.1
apefooter.h
Go to the documentation of this file.
1 /***************************************************************************
2  copyright : (C) 2004 by Allan Sandfeld Jensen
3  email : kde@carewolf.org
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_APEFOOTER_H
27 #define TAGLIB_APEFOOTER_H
28 
29 #include "tbytevector.h"
30 #include "taglib_export.h"
31 
32 namespace TagLib {
33 
34  namespace APE {
35 
37 
46  {
47  public:
51  Footer();
52 
57  Footer(const ByteVector &data);
58 
62  virtual ~Footer();
63 
67  unsigned int version() const;
68 
72  bool headerPresent() const;
73 
77  bool footerPresent() const;
78 
82  bool isHeader() const;
83 
87  void setHeaderPresent(bool b) const;
88 
92  unsigned int itemCount() const;
93 
98  void setItemCount(unsigned int s);
99 
106  unsigned int tagSize() const;
107 
114  unsigned int completeTagSize() const;
115 
120  void setTagSize(unsigned int s);
121 
125  static unsigned int size();
126 
132 
137  void setData(const ByteVector &data);
138 
143 
149 
150  protected:
155  void parse(const ByteVector &data);
156 
160  ByteVector render(bool isHeader) const;
161 
162  private:
163  Footer(const Footer &);
164  Footer &operator=(const Footer &);
165 
166  class FooterPrivate;
167  FooterPrivate *d;
168  };
169 
170  } // namespace APE
171 } // namespace TagLib
172 
173 #endif
An implementation of APE footers.
Definition: apefooter.h:46
unsigned int completeTagSize() const
bool isHeader() const
void parse(const ByteVector &data)
bool headerPresent() const
ByteVector renderHeader() const
void setData(const ByteVector &data)
void setHeaderPresent(bool b) const
static unsigned int size()
Footer(const ByteVector &data)
ByteVector render(bool isHeader) const
ByteVector renderFooter() const
unsigned int tagSize() const
void setTagSize(unsigned int s)
void setItemCount(unsigned int s)
static ByteVector fileIdentifier()
unsigned int itemCount() const
unsigned int version() const
bool footerPresent() const
A byte vector.
Definition: tbytevector.h:46
A namespace for all TagLib related classes and functions.
Definition: apefile.h:41
#define TAGLIB_EXPORT
Definition: taglib_export.h:40