Tag Parser 12.3.1
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,
52 lPublisherWebpage = 0x57505542,
53 lUserDefinedURL = 0x57585858,
55 sAlbum = 0x54414c,
56 sArtist = 0x545031,
57 sComment = 0x434f4d,
58 sYear = 0x545945,
59 sOriginalYear = 0x544F52,
60 sRecordingDates = 0x545244,
61 sDate = 0x544441,
62 sTime = 0x54494D,
63 sTitle = 0x545432,
64 sGenre = 0x54434f,
65 sTrackPosition = 0x54524b,
66 sDiskPosition = 0x545041,
67 sEncoder = 0x54454e,
68 sBpm = 0x544250,
69 sCover = 0x504943,
70 sWriter = 0x545854,
71 sLength = 0x544c45,
72 sLanguage = 0x544c41,
73 sEncoderSettings = 0x545353,
76 sAlbumArtist = 0x545032,
78 sRecordLabel = 0x545042,
79 sUniqueFileId = 0x554649,
80 sComposer = 0x54434d,
81 sPlayCounter = 0x434E54,
82 sRating = 0x504f50,
83 sRemixedBy = 0x545034,
84 sCopyright = 0x544352,
85 sISRC = 0x545243,
86 sUserDefinedText = 0x545858,
87 sPublisherWebpage = 0x575042,
88 sUserDefinedURL = 0x575858,
89};
90
91TAG_PARSER_EXPORT std::uint32_t convertToShortId(std::uint32_t id);
92TAG_PARSER_EXPORT std::uint32_t convertToLongId(std::uint32_t id);
93TAG_PARSER_EXPORT bool isPreId3v24Id(std::uint32_t id);
94TAG_PARSER_EXPORT bool isOnlyId3v24Id(std::uint32_t id);
95
99constexpr bool isLongId(std::uint32_t id)
100{
101 return (id & 0x00ffffff) != id;
102}
103
107constexpr bool isShortId(std::uint32_t id)
108{
109 return (id & 0x00ffffff) == id;
110}
111
115constexpr bool isTextFrame(std::uint32_t id)
116{
117 if (isShortId(id)) {
118 return ((id & 0x00FF0000u) == 0x00540000u) && (id != Id3v2FrameIds::sUserDefinedText);
119 } else {
120 return (id & 0xFF000000u) == 0x54000000u && (id != Id3v2FrameIds::lUserDefinedText);
121 }
122}
123
127constexpr bool isUrlFrame(std::uint32_t id)
128{
129 return (id & 0xFF000000u) == 0x57000000u && (id != Id3v2FrameIds::lUserDefinedURL);
130}
131
132} // namespace Id3v2FrameIds
133
134} // namespace TagParser
135#endif // TAG_PARSER_ID3V2FRAMEIDS_H
#define TAG_PARSER_EXPORT
Marks the symbol to be exported by the tagparser library.
Definition global.h:14
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 isUrlFrame(std::uint32_t id)
Returns an indication whether the specified id is a URL 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