Tag Parser
12.5.0
C++ library for reading and writing MP4 (iTunes), ID3, Vorbis, Opus, FLAC and Matroska tags
Toggle main menu visibility
Main Page
Related Pages
Namespaces
Namespace List
Namespace Members
All
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
w
y
Variables
Typedefs
Enumerations
a
b
c
d
e
f
g
i
k
l
m
p
r
s
t
v
x
Enumerator
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
:
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
~
Functions
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
~
Variables
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
w
Typedefs
c
d
f
i
t
Related Symbols
:
f
g
i
m
o
t
w
Files
File List
File Members
All
Functions
Variables
Enumerations
Macros
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
Loading...
Searching...
No Matches
vorbis
vorbiscommentfield.h
Go to the documentation of this file.
1
#ifndef TAG_PARSER_VORBISCOMMENTFIELD_H
2
#define TAG_PARSER_VORBISCOMMENTFIELD_H
3
4
#include "
../generictagfield.h
"
5
6
#include <c++utilities/misc/flagenumclass.h>
7
8
namespace
CppUtilities
{
9
class
BinaryReader;
10
class
BinaryWriter;
11
}
// namespace CppUtilities
12
13
namespace
TagParser
{
14
18
enum class
VorbisCommentFlags
: std::uint8_t {
19
None
= 0x0,
20
NoSignature
= 0x1,
21
NoFramingByte
= 0x2,
22
NoCovers
= 0x4,
23
ConvertTotalFields
= 0x8,
24
};
18
enum class
VorbisCommentFlags
: std::uint8_t {
…
};
25
26
}
// namespace TagParser
27
28
CPP_UTILITIES_MARK_FLAG_ENUM_CLASS
(
TagParser
,
TagParser::VorbisCommentFlags
)
29
30
namespace
TagParser
{
31
32
class
VorbisCommentField
;
33
class
Diagnostics
;
34
38
template
<>
class
TAG_PARSER_EXPORT
TagFieldTraits
<
VorbisCommentField
> {
39
public
:
40
using
IdentifierType
= std::string;
41
using
TypeInfoType
= std::uint32_t;
42
};
38
template
<>
class
TAG_PARSER_EXPORT
TagFieldTraits
<
VorbisCommentField
> {
…
};
43
44
class
OggIterator
;
45
46
class
TAG_PARSER_EXPORT
VorbisCommentField
:
public
TagField
<VorbisCommentField> {
47
friend
class
TagField
<
VorbisCommentField
>;
48
49
public
:
50
VorbisCommentField
();
51
VorbisCommentField
(
const
IdentifierType
&
id
,
const
TagValue
&
value
);
52
53
void
parse
(
OggIterator
&iterator,
Diagnostics
&diag);
54
void
parse
(
OggIterator
&iterator, std::uint64_t &maxSize,
Diagnostics
&diag);
55
void
parse
(std::istream &stream, std::uint64_t &maxSize,
Diagnostics
&diag);
56
bool
make
(CppUtilities::BinaryWriter &writer,
VorbisCommentFlags
flags,
Diagnostics
&diag);
57
bool
isAdditionalTypeInfoUsed
()
const
;
58
bool
supportsNestedFields
()
const
;
59
60
static
typename
std::string
fieldIdFromString
(std::string_view idString);
61
static
std::string
fieldIdToString
(
const
std::string &
id
);
62
63
private
:
64
template
<
class
StreamType>
void
internalParse(StreamType &stream, std::uint64_t &maxSize,
Diagnostics
&diag);
65
};
46
class
TAG_PARSER_EXPORT
VorbisCommentField
:
public
TagField
<VorbisCommentField> {
…
};
66
70
inline
bool
VorbisCommentField::isAdditionalTypeInfoUsed
()
const
71
{
72
return
false
;
73
}
70
inline
bool
VorbisCommentField::isAdditionalTypeInfoUsed
()
const
{
…
}
74
78
inline
bool
VorbisCommentField::supportsNestedFields
()
const
79
{
80
return
false
;
81
}
78
inline
bool
VorbisCommentField::supportsNestedFields
()
const
{
…
}
82
87
inline
std::string
VorbisCommentField::fieldIdFromString
(std::string_view idString)
88
{
89
return
std::string(idString);
90
}
87
inline
std::string
VorbisCommentField::fieldIdFromString
(std::string_view idString) {
…
}
91
96
inline
std::string
VorbisCommentField::fieldIdToString
(
const
std::string &
id
)
97
{
98
return
id
;
99
}
96
inline
std::string
VorbisCommentField::fieldIdToString
(
const
std::string &
id
) {
…
}
100
101
}
// namespace TagParser
102
103
#endif
// TAG_PARSER_VORBISCOMMENTFIELD_H
TagParser::Diagnostics
The Diagnostics class is a container for DiagMessage.
Definition
diagnostics.h:156
TagParser::OggIterator
The OggIterator class helps iterating through all segments of an Ogg bitstream.
Definition
oggiterator.h:11
TagParser::TagFieldTraits< VorbisCommentField >::TypeInfoType
std::uint32_t TypeInfoType
Definition
vorbiscommentfield.h:41
TagParser::TagFieldTraits< VorbisCommentField >::IdentifierType
std::string IdentifierType
Definition
vorbiscommentfield.h:40
TagParser::TagFieldTraits
Defines traits for the specified ImplementationType.
Definition
generictagfield.h:16
TagParser::TagField< VorbisCommentField >::TagField
TagField()
Definition
generictagfield.h:84
TagParser::TagField< VorbisCommentField >::IdentifierType
typename TagFieldTraits< VorbisCommentField >::IdentifierType IdentifierType
Definition
generictagfield.h:33
TagParser::TagField< VorbisCommentField >::id
IdentifierType & id()
Definition
generictagfield.h:116
TagParser::TagField< VorbisCommentField >::value
TagValue & value()
Definition
generictagfield.h:156
TagParser::TagValue
The TagValue class wraps values of different types.
Definition
tagvalue.h:147
TagParser::VorbisCommentField
The VorbisCommentField class is used by VorbisComment to store the fields.
Definition
vorbiscommentfield.h:46
TagParser::VorbisCommentField::supportsNestedFields
bool supportsNestedFields() const
Returns whether nested fields are supported.
Definition
vorbiscommentfield.h:78
TagParser::VorbisCommentField::parse
void parse(OggIterator &iterator, Diagnostics &diag)
Parses a field using the specified iterator.
Definition
vorbiscommentfield.cpp:133
TagParser::VorbisCommentField::VorbisCommentField
VorbisCommentField()
Constructs a new Vorbis comment field.
Definition
vorbiscommentfield.cpp:33
TagParser::VorbisCommentField::fieldIdFromString
static std::string fieldIdFromString(std::string_view idString)
Converts the specified ID string representation to an actual ID.
Definition
vorbiscommentfield.h:87
TagParser::VorbisCommentField::fieldIdToString
static std::string fieldIdToString(const std::string &id)
Returns the string representation for the specified id.
Definition
vorbiscommentfield.h:96
TagParser::VorbisCommentField::isAdditionalTypeInfoUsed
bool isAdditionalTypeInfoUsed() const
Returns whether the additional type info is used.
Definition
vorbiscommentfield.h:70
TagParser::VorbisCommentField::make
bool make(CppUtilities::BinaryWriter &writer, VorbisCommentFlags flags, Diagnostics &diag)
Writes the field to a stream using the specified writer.
Definition
vorbiscommentfield.cpp:178
generictagfield.h
TAG_PARSER_EXPORT
#define TAG_PARSER_EXPORT
Marks the symbol to be exported by the tagparser library.
Definition
global.h:14
CppUtilities
Definition
abstractcontainer.h:16
TagParser::SubFormats::None
@ None
Definition
mediaformat.h:112
TagParser
Contains all classes and functions of the TagInfo library.
Definition
aaccodebook.h:10
TagParser::MediaFileHandlingFlags::ConvertTotalFields
@ ConvertTotalFields
Definition
mediafileinfo.h:69
TagParser::VorbisCommentFlags
VorbisCommentFlags
The VorbisCommentFlags enum specifies flags which controls parsing and making of Vorbis comments.
Definition
vorbiscommentfield.h:18
TagParser::VorbisCommentFlags::NoCovers
@ NoCovers
Definition
vorbiscommentfield.h:22
TagParser::VorbisCommentFlags::NoSignature
@ NoSignature
Definition
vorbiscommentfield.h:20
TagParser::VorbisCommentFlags::NoFramingByte
@ NoFramingByte
Definition
vorbiscommentfield.h:21
CPP_UTILITIES_MARK_FLAG_ENUM_CLASS
CPP_UTILITIES_MARK_FLAG_ENUM_CLASS(TagParser, TagParser::TagCreationFlags)
Generated on Thu Apr 3 2025 20:33:00 for Tag Parser by
1.13.2