00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00030 #ifndef _AFLIBSOXFILE_H
00031 #define _AFLIBSOXFILE_H
00032
00033 #include <map>
00034 #include <list>
00035
00036 #include "aflibFile.h"
00037 #include "st.h"
00038
00039 class aflibFileItem;
00040 class aflibSoxFile : public aflibFile {
00041
00042 public:
00043
00044 aflibSoxFile();
00045
00046 ~aflibSoxFile();
00047
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 isChannelsSupported(int& channels);
00080
00081
00082 bool
00083 getItem(
00084 const char* item,
00085 void* value);
00086
00087 private:
00088
00089 static
00090 int filetype(int fd);
00091
00092
00093
00094
00095
00096
00097 static void
00098 configToFormat(
00099 const aflibConfig& cfg,
00100 ft_t format
00101 );
00102 static void
00103 formatToConfig(
00104 aflibConfig& cfg,
00105 const ft_t format
00106 );
00107
00108 void
00109 checkformat(ft_t format){
00110 st_checkformat(format);
00111 };
00112
00113
00114 struct st_soundstream _st_format;
00115 bool _write;
00116 LONG _position;
00117
00118 };
00119
00120
00121 #endif