/*!
* Implements the unified property interface -- import function.
- * Creates an APEv2 tag if necessary. A pontentially existing ID3v1
+ * Creates an APEv2 tag if necessary. A potentially existing ID3v1
* tag will be updated as well.
*/
PropertyMap setProperties(const PropertyMap &);
* if there is no valid ID3v1 tag. If \a create is true it will create
* an ID3v1 tag if one does not exist and returns a valid pointer.
*
- * \note This may return a valid pointer regardless of whether or not the
- * file on disk has an ID3v1 tag. Use hasID3v1Tag() to check if the file
+ * \note This may return a valid pointer regardless of whether or not the
+ * file on disk has an ID3v1 tag. Use hasID3v1Tag() to check if the file
* on disk actually has an ID3v1 tag.
*
* \note The Tag <b>is still</b> owned by the MPEG::File and should not be
* if there is no valid APE tag. If \a create is true it will create
* an APE tag if one does not exist and returns a valid pointer.
*
- * \note This may return a valid pointer regardless of whether or not the
- * file on disk has an APE tag. Use hasAPETag() to check if the file
+ * \note This may return a valid pointer regardless of whether or not the
+ * file on disk has an APE tag. Use hasAPETag() to check if the file
* on disk actually has an APE tag.
*
* \note The Tag <b>is still</b> owned by the MPEG::File and should not be
/*!
* This class implements APE footers (and headers). It attempts to follow, both
- * semantically and programatically, the structure specified in
+ * semantically and programmatically, the structure specified in
* the APE v2.0 standard. The API is based on the properties of APE footer and
* headers specified there.
*/
/*!
* Returns the value as a single string. In case of multiple strings,
- * the first is returned. If the data type is not \a Text, always returns
+ * the first is returned. If the data type is not \a Text, always returns
* an empty String.
*/
String toString() const;
#endif
/*!
- * Returns the list of text values. If the data type is not \a Text, always
+ * Returns the list of text values. If the data type is not \a Text, always
* returns an empty StringList.
*/
StringList values() const;
* Returns a reference to the item list map. This is an ItemListMap of
* all of the items in the tag.
*
- * This is the most powerfull structure for accessing the items of the tag.
+ * This is the most powerful structure for accessing the items of the tag.
*
* APE tags are case-insensitive, all keys in this map have been converted
* to upper case.
* \a propertiesStyle are ignored. The audio properties are always
* read.
*/
- File(FileName file, bool readProperties = true,
+ File(FileName file, bool readProperties = true,
Properties::ReadStyle propertiesStyle = Properties::Average);
/*!
* \note TagLib will *not* take ownership of the stream, the caller is
* responsible for deleting it after the File object.
*/
- File(IOStream *stream, bool readProperties = true,
+ File(IOStream *stream, bool readProperties = true,
Properties::ReadStyle propertiesStyle = Properties::Average);
/*!
audioPropertiesStyle = AudioProperties::Average);
/*!
- * Contruct a FileRef using \a file. The FileRef now takes ownership of the
+ * Construct a FileRef using \a file. The FileRef now takes ownership of the
* pointer and will delete the File when it passes out of scope.
*/
explicit FileRef(File *file);
* is tried.
*
* Returns a pointer to the added resolver (the same one that's passed in --
- * this is mostly so that static inialializers have something to use for
+ * this is mostly so that static initializers have something to use for
* assignment).
*
* \see FileTypeResolver
* by TagLib for resolution is case-insensitive.
*
* \note This does not account for any additional file type resolvers that
- * are plugged in. Also note that this is not intended to replace a propper
+ * are plugged in. Also note that this is not intended to replace a proper
* mime-type resolution system, but is just here for reference.
*
* \see FileTypeResolver
/*!
* This is implementation of FLAC metadata for non-Ogg FLAC files. At some
* point when Ogg / FLAC is more common there will be a similar implementation
- * under the Ogg hiearchy.
+ * under the Ogg hierarchy.
*
* This supports ID3v1, ID3v2 and Xiph style comments as well as reading stream
* properties from the file.
* if there is no valid ID3v2 tag. If \a create is true it will create
* an ID3v2 tag if one does not exist and returns a valid pointer.
*
- * \note This may return a valid pointer regardless of whether or not the
- * file on disk has an ID3v2 tag. Use hasID3v2Tag() to check if the file
+ * \note This may return a valid pointer regardless of whether or not the
+ * file on disk has an ID3v2 tag. Use hasID3v2Tag() to check if the file
* on disk actually has an ID3v2 tag.
*
* \note The Tag <b>is still</b> owned by the MPEG::File and should not be
* if there is no valid APE tag. If \a create is true it will create
* an APE tag if one does not exist and returns a valid pointer.
*
- * \note This may return a valid pointer regardless of whether or not the
- * file on disk has an ID3v1 tag. Use hasID3v1Tag() to check if the file
+ * \note This may return a valid pointer regardless of whether or not the
+ * file on disk has an ID3v1 tag. Use hasID3v1Tag() to check if the file
* on disk actually has an ID3v1 tag.
*
* \note The Tag <b>is still</b> owned by the MPEG::File and should not be
* if there is no valid XiphComment. If \a create is true it will create
* a XiphComment if one does not exist and returns a valid pointer.
*
- * \note This may return a valid pointer regardless of whether or not the
- * file on disk has a XiphComment. Use hasXiphComment() to check if the
+ * \note This may return a valid pointer regardless of whether or not the
+ * file on disk has a XiphComment. Use hasXiphComment() to check if the
* file on disk actually has a XiphComment.
- *
+ *
* \note The Tag <b>is still</b> owned by the FLAC::File and should not be
* deleted by the user. It will be deleted when the file (object) is
* destroyed.
int sampleWidth() const;
/*!
- * Return the number of sample frames
+ * Return the number of sample frames.
*/
unsigned long long sampleFrames() const;
/*!
* Returns the MD5 signature of the uncompressed audio stream as read
- * from the stream info header header.
+ * from the stream info header.
*/
ByteVector signature() const;
* Sets the title to \a title. If \a title is String::null then this
* value will be cleared.
*
- * The length limits per file type are (1 characetr = 1 byte):
+ * The length limits per file type are (1 character = 1 byte):
* Mod 20 characters, S3M 27 characters, IT 25 characters and XM 20
* characters.
*/
* an thus the line length in comments are limited. Too big comments
* will be truncated.
*
- * The line length limits per file type are (1 characetr = 1 byte):
+ * The line length limits per file type are (1 character = 1 byte):
* Mod 22 characters, S3M 27 characters, IT 25 characters and XM 22
* characters.
*/
* Implements the unified property interface -- import function.
* Because of the limitations of the module file tag, any tags besides
* COMMENT, TITLE and, if it is an XM file, TRACKERNAME, will be
- * returened. Additionally, if the map contains tags with multiple values,
+ * returned. Additionally, if the map contains tags with multiple values,
* all but the first will be contained in the returned map of unsupported
* properties.
*/
TypeDateTime = 17, // in UTC, counting seconds since midnight, January 1, 1904; 32 or 64-bits
TypeGenred = 18, // a list of enumerated values
TypeInteger = 21, // a signed big-endian integer with length one of { 1,2,3,4,8 } bytes
- TypeRIAAPA = 24, // RIAA parental advisory; { -1=no, 1=yes, 0=unspecified }, 8-bit ingteger
+ TypeRIAAPA = 24, // RIAA parental advisory; { -1=no, 1=yes, 0=unspecified }, 8-bit integer
TypeUPC = 25, // Universal Product Code, in text UTF-8 format (valid as an ID)
TypeBMP = 27, // Windows bitmap image
TypeUndefined = 255 // undefined
*
* \note In the current implementation, \a propertiesStyle is ignored.
*/
- File(FileName file, bool readProperties = true,
+ File(FileName file, bool readProperties = true,
Properties::ReadStyle audioPropertiesStyle = Properties::Average);
/*!
*
* \note In the current implementation, \a propertiesStyle is ignored.
*/
- File(IOStream *stream, bool readProperties = true,
+ File(IOStream *stream, bool readProperties = true,
Properties::ReadStyle audioPropertiesStyle = Properties::Average);
/*!
* if there is no valid APE tag. If \a create is true it will create
* an APE tag if one does not exist and returns a valid pointer.
*
- * \note This may return a valid pointer regardless of whether or not the
- * file on disk has an ID3v1 tag. Use hasID3v1Tag() to check if the file
+ * \note This may return a valid pointer regardless of whether or not the
+ * file on disk has an ID3v1 tag. Use hasID3v1Tag() to check if the file
* on disk actually has an ID3v1 tag.
*
* \note The Tag <b>is still</b> owned by the MPEG::File and should not be
*
* If \a create is false (the default) this may return a null pointer
* if there is no valid APE tag. If \a create is true it will create
- * an APE tag if one does not exist and returns a valid pointer. If
+ * an APE tag if one does not exist and returns a valid pointer. If
* there already be an ID3v1 tag, the new APE tag will be placed before it.
*
- * \note This may return a valid pointer regardless of whether or not the
- * file on disk has an APE tag. Use hasAPETag() to check if the file
+ * \note This may return a valid pointer regardless of whether or not the
+ * file on disk has an APE tag. Use hasAPETag() to check if the file
* on disk actually has an APE tag.
*
* \note The Tag <b>is still</b> owned by the MPEG::File and should not be
//! The main class in the ID3v1 implementation
/*!
- * This is an implementation of the ID3v1 format. ID3v1 is both the simplist
+ * This is an implementation of the ID3v1 format. ID3v1 is both the simplest
* and most common of tag formats but is rather limited. Because of its
* pervasiveness and the way that applications have been written around the
* fields that it provides, the generic TagLib::Tag API is a mirror of what is
/*!
* Creates a chapter frame with the element ID \a elementID, start time
* \a startTime, end time \a endTime, start offset \a startOffset,
- * end offset \a endOffset and optionally a list of embeeded frames,
+ * end offset \a endOffset and optionally a list of embedded frames,
* whose ownership will then be taken over by this Frame, in
* \a embeededFrames;
*
ByteVector elementID() const;
/*!
- * Returns time of chapter's start (in miliseconds).
+ * Returns time of chapter's start (in milliseconds).
*
* \see setStartTime()
*/
uint startTime() const;
/*!
- * Returns time of chapter's end (in miliseconds).
+ * Returns time of chapter's end (in milliseconds).
*
* \see setEndTime()
*/
void setElementID(const ByteVector &eID);
/*!
- * Sets time of chapter's start (in miliseconds) to \a sT.
+ * Sets time of chapter's start (in milliseconds) to \a sT.
*
* \see startTime()
*/
void setStartTime(const uint &sT);
/*!
- * Sets time of chapter's end (in miliseconds) to \a eT.
+ * Sets time of chapter's end (in milliseconds) to \a eT.
*
* \see endTime()
*/
//! An implementation of ID3v2 comments
/*!
- * This implements the ID3v2 comment format. An ID3v2 comment concists of
+ * This implements the ID3v2 comment format. An ID3v2 comment consists of
* a language encoding, a description and a single text field.
*/
/*!
* Sets the description of the comment to \a s.
*
- * \see decription()
+ * \see description()
*/
void setDescription(const String &s);
/*!
* Comments each have a unique description. This searches for a comment
- * frame with the decription \a d and returns a pointer to it. If no
+ * frame with the description \a d and returns a pointer to it. If no
* frame is found that matches the given description null is returned.
*
* \see description()
* \see pricePaid()
*/
void setPricePaid(const String &pricePaid);
-
+
/*!
* Returns the seller.
*
* \see setSeller()
*/
String seller() const;
-
+
/*!
* Set the seller.
*
* \see seller()
*/
void setSeller(const String &seller);
-
+
/*!
* Returns the text encoding that will be used in rendering this frame.
* This defaults to the type that was either specified in the constructor
* \see render()
*/
String::Type textEncoding() const;
-
+
/*!
* Sets the text encoding to be used when rendering this frame to
* \a encoding.
//! An implementation of ID3v2 "popularimeter"
/*!
- * This implements the ID3v2 popularimeter (POPM frame). It concists of
+ * This implements the ID3v2 popularimeter (POPM frame). It consists of
* an email, a rating and an optional counter.
*/
/*
* There was a terrible API goof here, and while this can't be changed to
- * the way it appears below for binary compaibility reasons, let's at
+ * the way it appears below for binary compatibility reasons, let's at
* least pretend that it looks clean.
*/
/*!
* Returns the relative volume adjustment "index". As indicated by the
* ID3v2 standard this is a 16-bit signed integer that reflects the
- * decibils of adjustment when divided by 512.
+ * decibels of adjustment when divided by 512.
*
* This defaults to returning the value for the master volume channel if
* available and returns 0 if the specified channel does not exist.
/*!
* Set the volume adjustment to \a index. As indicated by the ID3v2
- * standard this is a 16-bit signed integer that reflects the decibils of
+ * standard this is a 16-bit signed integer that reflects the decibels of
* adjustment when divided by 512.
*
* By default this sets the value for the master volume.
/*!
* Sets the description of the synchronized lyrics frame to \a s.
*
- * \see decription()
+ * \see description()
*/
void setDescription(const String &s);
ByteVector elementID() const;
/*!
- * Returns true, if the frame is top-level (doen't have
+ * Returns true, if the frame is top-level (doesn't have
* any parent CTOC frame).
*
* \see setIsTopLevel()
bool isOrdered() const;
/*!
- * Returns count of child elements of the frame. It allways
+ * Returns count of child elements of the frame. It always
* corresponds to size of child elements list.
*
* \see childElements()
void setElementID(const ByteVector &eID);
/*!
- * Sets, if the frame is top-level (doen't have
+ * Sets, if the frame is top-level (doesn't have
* any parent CTOC frame).
*
* \see isTopLevel()
public:
/*!
- * Creates a uniqe file identifier frame based on \a data.
+ * Creates a unique file identifier frame based on \a data.
*/
UniqueFileIdentifierFrame(const ByteVector &data);
/*!
* Sets the description of the unsynchronized lyrics frame to \a s.
*
- * \see decription()
+ * \see description()
*/
void setDescription(const String &s);
/*!
* LyricsFrames each have a unique description. This searches for a lyrics
- * frame with the decription \a d and returns a pointer to it. If no
+ * frame with the description \a d and returns a pointer to it. If no
* frame is found that matches the given description null is returned.
*
* \see description()
* All other processing of \a data should be handled in a subclass.
*
* \note This need not contain anything more than a frame ID, but
- * \e must constain at least that.
+ * \e must contain at least that.
*/
explicit Frame(const ByteVector &data);
ByteVector fieldData(const ByteVector &frameData) const;
/*!
- * Reads a String of type \a encodiong from the ByteVector \a data. If \a
+ * Reads a String of type \a encoding from the ByteVector \a data. If \a
* position is passed in it is used both as the starting point and is
- * updated to replect the position just after the string that has been read.
+ * updated to return the position just after the string that has been read.
* This is useful for reading strings sequentially.
*/
String readStringField(const ByteVector &data, String::Type encoding,
bool readOnly() const;
/*!
- * Returns true if the flag for the grouping identifity is set.
+ * Returns true if the flag for the grouping identity is set.
*
* \note This flag is currently ignored internally in TagLib.
*/
* Returns the default text encoding for text frames. If setTextEncoding()
* has not been explicitly called this will only be used for new text
* frames. However, if this value has been set explicitly all frames will be
- * converted to this type (unless it's explitly set differently for the
+ * converted to this type (unless it's explicitly set differently for the
* individual frame) when being rendered.
*
* \see setDefaultTextEncoding()
/*!
* This class implements ID3v2 headers. It attempts to follow, both
- * semantically and programatically, the structure specified in
+ * semantically and programmatically, the structure specified in
* the ID3v2 standard. The API is based on the properties of ID3v2 headers
* specified there. If any of the terms used in this documentation are
* unclear please check the specification in the linked section.
//! An abstraction for the ISO-8859-1 string to data encoding in ID3v2 tags.
/*!
- * ID3v2 tag can store strings in ISO-8859-1 (Latin1), and TagLib only
- * supports genuine ISO-8859-1 by default. However, in practice, non
- * ISO-8859-1 encodings are often used instead of ISO-8859-1, such as
+ * ID3v2 tag can store strings in ISO-8859-1 (Latin1), and TagLib only
+ * supports genuine ISO-8859-1 by default. However, in practice, non
+ * ISO-8859-1 encodings are often used instead of ISO-8859-1, such as
* Windows-1252 for western languages, Shift_JIS for Japanese and so on.
*
* Here is an option to read such tags by subclassing this class,
- * reimplementing parse() and setting your reimplementation as the default
+ * reimplementing parse() and setting your reimplementation as the default
* with ID3v2::Tag::setStringHandler().
*
* \note Writing non-ISO-8859-1 tags is not implemented intentionally.
* split into data components.
*
* ID3v2 tags have several parts, TagLib attempts to provide an interface
- * for them all. header(), footer() and extendedHeader() corespond to those
+ * for them all. header(), footer() and extendedHeader() correspond to those
* data structures in the ID3v2 standard and the APIs for the classes that
* they return attempt to reflect this.
*
* class.
*
* read() and parse() pass binary data to the other ID3v2 class structures,
- * they do not handle parsing of flags or fields, for instace. Those are
+ * they do not handle parsing of flags or fields, for instance. Those are
* handled by similar functions within those classes.
*
* \note All pointers to data structures within the tag will become invalid
* rather long, but if you're planning on messing with this class and others
* that deal with the details of ID3v2 (rather than the nice, safe, abstract
* TagLib::Tag and friends), it's worth your time to familiarize yourself
- * with said spec (which is distrubuted with the TagLib sources). TagLib
+ * with said spec (which is distributed with the TagLib sources). TagLib
* tries to do most of the work, but with a little luck, you can still
* convince it to generate invalid ID3v2 tags. The APIs for ID3v2 assume a
* working knowledge of ID3v2 structure. You're been warned.
* \note You should be able to ignore the \a factory parameter in almost
* all situations. You would want to specify your own FrameFactory
* subclass in the case that you are extending TagLib to support additional
- * frame types, which would be incorperated into your factory.
+ * frame types, which would be incorporated into your factory.
*
* \see FrameFactory
*/
*/
// BIC: combine with the above method
ByteVector render(int version) const;
-
+
/*!
- * Gets the current string handler that decides how the "Latin-1" data
+ * Gets the current string handler that decides how the "Latin-1" data
* will be converted to and from binary data.
*
* \see Latin1StringHandler
* released and default ISO-8859-1 handler is restored.
*
* \note The caller is responsible for deleting the previous handler
- * as needed after it is released.
+ * as needed after it is released.
*
* \see Latin1StringHandler
*/
* This is the same as calling save(AllTags);
*
* If you would like more granular control over the content of the tags,
- * with the concession of generality, use paramaterized save call below.
+ * with the concession of generality, use parameterized save call below.
*
* \see save(int tags)
*/
/*!
* This is implementation of FLAC metadata for Ogg FLAC files. For "pure"
- * FLAC files look under the FLAC hiearchy.
+ * FLAC files look under the FLAC hierarchy.
*
* Unlike "pure" FLAC-files, Ogg FLAC only supports Xiph-comments,
* while the audio-properties are the same.
{
public:
/*!
- * Constructs an Ogg/FLAC file from \a file. If \a readProperties is true
+ * Constructs an Ogg/FLAC file from \a file. If \a readProperties is true
* the file's audio properties will also be read.
*
* \note In the current implementation, \a propertiesStyle is ignored.
Properties::ReadStyle propertiesStyle = Properties::Average);
/*!
- * Constructs an Ogg/FLAC file from \a stream. If \a readProperties is true
+ * Constructs an Ogg/FLAC file from \a stream. If \a readProperties is true
* the file's audio properties will also be read.
*
* \note TagLib will *not* take ownership of the stream, the caller is
/*!
* Returns the Tag for this file. This will always be a XiphComment.
*
- * \note This always returns a valid pointer regardless of whether or not
- * the file on disk has a XiphComment. Use hasXiphComment() to check if
+ * \note This always returns a valid pointer regardless of whether or not
+ * the file on disk has a XiphComment. Use hasXiphComment() to check if
* the file on disk actually has a XiphComment.
- *
+ *
* \note The Tag <b>is still</b> owned by the FLAC::File and should not be
* deleted by the user. It will be deleted when the file (object) is
* destroyed.
virtual Properties *audioProperties() const;
- /*!
+ /*!
* Implements the unified property interface -- export function.
* This forwards directly to XiphComment::properties().
*/
PropertyMap properties() const;
- /*!
+ /*!
* Implements the unified tag dictionary interface -- import function.
* Like properties(), this is a forwarder to the file's XiphComment.
*/
- PropertyMap setProperties(const PropertyMap &);
+ PropertyMap setProperties(const PropertyMap &);
/*!
/*!
* This is an implementation of the pages that make up an Ogg stream.
* This handles parsing pages and breaking them down into packets and handles
- * the details of packets spanning multiple pages and pages that contiain
+ * the details of packets spanning multiple pages and pages that contain
* multiple packets.
*
* In most Xiph.org formats the comments are found in the first few packets,
/*!
* Pack \a packets into Ogg pages using the \a strategy for pagination.
- * The page number indicater inside of the rendered packets will start
+ * The page number indicator inside of the rendered packets will start
* with \a firstPage and be incremented for each page rendered.
* \a containsLastPacket should be set to true if \a packets contains the
* last page in the stream and will set the appropriate flag in the last
/*!
* Returns the Tag for this file.
*
- * \note This always returns a valid pointer regardless of whether or not
- * the file on disk has an ID3v2 tag. Use hasID3v2Tag() to check if the file
+ * \note This always returns a valid pointer regardless of whether or not
+ * the file on disk has an ID3v2 tag. Use hasID3v2Tag() to check if the file
* on disk actually has an ID3v2 tag.
*
* \see hasID3v2Tag()
ByteVector chunkData(uint i);
/*!
- * Sets the data for the the specified chunk to \a data.
+ * Sets the data for the specified chunk to \a data.
*
* \warning This will update the file immediately.
*/
* given name already exists it will be overwritten, otherwise it will be
* created after the existing chunks.
*
- * \note If \a alwaysCreate is true, a new chunk is created regardless of
- * whether or not the chunk \a name exists. It should only be used for
- * "LIST" chunks.
+ * \note If \a alwaysCreate is true, a new chunk is created regardless of
+ * whether or not the chunk \a name exists. It should only be used for
+ * "LIST" chunks.
*
* \warning This will update the file immediately.
*/
class File;
- //! A RIFF Info tag implementation.
+ //! A RIFF Info tag implementation.
namespace RIFF {
namespace Info {
* In practice, local encoding of each system is largely used and UTF-8 is
* popular too.
*
- * Here is an option to read and write tags in your preferrd encoding
- * by subclassing this class, reimplementing parse() and render() and setting
+ * Here is an option to read and write tags in your preferrd encoding
+ * by subclassing this class, reimplementing parse() and render() and setting
* your reimplementation as the default with Info::Tag::setStringHandler().
*
* \see ID3v1::Tag::setStringHandler()
/*!
* Encode a ByteVector with the data from \a s. The default implementation
- * assumes that \a s is an UTF-8 string.
+ * assumes that \a s is an UTF-8 string.
*/
virtual ByteVector render(const String &s) const;
};
//! The main class in the ID3v2 implementation
/*!
- * This is the main class in the INFO tag implementation. RIFF INFO tag is a
- * metadata format found in WAV audio and AVI video files. Though it is a part
- * of Microsoft/IBM's RIFF specification, the author could not find the official
- * documents about it. So, this implementation is referring to unofficial documents
+ * This is the main class in the INFO tag implementation. RIFF INFO tag is a
+ * metadata format found in WAV audio and AVI video files. Though it is a part
+ * of Microsoft/IBM's RIFF specification, the author could not find the official
+ * documents about it. So, this implementation is referring to unofficial documents
* online and some applications' behaviors especially Windows Explorer.
*/
class TAGLIB_EXPORT Tag : public TagLib::Tag
virtual bool isEmpty() const;
/*!
- * Returns a copy of the internal fields of the tag. The returned map directly
+ * Returns a copy of the internal fields of the tag. The returned map directly
* reflects the contents of the "INFO" chunk.
*
* \note Modifying this map does not affect the tag's internal data.
* Gets the value of the field with the ID \a id.
*/
String fieldText(const ByteVector &id) const;
-
+
/*
* Sets the value of the field with the ID \a id to \a s.
* If the field does not exist, it is created.
* If \s is empty, the field is removed.
*
- * \note fieldId must be four-byte long pure ASCII string. This function
+ * \note fieldId must be four-byte long pure ASCII string. This function
* performs nothing if fieldId is invalid.
*/
void setFieldText(const ByteVector &id, const String &s);
/*!
* Render the tag back to binary data, suitable to be written to disk.
*
- * \note Returns empty ByteVector is the tag contains no fields.
+ * \note Returns empty ByteVector is the tag contains no fields.
*/
ByteVector render() const;
* \see StringHandler
*/
static void setStringHandler(const StringHandler *handler);
-
+
protected:
/*!
* Pareses the body of the tag in \a data.
/*!
* Returns the ID3v2 Tag for this file.
- *
- * \note This method does not return all the tags for this file for
+ *
+ * \note This method does not return all the tags for this file for
* backward compatibility. Will be fixed in TagLib 2.0.
*/
ID3v2::Tag *tag() const;
/*!
* Returns the ID3v2 Tag for this file.
*
- * \note This always returns a valid pointer regardless of whether or not
- * the file on disk has an ID3v2 tag. Use hasID3v2Tag() to check if the
+ * \note This always returns a valid pointer regardless of whether or not
+ * the file on disk has an ID3v2 tag. Use hasID3v2Tag() to check if the
* file on disk actually has an ID3v2 tag.
*
* \see hasID3v2Tag()
/*!
* Returns the RIFF INFO Tag for this file.
*
- * \note This always returns a valid pointer regardless of whether or not
- * the file on disk has a RIFF INFO tag. Use hasInfoTag() to check if the
+ * \note This always returns a valid pointer regardless of whether or not
+ * the file on disk has a RIFF INFO tag. Use hasInfoTag() to check if the
* file on disk actually has a RIFF INFO tag.
*
* \see hasInfoTag()
virtual bool save();
bool save(TagTypes tags, bool stripOthers = true, int id3v2Version = 4);
-
+
/*!
* Returns whether or not the file on disk actually has an ID3v2 tag.
*
public:
/*!
- * Detroys this Tag instance.
+ * Destroys this Tag instance.
*/
virtual ~Tag();
* - Full support for unicode and internationalized tags.
* - Dual <a href="http://www.mozilla.org/MPL/MPL-1.1.html">MPL</a> and
* <a href="http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html">LGPL</a> licenses.
- * - No external toolkit dependancies.
+ * - No external toolkit dependencies.
*
* \section why Why TagLib?
*
/*!
* Searches the char for \a c starting at \a offset and returns
- * the offset. Returns \a npos if the pattern was not found. If \a byteAlign is
+ * the offset. Returns \a -1 if the pattern was not found. If \a byteAlign is
* specified the pattern will only be matched if it starts on a byte divisible
* by \a byteAlign (starting from \a offset).
*/
#include "taglib_export.h"
#include "tstring.h"
-namespace TagLib
+namespace TagLib
{
//! An abstraction for the listener to the debug messages.
/*!
- * This class enables you to handle the debug messages in your preferred
- * way by subclassing this class, reimplementing printMessage() and setting
+ * This class enables you to handle the debug messages in your preferred
+ * way by subclassing this class, reimplementing printMessage() and setting
* your reimplementation as the default with setDebugListener().
*
* \see setDebugListener()
- */
+ */
class TAGLIB_EXPORT DebugListener
{
public:
/*!
* Sets the listener that decides how the debug messages are redirected.
- * If the parameter \a listener is null, the previous listener is released
- * and default stderr listener is restored.
+ * If the parameter \a listener is null, the previous listener is released
+ * and default stderr listener is restored.
*
* \note The caller is responsible for deleting the previous listener
* as needed after it is released.
* names (uppercase Strings) to StringLists of tag values. Calls the according
* specialization in the File subclasses.
* For each metadata object of the file that could not be parsed into the PropertyMap
- * format, the returend map's unsupportedData() list will contain one entry identifying
+ * format, the returned map's unsupportedData() list will contain one entry identifying
* that object (e.g. the frame type for ID3v2 tags). Use removeUnsupportedProperties()
* to remove (a subset of) them.
* For files that contain more than one tag (e.g. an MP3 with both an ID3v2 and an ID3v2
* into the format-specific details.
* If some value(s) could not be written imported to the specific metadata format,
* the returned PropertyMap will contain those value(s). Otherwise it will be empty,
- * indicating that no problems occured.
+ * indicating that no problems occurred.
* With file types that support several tag formats (for instance, MP3 files can have
* ID3v1, ID3v2, and APEv2 tags), this function will create the most appropriate one
* (ID3v2 for MP3 files). Older formats will be updated as well, if they exist, but won't
* BIC: will become pure virtual in the future
*/
PropertyMap setProperties(const PropertyMap &properties);
-
+
/*!
* Returns a pointer to this file's audio properties. This should be
* reimplemented in the concrete subclasses. If no audio properties were
* Returns the offset in the file that \a pattern occurs at or -1 if it can
* not be found. If \a before is set, the search will only continue until the
* pattern \a before is found. This is useful for tagging purposes to search
- * for a tag before the synch frame.
+ * for a tag before the sync frame.
*
* Searching starts at \a fromOffset, which defaults to the beginning of the
* file.
*
- * \note This has the practial limitation that \a pattern can not be longer
+ * \note This has the practical limitation that \a pattern can not be longer
* than the buffer size used by readBlock(). Currently this is 1024 bytes.
*/
long find(const ByteVector &pattern,
* Returns the offset in the file that \a pattern occurs at or -1 if it can
* not be found. If \a before is set, the search will only continue until the
* pattern \a before is found. This is useful for tagging purposes to search
- * for a tag before the synch frame.
+ * for a tag before the sync frame.
*
* Searching starts at \a fromOffset and proceeds from the that point to the
* beginning of the file and defaults to the end of the file.
*
- * \note This has the practial limitation that \a pattern can not be longer
+ * \note This has the practical limitation that \a pattern can not be longer
* than the buffer size used by readBlock(). Currently this is 1024 bytes.
*/
long rfind(const ByteVector &pattern,
operator const char *() const;
const std::wstring &wstr() const;
- const std::string &str() const;
+ const std::string &str() const;
String toString() const;
/*!
* Destroys this List instance. If auto deletion is enabled and this list
- * contains a pointer type all of the memebers are also deleted.
+ * contains a pointer type all of the members are also deleted.
*/
virtual ~List();
/*!
* This map implements a generic representation of textual audio metadata
* ("tags") realized as pairs of a case-insensitive key
- * and a nonempty list of corresponding values, each value being an an arbitrary
+ * and a nonempty list of corresponding values, each value being an arbitrary
* unicode String.
*
* Note that most metadata formats pose additional conditions on the tag keys. The
* most popular ones (Vorbis, APE, ID3v2) should support all ASCII only words of
* length between 2 and 16.
- *
+ *
* This class can contain any tags, but here is a list of "well-known" tags that
* you might want to use:
*
* - COPYRIGHT
* - ENCODEDBY
* - MOOD
- * - COMMENT
+ * - COMMENT
* - MEDIA
* - LABEL
* - CATALOGNUMBER
* - BARCODE
*
* MusicBrainz identifiers:
- *
+ *
* - MUSICBRAINZ_TRACKID
* - MUSICBRAINZ_ALBUMID
* - MUSICBRAINZ_RELEASEGROUPID
/*!
* Inserts \a values under \a key in the map. If \a key already exists,
- * then \values will be appended to the existing StringList.
+ * then \a values will be appended to the existing StringList.
* The returned value indicates success, i.e. whether \a key is a
* valid key.
*/
/*!
* Convert the string to an integer.
*
- * If the conversion was successfull, it sets the value of \a *ok to
+ * If the conversion was successful, it sets the value of \a *ok to
* true and returns the integer. Otherwise it sets \a *ok to false
* and the result is undefined.
*/
/*!
* To be able to use this class in a Map, this operator needed to be
- * implemented. Returns true if \a s is less than this string in a bytewise
+ * implemented. Returns true if \a s is less than this string in a byte-wise
* comparison.
*/
bool operator<(const String &s) const;
//! A list of strings
/*!
- * This is a spcialization of the List class with some members convention for
+ * This is a specialization of the List class with some members convention for
* string operations.
*/
};
/*!
- * Constructs a TrueAudio file from \a file. If \a readProperties is true
+ * Constructs a TrueAudio file from \a file. If \a readProperties is true
* the file's audio properties will also be read.
*
* \note In the current implementation, \a propertiesStyle is ignored.
Properties::ReadStyle propertiesStyle = Properties::Average);
/*!
- * Constructs a TrueAudio file from \a file. If \a readProperties is true
+ * Constructs a TrueAudio file from \a file. If \a readProperties is true
* the file's audio properties will also be read.
*
* If this file contains and ID3v2 tag the frames will be created using
Properties::ReadStyle propertiesStyle = Properties::Average);
/*!
- * Constructs a TrueAudio file from \a stream. If \a readProperties is true
+ * Constructs a TrueAudio file from \a stream. If \a readProperties is true
* the file's audio properties will also be read.
*
* \note TagLib will *not* take ownership of the stream, the caller is
* if there is no valid ID3v1 tag. If \a create is true it will create
* an ID3v1 tag if one does not exist and returns a valid pointer.
*
- * \note This may return a valid pointer regardless of whether or not the
- * file on disk has an ID3v1 tag. Use hasID3v1Tag() to check if the file
+ * \note This may return a valid pointer regardless of whether or not the
+ * file on disk has an ID3v1 tag. Use hasID3v1Tag() to check if the file
* on disk actually has an ID3v1 tag.
*
* \note The Tag <b>is still</b> owned by the MPEG::File and should not be
* if there is no valid ID3v2 tag. If \a create is true it will create
* an ID3v2 tag if one does not exist and returns a valid pointer.
*
- * \note This may return a valid pointer regardless of whether or not the
- * file on disk has an ID3v2 tag. Use hasID3v2Tag() to check if the file
+ * \note This may return a valid pointer regardless of whether or not the
+ * file on disk has an ID3v2 tag. Use hasID3v2Tag() to check if the file
* on disk actually has an ID3v2 tag.
*
* \note The Tag <b>is still</b> owned by the MPEG::File and should not be
* \note In order to make the removal permanent save() still needs to be called
*/
void strip(int tags = AllTags);
-
+
/*!
* Returns whether or not the file on disk actually has an ID3v1 tag.
*
* \see ID3v2Tag()
*/
bool hasID3v2Tag() const;
-
+
private:
File(const File &);
File &operator=(const File &);
* if there is no valid ID3v1 tag. If \a create is true it will create
* an ID3v1 tag if one does not exist and returns a valid pointer.
*
- * \note This may return a valid pointer regardless of whether or not the
- * file on disk has an ID3v1 tag. Use hasID3v1Tag() to check if the file
+ * \note This may return a valid pointer regardless of whether or not the
+ * file on disk has an ID3v1 tag. Use hasID3v1Tag() to check if the file
* on disk actually has an ID3v1 tag.
*
* \note The Tag <b>is still</b> owned by the MPEG::File and should not be
* if there is no valid APE tag. If \a create is true it will create
* an APE tag if one does not exist and returns a valid pointer.
*
- * \note This may return a valid pointer regardless of whether or not the
- * file on disk has an APE tag. Use hasAPETag() to check if the file
+ * \note This may return a valid pointer regardless of whether or not the
+ * file on disk has an APE tag. Use hasAPETag() to check if the file
* on disk actually has an APE tag.
*
* \note The Tag <b>is still</b> owned by the MPEG::File and should not be
* \note In order to make the removal permanent save() still needs to be called
*/
void strip(int tags = AllTags);
-
+
/*!
* Returns whether or not the file on disk actually has an ID3v1 tag.
*
* \see APETag()
*/
bool hasAPETag() const;
-
+
private:
File(const File &);
File &operator=(const File &);
* Returns the sample rate in Hz. 0 means unknown or custom.
*/
virtual int sampleRate() const;
-
+
virtual int channels() const;
/*!