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_OGGFLACFILE_H
00027 #define TAGLIB_OGGFLACFILE_H
00028
00029 #include "taglib_export.h"
00030 #include "oggfile.h"
00031 #include "xiphcomment.h"
00032
00033 #include "flacproperties.h"
00034
00035 namespace TagLib {
00036
00037 class Tag;
00038
00039 namespace Ogg {
00040
00042
00050 namespace FLAC {
00051
00052 using TagLib::FLAC::Properties;
00053
00055
00063 class TAGLIB_EXPORT File : public Ogg::File
00064 {
00065 public:
00072 File(FileName file, bool readProperties = true,
00073 Properties::ReadStyle propertiesStyle = Properties::Average);
00074
00084 File(IOStream *stream, bool readProperties = true,
00085 Properties::ReadStyle propertiesStyle = Properties::Average);
00086
00090 virtual ~File();
00091
00105 virtual XiphComment *tag() const;
00106
00111 virtual Properties *audioProperties() const;
00112
00113
00118 PropertyMap properties() const;
00119
00124 PropertyMap setProperties(const PropertyMap &);
00125
00126
00134 virtual bool save();
00135
00140 long streamLength();
00141
00147 bool hasXiphComment() const;
00148
00149 private:
00150 File(const File &);
00151 File &operator=(const File &);
00152
00153 void read(bool readProperties, Properties::ReadStyle propertiesStyle);
00154 void scan();
00155 ByteVector streamInfoData();
00156 ByteVector xiphCommentData();
00157
00158 class FilePrivate;
00159 FilePrivate *d;
00160 };
00161 }
00162 }
00163 }
00164
00165 #endif