1 /**************************************************************************
2 copyright : (C) 2005-2007 by Lukáš Lalinský
3 email : lalinsky@gmail.com
4 **************************************************************************/
6 /***************************************************************************
7 * This library is free software; you can redistribute it and/or modify *
8 * it under the terms of the GNU Lesser General Public License version *
9 * 2.1 as published by the Free Software Foundation. *
11 * This library is distributed in the hope that it will be useful, but *
12 * WITHOUT ANY WARRANTY; without even the implied warranty of *
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
14 * Lesser General Public License for more details. *
16 * You should have received a copy of the GNU Lesser General Public *
17 * License along with this library; if not, write to the Free Software *
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
21 * Alternatively, this file is available under the Mozilla Public *
22 * License Version 1.1. You may obtain a copy of the License at *
23 * http://www.mozilla.org/MPL/ *
24 ***************************************************************************/
26 #ifndef TAGLIB_ASFFILE_H
27 #define TAGLIB_ASFFILE_H
31 #include "taglib_export.h"
32 #include "asfproperties.h"
37 //! An implementation of ASF (WMA) metadata
41 * This implements and provides an interface for ASF files to the
42 * TagLib::Tag and TagLib::AudioProperties interfaces by way of implementing
43 * the abstract TagLib::File API as well as providing some additional
44 * information specific to ASF files.
46 class TAGLIB_EXPORT File : public TagLib::File
51 * Contructs an ASF file from \a file. If \a readProperties is true the
52 * file's audio properties will also be read using \a propertiesStyle. If
53 * false, \a propertiesStyle is ignored.
55 * \note In the current implementation, both \a readProperties and
56 * \a propertiesStyle are ignored.
58 File(FileName file, bool readProperties = true, Properties::ReadStyle propertiesStyle = Properties::Average);
61 * Destroys this instance of the File.
66 * Returns a pointer to the ASF tag of the file.
68 * ASF::Tag implements the tag interface, so this serves as the
69 * reimplementation of TagLib::File::tag().
71 * \note The Tag <b>is still</b> owned by the ASF::File and should not be
72 * deleted by the user. It will be deleted when the file (object) is
75 virtual Tag *tag() const;
78 * Returns the ASF audio properties for this file.
80 virtual Properties *audioProperties() const;
85 * This returns true if the save was successful.
93 unsigned int readDWORD();
94 long long readQWORD();
95 static ByteVector renderString(const String &str, bool includeLength = false);
96 String readString(int len);
97 void read(bool readProperties, Properties::ReadStyle propertiesStyle);
99 friend class Attribute;
103 class FilePropertiesObject;
104 class StreamPropertiesObject;
105 class ContentDescriptionObject;
106 class ExtendedContentDescriptionObject;
107 class HeaderExtensionObject;
108 class MetadataObject;
109 class MetadataLibraryObject;