Tag Parser 11.2.1
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
10namespace TagParser {
11
12namespace Id3v2FrameIds {
13enum 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 lRecordingTime = 0x54445243,
23 lReleaseTime = 0x5444524C,
24 lOriginalReleaseTime = 0x54444F52,
25 lTaggingTime = 0x54445447,
26 lTitle = 0x54495432,
27 lGenre = 0x54434f4e,
28 lTrackPosition = 0x5452434b,
29 lDiskPosition = 0x54504f53,
30 lEncoder = 0x54454e43,
31 lBpm = 0x5442504d,
32 lCover = 0x41504943,
33 lWriter = 0x54455854,
34 lLength = 0x544c454e,
35 lLanguage = 0x544c414e,
36 lEncoderSettings = 0x54535345,
37 lUnsynchronizedLyrics = 0x55534c54,
38 lSynchronizedLyrics = 0x53594C54,
39 lAlbumArtist = 0x54504532,
41 lRecordLabel = 0x54505542,
42 lUniqueFileId = 0x55464944,
43 lComposer = 0x54434f4d,
44 lRating = 0x504f504d,
45 lRemixedBy = 0x54504534,
46 lCopyright = 0x54434F50,
47 lEncodingTime = 0x5444454E,
48 lMood = 0x544D4F4F,
49 lISRC = 0x54535243,
50 lUserDefinedText = 0x54585858,
52 sAlbum = 0x54414c,
53 sArtist = 0x545031,
54 sComment = 0x434f4d,
55 sYear = 0x545945,
56 sOriginalYear = 0x544F52,
57 sRecordingDates = 0x545244,
58 sDate = 0x544441,
59 sTime = 0x54494D,
60 sTitle = 0x545432,
61 sGenre = 0x54434f,
62 sTrackPosition = 0x54524b,
63 sDiskPosition = 0x545041,
64 sEncoder = 0x54454e,
65 sBpm = 0x544250,
66 sCover = 0x504943,
67 sWriter = 0x545854,
68 sLength = 0x544c45,
69 sLanguage = 0x544c41,
70 sEncoderSettings = 0x545353,
73 sAlbumArtist = 0x545032,
75 sRecordLabel = 0x545042,
76 sUniqueFileId = 0x554649,
77 sComposer = 0x54434d,
78 sRating = 0x504f50,
79 sRemixedBy = 0x545034,
80 sCopyright = 0x544352,
81 sISRC = 0x545243,
82 sUserDefinedText = 0x545858,
83};
84
85TAG_PARSER_EXPORT std::uint32_t convertToShortId(std::uint32_t id);
86TAG_PARSER_EXPORT std::uint32_t convertToLongId(std::uint32_t id);
87TAG_PARSER_EXPORT bool isPreId3v24Id(std::uint32_t id);
88TAG_PARSER_EXPORT bool isOnlyId3v24Id(std::uint32_t id);
89
93constexpr bool isLongId(std::uint32_t id)
94{
95 return (id & 0x00ffffff) != id;
96}
97
101constexpr bool isShortId(std::uint32_t id)
102{
103 return (id & 0x00ffffff) == id;
104}
105
109constexpr bool isTextFrame(std::uint32_t id)
110{
111 if (isShortId(id)) {
112 return ((id & 0x00FF0000u) == 0x00540000u) && (id != Id3v2FrameIds::sUserDefinedText);
113 } else {
114 return (id & 0xFF000000u) == 0x54000000u && (id != Id3v2FrameIds::lUserDefinedText);
115 }
116}
117
118} // namespace Id3v2FrameIds
119
120} // namespace TagParser
121#endif // TAG_PARSER_ID3V2FRAMEIDS_H
#define TAG_PARSER_EXPORT
Marks the symbol to be exported by the tagparser library.
TAG_PARSER_EXPORT bool isPreId3v24Id(std::uint32_t id)
TAG_PARSER_EXPORT std::uint32_t convertToShortId(std::uint32_t id)
Converts the specified long frame ID to the equivalent short frame ID.
constexpr bool isLongId(std::uint32_t id)
Returns an indication whether the specified id is a long frame id.
Definition: id3v2frameids.h:93
constexpr bool isTextFrame(std::uint32_t id)
Returns an indication whether the specified id is a text frame id.
constexpr bool isShortId(std::uint32_t id)
Returns an indication whether the specified id is a short frame id.
TAG_PARSER_EXPORT bool isOnlyId3v24Id(std::uint32_t id)
TAG_PARSER_EXPORT std::uint32_t convertToLongId(std::uint32_t id)
Converts the specified short frame ID to the equivalent long frame ID.
Contains all classes and functions of the TagInfo library.
Definition: aaccodebook.h:10