diff --git a/src/mytaglib/aifffile.h b/src/mytaglib/aifffile.h
deleted file mode 100644
index b9b0809..0000000
--- a/src/mytaglib/aifffile.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/***************************************************************************
- copyright : (C) 2008 by Scott Wheeler
- email : wheeler@kde.org
-***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA *
- * 02110-1301 USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_AIFFFILE_H
-#define TAGLIB_AIFFFILE_H
-
-#include "rifffile.h"
-#include "id3v2tag.h"
-#include "aiffproperties.h"
-
-namespace TagLib {
-
- namespace RIFF {
-
- //! An implementation of AIFF metadata
-
- /*!
- * This is implementation of AIFF metadata.
- *
- * This supports an ID3v2 tag as well as reading stream from the ID3 RIFF
- * chunk as well as properties from the file.
- */
-
- namespace AIFF {
-
- //! An implementation of TagLib::File with AIFF specific methods
-
- /*!
- * This implements and provides an interface for AIFF files to the
- * TagLib::Tag and TagLib::AudioProperties interfaces by way of implementing
- * the abstract TagLib::File API as well as providing some additional
- * information specific to AIFF files.
- */
-
- class TAGLIB_EXPORT File : public TagLib::RIFF::File
- {
- public:
- /*!
- * Contructs an AIFF file from \a file. If \a readProperties is true the
- * file's audio properties will also be read using \a propertiesStyle. If
- * false, \a propertiesStyle is ignored.
- */
- File(FileName file, bool readProperties = true,
- Properties::ReadStyle propertiesStyle = Properties::Average);
-
- /*!
- * Destroys this instance of the File.
- */
- virtual ~File();
-
- /*!
- * Returns the Tag for this file.
- */
- virtual ID3v2::Tag *tag() const;
-
- /*!
- * Returns the AIFF::Properties for this file. If no audio properties
- * were read then this will return a null pointer.
- */
- virtual Properties *audioProperties() const;
-
- /*!
- * Saves the file.
- */
- virtual bool save();
-
- private:
- File(const File &);
- File &operator=(const File &);
-
- void read(bool readProperties, Properties::ReadStyle propertiesStyle);
-
- class FilePrivate;
- FilePrivate *d;
- };
- }
- }
-}
-
-#endif
diff --git a/src/mytaglib/aiffproperties.h b/src/mytaglib/aiffproperties.h
deleted file mode 100644
index 4c578dc..0000000
--- a/src/mytaglib/aiffproperties.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/***************************************************************************
- copyright : (C) 2008 by Scott Wheeler
- email : wheeler@kde.org
-***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA *
- * 02110-1301 USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_AIFFPROPERTIES_H
-#define TAGLIB_AIFFPROPERTIES_H
-
-#include "audioproperties.h"
-
-namespace TagLib {
-
- namespace RIFF {
-
- namespace AIFF {
-
- class File;
-
- //! An implementation of audio property reading for AIFF
-
- /*!
- * This reads the data from an AIFF stream found in the AudioProperties
- * API.
- */
-
- class TAGLIB_EXPORT Properties : public AudioProperties
- {
- public:
- /*!
- * Create an instance of AIFF::Properties with the data read from the
- * ByteVector \a data.
- */
- Properties(const ByteVector &data, ReadStyle style);
-
- /*!
- * Destroys this AIFF::Properties instance.
- */
- virtual ~Properties();
-
- // Reimplementations.
-
- virtual int length() const;
- virtual int bitrate() const;
- virtual int sampleRate() const;
- virtual int channels() const;
-
- int sampleWidth() const;
-
- private:
- Properties(const Properties &);
- Properties &operator=(const Properties &);
-
- void read(const ByteVector &data);
-
- class PropertiesPrivate;
- PropertiesPrivate *d;
- };
- }
- }
-}
-
-#endif
diff --git a/src/mytaglib/apefile.h b/src/mytaglib/apefile.h
deleted file mode 100644
index a4bc80d..0000000
--- a/src/mytaglib/apefile.h
+++ /dev/null
@@ -1,171 +0,0 @@
-/***************************************************************************
- copyright : (C) 2010 by Alex Novichkov
- email : novichko@atnet.ru
-
- copyright : (C) 2006 by Lukáš Lalinský
- email : lalinsky@gmail.com
- (original WavPack implementation)
-
- copyright : (C) 2004 by Allan Sandfeld Jensen
- email : kde@carewolf.org
- (original MPC implementation)
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA *
- * 02110-1301 USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_APEFILE_H
-#define TAGLIB_APEFILE_H
-
-#include "tfile.h"
-#include "taglib_export.h"
-#include "apeproperties.h"
-
-namespace TagLib {
-
- class Tag;
-
- namespace ID3v1 { class Tag; }
- namespace APE { class Tag; }
-
- //! An implementation of APE metadata
-
- /*!
- * This is implementation of APE metadata.
- *
- * This supports ID3v1 and APE (v1 and v2) style comments as well as reading stream
- * properties from the file.
- */
-
- namespace APE {
-
- //! An implementation of TagLib::File with APE specific methods
-
- /*!
- * This implements and provides an interface APE WavPack files to the
- * TagLib::Tag and TagLib::AudioProperties interfaces by way of implementing
- * the abstract TagLib::File API as well as providing some additional
- * information specific to APE files.
- */
-
- class TAGLIB_EXPORT File : public TagLib::File
- {
- public:
- /*!
- * This set of flags is used for various operations and is suitable for
- * being OR-ed together.
- */
- enum TagTypes {
- //! Empty set. Matches no tag types.
- NoTags = 0x0000,
- //! Matches ID3v1 tags.
- ID3v1 = 0x0001,
- //! Matches APE tags.
- APE = 0x0002,
- //! Matches all tag types.
- AllTags = 0xffff
- };
-
- /*!
- * Contructs an WavPack file from \a file. If \a readProperties is true the
- * file's audio properties will also be read using \a propertiesStyle. If
- * false, \a propertiesStyle is ignored.
- */
- File(FileName file, bool readProperties = true,
- Properties::ReadStyle propertiesStyle = Properties::Average);
-
- /*!
- * Destroys this instance of the File.
- */
- virtual ~File();
-
- /*!
- * Returns the Tag for this file. This will be an APE tag, an ID3v1 tag
- * or a combination of the two.
- */
- virtual TagLib::Tag *tag() const;
-
- /*!
- * Returns the APE::Properties for this file. If no audio properties
- * were read then this will return a null pointer.
- */
- virtual Properties *audioProperties() const;
-
- /*!
- * Saves the file.
- *
- * \note According to the official Monkey's Audio SDK, an APE file
- * can only have either ID3V1 or APE tags, so a parameter is used here.
- */
- virtual bool save();
-
- /*!
- * Returns a pointer to the ID3v1 tag of the file.
- *
- * If \a create is false (the default) this will return a null pointer
- * if there is no valid ID3v1 tag. If \a create is true it will create
- * an ID3v1 tag if one does not exist. If there is already an APE tag, the
- * new ID3v1 tag will be placed after it.
- *
- * \note The Tag is still owned by the APE::File and should not be
- * deleted by the user. It will be deleted when the file (object) is
- * destroyed.
- */
- ID3v1::Tag *ID3v1Tag(bool create = false);
-
- /*!
- * Returns a pointer to the APE tag of the file.
- *
- * If \a create is false (the default) this will return a null pointer
- * if there is no valid APE tag. If \a create is true it will create
- * a APE tag if one does not exist.
- *
- * \note The Tag is still owned by the APE::File and should not be
- * deleted by the user. It will be deleted when the file (object) is
- * destroyed.
- */
- APE::Tag *APETag(bool create = false);
-
- /*!
- * This will remove the tags that match the OR-ed together TagTypes from the
- * file. By default it removes all tags.
- *
- * \note This will also invalidate pointers to the tags
- * as their memory will be freed.
- * \note In order to make the removal permanent save() still needs to be called
- */
- void strip(int tags = AllTags);
-
- private:
- File(const File &);
- File &operator=(const File &);
-
- void read(bool readProperties, Properties::ReadStyle propertiesStyle);
- void scan();
- long findID3v1();
- long findAPE();
-
- class FilePrivate;
- FilePrivate *d;
- };
- }
-}
-
-#endif
diff --git a/src/mytaglib/apefooter.h b/src/mytaglib/apefooter.h
deleted file mode 100644
index 080f930..0000000
--- a/src/mytaglib/apefooter.h
+++ /dev/null
@@ -1,173 +0,0 @@
-/***************************************************************************
- copyright : (C) 2004 by Allan Sandfeld Jensen
- email : kde@carewolf.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA *
- * 02110-1301 USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_APEFOOTER_H
-#define TAGLIB_APEFOOTER_H
-
-#include "tbytevector.h"
-#include "taglib_export.h"
-
-namespace TagLib {
-
- namespace APE {
-
- //! An implementation of APE footers
-
- /*!
- * This class implements APE footers (and headers). It attempts to follow, both
- * semantically and programatically, the structure specified in
- * the APE v2.0 standard. The API is based on the properties of APE footer and
- * headers specified there.
- */
-
- class TAGLIB_EXPORT Footer
- {
- public:
- /*!
- * Constructs an empty APE footer.
- */
- Footer();
-
- /*!
- * Constructs an APE footer based on \a data. parse() is called
- * immediately.
- */
- Footer(const ByteVector &data);
-
- /*!
- * Destroys the footer.
- */
- virtual ~Footer();
-
- /*!
- * Returns the version number. (Note: This is the 1000 or 2000.)
- */
- uint version() const;
-
- /*!
- * Returns true if a header is present in the tag.
- */
- bool headerPresent() const;
-
- /*!
- * Returns true if a footer is present in the tag.
- */
- bool footerPresent() const;
-
- /*!
- * Returns true this is actually the header.
- */
- bool isHeader() const;
-
- /*!
- * Sets whether the header should be rendered or not
- */
- void setHeaderPresent(bool b) const;
-
- /*!
- * Returns the number of items in the tag.
- */
- uint itemCount() const;
-
- /*!
- * Set the item count to \a s.
- * \see itemCount()
- */
- void setItemCount(uint s);
-
- /*!
- * Returns the tag size in bytes. This is the size of the frame content and footer.
- * The size of the \e entire tag will be this plus the header size, if present.
- *
- * \see completeTagSize()
- */
- uint tagSize() const;
-
- /*!
- * Returns the tag size, including if present, the header
- * size.
- *
- * \see tagSize()
- */
- uint completeTagSize() const;
-
- /*!
- * Set the tag size to \a s.
- * \see tagSize()
- */
- void setTagSize(uint s);
-
- /*!
- * Returns the size of the footer. Presently this is always 32 bytes.
- */
- static uint size();
-
- /*!
- * Returns the string used to identify an APE tag inside of a file.
- * Presently this is always "APETAGEX".
- */
- static ByteVector fileIdentifier();
-
- /*!
- * Sets the data that will be used as the footer. 32 bytes,
- * starting from \a data will be used.
- */
- void setData(const ByteVector &data);
-
- /*!
- * Renders the footer back to binary format.
- */
- ByteVector renderFooter() const;
-
- /*!
- * Renders the header corresponding to the footer. If headerPresent is
- * set to false, it returns an empty ByteVector.
- */
- ByteVector renderHeader() const;
-
- protected:
- /*!
- * Called by setData() to parse the footer data. It makes this information
- * available through the public API.
- */
- void parse(const ByteVector &data);
-
- /*!
- * Called by renderFooter and renderHeader
- */
- ByteVector render(bool isHeader) const;
-
- private:
- Footer(const Footer &);
- Footer &operator=(const Footer &);
-
- class FooterPrivate;
- FooterPrivate *d;
- };
-
- }
-}
-
-#endif
diff --git a/src/mytaglib/apeitem.h b/src/mytaglib/apeitem.h
deleted file mode 100644
index 01fcc76..0000000
--- a/src/mytaglib/apeitem.h
+++ /dev/null
@@ -1,204 +0,0 @@
-/***************************************************************************
- copyright : (C) 2004 by Allan Sandfeld Jensen
- email : kde@carewolf.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA *
- * 02110-1301 USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_APEITEM_H
-#define TAGLIB_APEITEM_H
-
-#include "tbytevector.h"
-#include "tstring.h"
-#include "tstringlist.h"
-
-namespace TagLib {
-
- namespace APE {
-
- //! An implementation of APE-items
-
- /*!
- * This class provides the features of items in the APEv2 standard.
- */
- class TAGLIB_EXPORT Item
- {
- public:
- /*!
- * Enum of types an Item can have. The value of 3 is reserved.
- */
- enum ItemTypes {
- //! Item contains text information coded in UTF-8
- Text = 0,
- //! Item contains binary information
- Binary = 1,
- //! Item is a locator of external stored information
- Locator = 2
- };
- /*!
- * Constructs an empty item.
- */
- Item();
-
- /*!
- * Constructs an item with \a key and \a value.
- */
- // BIC: Remove this, StringList has a constructor from a single string
- Item(const String &key, const String &value);
-
- /*!
- * Constructs an item with \a key and \a values.
- */
- Item(const String &key, const StringList &values);
-
- /*!
- * Construct an item as a copy of \a item.
- */
- Item(const Item &item);
-
- /*!
- * Destroys the item.
- */
- virtual ~Item();
-
- /*!
- * Copies the contents of \a item into this item.
- */
- Item &operator=(const Item &item);
-
- /*!
- * Returns the key.
- */
- String key() const;
-
- /*!
- * Returns the binary value.
- *
- * \deprecated This will be removed in the next binary incompatible version
- * as it is not kept in sync with the things that are set using setValue()
- * and friends.
- */
- ByteVector value() const;
-
- /*!
- * Sets the key for the item to \a key.
- */
- void setKey(const String &key);
-
- /*!
- * Sets the value of the item to \a value and clears any previous contents.
- *
- * \see toString()
- */
- void setValue(const String &value);
-
- /*!
- * Sets the value of the item to the list of values in \a value and clears
- * any previous contents.
- *
- * \see toStringList()
- */
- void setValues(const StringList &values);
-
- /*!
- * Appends \a value to create (or extend) the current list of values.
- *
- * \see toString()
- */
- void appendValue(const String &value);
-
- /*!
- * Appends \a values to extend the current list of values.
- *
- * \see toStringList()
- */
- void appendValues(const StringList &values);
-
- /*!
- * Returns the size of the full item.
- */
- int size() const;
-
- /*!
- * Returns the value as a single string. In case of multiple strings,
- * the first is returned.
- */
- String toString() const;
-
- /*!
- * \deprecated
- * \see values
- */
- StringList toStringList() const;
-
- /*!
- * Returns the list of values.
- */
- StringList values() const;
-
- /*!
- * Render the item to a ByteVector.
- */
- ByteVector render() const;
-
- /*!
- * Parse the item from the ByteVector \a data.
- */
- void parse(const ByteVector& data);
-
- /*!
- * Set the item to read-only.
- */
- void setReadOnly(bool readOnly);
-
- /*!
- * Return true if the item is read-only.
- */
- bool isReadOnly() const;
-
- /*!
- * Sets the type of the item to \a type.
- *
- * \see ItemTypes
- */
- void setType(ItemTypes type);
-
- /*!
- * Returns the type of the item.
- */
- ItemTypes type() const;
-
- /*!
- * Returns if the item has any real content.
- */
- bool isEmpty() const;
-
- private:
- class ItemPrivate;
- ItemPrivate *d;
- };
- }
-
-}
-
-#endif
-
-
diff --git a/src/mytaglib/apeproperties.h b/src/mytaglib/apeproperties.h
deleted file mode 100644
index 8b543a5..0000000
--- a/src/mytaglib/apeproperties.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/***************************************************************************
- copyright : (C) 2010 by Alex Novichkov
- email : novichko@atnet.ru
-
- copyright : (C) 2006 by Lukáš Lalinský
- email : lalinsky@gmail.com
- (original WavPack implementation)
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA *
- * 02110-1301 USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_APEPROPERTIES_H
-#define TAGLIB_APEPROPERTIES_H
-
-#include "taglib_export.h"
-#include "audioproperties.h"
-
-namespace TagLib {
-
- namespace APE {
-
- class File;
-
- //! An implementation of audio property reading for APE
-
- /*!
- * This reads the data from an APE stream found in the AudioProperties
- * API.
- */
-
- class TAGLIB_EXPORT Properties : public AudioProperties
- {
- public:
- /*!
- * Create an instance of APE::Properties with the data read from the
- * ByteVector \a data.
- */
- Properties(File *f, ReadStyle style = Average);
-
- /*!
- * Destroys this APE::Properties instance.
- */
- virtual ~Properties();
-
- // Reimplementations.
-
- virtual int length() const;
- virtual int bitrate() const;
- virtual int sampleRate() const;
- virtual int channels() const;
-
- /*!
- * Returns number of bits per sample.
- */
- int bitsPerSample() const;
-
- /*!
- * Returns APE version.
- */
- int version() const;
-
- private:
- Properties(const Properties &);
- Properties &operator=(const Properties &);
-
- void read();
-
- long findDescriptor();
- long findID3v2();
-
- void analyzeCurrent();
- void analyzeOld();
-
- class PropertiesPrivate;
- PropertiesPrivate *d;
- };
- }
-}
-
-#endif
diff --git a/src/mytaglib/apetag.h b/src/mytaglib/apetag.h
deleted file mode 100644
index 13efd5e..0000000
--- a/src/mytaglib/apetag.h
+++ /dev/null
@@ -1,170 +0,0 @@
-/***************************************************************************
- copyright : (C) 2004 by Allan Sandfeld Jensen
- email : kde@carewolf.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA *
- * 02110-1301 USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_APETAG_H
-#define TAGLIB_APETAG_H
-
-#include "tag.h"
-#include "tbytevector.h"
-#include "tmap.h"
-#include "tstring.h"
-#include "taglib_export.h"
-
-#include "apeitem.h"
-
-namespace TagLib {
-
- class File;
-
- //! An implementation of the APE tagging format
-
- namespace APE {
-
- class Footer;
-
- /*!
- * A mapping between a list of item names, or keys, and the associated item.
- *
- * \see APE::Tag::itemListMap()
- */
- typedef Map ItemListMap;
-
-
- //! An APE tag implementation
-
- class TAGLIB_EXPORT Tag : public TagLib::Tag
- {
- public:
- /*!
- * Create an APE tag with default values.
- */
- Tag();
-
- /*!
- * Create an APE tag and parse the data in \a file with APE footer at
- * \a tagOffset.
- */
- Tag(TagLib::File *file, long footerLocation);
-
- /*!
- * Destroys this Tag instance.
- */
- virtual ~Tag();
-
- /*!
- * Renders the in memory values to a ByteVector suitable for writing to
- * the file.
- */
- ByteVector render() const;
-
- /*!
- * Returns the string "APETAGEX" suitable for usage in locating the tag in a
- * file.
- */
- static ByteVector fileIdentifier();
-
- // Reimplementations.
-
- 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);
-
- /*!
- * Returns a pointer to the tag's footer.
- */
- Footer *footer() 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.
- *
- * APE tags are case-insensitive, all keys in this map have been converted
- * to upper case.
- *
- * \warning You should not modify this data structure directly, instead
- * use setItem() and removeItem().
- */
- const ItemListMap &itemListMap() const;
-
- /*!
- * Removes the \a key item from the tag
- */
- void removeItem(const String &key);
-
- /*!
- * Adds to the item specified by \a key the data \a value. If \a replace
- * is true, then all of the other values on the same key will be removed
- * first.
- */
- void addValue(const String &key, const String &value, bool replace = true);
-
- /*!
- * Sets the \a key item to the value of \a item. If an item with the \a key is already
- * present, it will be replaced.
- */
- void setItem(const String &key, const Item &item);
-
- /*!
- * Returns true if the tag does not contain any data.
- */
- bool isEmpty() const;
-
- protected:
-
- /*!
- * Reads from the file specified in the constructor.
- */
- void read();
-
- /*!
- * Parses the body of the tag in \a data.
- */
- void parse(const ByteVector &data);
-
- private:
- Tag(const Tag &);
- Tag &operator=(const Tag &);
-
- class TagPrivate;
- TagPrivate *d;
- };
- }
-}
-
-#endif
diff --git a/src/mytaglib/asfattribute.h b/src/mytaglib/asfattribute.h
deleted file mode 100644
index 5618699..0000000
--- a/src/mytaglib/asfattribute.h
+++ /dev/null
@@ -1,203 +0,0 @@
-/**************************************************************************
- copyright : (C) 2005-2007 by Lukáš Lalinský
- email : lalinsky@gmail.com
- **************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA *
- * 02110-1301 USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_ASFATTRIBUTE_H
-#define TAGLIB_ASFATTRIBUTE_H
-
-#include "tstring.h"
-#include "tbytevector.h"
-#include "taglib_export.h"
-#include "asfpicture.h"
-
-namespace TagLib
-{
-
- namespace ASF
- {
-
- class File;
- class Picture;
-
- class TAGLIB_EXPORT Attribute
- {
- public:
-
- /*!
- * Enum of types an Attribute can have.
- */
- enum AttributeTypes {
- UnicodeType = 0,
- BytesType = 1,
- BoolType = 2,
- DWordType = 3,
- QWordType = 4,
- WordType = 5,
- GuidType = 6
- };
-
- /*!
- * Constructs an empty attribute.
- */
- Attribute();
-
- /*!
- * Constructs an attribute with \a key and a UnicodeType \a value.
- */
- Attribute(const String &value);
-
- /*!
- * Constructs an attribute with \a key and a BytesType \a value.
- */
- Attribute(const ByteVector &value);
-
- /*!
- * Constructs an attribute with \a key and a Picture \a value.
- *
- * This attribute is compatible with the ID3 frame, APIC. The ID3 specification for the APIC frame stipulates that,
- * while there may be any number of APIC frames associated with a file,
- * only one may be of type 1 and only one may be of type 2.
- *
- * The specification also states that the description of the picture can be no longer than 64 characters, but can be empty.
- * WM/Picture attributes added with TagLib::ASF are not automatically validated to conform to ID3 specifications.
- * You must add code in your application to perform validations if you want to maintain complete compatibility with ID3.
- */
- Attribute(const Picture &value);
-
- /*!
- * Constructs an attribute with \a key and a DWordType \a value.
- */
- Attribute(unsigned int value);
-
- /*!
- * Constructs an attribute with \a key and a QWordType \a value.
- */
- Attribute(unsigned long long value);
-
- /*!
- * Constructs an attribute with \a key and a WordType \a value.
- */
- Attribute(unsigned short value);
-
- /*!
- * Constructs an attribute with \a key and a BoolType \a value.
- */
- Attribute(bool value);
-
- /*!
- * Construct an attribute as a copy of \a other.
- */
- Attribute(const Attribute &item);
-
- /*!
- * Copies the contents of \a other into this item.
- */
- ASF::Attribute &operator=(const Attribute &other);
-
- /*!
- * Destroys the attribute.
- */
- virtual ~Attribute();
-
- /*!
- * Returns type of the value.
- */
- AttributeTypes type() const;
-
- /*!
- * Returns the BoolType \a value.
- */
- unsigned short toBool() const;
-
- /*!
- * Returns the WordType \a value.
- */
- unsigned short toUShort() const;
-
- /*!
- * Returns the DWordType \a value.
- */
- unsigned int toUInt() const;
-
- /*!
- * Returns the QWordType \a value.
- */
- unsigned long long toULongLong() const;
-
- /*!
- * Returns the UnicodeType \a value.
- */
- String toString() const;
-
- /*!
- * Returns the BytesType \a value.
- */
- ByteVector toByteVector() const;
-
- /*!
- * Returns the Picture \a value.
- */
- Picture toPicture() const;
-
- /*!
- * Returns the language number, or 0 is no stream number was set.
- */
- int language() const;
-
- /*!
- * Sets the language number.
- */
- void setLanguage(int value);
-
- /*!
- * Returns the stream number, or 0 is no stream number was set.
- */
- int stream() const;
-
- /*!
- * Sets the stream number.
- */
- void setStream(int value);
-
-#ifndef DO_NOT_DOCUMENT
- /* THIS IS PRIVATE, DON'T TOUCH IT! */
- String parse(ASF::File &file, int kind = 0);
-#endif
-
- //! Returns the size of the stored data
- int dataSize() const;
-
- private:
- friend class File;
-
- ByteVector render(const String &name, int kind = 0) const;
-
- class AttributePrivate;
- AttributePrivate *d;
- };
- }
-
-}
-
-#endif
diff --git a/src/mytaglib/asffile.h b/src/mytaglib/asffile.h
deleted file mode 100644
index 9242aa6..0000000
--- a/src/mytaglib/asffile.h
+++ /dev/null
@@ -1,120 +0,0 @@
-/**************************************************************************
- copyright : (C) 2005-2007 by Lukáš Lalinský
- email : lalinsky@gmail.com
- **************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA *
- * 02110-1301 USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_ASFFILE_H
-#define TAGLIB_ASFFILE_H
-
-#include "tag.h"
-#include "tfile.h"
-#include "taglib_export.h"
-#include "asfproperties.h"
-#include "asftag.h"
-
-namespace TagLib {
-
- //! An implementation of ASF (WMA) metadata
- namespace ASF {
-
- /*!
- * This implements and provides an interface for ASF files to the
- * TagLib::Tag and TagLib::AudioProperties interfaces by way of implementing
- * the abstract TagLib::File API as well as providing some additional
- * information specific to ASF files.
- */
- class TAGLIB_EXPORT File : public TagLib::File
- {
- public:
-
- /*!
- * Contructs an ASF file from \a file. If \a readProperties is true the
- * file's audio properties will also be read using \a propertiesStyle. If
- * false, \a propertiesStyle is ignored.
- *
- * \note In the current implementation, both \a readProperties and
- * \a propertiesStyle are ignored.
- */
- File(FileName file, bool readProperties = true, Properties::ReadStyle propertiesStyle = Properties::Average);
-
- /*!
- * Destroys this instance of the File.
- */
- virtual ~File();
-
- /*!
- * Returns a pointer to the ASF tag of the file.
- *
- * ASF::Tag implements the tag interface, so this serves as the
- * reimplementation of TagLib::File::tag().
- *
- * \note The Tag is still owned by the ASF::File and should not be
- * deleted by the user. It will be deleted when the file (object) is
- * destroyed.
- */
- virtual Tag *tag() const;
-
- /*!
- * Returns the ASF audio properties for this file.
- */
- virtual Properties *audioProperties() const;
-
- /*!
- * Save the file.
- *
- * This returns true if the save was successful.
- */
- virtual bool save();
-
- private:
-
- int readBYTE();
- int readWORD();
- unsigned int readDWORD();
- long long readQWORD();
- static ByteVector renderString(const String &str, bool includeLength = false);
- String readString(int len);
- void read(bool readProperties, Properties::ReadStyle propertiesStyle);
-
- friend class Attribute;
- friend class Picture;
-
- class BaseObject;
- class UnknownObject;
- class FilePropertiesObject;
- class StreamPropertiesObject;
- class ContentDescriptionObject;
- class ExtendedContentDescriptionObject;
- class HeaderExtensionObject;
- class MetadataObject;
- class MetadataLibraryObject;
-
- class FilePrivate;
- FilePrivate *d;
- };
-
- }
-
-}
-
-#endif
diff --git a/src/mytaglib/asfpicture.h b/src/mytaglib/asfpicture.h
deleted file mode 100644
index 5c1bfbf..0000000
--- a/src/mytaglib/asfpicture.h
+++ /dev/null
@@ -1,217 +0,0 @@
-/**************************************************************************
- copyright : (C) 2010 by Anton Sergunov
- email : setosha@gmail.com
- **************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA *
- * 02110-1301 USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef ASFPICTURE_H
-#define ASFPICTURE_H
-
-#include "tstring.h"
-#include "tbytevector.h"
-#include "taglib_export.h"
-#include "attachedpictureframe.h"
-
-namespace TagLib
-{
- namespace ASF
- {
-
- //! An ASF attached picture interface implementation
-
- /*!
- * This is an implementation of ASF attached pictures interface. Pictures may be
- * included in attributes, one per WM/Picture attribute (but there may be multiple WM/Picture
- * attribute in a single tag). These pictures are usually in either JPEG or
- * PNG format.
- * \see Attribute::toPicture()
- * \see Attribute::Attribute(const Picture& picture)
- */
- class TAGLIB_EXPORT Picture {
- public:
-
- /*!
- * This describes the function or content of the picture.
- */
- enum Type {
- //! A type not enumerated below
- Other = 0x00,
- //! 32x32 PNG image that should be used as the file icon
- FileIcon = 0x01,
- //! File icon of a different size or format
- OtherFileIcon = 0x02,
- //! Front cover image of the album
- FrontCover = 0x03,
- //! Back cover image of the album
- BackCover = 0x04,
- //! Inside leaflet page of the album
- LeafletPage = 0x05,
- //! Image from the album itself
- Media = 0x06,
- //! Picture of the lead artist or soloist
- LeadArtist = 0x07,
- //! Picture of the artist or performer
- Artist = 0x08,
- //! Picture of the conductor
- Conductor = 0x09,
- //! Picture of the band or orchestra
- Band = 0x0A,
- //! Picture of the composer
- Composer = 0x0B,
- //! Picture of the lyricist or text writer
- Lyricist = 0x0C,
- //! Picture of the recording location or studio
- RecordingLocation = 0x0D,
- //! Picture of the artists during recording
- DuringRecording = 0x0E,
- //! Picture of the artists during performance
- DuringPerformance = 0x0F,
- //! Picture from a movie or video related to the track
- MovieScreenCapture = 0x10,
- //! Picture of a large, coloured fish
- ColouredFish = 0x11,
- //! Illustration related to the track
- Illustration = 0x12,
- //! Logo of the band or performer
- BandLogo = 0x13,
- //! Logo of the publisher (record company)
- PublisherLogo = 0x14
- };
-
- /*!
- * Constructs an empty picture.
- */
- Picture();
-
- /*!
- * Construct an picture as a copy of \a other.
- */
- Picture(const Picture& other);
-
- /*!
- * Destroys the picture.
- */
- virtual ~Picture();
-
- /*!
- * Copies the contents of \a other into this picture.
- */
- Picture& operator=(const Picture& other);
-
- /*!
- * Returns true if Picture stores valid picture
- */
- bool isValid() const;
-
- /*!
- * Returns the mime type of the image. This should in most cases be
- * "image/png" or "image/jpeg".
- * \see setMimeType(const String &)
- * \see picture()
- * \see setPicture(const ByteArray&)
- */
- String mimeType() const;
-
- /*!
- * Sets the mime type of the image. This should in most cases be
- * "image/png" or "image/jpeg".
- * \see setMimeType(const String &)
- * \see picture()
- * \see setPicture(const ByteArray&)
- */
- void setMimeType(const String &value);
-
- /*!
- * Returns the type of the image.
- *
- * \see Type
- * \see setType()
- */
- Type type() const;
-
- /*!
- * Sets the type for the image.
- *
- * \see Type
- * \see type()
- */
- void setType(const ASF::Picture::Type& t);
-
- /*!
- * Returns a text description of the image.
- *
- * \see setDescription()
- */
- String description() const;
-
- /*!
- * Sets a textual description of the image to \a desc.
- *
- * \see description()
- */
- void setDescription(const String &desc);
-
- /*!
- * Returns the image data as a ByteVector.
- *
- * \note ByteVector has a data() method that returns a const char * which
- * should make it easy to export this data to external programs.
- *
- * \see setPicture()
- * \see mimeType()
- */
- ByteVector picture() const;
-
- /*!
- * Sets the image data to \a p. \a p should be of the type specified in
- * this frame's mime-type specification.
- *
- * \see picture()
- * \see mimeType()
- * \see setMimeType()
- */
- void setPicture(const ByteVector &p);
-
- /*!
- * Returns picture as binary raw data \a value
- */
- ByteVector render() const;
-
- /*!
- * Returns picture as binary raw data \a value
- */
- int dataSize() const;
-
-#ifndef DO_NOT_DOCUMENT
- /* THIS IS PRIVATE, DON'T TOUCH IT! */
- void parse(const ByteVector& );
- static Picture fromInvalid();
- friend class Attribute;
-#endif
- private:
- struct PicturePriavte;
- PicturePriavte *d;
- };
- }
-}
-
-#endif // ASFPICTURE_H
diff --git a/src/mytaglib/asfproperties.h b/src/mytaglib/asfproperties.h
deleted file mode 100644
index 290eac7..0000000
--- a/src/mytaglib/asfproperties.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/**************************************************************************
- copyright : (C) 2005-2007 by Lukáš Lalinský
- email : lalinsky@gmail.com
- **************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA *
- * 02110-1301 USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_ASFPROPERTIES_H
-#define TAGLIB_ASFPROPERTIES_H
-
-#include "audioproperties.h"
-#include "tstring.h"
-#include "taglib_export.h"
-
-namespace TagLib {
-
- namespace ASF {
-
- //! An implementation of ASF audio properties
- class TAGLIB_EXPORT Properties : public AudioProperties
- {
- public:
-
- /*!
- * Create an instance of ASF::Properties.
- */
- Properties();
-
- /*!
- * Destroys this ASF::Properties instance.
- */
- virtual ~Properties();
-
- // Reimplementations.
- virtual int length() const;
- virtual int bitrate() const;
- virtual int sampleRate() const;
- virtual int channels() const;
-
-#ifndef DO_NOT_DOCUMENT
- void setLength(int value);
- void setBitrate(int value);
- void setSampleRate(int value);
- void setChannels(int value);
-#endif
-
- private:
- class PropertiesPrivate;
- PropertiesPrivate *d;
- };
-
- }
-
-}
-
-#endif
diff --git a/src/mytaglib/asftag.h b/src/mytaglib/asftag.h
deleted file mode 100644
index a6c49df..0000000
--- a/src/mytaglib/asftag.h
+++ /dev/null
@@ -1,186 +0,0 @@
-/**************************************************************************
- copyright : (C) 2005-2007 by Lukáš Lalinský
- email : lalinsky@gmail.com
- **************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA *
- * 02110-1301 USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_ASFTAG_H
-#define TAGLIB_ASFTAG_H
-
-#include "tag.h"
-#include "tlist.h"
-#include "tmap.h"
-#include "taglib_export.h"
-#include "asfattribute.h"
-
-namespace TagLib {
-
- namespace ASF {
-
- typedef List AttributeList;
- typedef Map AttributeListMap;
-
- class TAGLIB_EXPORT Tag : public TagLib::Tag {
-
- friend class File;
-
- public:
-
- Tag();
-
- virtual ~Tag();
-
- /*!
- * Returns the track name.
- */
- virtual String title() const;
-
- /*!
- * Returns the artist name.
- */
- virtual String artist() const;
-
- /*!
- * Returns the album name; if no album name is present in the tag
- * String::null will be returned.
- */
- virtual String album() const;
-
- /*!
- * Returns the track comment.
- */
- virtual String comment() const;
-
- /*!
- * Returns the genre name; if no genre is present in the tag String::null
- * will be returned.
- */
- virtual String genre() const;
-
- /*!
- * Returns the rating.
- */
- virtual String rating() const;
-
- /*!
- * Returns the genre name; if no genre is present in the tag String::null
- * will be returned.
- */
- virtual String copyright() const;
-
- /*!
- * Returns the year; if there is no year set, this will return 0.
- */
- virtual uint year() const;
-
- /*!
- * Returns the track number; if there is no track number set, this will
- * return 0.
- */
- virtual uint track() const;
-
- /*!
- * Sets the title to \a s.
- */
- virtual void setTitle(const String &s);
-
- /*!
- * Sets the artist to \a s.
- */
- virtual void setArtist(const String &s);
-
- /*!
- * Sets the album to \a s. If \a s is String::null then this value will be
- * cleared.
- */
- virtual void setAlbum(const String &s);
-
- /*!
- * Sets the comment to \a s.
- */
- virtual void setComment(const String &s);
-
- /*!
- * Sets the rating to \a s.
- */
- virtual void setRating(const String &s);
-
- /*!
- * Sets the copyright to \a s.
- */
- virtual void setCopyright(const String &s);
-
- /*!
- * Sets the genre to \a s.
- */
- virtual void setGenre(const String &s);
-
- /*!
- * Sets the year to \a i. If \a s is 0 then this value will be cleared.
- */
- virtual void setYear(uint i);
-
- /*!
- * Sets the track to \a i. If \a s is 0 then this value will be cleared.
- */
- virtual void setTrack(uint i);
-
- /*!
- * 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.
- */
- virtual bool isEmpty() const;
-
- /*!
- * Returns a reference to the item list map. This is an AttributeListMap of
- * all of the items in the tag.
- *
- * This is the most powerfull structure for accessing the items of the tag.
- */
- AttributeListMap &attributeListMap();
-
- /*!
- * Removes the \a key attribute from the tag
- */
- void removeItem(const String &name);
-
- /*!
- * Sets the \a key attribute to the value of \a attribute. If an attribute
- * with the \a key is already present, it will be replaced.
- */
- void setAttribute(const String &name, const Attribute &attribute);
-
- /*!
- * Sets the \a key attribute to the value of \a attribute. If an attribute
- * with the \a key is already present, it will be added to the list.
- */
- void addAttribute(const String &name, const Attribute &attribute);
-
- private:
-
- class TagPrivate;
- TagPrivate *d;
- };
- }
-}
-#endif
diff --git a/src/mytaglib/attachedpictureframe.h b/src/mytaglib/attachedpictureframe.h
deleted file mode 100644
index 55067bd..0000000
--- a/src/mytaglib/attachedpictureframe.h
+++ /dev/null
@@ -1,230 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA *
- * 02110-1301 USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_ATTACHEDPICTUREFRAME_H
-#define TAGLIB_ATTACHEDPICTUREFRAME_H
-
-#include "id3v2frame.h"
-#include "id3v2header.h"
-#include "taglib_export.h"
-
-namespace TagLib {
-
- namespace ID3v2 {
-
- //! An ID3v2 attached picture frame implementation
-
- /*!
- * This is an implementation of ID3v2 attached pictures. Pictures may be
- * included in tags, one per APIC frame (but there may be multiple APIC
- * frames in a single tag). These pictures are usually in either JPEG or
- * PNG format.
- */
-
- class TAGLIB_EXPORT AttachedPictureFrame : public Frame
- {
- friend class FrameFactory;
-
- public:
-
- /*!
- * This describes the function or content of the picture.
- */
- enum Type {
- //! A type not enumerated below
- Other = 0x00,
- //! 32x32 PNG image that should be used as the file icon
- FileIcon = 0x01,
- //! File icon of a different size or format
- OtherFileIcon = 0x02,
- //! Front cover image of the album
- FrontCover = 0x03,
- //! Back cover image of the album
- BackCover = 0x04,
- //! Inside leaflet page of the album
- LeafletPage = 0x05,
- //! Image from the album itself
- Media = 0x06,
- //! Picture of the lead artist or soloist
- LeadArtist = 0x07,
- //! Picture of the artist or performer
- Artist = 0x08,
- //! Picture of the conductor
- Conductor = 0x09,
- //! Picture of the band or orchestra
- Band = 0x0A,
- //! Picture of the composer
- Composer = 0x0B,
- //! Picture of the lyricist or text writer
- Lyricist = 0x0C,
- //! Picture of the recording location or studio
- RecordingLocation = 0x0D,
- //! Picture of the artists during recording
- DuringRecording = 0x0E,
- //! Picture of the artists during performance
- DuringPerformance = 0x0F,
- //! Picture from a movie or video related to the track
- MovieScreenCapture = 0x10,
- //! Picture of a large, coloured fish
- ColouredFish = 0x11,
- //! Illustration related to the track
- Illustration = 0x12,
- //! Logo of the band or performer
- BandLogo = 0x13,
- //! Logo of the publisher (record company)
- PublisherLogo = 0x14
- };
-
- /*!
- * Constructs an empty picture frame. The description, content and text
- * encoding should be set manually.
- */
- AttachedPictureFrame();
-
- /*!
- * Constructs an AttachedPicture frame based on \a data.
- */
- explicit AttachedPictureFrame(const ByteVector &data);
-
- /*!
- * Destroys the AttahcedPictureFrame instance.
- */
- virtual ~AttachedPictureFrame();
-
- /*!
- * Returns a string containing the description and mime-type
- */
- virtual String toString() const;
-
- /*!
- * Returns the text encoding used for the description.
- *
- * \see setTextEncoding()
- * \see description()
- */
- String::Type textEncoding() const;
-
- /*!
- * Set the text encoding used for the description.
- *
- * \see description()
- */
- void setTextEncoding(String::Type t);
-
- /*!
- * Returns the mime type of the image. This should in most cases be
- * "image/png" or "image/jpeg".
- */
- String mimeType() const;
-
- /*!
- * Sets the mime type of the image. This should in most cases be
- * "image/png" or "image/jpeg".
- */
- void setMimeType(const String &m);
-
- /*!
- * Returns the type of the image.
- *
- * \see Type
- * \see setType()
- */
- Type type() const;
-
- /*!
- * Sets the type for the image.
- *
- * \see Type
- * \see type()
- */
- void setType(Type t);
-
- /*!
- * Returns a text description of the image.
- *
- * \see setDescription()
- * \see textEncoding()
- * \see setTextEncoding()
- */
-
- String description() const;
-
- /*!
- * Sets a textual description of the image to \a desc.
- *
- * \see description()
- * \see textEncoding()
- * \see setTextEncoding()
- */
-
- void setDescription(const String &desc);
-
- /*!
- * Returns the image data as a ByteVector.
- *
- * \note ByteVector has a data() method that returns a const char * which
- * should make it easy to export this data to external programs.
- *
- * \see setPicture()
- * \see mimeType()
- */
- ByteVector picture() const;
-
- /*!
- * Sets the image data to \a p. \a p should be of the type specified in
- * this frame's mime-type specification.
- *
- * \see picture()
- * \see mimeType()
- * \see setMimeType()
- */
- void setPicture(const ByteVector &p);
-
- protected:
- virtual void parseFields(const ByteVector &data);
- virtual ByteVector renderFields() const;
- class AttachedPictureFramePrivate;
- AttachedPictureFramePrivate *d;
-
- private:
- AttachedPictureFrame(const AttachedPictureFrame &);
- AttachedPictureFrame &operator=(const AttachedPictureFrame &);
- AttachedPictureFrame(const ByteVector &data, Header *h);
-
- };
-
- //! support for ID3v2.2 PIC frames
- class TAGLIB_EXPORT AttachedPictureFrameV22 : public AttachedPictureFrame
- {
- protected:
- virtual void parseFields(const ByteVector &data);
- private:
- AttachedPictureFrameV22(const ByteVector &data, Header *h);
- friend class FrameFactory;
- };
- }
-}
-
-#endif
diff --git a/src/mytaglib/audioproperties.h b/src/mytaglib/audioproperties.h
deleted file mode 100644
index e9844fa..0000000
--- a/src/mytaglib/audioproperties.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA *
- * 02110-1301 USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_AUDIOPROPERTIES_H
-#define TAGLIB_AUDIOPROPERTIES_H
-
-#include "taglib_export.h"
-
-namespace TagLib {
-
- //! A simple, abstract interface to common audio properties
-
- /*!
- * The values here are common to most audio formats. For more specific, codec
- * dependant values, please see see the subclasses APIs. This is meant to
- * compliment the TagLib::File and TagLib::Tag APIs in providing a simple
- * interface that is sufficient for most applications.
- */
-
- class TAGLIB_EXPORT AudioProperties
- {
- public:
-
- /*!
- * Reading audio properties from a file can sometimes be very time consuming
- * and for the most accurate results can often involve reading the entire
- * file. Because in many situations speed is critical or the accuracy of the
- * values is not particularly important this allows the level of desired
- * accuracy to be set.
- */
- enum ReadStyle {
- //! Read as little of the file as possible
- Fast,
- //! Read more of the file and make better values guesses
- Average,
- //! Read as much of the file as needed to report accurate values
- Accurate
- };
-
- /*!
- * Destroys this AudioProperties instance.
- */
- virtual ~AudioProperties();
-
- /*!
- * Returns the length of the file in seconds.
- */
- virtual int length() const = 0;
-
- /*!
- * Returns the most appropriate bit rate for the file in kb/s. For constant
- * bitrate formats this is simply the bitrate of the file. For variable
- * bitrate formats this is either the average or nominal bitrate.
- */
- virtual int bitrate() const = 0;
-
- /*!
- * Returns the sample rate in Hz.
- */
- virtual int sampleRate() const = 0;
-
- /*!
- * Returns the number of audio channels.
- */
- virtual int channels() const = 0;
-
- protected:
-
- /*!
- * Construct an audio properties instance. This is protected as this class
- * should not be instantiated directly, but should be instantiated via its
- * subclasses and can be fetched from the FileRef or File APIs.
- *
- * \see ReadStyle
- */
- AudioProperties(ReadStyle style);
-
- private:
- AudioProperties(const AudioProperties &);
- AudioProperties &operator=(const AudioProperties &);
-
- class AudioPropertiesPrivate;
- AudioPropertiesPrivate *d;
- };
-
-}
-
-#endif
diff --git a/src/mytaglib/commentsframe.h b/src/mytaglib/commentsframe.h
deleted file mode 100644
index def01dc..0000000
--- a/src/mytaglib/commentsframe.h
+++ /dev/null
@@ -1,168 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA *
- * 02110-1301 USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_COMMENTSFRAME_H
-#define TAGLIB_COMMENTSFRAME_H
-
-#include "id3v2frame.h"
-#include "taglib_export.h"
-
-namespace TagLib {
-
- namespace ID3v2 {
-
- //! An implementation of ID3v2 comments
-
- /*!
- * This implements the ID3v2 comment format. An ID3v2 comment concists of
- * a language encoding, a description and a single text field.
- */
-
- class TAGLIB_EXPORT CommentsFrame : public Frame
- {
- friend class FrameFactory;
-
- public:
- /*!
- * Construct an empty comment frame that will use the text encoding
- * \a encoding.
- */
- explicit CommentsFrame(String::Type encoding = String::Latin1);
-
- /*!
- * Construct a comment based on the data in \a data.
- */
- explicit CommentsFrame(const ByteVector &data);
-
- /*!
- * Destroys this CommentFrame instance.
- */
- virtual ~CommentsFrame();
-
- /*!
- * Returns the text of this comment.
- *
- * \see text()
- */
- virtual String toString() const;
-
- /*!
- * Returns the language encoding as a 3 byte encoding as specified by
- * ISO-639-2.
- *
- * \note Most taggers simply ignore this value.
- *
- * \see setLanguage()
- */
- ByteVector language() const;
-
- /*!
- * Returns the description of this comment.
- *
- * \note Most taggers simply ignore this value.
- *
- * \see setDescription()
- */
- String description() const;
-
- /*!
- * Returns the text of this comment.
- *
- * \see setText()
- */
- String text() const;
-
- /*!
- * Set the language using the 3 byte language code from
- * ISO-639-2 to
- * \a languageCode.
- *
- * \see language()
- */
- void setLanguage(const ByteVector &languageCode);
-
- /*!
- * Sets the description of the comment to \a s.
- *
- * \see decription()
- */
- void setDescription(const String &s);
-
- /*!
- * Sets the text portion of the comment to \a s.
- *
- * \see text()
- */
- virtual void setText(const String &s);
-
- /*!
- * Returns the text encoding that will be used in rendering this frame.
- * This defaults to the type that was either specified in the constructor
- * or read from the frame when parsed.
- *
- * \see setTextEncoding()
- * \see render()
- */
- String::Type textEncoding() const;
-
- /*!
- * Sets the text encoding to be used when rendering this frame to
- * \a encoding.
- *
- * \see textEncoding()
- * \see render()
- */
- void setTextEncoding(String::Type encoding);
-
- /*!
- * 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 is found that matches the given description null is returned.
- *
- * \see description()
- */
- static CommentsFrame *findByDescription(const Tag *tag, const String &d);
-
- protected:
- // Reimplementations.
-
- virtual void parseFields(const ByteVector &data);
- virtual ByteVector renderFields() const;
-
- private:
- /*!
- * The constructor used by the FrameFactory.
- */
- CommentsFrame(const ByteVector &data, Header *h);
- CommentsFrame(const CommentsFrame &);
- CommentsFrame &operator=(const CommentsFrame &);
-
- class CommentsFramePrivate;
- CommentsFramePrivate *d;
- };
-
- }
-}
-#endif
diff --git a/src/mytaglib/fileref.h b/src/mytaglib/fileref.h
deleted file mode 100644
index 0f0c21a..0000000
--- a/src/mytaglib/fileref.h
+++ /dev/null
@@ -1,263 +0,0 @@
-/***************************************************************************
- copyright : (C) 2002 - 2008 by Scott Wheeler
- email : wheeler@kde.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA *
- * 02110-1301 USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_FILEREF_H
-#define TAGLIB_FILEREF_H
-
-#include "tfile.h"
-#include "tstringlist.h"
-
-#include "taglib_export.h"
-#include "audioproperties.h"
-
-namespace TagLib {
-
- class Tag;
-
- //! This class provides a simple abstraction for creating and handling files
-
- /*!
- * FileRef exists to provide a minimal, generic and value-based wrapper around
- * a File. It is lightweight and implicitly shared, and as such suitable for
- * pass-by-value use. This hides some of the uglier details of TagLib::File
- * and the non-generic portions of the concrete file implementations.
- *
- * This class is useful in a "simple usage" situation where it is desirable
- * to be able to get and set some of the tag information that is similar
- * across file types.
- *
- * Also note that it is probably a good idea to plug this into your mime
- * type system rather than using the constructor that accepts a file name using
- * the FileTypeResolver.
- *
- * \see FileTypeResolver
- * \see addFileTypeResolver()
- */
-
- class TAGLIB_EXPORT FileRef
- {
- public:
-
- //! A class for pluggable file type resolution.
-
- /*!
- * This class is used to add extend TagLib's very basic file name based file
- * type resolution.
- *
- * This can be accomplished with:
- *
- * \code
- *
- * class MyFileTypeResolver : FileTypeResolver
- * {
- * TagLib::File *createFile(TagLib::FileName *fileName, bool, AudioProperties::ReadStyle)
- * {
- * if(someCheckForAnMP3File(fileName))
- * return new TagLib::MPEG::File(fileName);
- * return 0;
- * }
- * }
- *
- * FileRef::addFileTypeResolver(new MyFileTypeResolver);
- *
- * \endcode
- *
- * Naturally a less contrived example would be slightly more complex. This
- * can be used to plug in mime-type detection systems or to add new file types
- * to TagLib.
- */
-
- class TAGLIB_EXPORT FileTypeResolver
- {
- TAGLIB_IGNORE_MISSING_DESTRUCTOR
- public:
- /*!
- * This method must be overridden to provide an additional file type
- * resolver. If the resolver is able to determine the file type it should
- * return a valid File object; if not it should return 0.
- *
- * \note The created file is then owned by the FileRef and should not be
- * deleted. Deletion will happen automatically when the FileRef passes
- * out of scope.
- */
- virtual File *createFile(FileName fileName,
- bool readAudioProperties = true,
- AudioProperties::ReadStyle
- audioPropertiesStyle = AudioProperties::Average) const = 0;
- };
-
- /*!
- * Creates a null FileRef.
- */
- FileRef();
-
- /*!
- * Create a FileRef from \a fileName. If \a readAudioProperties is true then
- * the audio properties will be read using \a audioPropertiesStyle. If
- * \a readAudioProperties is false then \a audioPropertiesStyle will be
- * ignored.
- *
- * Also see the note in the class documentation about why you may not want to
- * use this method in your application.
- */
- explicit FileRef(FileName fileName,
- bool readAudioProperties = true,
- AudioProperties::ReadStyle
- audioPropertiesStyle = AudioProperties::Average);
-
- /*!
- * Contruct 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);
-
- /*!
- * Make a copy of \a ref.
- */
- FileRef(const FileRef &ref);
-
- /*!
- * Destroys this FileRef instance.
- */
- virtual ~FileRef();
-
- /*!
- * Returns a pointer to represented file's tag.
- *
- * \warning This pointer will become invalid when this FileRef and all
- * copies pass out of scope.
- *
- * \warning Do not cast it to any subclasses of \class Tag.
- * Use tag returning methods of appropriate subclasses of \class File instead.
- *
- * \see File::tag()
- */
- Tag *tag() const;
-
- /*!
- * Returns the audio properties for this FileRef. If no audio properties
- * were read then this will returns a null pointer.
- */
- AudioProperties *audioProperties() const;
-
- /*!
- * Returns a pointer to the file represented by this handler class.
- *
- * As a general rule this call should be avoided since if you need to work
- * with file objects directly, you are probably better served instantiating
- * the File subclasses (i.e. MPEG::File) manually and working with their APIs.
- *
- * This handle exists to provide a minimal, generic and value-based
- * wrapper around a File. Accessing the file directly generally indicates
- * a moving away from this simplicity (and into things beyond the scope of
- * FileRef).
- *
- * \warning This pointer will become invalid when this FileRef and all
- * copies pass out of scope.
- */
- File *file() const;
-
- /*!
- * Saves the file. Returns true on success.
- */
- bool save();
-
- /*!
- * Adds a FileTypeResolver to the list of those used by TagLib. Each
- * additional FileTypeResolver is added to the front of a list of resolvers
- * that are tried. If the FileTypeResolver returns zero the next resolver
- * 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
- * assignment).
- *
- * \see FileTypeResolver
- */
- static const FileTypeResolver *addFileTypeResolver(const FileTypeResolver *resolver);
-
- /*!
- * As is mentioned elsewhere in this class's documentation, the default file
- * type resolution code provided by TagLib only works by comparing file
- * extensions.
- *
- * This method returns the list of file extensions that are used by default.
- *
- * The extensions are all returned in lowercase, though the comparison used
- * 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
- * mime-type resolution system, but is just here for reference.
- *
- * \see FileTypeResolver
- */
- static StringList defaultFileExtensions();
-
- /*!
- * Returns true if the file (and as such other pointers) are null.
- */
- bool isNull() const;
-
- /*!
- * Assign the file pointed to by \a ref to this FileRef.
- */
- FileRef &operator=(const FileRef &ref);
-
- /*!
- * Returns true if this FileRef and \a ref point to the same File object.
- */
- bool operator==(const FileRef &ref) const;
-
- /*!
- * Returns true if this FileRef and \a ref do not point to the same File
- * object.
- */
- bool operator!=(const FileRef &ref) const;
-
- /*!
- * A simple implementation of file type guessing. If \a readAudioProperties
- * is true then the audio properties will be read using
- * \a audioPropertiesStyle. If \a readAudioProperties is false then
- * \a audioPropertiesStyle will be ignored.
- *
- * \note You generally shouldn't use this method, but instead the constructor
- * directly.
- *
- * \deprecated
- */
- static File *create(FileName fileName,
- bool readAudioProperties = true,
- AudioProperties::ReadStyle audioPropertiesStyle = AudioProperties::Average);
-
-
- private:
- class FileRefPrivate;
- FileRefPrivate *d;
- };
-
-} // namespace TagLib
-
-#endif
diff --git a/src/mytaglib/flacfile.h b/src/mytaglib/flacfile.h
deleted file mode 100644
index 64e67bc..0000000
--- a/src/mytaglib/flacfile.h
+++ /dev/null
@@ -1,222 +0,0 @@
-/***************************************************************************
- copyright : (C) 2003 by Allan Sandfeld Jensen
- email : kde@carewolf.org
- ***************************************************************************/
-
-/***************************************************************************
- * This library is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU Lesser General Public License version *
- * 2.1 as published by the Free Software Foundation. *
- * *
- * This library is distributed in the hope that it will be useful, but *
- * WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this library; if not, write to the Free Software *
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA *
- * 02110-1301 USA *
- * *
- * Alternatively, this file is available under the Mozilla Public *
- * License Version 1.1. You may obtain a copy of the License at *
- * http://www.mozilla.org/MPL/ *
- ***************************************************************************/
-
-#ifndef TAGLIB_FLACFILE_H
-#define TAGLIB_FLACFILE_H
-
-#include "taglib_export.h"
-#include "tfile.h"
-#include "tlist.h"
-
-#include "flacpicture.h"
-#include "flacproperties.h"
-
-namespace TagLib {
-
- class Tag;
-
- namespace ID3v2 { class FrameFactory; class Tag; }
- namespace ID3v1 { class Tag; }
- namespace Ogg { class XiphComment; }
-
- //! An implementation of FLAC metadata
-
- /*!
- * 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.
- *
- * This supports ID3v1, ID3v2 and Xiph style comments as well as reading stream
- * properties from the file.
- */
-
- namespace FLAC {
-
- //! An implementation of TagLib::File with FLAC specific methods
-
- /*!
- * This implements and provides an interface for FLAC files to the
- * TagLib::Tag and TagLib::AudioProperties interfaces by way of implementing
- * the abstract TagLib::File API as well as providing some additional
- * information specific to FLAC files.
- */
-
- class TAGLIB_EXPORT File : public TagLib::File
- {
- public:
- /*!
- * Contructs a FLAC file from \a file. If \a readProperties is true the
- * file's audio properties will also be read using \a propertiesStyle. If
- * false, \a propertiesStyle is ignored.
- *
- * \deprecated This constructor will be dropped in favor of the one below
- * in a future version.
- */
- File(FileName file, bool readProperties = true,
- Properties::ReadStyle propertiesStyle = Properties::Average);
-
- /*!
- * Contructs a FLAC file from \a file. If \a readProperties is true the
- * file's audio properties will also be read using \a propertiesStyle. If
- * false, \a propertiesStyle is ignored.
- *
- * If this file contains and ID3v2 tag the frames will be created using
- * \a frameFactory.
- */
- // BIC: merge with the above constructor
- File(FileName file, ID3v2::FrameFactory *frameFactory,
- bool readProperties = true,
- Properties::ReadStyle propertiesStyle = Properties::Average);
-
- /*!
- * Destroys this instance of the File.
- */
- virtual ~File();
-
- /*!
- * Returns the Tag for this file. This will be a union of XiphComment,
- * ID3v1 and ID3v2 tags.
- *
- * \see ID3v2Tag()
- * \see ID3v1Tag()
- * \see XiphComment()
- */
- virtual TagLib::Tag *tag() const;
-
- /*!
- * Returns the FLAC::Properties for this file. If no audio properties
- * were read then this will return a null pointer.
- */
- virtual Properties *audioProperties() const;
-
- /*!
- * Save the file. This will primarily save the XiphComment, but
- * will also keep any old ID3-tags up to date. If the file
- * has no XiphComment, one will be constructed from the ID3-tags.
- *
- * This returns true if the save was successful.
- */
- virtual bool save();
-
- /*!
- * Returns a pointer to the ID3v2 tag of the file.
- *
- * If \a create is false (the default) this will return a null pointer
- * if there is no valid ID3v2 tag. If \a create is true it will create
- * an ID3v2 tag if one does not exist.
- *
- * \note The Tag is still owned by the FLAC::File and should not be
- * deleted by the user. It will be deleted when the file (object) is
- * destroyed.
- */
- ID3v2::Tag *ID3v2Tag(bool create = false);
-
- /*!
- * Returns a pointer to the ID3v1 tag of the file.
- *
- * If \a create is false (the default) this will return a null pointer
- * if there is no valid ID3v1 tag. If \a create is true it will create
- * an ID3v1 tag if one does not exist.
- *
- * \note The Tag is still owned by the FLAC::File and should not be
- * deleted by the user. It will be deleted when the file (object) is
- * destroyed.
- */
- ID3v1::Tag *ID3v1Tag(bool create = false);
-
- /*!
- * Returns a pointer to the XiphComment for the file.
- *
- * If \a create is false (the default) this will return a null pointer
- * if there is no valid XiphComment. If \a create is true it will create
- * a XiphComment if one does not exist.
- *
- * \note The Tag is still owned by the FLAC::File and should not be
- * deleted by the user. It will be deleted when the file (object) is
- * destroyed.
- */
- Ogg::XiphComment *xiphComment(bool create = false);
-
- /*!
- * Set the ID3v2::FrameFactory to something other than the default. This
- * can be used to specify the way that ID3v2 frames will be interpreted
- * when
- *
- * \see ID3v2FrameFactory
- */
- void setID3v2FrameFactory(const ID3v2::FrameFactory *factory);
-
- /*!
- * Returns the block of data used by FLAC::Properties for parsing the
- * stream properties.
- *
- * \deprecated This method will not be public in a future release.
- */
- ByteVector streamInfoData(); // BIC: remove
-
- /*!
- * Returns the length of the audio-stream, used by FLAC::Properties for
- * calculating the bitrate.
- *
- * \deprecated This method will not be public in a future release.
- */
- long streamLength(); // BIC: remove
-
- /*!
- * Returns a list of pictures attached to the FLAC file.
- */
- List