Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef TAGLIB_ASFFILE_H
00027 #define TAGLIB_ASFFILE_H
00028
00029 #include "tag.h"
00030 #include "tfile.h"
00031 #include "taglib_export.h"
00032 #include "asfproperties.h"
00033 #include "asftag.h"
00034
00035 namespace TagLib {
00036
00038 namespace ASF {
00039
00046 class TAGLIB_EXPORT File : public TagLib::File
00047 {
00048 public:
00049
00061 File(FileName file, bool readProperties = true, Properties::ReadStyle propertiesStyle = Properties::Average);
00062
00074 File(IOStream *stream, bool readProperties = true, Properties::ReadStyle propertiesStyle = Properties::Average);
00075
00079 virtual ~File();
00080
00091 virtual Tag *tag() const;
00092
00096 virtual Properties *audioProperties() const;
00097
00103 virtual bool save();
00104
00105 private:
00106
00107 int readBYTE(bool *ok = 0);
00108 int readWORD(bool *ok = 0);
00109 unsigned int readDWORD(bool *ok = 0);
00110 long long readQWORD(bool *ok = 0);
00111 static ByteVector renderString(const String &str, bool includeLength = false);
00112 String readString(int len);
00113 void read(bool readProperties, Properties::ReadStyle propertiesStyle);
00114
00115 friend class Attribute;
00116 friend class Picture;
00117
00118 class BaseObject;
00119 class UnknownObject;
00120 class FilePropertiesObject;
00121 class StreamPropertiesObject;
00122 class ContentDescriptionObject;
00123 class ExtendedContentDescriptionObject;
00124 class HeaderExtensionObject;
00125 class MetadataObject;
00126 class MetadataLibraryObject;
00127
00128 class FilePrivate;
00129 FilePrivate *d;
00130 };
00131
00132 }
00133
00134 }
00135
00136 #endif