TagLib API Documentation

TagLib::Ogg::XiphComment Class Reference

Ogg Vorbis comment implementation. More...

#include <xiphcomment.h>

Inheritance diagram for TagLib::Ogg::XiphComment:

TagLib::Tag List of all members.

Public Member Functions

 XiphComment ()
 XiphComment (const ByteVector &data)
virtual ~XiphComment ()
virtual String title () const
virtual String artist () const
virtual String album () const
virtual String comment () const
virtual String genre () const
virtual uint year () const
virtual uint track () const
virtual void setTitle (const String &s)
virtual void setArtist (const String &s)
virtual void setAlbum (const String &s)
virtual void setComment (const String &s)
virtual void setGenre (const String &s)
virtual void setYear (uint i)
virtual void setTrack (uint i)
virtual bool isEmpty () const
uint fieldCount () const
const FieldListMapfieldListMap () const
String vendorID () const
void addField (const String &key, const String &value, bool replace=true)
void removeField (const String &key, const String &value=String::null)
ByteVector render () const

Protected Member Functions

void parse (const ByteVector &data)

Detailed Description

Ogg Vorbis comment implementation.

This class is an implementation of the Ogg Vorbis comment specification, to be found in section 5 of the Ogg Vorbis specification. Because this format is also used in other (currently unsupported) Xiph.org formats, it has been made part of a generic implementation rather than being limited to strictly Vorbis.

Vorbis comments are a simple vector of keys and values, called fields. Multiple values for a given key are supported.

See also:
fieldListMap()

Definition at line 59 of file xiphcomment.h.


Constructor & Destructor Documentation

TagLib::Ogg::XiphComment::XiphComment  ) 
 

Constructs an empty Vorbis comment.

TagLib::Ogg::XiphComment::XiphComment const ByteVector data  ) 
 

Constructs a Vorbis comment from data.

virtual TagLib::Ogg::XiphComment::~XiphComment  )  [virtual]
 

Destroys this instance of the XiphComment.


Member Function Documentation

virtual String TagLib::Ogg::XiphComment::title  )  const [virtual]
 

Returns the track name; if no track name is present in the tag String::null will be returned.

Implements TagLib::Tag.

virtual String TagLib::Ogg::XiphComment::artist  )  const [virtual]
 

Returns the artist name; if no artist name is present in the tag String::null will be returned.

Implements TagLib::Tag.

virtual String TagLib::Ogg::XiphComment::album  )  const [virtual]
 

Returns the album name; if no album name is present in the tag String::null will be returned.

Implements TagLib::Tag.

virtual String TagLib::Ogg::XiphComment::comment  )  const [virtual]
 

Returns the track comment; if no comment is present in the tag String::null will be returned.

Implements TagLib::Tag.

virtual String TagLib::Ogg::XiphComment::genre  )  const [virtual]
 

Returns the genre name; if no genre is present in the tag String::null will be returned.

Implements TagLib::Tag.

virtual uint TagLib::Ogg::XiphComment::year  )  const [virtual]
 

Returns the year; if there is no year set, this will return 0.

Implements TagLib::Tag.

virtual uint TagLib::Ogg::XiphComment::track  )  const [virtual]
 

Returns the track number; if there is no track number set, this will return 0.

Implements TagLib::Tag.

virtual void TagLib::Ogg::XiphComment::setTitle const String s  )  [virtual]
 

Sets the title to s. If s is String::null then this value will be cleared.

Implements TagLib::Tag.

virtual void TagLib::Ogg::XiphComment::setArtist const String s  )  [virtual]
 

Sets the artist to s. If s is String::null then this value will be cleared.

Implements TagLib::Tag.

virtual void TagLib::Ogg::XiphComment::setAlbum const String s  )  [virtual]
 

Sets the album to s. If s is String::null then this value will be cleared.

Implements TagLib::Tag.

virtual void TagLib::Ogg::XiphComment::setComment const String s  )  [virtual]
 

Sets the album to s. If s is String::null then this value will be cleared.

Implements TagLib::Tag.

virtual void TagLib::Ogg::XiphComment::setGenre const String s  )  [virtual]
 

Sets the genre to s. If s is String::null then this value will be cleared. For tag formats that use a fixed set of genres, the appropriate value will be selected based on a string comparison. A list of available genres for those formats should be available in that type's implementation.

Implements TagLib::Tag.

virtual void TagLib::Ogg::XiphComment::setYear uint  i  )  [virtual]
 

Sets the year to i. If s is 0 then this value will be cleared.

Implements TagLib::Tag.

virtual void TagLib::Ogg::XiphComment::setTrack uint  i  )  [virtual]
 

Sets the track to i. If s is 0 then this value will be cleared.

Implements TagLib::Tag.

virtual bool TagLib::Ogg::XiphComment::isEmpty  )  const [virtual]
 

Returns true if the tag does not contain any data. This should be reimplemented in subclasses that provide more than the basic tagging abilities in this class.

Reimplemented from TagLib::Tag.

uint TagLib::Ogg::XiphComment::fieldCount  )  const
 

Returns the number of fields present in the comment.

const FieldListMap& TagLib::Ogg::XiphComment::fieldListMap  )  const
 

Returns a reference to the map of field lists. Because Xiph comments support multiple fields with the same key, a pure Map would not work. As such this is a Map of string lists, keyed on the comment field name.

The standard set of Xiph/Vorbis fields (which may or may not be contained in any specific comment) is:

  • TITLE
  • VERSION
  • ALBUM
  • ARTIST
  • PERFORMER
  • COPYRIGHT
  • ORGANIZATION
  • DESCRIPTION
  • GENRE
  • DATE
  • LOCATION
  • CONTACT
  • ISRC

For a more detailed description of these fields, please see the Ogg Vorbis specification, section 5.2.2.1.

Note:
The Ogg Vorbis comment specification does allow these key values to be either upper or lower case. However, it is conventional for them to be upper case. As such, TagLib, when parsing a Xiph/Vorbis comment, converts all fields to uppercase. When you are using this data structure, you will need to specify the field name in upper case.
Warning:
You should not modify this data structure directly, instead use addField() and removeField().

String TagLib::Ogg::XiphComment::vendorID  )  const
 

Returns the vendor ID of the Ogg Vorbis encoder. libvorbis 1.0 as the most common case always returns "Xiph.Org libVorbis I 20020717".

void TagLib::Ogg::XiphComment::addField const String key,
const String value,
bool  replace = true
 

Add the field specified by key with the data value. If replace is true, then all of the other fields with the same key will be removed first.

If the field value is empty, the field will be removed.

void TagLib::Ogg::XiphComment::removeField const String key,
const String value = String::null
 

Remove the field specified by key with the data value. If value is null, all of the fields with the given key will be removed.

ByteVector TagLib::Ogg::XiphComment::render  )  const
 

Renders the comment to a ByteVector suitable for inserting into a file.

void TagLib::Ogg::XiphComment::parse const ByteVector data  )  [protected]
 

Reads the tag from the file specified in the constructor and fills the FieldListMap.


The documentation for this class was generated from the following file:
KDE Logo
This file is part of the documentation for TagLib Version 1.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Thu Jan 22 05:44:23 2004 by doxygen 1.3.4 written by Dimitri van Heesch, © 1997-2003