|
gstreamermm
1.10.0
|
A class tha represents a list of tags and values used to describe media metadata. More...
#include <gstreamermm/taglist.h>
Public Types | |
| typedef sigc::slot< void, const Glib::ustring& > | SlotForeach |
| For example, void on_foreach(const Glib::ustring& tag);. More... | |
Public Member Functions | |
| TagList () | |
| TagList (GstTagList* gobject, bool make_a_copy=true) | |
| TagList (const TagList& other) | |
| TagList& | operator= (const TagList& other) |
| ~TagList () | |
| void | swap (TagList& other) |
| GstTagList* | gobj () |
| Provides access to the underlying C instance. More... | |
| const GstTagList* | gobj () const |
| Provides access to the underlying C instance. More... | |
| GstTagList* | gobj_copy () const |
| Provides access to the underlying C instance. The caller is responsible for freeing it. Use when directly setting fields in structs. More... | |
| operator bool () const | |
| Use this to discover if the TagList is a valid object. More... | |
| bool | is_empty () const |
| Checks if the given taglist is empty. More... | |
| void | insert (const Gst::TagList& other, TagMergeMode mode=TAG_MERGE_PREPEND) |
| Inserts the tags of the other list into the first list using the given mode. More... | |
| Gst::TagList | merge (const Gst::TagList& other, TagMergeMode mode=TAG_MERGE_PREPEND) |
| Merges the two given lists into a new list. More... | |
| guint | size (const Glib::ustring& tag) const |
| Checks how many value are stored in this tag list for the given tag. More... | |
| void | add_value (Tag tag, const Glib::ValueBase& value, TagMergeMode mode=TAG_MERGE_PREPEND) |
| Sets a GValue for the given tag using the specified mode. More... | |
| void | add_value (const Glib::ustring& tag, const Glib::ValueBase& value, TagMergeMode mode=TAG_MERGE_PREPEND) |
| Sets a GValue for the given tag using the specified mode. More... | |
| void | add (Tag tag, const char* data, TagMergeMode mode=TAG_MERGE_PREPEND) |
| Sets the value for the given tag to string data using the specified mode. More... | |
| void | add (const Glib::ustring& tag, const char* data, TagMergeMode mode=TAG_MERGE_PREPEND) |
| Sets the value for the given tag to string data using the specified mode. More... | |
| template<class DataType > | |
| void | add (Tag tag, const DataType& data, TagMergeMode mode=TAG_MERGE_PREPEND) |
| Sets the value for the given tag using the specified mode. More... | |
| template<class DataType > | |
| void | add (const Glib::ustring& tag, const DataType& data, TagMergeMode mode=TAG_MERGE_PREPEND) |
| Sets the value for the given tag using the specified mode. More... | |
| void | add (Tag tag, const Glib::Date& date, TagMergeMode mode=TAG_MERGE_PREPEND) |
| Sets the value for the given tag using the specified mode. More... | |
| void | add (const Glib::ustring& tag, const Glib::Date& date, TagMergeMode mode=TAG_MERGE_PREPEND) |
| Sets the value for the given tag using the specified mode. More... | |
| void | remove_tag (Tag tag) |
| Removes the given tag from the taglist. More... | |
| void | remove_tag (const Glib::ustring& tag) |
| Removes the given tag from the taglist. More... | |
| void | foreach (const SlotForeach& slot) |
| Calls the given slot for each tag inside the tag list. More... | |
| bool | get_value (Tag tag, Glib::ValueBase& dest) const |
| Copies the contents for the given tag into the value, merging multiple values into one if multiple values are associated with the tag. More... | |
| bool | get_value (const Glib::ustring& tag, Glib::ValueBase& dest) const |
| Copies the contents for the given tag into the value, merging multiple values into one if multiple values are associated with the tag. More... | |
| bool | get_value (Tag tag, guint index, Glib::ValueBase& dest) const |
| Gets the value that is at the given index for the given tag. More... | |
| bool | get_value (const Glib::ustring& tag, guint index, Glib::ValueBase& dest) const |
| Gets the value that is at the given index for the given tag. More... | |
| template<class DataType > | |
| bool | get (Tag tag, DataType& value) const |
| Copies the contents for the given tag into the value, merging multiple values into one if multiple values are associated with the tag. More... | |
| template<class DataType > | |
| bool | get (const Glib::ustring& tag, DataType& value) const |
| Copies the contents for the given tag into the value, merging multiple values into one if multiple values are associated with the tag. More... | |
| template<class DataType > | |
| bool | get (Tag tag, guint index, DataType& value) const |
| Gets the value that is at the given index for the given tag. More... | |
| template<class DataType > | |
| bool | get (const Glib::ustring& tag, guint index, DataType& value) const |
| Gets the value that is at the given index for the given tag. More... | |
Static Public Member Functions | |
| static bool | exists (const Glib::ustring& tag) |
| Checks if the given type is already registered. More... | |
| static GType | get_type (const Glib::ustring& tag) |
| Gets the Type used for this tag. More... | |
| static Glib::ustring | get_nick (const Glib::ustring& tag) |
| Returns the human-readable name of this tag, You must not change or free this string. More... | |
| static Glib::ustring | get_description (const Glib::ustring& tag) |
| Returns the human-readable description of this tag, You must not change or free this string. More... | |
| static Gst::TagFlag | get_flag (const Glib::ustring& tag) |
| Gets the flag of tag. More... | |
| static bool | is_fixed (const Glib::ustring& tag) |
| Checks if the given tag is fixed. More... | |
Protected Attributes | |
| GstTagList* | gobject_ |
Related Functions | |
(Note that these are not member functions.) | |
| void | swap (TagList& lhs, TagList& rhs) |
| Gst::TagList | wrap_taglist (GstTagList* object, bool take_copy=false) |
| A Glib::wrap() method for this object. More... | |
A class tha represents a list of tags and values used to describe media metadata.
Taglists form part of media streams and describe the content of a stream in a non-technical way. Examples include the author of a song, the title of that very same song or the album it is a part of. Tag reading is done through a Gst::Bus. You can listen for Gst::MESSAGE_TAG messages and handle them as you wish.
Note, however, that the Gst::MESSAGE_TAG message may be fired multiple times in the pipeline. It is the application's responsibility to put all those tags together and display them to the user in a nice, coherent way. Usually, using merge() is a good enough way of doing this; make sure to empty the cache when loading a new song, or after every few minutes when listening to internet radio. Also, make sure you use Gst::TAG_MERGE_PREPEND as merging mode, so that a new title (which came in later) has a preference over the old one for display.
| typedef sigc::slot<void, const Glib::ustring&> Gst::TagList::SlotForeach |
For example, void on_foreach(const Glib::ustring& tag);.
| Gst::TagList::TagList | ( | ) |
|
explicit |
| Gst::TagList::TagList | ( | const TagList& | other | ) |
| Gst::TagList::~TagList | ( | ) |
| void Gst::TagList::add | ( | Tag | tag, |
| const char * | data, | ||
| TagMergeMode | mode = TAG_MERGE_PREPEND |
||
| ) |
Sets the value for the given tag to string data using the specified mode.
| tag | The tag name. |
| data | A string to which the tag should be set to. |
| mode | The merge mode to use. |
| void Gst::TagList::add | ( | const Glib::ustring & | tag, |
| const char * | data, | ||
| TagMergeMode | mode = TAG_MERGE_PREPEND |
||
| ) |
Sets the value for the given tag to string data using the specified mode.
| tag | The tag name. |
| data | A string to which the tag should be set to. |
| mode | The merge mode to use. |
| void Gst::TagList::add | ( | Tag | tag, |
| const DataType & | data, | ||
| TagMergeMode | mode = TAG_MERGE_PREPEND |
||
| ) |
Sets the value for the given tag using the specified mode.
| tag | The tag name. |
| data | A value which the tag should be set to (this can be any supported C++ type). |
| mode | The merge mode to use. |
| void Gst::TagList::add | ( | const Glib::ustring & | tag, |
| const DataType & | data, | ||
| TagMergeMode | mode = TAG_MERGE_PREPEND |
||
| ) |
Sets the value for the given tag using the specified mode.
| tag | The tag name. |
| data | A value which the tag should be set to (this can be any supported C++ type). |
| mode | The merge mode to use. |
| void Gst::TagList::add | ( | Tag | tag, |
| const Glib::Date & | date, | ||
| TagMergeMode | mode = TAG_MERGE_PREPEND |
||
| ) |
Sets the value for the given tag using the specified mode.
| tag | The tag name. |
| date | A date. |
| mode | The merge mode to use. |
| void Gst::TagList::add | ( | const Glib::ustring & | tag, |
| const Glib::Date & | date, | ||
| TagMergeMode | mode = TAG_MERGE_PREPEND |
||
| ) |
Sets the value for the given tag using the specified mode.
| tag | The tag name. |
| date | A date. |
| mode | The merge mode to use. |
| void Gst::TagList::add_value | ( | Tag | tag, |
| const Glib::ValueBase & | value, | ||
| TagMergeMode | mode = TAG_MERGE_PREPEND |
||
| ) |
Sets a GValue for the given tag using the specified mode.
| tag | The tag name. |
| mode | The mode to use. |
| value | The Glib::Value<> to use. |
| void Gst::TagList::add_value | ( | const Glib::ustring & | tag, |
| const Glib::ValueBase & | value, | ||
| TagMergeMode | mode = TAG_MERGE_PREPEND |
||
| ) |
Sets a GValue for the given tag using the specified mode.
| tag | The tag name. |
| mode | The mode to use. |
| value | The Glib::Value<> to use. |
|
static |
Checks if the given type is already registered.
| tag | Name of the tag. |
true if the type is already registered. | void Gst::TagList::foreach | ( | const SlotForeach& | slot | ) |
Calls the given slot for each tag inside the tag list.
Note that if there is no tag, the slot won't be called at all.
| slot | Slot to be called for each tag. |
| bool Gst::TagList::get | ( | Tag | tag, |
| DataType & | value | ||
| ) | const |
Copies the contents for the given tag into the value, merging multiple values into one if multiple values are associated with the tag.
| tag | The tag to read out. |
| value | Location for the result (this can be any supported C++ type). |
| bool Gst::TagList::get | ( | const Glib::ustring & | tag, |
| DataType & | value | ||
| ) | const |
Copies the contents for the given tag into the value, merging multiple values into one if multiple values are associated with the tag.
| tag | The tag to read out. |
| value | Location for the result (this can be any supported C++ type). |
| bool Gst::TagList::get | ( | Tag | tag, |
| guint | index, | ||
| DataType & | value | ||
| ) | const |
Gets the value that is at the given index for the given tag.
| tag | The tag to read out. |
| index | Number of entry to read out. |
| value | Location for the result (this can be any supported C++ type). |
| bool Gst::TagList::get | ( | const Glib::ustring & | tag, |
| guint | index, | ||
| DataType & | value | ||
| ) | const |
Gets the value that is at the given index for the given tag.
| tag | The tag to read out. |
| index | Number of entry to read out. |
| value | Location for the result (this can be any supported C++ type). |
|
static |
Returns the human-readable description of this tag, You must not change or free this string.
| tag | The tag. |
|
static |
Gets the flag of tag.
| tag | The tag. |
|
static |
Returns the human-readable name of this tag, You must not change or free this string.
| tag | The tag. |
|
static |
Gets the Type used for this tag.
| tag | The tag. |
| bool Gst::TagList::get_value | ( | Tag | tag, |
| Glib::ValueBase & | dest | ||
| ) | const |
Copies the contents for the given tag into the value, merging multiple values into one if multiple values are associated with the tag.
| dest | An uninitialized Glib::ValueBase to copy into. |
| tag | The tag to read out. |
| bool Gst::TagList::get_value | ( | const Glib::ustring & | tag, |
| Glib::ValueBase & | dest | ||
| ) | const |
Copies the contents for the given tag into the value, merging multiple values into one if multiple values are associated with the tag.
| dest | An uninitialized Glib::ValueBase to copy into. |
| tag | The tag to read out. |
| bool Gst::TagList::get_value | ( | Tag | tag, |
| guint | index, | ||
| Glib::ValueBase & | dest | ||
| ) | const |
Gets the value that is at the given index for the given tag.
| tag | The tag to read out. |
| index | Number of entry to read out. |
| dest | The Glib::ValueBase to store the value in. |
| bool Gst::TagList::get_value | ( | const Glib::ustring & | tag, |
| guint | index, | ||
| Glib::ValueBase & | dest | ||
| ) | const |
Gets the value that is at the given index for the given tag.
| tag | The tag to read out. |
| index | Number of entry to read out. |
| dest | The Glib::ValueBase to store the value in. |
|
inline |
Provides access to the underlying C instance.
|
inline |
Provides access to the underlying C instance.
| GstTagList* Gst::TagList::gobj_copy | ( | ) | const |
Provides access to the underlying C instance. The caller is responsible for freeing it. Use when directly setting fields in structs.
| void Gst::TagList::insert | ( | const Gst::TagList& | other, |
| TagMergeMode | mode = TAG_MERGE_PREPEND |
||
| ) |
Inserts the tags of the other list into the first list using the given mode.
| other | List to merge from. |
| mode | The mode to use. |
| bool Gst::TagList::is_empty | ( | ) | const |
Checks if the given taglist is empty.
true if the taglist is empty, otherwise false.
|
static |
Checks if the given tag is fixed.
A fixed tag can only contain one value. Unfixed tags can contain lists of values.
| tag | Tag to check. |
true, if the given tag is fixed. | Gst::TagList Gst::TagList::merge | ( | const Gst::TagList& | other, |
| TagMergeMode | mode = TAG_MERGE_PREPEND |
||
| ) |
Merges the two given lists into a new list.
If one of the lists is nullptr, a copy of the other is returned. If both lists are nullptr, nullptr is returned.
Free-function: gst_tag_list_unref
| other | Second list to merge. |
| mode | The mode to use. |
| Gst::TagList::operator bool | ( | ) | const |
Use this to discover if the TagList is a valid object.
| void Gst::TagList::remove_tag | ( | Tag | tag | ) |
Removes the given tag from the taglist.
| tag | Tag to remove. |
| void Gst::TagList::remove_tag | ( | const Glib::ustring & | tag | ) |
Removes the given tag from the taglist.
| tag | Tag to remove. |
| guint Gst::TagList::size | ( | const Glib::ustring & | tag | ) | const |
Checks how many value are stored in this tag list for the given tag.
| tag | The tag to query. |
| void Gst::TagList::swap | ( | TagList& | other | ) |
| lhs | The left-hand side |
| rhs | The right-hand side |
|
related |
A Glib::wrap() method for this object.
The method has a non-standard name because otherwise it would collide with the wrap method for Gst::Structure because both Gst::TagList and Gst::Structure wrap the same underlying C type.
| object | The C instance. |
| take_copy | False if the result should take ownership of the C instance. True if it should take a new copy or ref. |
|
protected |
1.8.13