Sayonara Player
TaggingEnums.h
1 /* TaggingEnums.h */
2 
3 /* Copyright (C) 2011-2020 Michael Lugmair (Lucio Carreras)
4  *
5  * This file is part of sayonara player
6  *
7  * This program is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation, either version 3 of the License, or
10  * (at your option) any later version.
11 
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16 
17  * You should have received a copy of the GNU General Public License
18  * along with this program. If not, see <http://www.gnu.org/licenses/>.
19  */
20 
21 
22 
23 #ifndef TAGGINGENUMS
24 #define TAGGINGENUMS
25 
26 #include "taglib/audioproperties.h"
27 #include "taglib/id3v1tag.h"
28 #include "taglib/id3v2tag.h"
29 #include "taglib/mp4tag.h"
30 #include "taglib/xiphcomment.h"
31 
32 namespace Tagging
33 {
37  enum class Quality : unsigned char
38  {
39  Fast=TagLib::AudioProperties::Fast,
40  Standard=TagLib::AudioProperties::Average,
41  Quality=TagLib::AudioProperties::Accurate,
42  Dirty
43  };
44 
45  enum class TagType : unsigned char
46  {
47  ID3v1=0,
48  ID3v2,
49  Xiph,
50  MP4,
51  Unsupported,
52  Unknown
53  };
54 
55  struct ParsedTag
56  {
57  TagLib::Tag* tag;
58  TagType type;
59 
60  TagLib::MP4::Tag* mp4Tag() const
61  {
62  return dynamic_cast<TagLib::MP4::Tag*>(this->tag);
63  }
64 
65  TagLib::ID3v2::Tag* id3Tag() const
66  {
67  return dynamic_cast<TagLib::ID3v2::Tag*>(this->tag);
68  }
69 
70  TagLib::Ogg::XiphComment* xiphTag() const
71  {
72  return dynamic_cast<TagLib::Ogg::XiphComment*>(this->tag);
73  }
74  };
75 }
76 #endif // TAGGINGENUMS
77 
Tagging::Quality
Quality
The Quality enum.
Definition: TaggingEnums.h:38
Tagging
The GUI_TagEdit class.
Definition: GenreFetcher.h:34
Tagging::ParsedTag
Definition: TaggingEnums.h:56
ID3v2
ID3v2Frame namespace.
Definition: AlbumArtist.h:27