26#ifndef TAGLIB_MP4ITEMFACTORY_H
27#define TAGLIB_MP4ITEMFACTORY_H
84 const Atom *atom,
const ByteVector &data)
const;
92 const String &itemName,
const Item &item)
const;
190 const MP4::Atom *atom,
const ByteVector &data,
int expectedFlags = -1,
191 bool freeForm =
false);
193 const MP4::Atom *atom,
const ByteVector &bytes,
int expectedFlags = -1,
194 bool freeForm =
false);
196 const MP4::Atom *atom,
const ByteVector &bytes,
int expectedFlags = 1);
198 const MP4::Atom *atom,
const ByteVector &bytes);
200 const MP4::Atom *atom,
const ByteVector &bytes);
202 const MP4::Atom *atom,
const ByteVector &bytes);
204 const MP4::Atom *atom,
const ByteVector &bytes);
206 const MP4::Atom *atom,
const ByteVector &bytes);
208 const MP4::Atom *atom,
const ByteVector &bytes);
210 const MP4::Atom *atom,
const ByteVector &bytes);
212 const MP4::Atom *atom,
const ByteVector &bytes);
214 const MP4::Atom *atom,
const ByteVector &bytes);
216 const MP4::Atom *atom,
const ByteVector &data);
249 class ItemFactoryPrivate;
251 std::unique_ptr<ItemFactoryPrivate> d;
A list of ByteVectors.
Definition: tbytevectorlist.h:42
A byte vector.
Definition: tbytevector.h:46
A factory for creating MP4 items during parsing.
Definition: mp4itemfactory.h:70
static ByteVector renderText(const ByteVector &name, const MP4::Item &item, int flags=TypeUTF8)
static ItemFactory * instance()
static std::pair< String, Item > parseUInt(const MP4::Atom *atom, const ByteVector &bytes)
virtual std::pair< String, StringList > itemToProperty(const ByteVector &itemName, const Item &item) const
static std::pair< String, Item > parseTextOrInt(const MP4::Atom *atom, const ByteVector &bytes)
ItemFactory & operator=(const ItemFactory &)=delete
static std::pair< String, Item > parseGnre(const MP4::Atom *atom, const ByteVector &bytes)
static ByteVector renderIntPairNoTrailing(const ByteVector &name, const MP4::Item &item)
static ByteVector renderInt(const ByteVector &name, const MP4::Item &item)
static ByteVector renderByte(const ByteVector &name, const MP4::Item &item)
static std::pair< String, Item > parseFreeForm(const MP4::Atom *atom, const ByteVector &bytes)
static std::pair< String, Item > parseIntPair(const MP4::Atom *atom, const ByteVector &bytes)
virtual ByteVector renderItem(const String &itemName, const Item &item) const
static ByteVector renderLongLong(const ByteVector &name, const MP4::Item &item)
static ByteVectorList parseData(const MP4::Atom *atom, const ByteVector &bytes, int expectedFlags=-1, bool freeForm=false)
virtual ByteVector nameForPropertyKey(const String &key) const
static ByteVector renderBool(const ByteVector &name, const MP4::Item &item)
static ByteVector renderAtom(const ByteVector &name, const ByteVector &data)
static std::pair< String, Item > parseLongLong(const MP4::Atom *atom, const ByteVector &bytes)
static MP4::AtomDataList parseData2(const MP4::Atom *atom, const ByteVector &data, int expectedFlags=-1, bool freeForm=false)
static ByteVector renderCovr(const ByteVector &name, const MP4::Item &item)
static ByteVector renderTextOrInt(const ByteVector &name, const MP4::Item &item)
virtual ItemHandlerType handlerTypeForName(const ByteVector &name) const
virtual std::pair< ByteVector, Item > itemFromProperty(const String &key, const StringList &values) const
static std::pair< String, Item > parseInt(const MP4::Atom *atom, const ByteVector &bytes)
ItemHandlerType
Definition: mp4itemfactory.h:132
static ByteVector renderData(const ByteVector &name, int flags, const ByteVectorList &data)
virtual String propertyKeyForName(const ByteVector &name) const
static std::pair< String, Item > parseBool(const MP4::Atom *atom, const ByteVector &bytes)
static std::pair< String, Item > parseCovr(const MP4::Atom *atom, const ByteVector &data)
static std::pair< String, Item > parseByte(const MP4::Atom *atom, const ByteVector &bytes)
virtual Map< ByteVector, String > namePropertyMap() const
ItemFactory(const ItemFactory &)=delete
static std::pair< String, Item > parseText(const MP4::Atom *atom, const ByteVector &bytes, int expectedFlags=1)
virtual NameHandlerMap nameHandlerMap() const
static ByteVector renderIntPair(const ByteVector &name, const MP4::Item &item)
static ByteVector renderFreeForm(const String &name, const MP4::Item &item)
static ByteVector renderUInt(const ByteVector &name, const MP4::Item &item)
virtual std::pair< String, Item > parseItem(const Atom *atom, const ByteVector &data) const
MP4 item.
Definition: mp4item.h:37
A generic, implicitly shared map.
Definition: tmap.h:45
A list of strings.
Definition: tstringlist.h:44
A wide string class suitable for unicode.
Definition: tstring.h:83
@ TypeUTF8
Definition: mp4atom.h:39
A namespace for all TagLib related classes and functions.
Definition: apefile.h:41
#define TAGLIB_EXPORT
Definition: taglib_export.h:40
#define TAGLIB_MSVC_SUPPRESS_WARNING_NEEDS_TO_HAVE_DLL_INTERFACE
Definition: taglib_export.h:55