Tag Parser  9.1.0
C++ library for reading and writing MP4 (iTunes), ID3, Vorbis, Opus, FLAC and Matroska tags
id3v2frameids.h
Go to the documentation of this file.
1 #ifndef TAG_PARSER_ID3V2FRAMEIDS_H
2 #define TAG_PARSER_ID3V2FRAMEIDS_H
3 
4 #include <cstdint>
5 
6 #include <string>
7 
8 namespace TagParser {
9 
10 namespace Id3v2FrameIds {
11 enum KnownValue : std::uint32_t {
12  lAlbum = 0x54414c42,
13  lArtist = 0x54504531,
14  lComment = 0x434f4d4d,
15  lYear = 0x54594552,
16  lRecordDate = 0x54445243,
17  lTitle = 0x54495432,
18  lGenre = 0x54434f4e,
19  lTrackPosition = 0x5452434b,
20  lDiskPosition = 0x54504f53,
21  lEncoder = 0x54454e43,
22  lBpm = 0x5442504d,
23  lCover = 0x41504943,
24  lWriter = 0x54455854,
25  lLength = 0x544c454e,
26  lLanguage = 0x544c414e,
27  lEncoderSettings = 0x54535345,
28  lUnsynchronizedLyrics = 0x55534c54,
29  lSynchronizedLyrics = 0x53594C54,
30  lAlbumArtist = 0x54504532,
32  lRecordLabel = 0x54505542,
33  lUniqueFileId = 0x55464944,
34  lComposer = 0x54434f4d,
35  lRating = 0x504f504d,
36  lUserDefinedText = 0x54585858,
37 
38  sAlbum = 0x54414c,
39  sArtist = 0x545031,
40  sComment = 0x434f4d,
41  sYear = 0x545945,
42  sRecordDate = 0x545243,
43  sTitle = 0x545432,
44  sGenre = 0x54434f,
45  sTrackPosition = 0x54524b,
46  sDiskPosition = 0x545041,
47  sEncoder = 0x54454e,
48  sBpm = 0x544250,
49  sCover = 0x504943,
50  sWriter = 0x545854,
51  sLength = 0x544c45,
52  sLanguage = 0x544c41,
53  sEncoderSettings = 0x545353,
55  sSynchronizedLyrics = 0x534C54,
56  sAlbumArtist = 0x545032,
58  sRecordLabel = 0x545042,
59  sUniqueFileId = 0x554649,
60  sComposer = 0x54434d,
61  sRating = 0x504f50,
62  sUserDefinedText = 0x545858,
63 };
64 
65 std::uint32_t convertToShortId(std::uint32_t id);
66 std::uint32_t convertToLongId(std::uint32_t id);
67 
71 constexpr bool isLongId(std::uint32_t id)
72 {
73  return (id & 0x00ffffff) != id;
74 }
75 
79 constexpr bool isShortId(std::uint32_t id)
80 {
81  return (id & 0x00ffffff) == id;
82 }
83 
87 constexpr bool isTextFrame(std::uint32_t id)
88 {
89  if (isShortId(id)) {
90  return ((id & 0x00FF0000u) == 0x00540000u) && (id != Id3v2FrameIds::sUserDefinedText);
91  } else {
92  return (id & 0xFF000000u) == 0x54000000u && (id != Id3v2FrameIds::lUserDefinedText);
93  }
94 }
95 
96 } // namespace Id3v2FrameIds
97 
98 } // namespace TagParser
99 #endif // TAG_PARSER_ID3V2FRAMEIDS_H
TagParser::Id3v2FrameIds::sTitle
Definition: id3v2frameids.h:43
TagParser::Id3v2FrameIds::sDiskPosition
Definition: id3v2frameids.h:46
TagParser::Id3v2FrameIds::lCover
Definition: id3v2frameids.h:23
TagParser::Id3v2FrameIds::sUserDefinedText
Definition: id3v2frameids.h:62
TagParser::Id3v2FrameIds::lUserDefinedText
Definition: id3v2frameids.h:36
TagParser::Id3v2FrameIds::lRecordDate
Definition: id3v2frameids.h:16
TagParser::Id3v2FrameIds::lAlbum
Definition: id3v2frameids.h:12
TagParser::Id3v2FrameIds::isLongId
constexpr bool isLongId(std::uint32_t id)
Returns an indication whether the specified id is a long frame id.
Definition: id3v2frameids.h:71
TagParser::Id3v2FrameIds::sTrackPosition
Definition: id3v2frameids.h:45
TagParser::Id3v2FrameIds::sCover
Definition: id3v2frameids.h:49
TagParser
Contains all classes and functions of the TagInfo library.
Definition: aaccodebook.h:10
TagParser::Id3v2FrameIds::lComment
Definition: id3v2frameids.h:14
TagParser::Id3v2FrameIds::lTitle
Definition: id3v2frameids.h:17
TagParser::Id3v2FrameIds::lTrackPosition
Definition: id3v2frameids.h:19
TagParser::Id3v2FrameIds::sRating
Definition: id3v2frameids.h:61
TagParser::Id3v2FrameIds::lLanguage
Definition: id3v2frameids.h:26
TagParser::Id3v2FrameIds::sYear
Definition: id3v2frameids.h:41
TagParser::Id3v2FrameIds::isShortId
constexpr bool isShortId(std::uint32_t id)
Returns an indication whether the specified id is a short frame id.
Definition: id3v2frameids.h:79
TagParser::Id3v2FrameIds::lLength
Definition: id3v2frameids.h:25
TagParser::Id3v2FrameIds::lGenre
Definition: id3v2frameids.h:18
TagParser::Id3v2FrameIds::sSynchronizedLyrics
Definition: id3v2frameids.h:55
TagParser::Id3v2FrameIds::sAlbum
Definition: id3v2frameids.h:38
TagParser::Id3v2FrameIds::sEncoder
Definition: id3v2frameids.h:47
TagParser::Id3v2FrameIds::isTextFrame
constexpr bool isTextFrame(std::uint32_t id)
Returns an indication whether the specified id is a text frame id.
Definition: id3v2frameids.h:87
TagParser::Id3v2FrameIds::sBpm
Definition: id3v2frameids.h:48
TagParser::Id3v2FrameIds::sComposer
Definition: id3v2frameids.h:60
TagParser::Id3v2FrameIds::sWriter
Definition: id3v2frameids.h:50
TagParser::Id3v2FrameIds::sUniqueFileId
Definition: id3v2frameids.h:59
TagParser::Id3v2FrameIds::lRecordLabel
Definition: id3v2frameids.h:32
TagParser::Id3v2FrameIds::sContentGroupDescription
Definition: id3v2frameids.h:57
TagParser::Id3v2FrameIds::lComposer
Definition: id3v2frameids.h:34
TagParser::Id3v2FrameIds::convertToShortId
std::uint32_t convertToShortId(std::uint32_t id)
Converts the specified long frame ID to the equivalent short frame ID.
Definition: id3v2frameids.cpp:23
TagParser::Id3v2FrameIds::lDiskPosition
Definition: id3v2frameids.h:20
TagParser::Id3v2FrameIds::sLength
Definition: id3v2frameids.h:51
TagParser::Id3v2FrameIds::lWriter
Definition: id3v2frameids.h:24
TagParser::Id3v2FrameIds::lAlbumArtist
Definition: id3v2frameids.h:30
TagParser::Id3v2FrameIds::lUnsynchronizedLyrics
Definition: id3v2frameids.h:28
TagParser::Id3v2FrameIds::sRecordDate
Definition: id3v2frameids.h:42
TagParser::Id3v2FrameIds::sEncoderSettings
Definition: id3v2frameids.h:53
TagParser::Id3v2FrameIds::KnownValue
KnownValue
Definition: id3v2frameids.h:11
TagParser::Id3v2FrameIds::sAlbumArtist
Definition: id3v2frameids.h:56
TagParser::Id3v2FrameIds::sUnsynchronizedLyrics
Definition: id3v2frameids.h:54
TagParser::Id3v2FrameIds::lUniqueFileId
Definition: id3v2frameids.h:33
TagParser::Id3v2FrameIds::sGenre
Definition: id3v2frameids.h:44
TagParser::Id3v2FrameIds::lSynchronizedLyrics
Definition: id3v2frameids.h:29
TagParser::Id3v2FrameIds::lContentGroupDescription
Definition: id3v2frameids.h:31
TagParser::Id3v2FrameIds::lArtist
Definition: id3v2frameids.h:13
TagParser::Id3v2FrameIds::lRating
Definition: id3v2frameids.h:35
TagParser::Id3v2FrameIds::sComment
Definition: id3v2frameids.h:40
TagParser::Id3v2FrameIds::convertToLongId
std::uint32_t convertToLongId(std::uint32_t id)
Converts the specified short frame ID to the equivalent long frame ID.
Definition: id3v2frameids.cpp:77
TagParser::Id3v2FrameIds::lBpm
Definition: id3v2frameids.h:22
TagParser::Id3v2FrameIds::sRecordLabel
Definition: id3v2frameids.h:58
TagParser::Id3v2FrameIds::lEncoder
Definition: id3v2frameids.h:21
TagParser::Id3v2FrameIds::lEncoderSettings
Definition: id3v2frameids.h:27
TagParser::Id3v2FrameIds::sArtist
Definition: id3v2frameids.h:39
TagParser::Id3v2FrameIds::sLanguage
Definition: id3v2frameids.h:52
TagParser::Id3v2FrameIds::lYear
Definition: id3v2frameids.h:15