tagparser/vorbis/vorbiscommentfield.h

81 lines
1.7 KiB
C
Raw Normal View History

2015-04-22 19:22:01 +02:00
#ifndef MEDIA_VORBISCOMMENTFIELD_H
#define MEDIA_VORBISCOMMENTFIELD_H
2015-09-06 19:57:33 +02:00
#include "../generictagfield.h"
#include "../statusprovider.h"
2015-04-22 19:22:01 +02:00
namespace IoUtilities {
class BinaryReader;
class BinaryWriter;
}
namespace Media {
class VorbisCommentField;
/*!
* \brief Defines traits for the TagField implementation of the VorbisCommentField class.
*/
template <>
class LIB_EXPORT TagFieldTraits<VorbisCommentField>
{
public:
/*!
* \brief Fields in a Vorbis comment are identified by 32-bit unsigned integers.
*/
typedef std::string identifierType;
/*!
* \brief The type info is stored using 32-bit unsigned integers.
*/
2015-08-16 23:39:42 +02:00
typedef uint32 typeInfoType;
2015-04-22 19:22:01 +02:00
/*!
* \brief The implementation type is VorbisCommentField.
*/
typedef VorbisCommentField implementationType;
};
class OggIterator;
class LIB_EXPORT VorbisCommentField : public TagField<VorbisCommentField>, public StatusProvider
{
friend class TagField<VorbisCommentField>;
public:
VorbisCommentField();
VorbisCommentField(const identifierType &id, const TagValue &value);
void parse(OggIterator &iterator);
void make(IoUtilities::BinaryWriter &writer);
bool isAdditionalTypeInfoUsed() const;
bool supportsNestedFields() const;
protected:
void cleared();
};
/*!
* \brief Returns whether the additional type info is used.
*/
inline bool VorbisCommentField::isAdditionalTypeInfoUsed() const
{
return false;
}
/*!
* \brief Returns whether nested fields are supported.
*/
inline bool VorbisCommentField::supportsNestedFields() const
{
return false;
}
/*!
* \brief Ensures the field is cleared.
*/
inline void VorbisCommentField::cleared()
{}
}
#endif // MEDIA_VORBISCOMMENTFIELD_H