6 #include "../fieldbasedtag.h" 17 bool operator()(
const uint32 &lhs,
const uint32 &rhs)
const;
25 void make(std::ostream &stream, uint32 padding);
27 uint64 requiredSize()
const;
34 uint32 m_requiredSize;
35 std::vector<Id3v2FrameMaker> m_maker;
52 return m_requiredSize;
62 const char *typeName()
const;
67 TagDataType proposedDataType(
const uint32 &
id)
const;
72 bool supportsDescription(
KnownField field)
const;
75 void parse(std::istream &sourceStream,
const uint64 maximalSize = 0);
77 void make(std::ostream &targetStream, uint32 padding);
79 byte majorVersion()
const;
80 byte revisionVersion()
const;
81 void setVersion(byte majorVersion, byte revisionVersion);
82 bool isVersionSupported()
const;
84 bool isUnsynchronisationUsed()
const;
85 bool hasExtendedHeader()
const;
86 bool isExperimental()
const;
87 bool hasFooter()
const;
88 uint32 extendedHeaderSize()
const;
89 uint32 paddingSize()
const;
93 byte m_revisionVersion;
95 uint32 m_sizeExcludingHeader;
96 uint32 m_extendedHeaderSize;
105 m_revisionVersion(0),
107 m_sizeExcludingHeader(0),
108 m_extendedHeaderSize(0),
147 return m_majorVersion;
155 return m_revisionVersion;
166 return m_majorVersion == 2 || m_majorVersion == 3 || m_majorVersion == 4;
182 return m_flags & 0x80;
190 return (m_majorVersion >= 3) && (m_flags & 0x40);
198 return (m_majorVersion >= 3) && (m_flags & 0x20);
206 return (m_majorVersion >= 3) && (m_flags & 0x10);
214 return m_extendedHeaderSize;
223 return m_paddingSize;
#define TAG_PARSER_EXPORT
Marks the symbol to be exported by the tagparser library.