Tag Parser 11.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 "../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 lUserDefinedText = 0x54585858,
50 sAlbum = 0x54414c,
51 sArtist = 0x545031,
52 sComment = 0x434f4d,
53 sYear = 0x545945,
54 sOriginalYear = 0x544F5259,
55 sRecordingDates = 0x545244,
56 sDate = 0x544441,
57 sTime = 0x54494D,
58 sTitle = 0x545432,
59 sGenre = 0x54434f,
60 sTrackPosition = 0x54524b,
61 sDiskPosition = 0x545041,
62 sEncoder = 0x54454e,
63 sBpm = 0x544250,
64 sCover = 0x504943,
65 sWriter = 0x545854,
66 sLength = 0x544c45,
67 sLanguage = 0x544c41,
68 sEncoderSettings = 0x545353,
71 sAlbumArtist = 0x545032,
73 sRecordLabel = 0x545042,
74 sUniqueFileId = 0x554649,
75 sComposer = 0x54434d,
76 sRating = 0x504f50,
77 sRemixedBy = 0x545034,
78 sCopyright = 0x544352,
79 sUserDefinedText = 0x545858,
80};
81
82TAG_PARSER_EXPORT std::uint32_t convertToShortId(std::uint32_t id);
83TAG_PARSER_EXPORT std::uint32_t convertToLongId(std::uint32_t id);
84TAG_PARSER_EXPORT bool isPreId3v24Id(std::uint32_t id);
85TAG_PARSER_EXPORT bool isOnlyId3v24Id(std::uint32_t id);
86
90constexpr bool isLongId(std::uint32_t id)
91{
92 return (id & 0x00ffffff) != id;
93}
94
98constexpr bool isShortId(std::uint32_t id)
99{
100 return (id & 0x00ffffff) == id;
101}
102
106constexpr bool isTextFrame(std::uint32_t id)
107{
108 if (isShortId(id)) {
109 return ((id & 0x00FF0000u) == 0x00540000u) && (id != Id3v2FrameIds::sUserDefinedText);
110 } else {
111 return (id & 0xFF000000u) == 0x54000000u && (id != Id3v2FrameIds::lUserDefinedText);
112 }
113}
114
115} // namespace Id3v2FrameIds
116
117} // namespace TagParser
118#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:90
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.
Definition: id3v2frameids.h:98
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