Tag Parser  9.4.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 "../global.h"
5 
6 #include <cstdint>
7 
8 #include <string>
9 
10 namespace TagParser {
11 
12 namespace Id3v2FrameIds {
13 enum KnownValue : std::uint32_t {
14  lAlbum = 0x54414c42,
15  lArtist = 0x54504531,
16  lComment = 0x434f4d4d,
17  lYear = 0x54594552,
18  lOriginalYear = 0x544F5259,
19  lRecordingDates = 0x54524441,
20  lDate = 0x54444154,
21  lTime = 0x54494D45,
22  lRecordDate = 0x54445243,
23  lRecordingTime = 0x54445243,
24  lReleaseTime = 0x5444524C,
25  lOriginalReleaseTime = 0x54444F52,
26  lTaggingTime = 0x54445447,
27  lTitle = 0x54495432,
28  lGenre = 0x54434f4e,
29  lTrackPosition = 0x5452434b,
30  lDiskPosition = 0x54504f53,
31  lEncoder = 0x54454e43,
32  lBpm = 0x5442504d,
33  lCover = 0x41504943,
34  lWriter = 0x54455854,
35  lLength = 0x544c454e,
36  lLanguage = 0x544c414e,
37  lEncoderSettings = 0x54535345,
38  lUnsynchronizedLyrics = 0x55534c54,
39  lSynchronizedLyrics = 0x53594C54,
40  lAlbumArtist = 0x54504532,
41  lContentGroupDescription = 0x54495431,
42  lRecordLabel = 0x54505542,
43  lUniqueFileId = 0x55464944,
44  lComposer = 0x54434f4d,
45  lRating = 0x504f504d,
46  lUserDefinedText = 0x54585858,
48  sAlbum = 0x54414c,
49  sArtist = 0x545031,
50  sComment = 0x434f4d,
51  sYear = 0x545945,
52  sOriginalYear = 0x544F5259,
53  sRecordingDates = 0x545244,
54  sDate = 0x544441,
55  sTime = 0x54494D,
56  sTitle = 0x545432,
57  sGenre = 0x54434f,
58  sTrackPosition = 0x54524b,
59  sDiskPosition = 0x545041,
60  sEncoder = 0x54454e,
61  sBpm = 0x544250,
62  sCover = 0x504943,
63  sWriter = 0x545854,
64  sLength = 0x544c45,
65  sLanguage = 0x544c41,
66  sEncoderSettings = 0x545353,
67  sUnsynchronizedLyrics = 0x554C54,
68  sSynchronizedLyrics = 0x534C54,
69  sAlbumArtist = 0x545032,
71  sRecordLabel = 0x545042,
72  sUniqueFileId = 0x554649,
73  sComposer = 0x54434d,
74  sRating = 0x504f50,
75  sUserDefinedText = 0x545858,
76 };
77 
78 TAG_PARSER_EXPORT std::uint32_t convertToShortId(std::uint32_t id);
79 TAG_PARSER_EXPORT std::uint32_t convertToLongId(std::uint32_t id);
80 TAG_PARSER_EXPORT bool isPreId3v24Id(std::uint32_t id);
81 TAG_PARSER_EXPORT bool isOnlyId3v24Id(std::uint32_t id);
82 
86 constexpr bool isLongId(std::uint32_t id)
87 {
88  return (id & 0x00ffffff) != id;
89 }
90 
94 constexpr bool isShortId(std::uint32_t id)
95 {
96  return (id & 0x00ffffff) == id;
97 }
98 
102 constexpr bool isTextFrame(std::uint32_t id)
103 {
104  if (isShortId(id)) {
105  return ((id & 0x00FF0000u) == 0x00540000u) && (id != Id3v2FrameIds::sUserDefinedText);
106  } else {
107  return (id & 0xFF000000u) == 0x54000000u && (id != Id3v2FrameIds::lUserDefinedText);
108  }
109 }
110 
111 } // namespace Id3v2FrameIds
112 
113 } // namespace TagParser
114 #endif // TAG_PARSER_ID3V2FRAMEIDS_H
TagParser::Id3v2FrameIds::sTitle
@ sTitle
Definition: id3v2frameids.h:56
TagParser::Id3v2FrameIds::sDiskPosition
@ sDiskPosition
Definition: id3v2frameids.h:59
TagParser::Id3v2FrameIds::lCover
@ lCover
Definition: id3v2frameids.h:33
TagParser::Id3v2FrameIds::sTime
@ sTime
Definition: id3v2frameids.h:55
TagParser::Id3v2FrameIds::isOnlyId3v24Id
TAG_PARSER_EXPORT bool isOnlyId3v24Id(std::uint32_t id)
TagParser::Id3v2FrameIds::sUserDefinedText
@ sUserDefinedText
Definition: id3v2frameids.h:75
TagParser::Id3v2FrameIds::lUserDefinedText
@ lUserDefinedText
Definition: id3v2frameids.h:46
TagParser::Id3v2FrameIds::lReleaseTime
@ lReleaseTime
Definition: id3v2frameids.h:24
TagParser::Id3v2FrameIds::lRecordDate
@ lRecordDate
Definition: id3v2frameids.h:22
TagParser::Id3v2FrameIds::lAlbum
@ lAlbum
Definition: id3v2frameids.h:14
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:86
TagParser::Id3v2FrameIds::sTrackPosition
@ sTrackPosition
Definition: id3v2frameids.h:58
TagParser::Id3v2FrameIds::sCover
@ sCover
Definition: id3v2frameids.h:62
TagParser
Contains all classes and functions of the TagInfo library.
Definition: aaccodebook.h:10
TagParser::Id3v2FrameIds::isPreId3v24Id
TAG_PARSER_EXPORT bool isPreId3v24Id(std::uint32_t id)
TagParser::Id3v2FrameIds::lComment
@ lComment
Definition: id3v2frameids.h:16
TagParser::Id3v2FrameIds::lTitle
@ lTitle
Definition: id3v2frameids.h:27
TagParser::Id3v2FrameIds::lTrackPosition
@ lTrackPosition
Definition: id3v2frameids.h:29
TagParser::Id3v2FrameIds::sRating
@ sRating
Definition: id3v2frameids.h:74
TagParser::Id3v2FrameIds::lLanguage
@ lLanguage
Definition: id3v2frameids.h:36
TagParser::Id3v2FrameIds::lRecordingTime
@ lRecordingTime
Definition: id3v2frameids.h:23
TagParser::Id3v2FrameIds::lTime
@ lTime
Definition: id3v2frameids.h:21
TagParser::Id3v2FrameIds::sYear
@ sYear
Definition: id3v2frameids.h:51
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:94
TagParser::Id3v2FrameIds::lLength
@ lLength
Definition: id3v2frameids.h:35
TagParser::Id3v2FrameIds::lGenre
@ lGenre
Definition: id3v2frameids.h:28
TagParser::Id3v2FrameIds::sSynchronizedLyrics
@ sSynchronizedLyrics
Definition: id3v2frameids.h:68
TagParser::Id3v2FrameIds::sAlbum
@ sAlbum
Definition: id3v2frameids.h:48
TagParser::Id3v2FrameIds::sEncoder
@ sEncoder
Definition: id3v2frameids.h:60
TagParser::Id3v2FrameIds::sRecordingDates
@ sRecordingDates
Definition: id3v2frameids.h:53
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:102
TagParser::Id3v2FrameIds::sBpm
@ sBpm
Definition: id3v2frameids.h:61
TagParser::Id3v2FrameIds::sComposer
@ sComposer
Definition: id3v2frameids.h:73
TagParser::Id3v2FrameIds::sWriter
@ sWriter
Definition: id3v2frameids.h:63
TagParser::Id3v2FrameIds::sUniqueFileId
@ sUniqueFileId
Definition: id3v2frameids.h:72
TagParser::Id3v2FrameIds::lOriginalYear
@ lOriginalYear
Definition: id3v2frameids.h:18
TagParser::Id3v2FrameIds::lRecordLabel
@ lRecordLabel
Definition: id3v2frameids.h:42
TagParser::Id3v2FrameIds::lOriginalReleaseTime
@ lOriginalReleaseTime
Definition: id3v2frameids.h:25
TagParser::Id3v2FrameIds::sContentGroupDescription
@ sContentGroupDescription
Definition: id3v2frameids.h:70
TagParser::Id3v2FrameIds::lComposer
@ lComposer
Definition: id3v2frameids.h:44
TagParser::Id3v2FrameIds::convertToShortId
TAG_PARSER_EXPORT std::uint32_t convertToShortId(std::uint32_t id)
Converts the specified long frame ID to the equivalent short frame ID.
Definition: id3v2frameids.cpp:27
TagParser::Id3v2FrameIds::lDiskPosition
@ lDiskPosition
Definition: id3v2frameids.h:30
TagParser::Id3v2FrameIds::sLength
@ sLength
Definition: id3v2frameids.h:64
TagParser::Id3v2FrameIds::lWriter
@ lWriter
Definition: id3v2frameids.h:34
TagParser::Id3v2FrameIds::lAlbumArtist
@ lAlbumArtist
Definition: id3v2frameids.h:40
TagParser::Id3v2FrameIds::lDate
@ lDate
Definition: id3v2frameids.h:20
TagParser::Id3v2FrameIds::lUnsynchronizedLyrics
@ lUnsynchronizedLyrics
Definition: id3v2frameids.h:38
TagParser::Id3v2FrameIds::sEncoderSettings
@ sEncoderSettings
Definition: id3v2frameids.h:66
TagParser::Id3v2FrameIds::KnownValue
KnownValue
Definition: id3v2frameids.h:13
TagParser::Id3v2FrameIds::sAlbumArtist
@ sAlbumArtist
Definition: id3v2frameids.h:69
TagParser::Id3v2FrameIds::sUnsynchronizedLyrics
@ sUnsynchronizedLyrics
Definition: id3v2frameids.h:67
TagParser::Id3v2FrameIds::lUniqueFileId
@ lUniqueFileId
Definition: id3v2frameids.h:43
TagParser::Id3v2FrameIds::sGenre
@ sGenre
Definition: id3v2frameids.h:57
TAG_PARSER_EXPORT
#define TAG_PARSER_EXPORT
Marks the symbol to be exported by the tagparser library.
TagParser::Id3v2FrameIds::lSynchronizedLyrics
@ lSynchronizedLyrics
Definition: id3v2frameids.h:39
TagParser::Id3v2FrameIds::lContentGroupDescription
@ lContentGroupDescription
Definition: id3v2frameids.h:41
TagParser::Id3v2FrameIds::lArtist
@ lArtist
Definition: id3v2frameids.h:15
TagParser::Id3v2FrameIds::lRating
@ lRating
Definition: id3v2frameids.h:45
TagParser::Id3v2FrameIds::lTaggingTime
@ lTaggingTime
Definition: id3v2frameids.h:26
TagParser::Id3v2FrameIds::sComment
@ sComment
Definition: id3v2frameids.h:50
TagParser::Id3v2FrameIds::sOriginalYear
@ sOriginalYear
Definition: id3v2frameids.h:52
TagParser::Id3v2FrameIds::convertToLongId
TAG_PARSER_EXPORT std::uint32_t convertToLongId(std::uint32_t id)
Converts the specified short frame ID to the equivalent long frame ID.
Definition: id3v2frameids.cpp:87
TagParser::Id3v2FrameIds::sDate
@ sDate
Definition: id3v2frameids.h:54
TagParser::Id3v2FrameIds::lBpm
@ lBpm
Definition: id3v2frameids.h:32
TagParser::Id3v2FrameIds::sRecordLabel
@ sRecordLabel
Definition: id3v2frameids.h:71
TagParser::Id3v2FrameIds::lEncoder
@ lEncoder
Definition: id3v2frameids.h:31
TagParser::Id3v2FrameIds::lEncoderSettings
@ lEncoderSettings
Definition: id3v2frameids.h:37
TagParser::Id3v2FrameIds::sArtist
@ sArtist
Definition: id3v2frameids.h:49
TagParser::Id3v2FrameIds::lRecordingDates
@ lRecordingDates
Definition: id3v2frameids.h:19
TagParser::Id3v2FrameIds::sLanguage
@ sLanguage
Definition: id3v2frameids.h:65
TagParser::Id3v2FrameIds::lYear
@ lYear
Definition: id3v2frameids.h:17