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-extras_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_EXTRAS_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;