Tag Parser
6.4.0
C++ library for reading and writing MP4 (iTunes), ID3, Vorbis, Opus, FLAC and Matroska tags
|
The FieldMapBasedTag provides a generic implementation of Tag which stores the tag fields using std::multimap. More...
#include <fieldbasedtag.h>
Public Types | |
typedef FieldType | fieldType |
![]() | |
typedef std::function< void(StatusProvider &sender)> | CallbackFunction |
typedef std::vector< CallbackFunction > | CallbackVector |
typedef std::pair< int, CallbackFunction > | CallbackPair |
Public Member Functions | |
FieldMapBasedTag () | |
Constructs a new FieldMapBasedTag. More... | |
virtual const TagValue & | value (const typename FieldType::identifierType &id) const |
Returns the value of the field with the specified id. More... | |
const TagValue & | value (KnownField field) const |
Returns the value of the specified field. More... | |
std::vector< const TagValue * > | values (const typename FieldType::identifierType &id) const |
Returns the values of the field with the specified id. More... | |
std::vector< const TagValue * > | values (KnownField field) const |
Returns the values of the specified field. More... | |
virtual bool | setValue (const typename FieldType::identifierType &id, const TagValue &value) |
Assigns the given value to the field with the specified id. More... | |
bool | setValue (KnownField field, const TagValue &value) |
Assigns the given value to the specified field. More... | |
bool | setValues (const typename FieldType::identifierType &id, const std::vector< TagValue > &values) |
Assigns the given values to the field with the specified id. More... | |
bool | setValues (KnownField field, const std::vector< TagValue > &values) |
Assigns the given values to the field with the specified id. More... | |
bool | hasField (KnownField field) const |
Returns an indication whether the specified field is present. More... | |
virtual bool | hasField (const typename FieldType::identifierType &id) const |
Returns an indication whether the field with the specified id is present. More... | |
void | removeAllFields () |
Removes all fields from the tag. More... | |
const std::multimap< typename FieldType::identifierType, FieldType, Compare > & | fields () const |
Returns the fields of the tag by providing direct access to the field map of the tag. More... | |
std::multimap< typename FieldType::identifierType, FieldType, Compare > & | fields () |
Returns the fields of the tag by providing direct access to the field map of the tag. More... | |
unsigned int | fieldCount () const |
Returns the number of present fields. More... | |
virtual FieldType::identifierType | fieldId (KnownField value) const =0 |
Returns the ID for the specified field. More... | |
virtual KnownField | knownField (const typename FieldType::identifierType &id) const =0 |
Returns the field for the specified ID. More... | |
bool | supportsField (KnownField field) const |
Returns an indication whether the specified field is supported by the tag. More... | |
virtual TagDataType | proposedDataType (const typename FieldType::identifierType &id) const |
Returns the proposed data type for the field with the specified id. More... | |
int | insertFields (const FieldMapBasedTag< FieldType, Compare > &from, bool overwrite) |
Inserts all fields from another tag of the same field type and compare function. More... | |
unsigned int | insertValues (const Tag &from, bool overwrite) |
Inserts all compatible values from another Tag. More... | |
void | ensureTextValuesAreProperlyEncoded () |
Ensures the encoding of all assigned text values is supported by the tag by converting the character set if neccessary. More... | |
![]() | |
virtual | ~Tag () |
Destroys the Tag. More... | |
virtual TagType | type () const |
Returns the type of the tag as Media::TagType. More... | |
virtual const char * | typeName () const |
Returns the type name of the tag as C-style string. More... | |
std::string | toString () const |
Returns a string representation of the tag. More... | |
virtual TagTextEncoding | proposedTextEncoding () const |
Returns the proposed text encoding. More... | |
virtual bool | canEncodingBeUsed (TagTextEncoding encoding) const |
Returns an indication whether the specified encoding can be used to provide string values for the tag. More... | |
const std::string & | version () const |
Returns the version of the tag as std::string. More... | |
uint32 | size () const |
Returns the size of the tag in bytes. More... | |
virtual bool | supportsTarget () const |
Returns an indication whether a target is supported by the tag. More... | |
const TagTarget & | target () const |
Returns the target of tag. More... | |
void | setTarget (const TagTarget &target) |
Sets the target of tag. More... | |
virtual TagTargetLevel | targetLevel () const |
Returns the name of the current tag target level. More... | |
const char * | targetLevelName () const |
Returns the name of the current target level. More... | |
bool | isTargetingLevel (TagTargetLevel tagTargetLevel) const |
Returns whether the tag is targeting the specified tagTargetLevel. More... | |
std::string | targetString () const |
Returns the string representation for the assigned tag target. More... | |
virtual TagDataType | proposedDataType (KnownField field) const |
Returns the proposed data type for the specified field as TagDataType. More... | |
virtual bool | supportsDescription (KnownField field) const |
Returns an indications whether the specified field supports descriptions. More... | |
virtual bool | supportsMimeType (KnownField field) const |
Returns an indications whether the specified field supports mime types. More... | |
![]() | |
const NotificationList & | notifications () const |
Returns notifications for the current object. More... | |
bool | hasNotifications () const |
Returns an indication whether there are notifications for the current object. More... | |
bool | hasCriticalNotifications () const |
Returns an indication whether there are critical notifications for the current object. More... | |
NotificationType | worstNotificationType () const |
Returns the worst notification type. More... | |
const std::string & | currentStatus () const |
Returns a status information for the current object. More... | |
double | currentPercentage () const |
Returns the progress percentage of the current object. More... | |
size_t | registerCallback (CallbackFunction callback) |
Registers a callback function. More... | |
void | unregisterCallback (size_t id) |
Unregisters a previously registered callback function whith the specified id. More... | |
void | unregisterAllCallbacks () |
Unregisters all callback functions. More... | |
void | forwardStatusUpdateCalls (StatusProvider *other=nullptr) |
Forwards all status updates calls to the specified statusProvider. More... | |
StatusProvider * | usedProvider () |
Returns the provider which callback functions will be called when the status or the percentage is updated. More... | |
void | tryToAbort () |
Commands the object to abort the current operation. More... | |
bool | isAborted () const |
Returns an indication whether the current operation should be aborted. More... | |
void | invalidateStatus () |
Invalidates the current status. More... | |
void | invalidateNotifications () |
Invalidates the object's notifications. More... | |
void | updateStatus (const std::string &status) |
This method is meant to be called by the derived class to report updated status information. More... | |
void | updateStatus (const std::string &status, double percentage) |
This method is meant to be called by the derived class to report updated status information. More... | |
void | updatePercentage (double percentage) |
This method is meant to be called by the derived class to report updated progress percentage only. More... | |
void | addNotification (const Notification ¬ification) |
This protected method is meant to be called by the derived class to add a notification. More... | |
void | addNotification (NotificationType type, const std::string &message, const std::string &context) |
This protected method is meant to be called by the derived class to add a notification of the specified type, message and context. More... | |
void | addNotifications (const StatusProvider &from) |
This protected method is meant to be called by the derived class to add all notifications from another StatusProvider instance. More... | |
void | addNotifications (const std::string &higherContext, const StatusProvider &from) |
This protected method is meant to be called by the derived class to add all notifications from another StatusProvider instance. More... | |
void | addNotifications (const NotificationList ¬ifications) |
This protected method is meant to be called by the derived class to add the specified notifications. More... | |
Additional Inherited Members | |
![]() | |
Tag () | |
Constructs a new Tag. More... | |
![]() | |
StatusProvider () | |
Constructs a new StatusProvider. More... | |
![]() | |
std::string | m_version |
uint32 | m_size |
TagTarget | m_target |
The FieldMapBasedTag provides a generic implementation of Tag which stores the tag fields using std::multimap.
The FieldMapBasedTag class only provides the interface and common functionality. It is meant to be subclassed.
FieldType | Specifies the class used to store the fields. Should be a subclass of TagField. |
Compare | Specifies the key comparsion function. Default is std::less. |
Definition at line 25 of file fieldbasedtag.h.
typedef FieldType Media::FieldMapBasedTag< FieldType, Compare >::fieldType |
Definition at line 52 of file fieldbasedtag.h.
Media::FieldMapBasedTag< FieldType, Compare >::FieldMapBasedTag | ( | ) |
Constructs a new FieldMapBasedTag.
Definition at line 76 of file fieldbasedtag.h.
|
virtual |
Ensures the encoding of all assigned text values is supported by the tag by converting the character set if neccessary.
Implements Media::Tag.
Definition at line 306 of file fieldbasedtag.h.
|
virtual |
Returns the number of present fields.
Implements Media::Tag.
Definition at line 230 of file fieldbasedtag.h.
|
pure virtual |
Returns the ID for the specified field.
Needs to be implemented when subclassing.
Implemented in Media::Mp4Tag, Media::Id3v2Tag, Media::MatroskaTag, and Media::VorbisComment.
|
inline |
Returns the fields of the tag by providing direct access to the field map of the tag.
Definition at line 215 of file fieldbasedtag.h.
|
inline |
Returns the fields of the tag by providing direct access to the field map of the tag.
Definition at line 224 of file fieldbasedtag.h.
|
inlinevirtual |
Returns an indication whether the specified field is present.
Implements Media::Tag.
Definition at line 186 of file fieldbasedtag.h.
|
inlinevirtual |
Returns an indication whether the field with the specified id is present.
Definition at line 195 of file fieldbasedtag.h.
int Media::FieldMapBasedTag< FieldType, Compare >::insertFields | ( | const FieldMapBasedTag< FieldType, Compare > & | from, |
bool | overwrite | ||
) |
Inserts all fields from another tag of the same field type and compare function.
from | Specifies the tag the fields should be inserted from. |
overwrite | Indicates whether existing fields should be overwritten. |
Definition at line 264 of file fieldbasedtag.h.
|
virtual |
Inserts all compatible values from another Tag.
from | Specifies the Tag the values should be inserted from. |
overwrite | Indicates whether existing values should be overwritten. |
Reimplemented from Media::Tag.
Definition at line 295 of file fieldbasedtag.h.
|
pure virtual |
Returns the field for the specified ID.
Needs to be implemented when subclassing.
|
inlinevirtual |
Returns the proposed data type for the field with the specified id.
Definition at line 252 of file fieldbasedtag.h.
|
inlinevirtual |
Removes all fields from the tag.
Implements Media::Tag.
Definition at line 206 of file fieldbasedtag.h.
|
virtual |
Assigns the given value to the field with the specified id.
Definition at line 130 of file fieldbasedtag.h.
|
inlinevirtual |
Assigns the given value to the specified field.
Implements Media::Tag.
Definition at line 120 of file fieldbasedtag.h.
bool Media::FieldMapBasedTag< FieldType, Compare >::setValues | ( | const typename FieldType::identifierType & | id, |
const std::vector< TagValue > & | values | ||
) |
Assigns the given values to the field with the specified id.
Definition at line 150 of file fieldbasedtag.h.
|
virtual |
Assigns the given values to the field with the specified id.
Reimplemented from Media::Tag.
Definition at line 180 of file fieldbasedtag.h.
|
inlinevirtual |
Returns an indication whether the specified field is supported by the tag.
Implements Media::Tag.
Definition at line 242 of file fieldbasedtag.h.
|
inlinevirtual |
Returns the value of the field with the specified id.
Definition at line 84 of file fieldbasedtag.h.
|
inlinevirtual |
Returns the value of the specified field.
Implements Media::Tag.
Definition at line 91 of file fieldbasedtag.h.
|
inline |
Returns the values of the field with the specified id.
Definition at line 101 of file fieldbasedtag.h.
|
inlinevirtual |
Returns the values of the specified field.
Reimplemented from Media::Tag.
Definition at line 114 of file fieldbasedtag.h.