Tag Parser 12.1.0
C++ library for reading and writing MP4 (iTunes), ID3, Vorbis, Opus, FLAC and Matroska tags
Loading...
Searching...
No Matches
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 lPlayCounter = 0x50434E54,
45 lRating = 0x504f504d,
46 lRemixedBy = 0x54504534,
47 lCopyright = 0x54434F50,
48 lEncodingTime = 0x5444454E,
49 lMood = 0x544D4F4F,
50 lISRC = 0x54535243,
51 lUserDefinedText = 0x54585858,
53 sAlbum = 0x54414c,
54 sArtist = 0x545031,
55 sComment = 0x434f4d,
56 sYear = 0x545945,
57 sOriginalYear = 0x544F52,
58 sRecordingDates = 0x545244,
59 sDate = 0x544441,
60 sTime = 0x54494D,
61 sTitle = 0x545432,
62 sGenre = 0x54434f,
63 sTrackPosition = 0x54524b,
64 sDiskPosition = 0x545041,
65 sEncoder = 0x54454e,
66 sBpm = 0x544250,
67 sCover = 0x504943,
68 sWriter = 0x545854,
69 sLength = 0x544c45,
70 sLanguage = 0x544c41,
71 sEncoderSettings = 0x545353,
74 sAlbumArtist = 0x545032,
76 sRecordLabel = 0x545042,
77 sUniqueFileId = 0x554649,
78 sComposer = 0x54434d,
79 sPlayCounter = 0x434E54,
80 sRating = 0x504f50,
81 sRemixedBy = 0x545034,
82 sCopyright = 0x544352,
83 sISRC = 0x545243,
84 sUserDefinedText = 0x545858,
85};
86
87TAG_PARSER_EXPORT std::uint32_t convertToShortId(std::uint32_t id);
88TAG_PARSER_EXPORT std::uint32_t convertToLongId(std::uint32_t id);
89TAG_PARSER_EXPORT bool isPreId3v24Id(std::uint32_t id);
90TAG_PARSER_EXPORT bool isOnlyId3v24Id(std::uint32_t id);
91
95constexpr bool isLongId(std::uint32_t id)
96{
97 return (id & 0x00ffffff) != id;
98}
99
103constexpr bool isShortId(std::uint32_t id)
104{
105 return (id & 0x00ffffff) == id;
106}
107
111constexpr bool isTextFrame(std::uint32_t id)
112{
113 if (isShortId(id)) {
114 return ((id & 0x00FF0000u) == 0x00540000u) && (id != Id3v2FrameIds::sUserDefinedText);
115 } else {
116 return (id & 0xFF000000u) == 0x54000000u && (id != Id3v2FrameIds::lUserDefinedText);
117 }
118}
119
120} // namespace Id3v2FrameIds
121
122} // namespace TagParser
123#endif // TAG_PARSER_ID3V2FRAMEIDS_H
#define TAG_PARSER_EXPORT
Marks the symbol to be exported by the tagparser library.
Definition global.h:13
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.
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