00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
#ifndef TAGLIB_FLACFILE_H
00023
#define TAGLIB_FLACFILE_H
00024
00025
#include <tfile.h>
00026
00027
#include "flacproperties.h"
00028
00029
namespace TagLib {
00030
00031
class Tag;
00032 namespace ID3v2 {
class FrameFactory; }
00033
00035
00045 namespace FLAC {
00046
00048
00056 class File :
public TagLib::
File
00057 {
00058
public:
00064
File(
const char *file,
bool readProperties =
true,
00065 Properties::ReadStyle propertiesStyle = Properties::Average);
00066
00070
virtual ~File();
00071
00076
virtual TagLib::Tag *
tag()
const;
00077
00082
virtual Properties *
audioProperties()
const;
00083
00089
virtual void save();
00090
00098
void setID3v2FrameFactory(
const ID3v2::FrameFactory *factory);
00099
00104
ByteVector streamInfoData();
00105
00110
long streamLength();
00111
00112
private:
00113
File(
const File &);
00114
File &operator=(
const File &);
00115
00116
void read(
bool readProperties, Properties::ReadStyle propertiesStyle);
00117
void scan();
00118
long findID3v2();
00119
long findID3v1();
00120
ByteVector xiphCommentData();
00121
00122
class FilePrivate;
00123 FilePrivate *d;
00124 };
00125 }
00126 }
00127
00128
#endif