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;
61 const char *typeName()
const;
66 TagDataType proposedDataType(
const uint32 &
id)
const;
71 bool supportsDescription(
KnownField field)
const;
74 void parse(std::istream &sourceStream,
const uint64 maximalSize = 0);
76 void make(std::ostream &targetStream, uint32 padding);
78 byte majorVersion()
const;
79 byte revisionVersion()
const;
80 void setVersion(byte majorVersion, byte revisionVersion);
81 bool isVersionSupported()
const;
83 bool isUnsynchronisationUsed()
const;
84 bool hasExtendedHeader()
const;
85 bool isExperimental()
const;
86 bool hasFooter()
const;
87 uint32 extendedHeaderSize()
const;
88 uint32 paddingSize()
const;
92 byte m_revisionVersion;
94 uint32 m_sizeExcludingHeader;
95 uint32 m_extendedHeaderSize;
104 m_revisionVersion(0),
106 m_sizeExcludingHeader(0),
107 m_extendedHeaderSize(0),
146 return m_majorVersion;
154 return m_revisionVersion;
165 return m_majorVersion == 2 || m_majorVersion == 3 || m_majorVersion == 4;
181 return m_flags & 0x80;
189 return (m_majorVersion >= 3) && (m_flags & 0x40);
197 return (m_majorVersion >= 3) && (m_flags & 0x20);
205 return (m_majorVersion >= 3) && (m_flags & 0x10);
213 return m_extendedHeaderSize;
222 return m_paddingSize;
#define TAG_PARSER_EXPORT
Marks the symbol to be exported by the tagparser library.