00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00033 #ifndef _AFLIBMPG123FILE_H
00034 #define _AFLIBMPG123FILE_H
00035
00036 #include <string>
00037
00038 #include "aflibFile.h"
00039
00040
00041 class aflibMpg123File : public aflibFile {
00042
00043 public:
00044
00045 aflibMpg123File();
00046
00047 ~aflibMpg123File();
00048
00049 aflibStatus
00050 afopen(
00051 const char * file,
00052 aflibConfig* cfg);
00053
00054 aflibStatus
00055 afcreate(
00056 const char * file,
00057 const aflibConfig& cfg);
00058
00059 aflibStatus
00060 afread(
00061 aflibData& data,
00062 long long position = -1);
00063
00064 aflibStatus
00065 afwrite(
00066 aflibData& data,
00067 long long position = -1);
00068
00069 bool
00070 isDataSizeSupported(aflib_data_size size);
00071
00072 bool
00073 isEndianSupported(aflib_data_endian end);
00074
00075 bool
00076 isSampleRateSupported(int& rate);
00077
00078 bool
00079 setItem(const char* item, const void* value);
00080
00081 private:
00082
00083
00084 FILE* _fd;
00085 int _sample_rate;
00086 int _depth;
00087 int _channels;
00088 long _current_sample;
00089 long _last_frame;
00090 long _samples_per_frame;
00091 int _version;
00092 int _blkalign;
00093 string _mpeg_cmd;
00094 string _filename;
00095
00096 };
00097
00098
00099 #endif