libtaginfo  0.2.1
taginfo_xiphtags.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2008-2013 J.Rios <anonbeat@gmail.com>
3  * Copyright (C) 2013 Jörn Magens
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or (at your option) any later version.
9  *
10  * This Program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; see the file LICENSE. If not, write to
17  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth
18  * Floor, Boston, MA 02110-1301 USA
19  * https://www.gnu.org/licenses/lgpl-2.1.txt
20  *
21  * Author:
22  * Jörn Magens <shuerhaaken@googlemail.com>
23  *
24  */
25 
26 
27 #ifndef TAGINFO_XIPH_H
28 #define TAGINFO_XIPH_H
29 
30 
31 #include "taginfo.h"
32 
33 #include <flacfile.h>
34 #include <oggfile.h>
35 #include <vorbisfile.h>
36 
37 
38 using namespace TagLib;
39 using namespace TagInfo;
40 
41 
45 namespace TagInfo {
46 
47  // GENERAL XIPH
49 
52  class XiphInfo : public Info {
53  protected :
56  XiphInfo(const String &filename = "");
58  Ogg::XiphComment * xiphcomment;
59 
60  public :
61  virtual ~XiphInfo();
62 
63  virtual bool load(void);
64  virtual bool save(void);
65 
66  virtual ImageList get_images() const;
67  virtual void set_images(const ImageList images);
68 
69  virtual String get_lyrics(void) const;
70  virtual void set_lyrics(const String &lyrics);
71  };
72 
73  // FILE TYPES
74 
76 
79  class FlacInfo : public XiphInfo {
80  protected :
82  TagLib::FLAC::File * flac_file;
83 
84  public :
87  FlacInfo(const String &filename = "");
88  virtual ~FlacInfo();
89 
90  virtual bool load(void);
91 
92  virtual ImageList get_images() const;
93  virtual void set_images(const ImageList images);
94  };
95 
96 
98 
101  class OggInfo : public XiphInfo {
102  public :
105  OggInfo(const String &filename = "");
106  virtual ~OggInfo();
107  };
108 
109 #ifdef TAGLIB_ONE_NINE
110 
114  class OpusInfo : public XiphInfo {
115  public :
118  OpusInfo(const String &filename = "");
119  virtual ~OpusInfo();
120  };
121 #endif /* TAGLIB_ONE_NINE */
122 
124 
127  class SpeexInfo : public XiphInfo {
128  public :
131  SpeexInfo(const String &filename = "");
132  virtual ~SpeexInfo();
133  };
134 }
135 
136 #endif
Info implementation for ogg files.
Definition: taginfo_xiphtags.h:101
TagLib::FLAC::File * flac_file
Flac tag.
Definition: taginfo_xiphtags.h:82
Info implementation for vorbis tags.
Definition: taginfo_xiphtags.h:52
Ogg::XiphComment * xiphcomment
Xiph comment.
Definition: taginfo_xiphtags.h:58
Info implementation for flac files.
Definition: taginfo_xiphtags.h:79
TagLib::List< Image * > ImageList
Definition: taginfo.h:62
Info implementation for speex files (spx).
Definition: taginfo_xiphtags.h:127
A simple, generic interface to common audio meta data fields and media properties.
Definition: taginfo.h:125