2#define __DCL_ID3V2_H__ 20250118
4#ifndef __DCL_OBJECT_H__
27 static uint32_t word7(
const char* _bytes,
size_t _n);
33 static uint32_t word8(
const char* _bytes,
size_t _n);
49 bool read(
File& _file,
const char _header[10]);
53 const String& ID3()
const {
57 char version()
const {
61 char revision()
const {
69 uint32_t size()
const {
75 unsigned fsbits()
const {
79 const PointerArray& frames()
const {
90#define Unsynchronisation(flags) flags & 0x0080
91#define Extended_header(flags) flags & 0x0040
92#define Experimental_indicator(flags) flags & 0x0020
93#define Footer_present(flags) flags & 0x0010
122 const char* _mbs,
size_t _nmbs
128 uint32_t
word(
const char* _bytes,
size_t _n) {
129 return __tag.fsbits() == 7 ?
130 ID3v2::word7(_bytes, _n)
131 : ID3v2::word8(_bytes, _n);
134 size_t read(
const char* _begin,
const char* _end);
142 const String
id()
const {
162 const String&
url()
const {
#define DECLARE_CLASSINFO(class_name)
ID3v2Frame(const ID3v2 &_tag)
uint32_t word(const char *_bytes, size_t _n)
const String & url() const
const ID3v2 & tag() const
const String & description() const
const String & text() const
const ByteString & binary() const
virtual String toString() const
size_t read(const char *_begin, const char *_end)
size_t skipExtendedHeader(const char *_begin, const char *_end) const
virtual String toString() const