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
00058 File(FileName file, bool readProperties = true, Properties::ReadStyle propertiesStyle = Properties::Average);
00059
00063 virtual ~File();
00064
00075 virtual Tag *tag() const;
00076
00080 virtual Properties *audioProperties() const;
00081
00087 virtual bool save();
00088
00089 private:
00090
00091 int readBYTE(bool *ok = 0);
00092 int readWORD(bool *ok = 0);
00093 unsigned int readDWORD(bool *ok = 0);
00094 long long readQWORD(bool *ok = 0);
00095 static ByteVector renderString(const String &str, bool includeLength = false);
00096 String readString(int len);
00097 void read(bool readProperties, Properties::ReadStyle propertiesStyle);
00098
00099 friend class Attribute;
00100 friend class Picture;
00101
00102 class BaseObject;
00103 class UnknownObject;
00104 class FilePropertiesObject;
00105 class StreamPropertiesObject;
00106 class ContentDescriptionObject;
00107 class ExtendedContentDescriptionObject;
00108 class HeaderExtensionObject;
00109 class MetadataObject;
00110 class MetadataLibraryObject;
00111
00112 class FilePrivate;
00113 FilePrivate *d;
00114 };
00115
00116 }
00117
00118 }
00119
00120 #endif