1 /***************************************************************************
2 copyright : (C) 2006 by Lukáš Lalinský
3 email : lalinsky@gmail.com
5 copyright : (C) 2002 - 2008 by Scott Wheeler
6 email : wheeler@kde.org
7 (original Vorbis implementation)
8 ***************************************************************************/
10 /***************************************************************************
11 * This library is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU Lesser General Public License version *
13 * 2.1 as published by the Free Software Foundation. *
15 * This library is distributed in the hope that it will be useful, but *
16 * WITHOUT ANY WARRANTY; without even the implied warranty of *
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
18 * Lesser General Public License for more details. *
20 * You should have received a copy of the GNU Lesser General Public *
21 * License along with this library; if not, write to the Free Software *
22 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
25 * Alternatively, this file is available under the Mozilla Public *
26 * License Version 1.1. You may obtain a copy of the License at *
27 * http://www.mozilla.org/MPL/ *
28 ***************************************************************************/
30 #ifndef TAGLIB_SPEEXFILE_H
31 #define TAGLIB_SPEEXFILE_H
34 #include "xiphcomment.h"
36 #include "speexproperties.h"
42 //! A namespace containing classes for Speex metadata
46 //! An implementation of Ogg::File with Speex specific methods
49 * This is the central class in the Ogg Speex metadata processing collection
50 * of classes. It's built upon Ogg::File which handles processing of the Ogg
51 * logical bitstream and breaking it down into pages which are handled by
52 * the codec implementations, in this case Speex specifically.
55 class TAGLIB_EXPORT File : public Ogg::File
59 * Contructs a Speex file from \a file. If \a readProperties is true the
60 * file's audio properties will also be read using \a propertiesStyle. If
61 * false, \a propertiesStyle is ignored.
63 File(FileName file, bool readProperties = true,
64 Properties::ReadStyle propertiesStyle = Properties::Average);
67 * Destroys this instance of the File.
72 * Returns the XiphComment for this file. XiphComment implements the tag
73 * interface, so this serves as the reimplementation of
74 * TagLib::File::tag().
76 virtual Ogg::XiphComment *tag() const;
79 * Returns the Speex::Properties for this file. If no audio properties
80 * were read then this will return a null pointer.
82 virtual Properties *audioProperties() const;
88 File &operator=(const File &);
90 void read(bool readProperties, Properties::ReadStyle propertiesStyle);