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
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055 #if !defined(ALIZE_FeatureFileReader_h)
00056 #define ALIZE_FeatureFileReader_h
00057
00058 #if defined(_WIN32)
00059 #if defined(ALIZE_EXPORTS)
00060 #define ALIZE_API __declspec(dllexport)
00061 #else
00062 #define ALIZE_API __declspec(dllimport)
00063 #endif
00064 #else
00065 #define ALIZE_API
00066 #endif
00067
00068 #include "FeatureFileReaderAbstract.h"
00069 #include "RealVector.h"
00070
00071 namespace alize
00072 {
00073 class LabelServer;
00074 class XLine;
00075 class Config;
00076
00083
00084 class ALIZE_API FeatureFileReader : public FeatureFileReaderAbstract
00085 {
00086 public :
00087
00088 friend class TestFeatureFileReader;
00089
00093 FeatureFileReader(const Config& c);
00094
00104 FeatureFileReader(const FileName& f, const Config& c,
00105 LabelServer* ls = NULL, BigEndian be = BIGENDIAN_AUTO,
00106 BufferUsage = BUFFER_AUTO, unsigned long bufferSize = 0,
00107 HistoricUsage = ALL_FEATURES, unsigned long historicSize = 0);
00108
00120 explicit FeatureFileReader(const XLine& l, const Config&,
00121 LabelServer* ls = NULL, BigEndian be = BIGENDIAN_AUTO,
00122 BufferUsage = BUFFER_AUTO, unsigned long bufferSize = 0,
00123 HistoricUsage = ALL_FEATURES, unsigned long historicSize = 0);
00126 static FeatureFileReader& create(const Config& c);
00127
00130 static FeatureFileReader& create(const FileName& f, const Config& c,
00131 LabelServer* ls = NULL, BigEndian be = BIGENDIAN_AUTO,
00132 BufferUsage = BUFFER_AUTO, unsigned long bufferSize = 0,
00133 HistoricUsage = ALL_FEATURES, unsigned long historicSize = 0);
00134
00137 static FeatureFileReader& create(const XLine& l, const Config& c,
00138 LabelServer* ls = NULL, BigEndian be = BIGENDIAN_AUTO,
00139 BufferUsage = BUFFER_AUTO, unsigned long bufferSize = 0,
00140 HistoricUsage = ALL_FEATURES, unsigned long historicSize = 0);
00141
00142 virtual ~FeatureFileReader();
00143
00144 virtual void seekFeature(unsigned long featureNbr,
00145 const String& srcName = "");
00146 virtual bool readFeature(Feature& f, unsigned long s = 1);
00147
00148 virtual bool writeFeature(const Feature& f, unsigned long step = 1);
00149
00155 virtual unsigned long getFeatureCount();
00156
00162 virtual unsigned long getVectSize();
00163
00169 virtual const FeatureFlags& getFeatureFlags();
00170
00176 virtual real_t getSampleRate();
00177
00181 virtual unsigned long getSourceCount();
00182
00187 virtual unsigned long getFeatureCountOfASource(unsigned long srcIdx);
00188
00193 virtual unsigned long getFeatureCountOfASource(const String& src);
00194
00200 virtual unsigned long getFirstFeatureIndexOfASource(unsigned long srcIdx);
00201
00207 virtual unsigned long getFirstFeatureIndexOfASource(const String& srcName);
00208
00214 virtual const String& getNameOfASource(unsigned long srcIdx);
00215
00218 virtual void close();
00219
00220 virtual void setExternalBufferToUse(FloatVector& v);
00221 static FeatureFileReaderAbstract& createStream(const Config& c);
00222 static FeatureFileReaderAbstract& createStream(const FileName& f,
00223 const Config& c,
00224 LabelServer* ls,
00225 BigEndian be,
00226 BufferUsage b,
00227 unsigned long bufferSize,
00228 HistoricUsage,
00229 unsigned long historicSize);
00230 static FeatureFileReaderAbstract& createStream(const XLine& l,
00231 const Config& c,
00232 LabelServer* p,
00233 BigEndian be,
00234 BufferUsage b,
00235 unsigned long bufferSize,
00236 HistoricUsage,
00237 unsigned long historicSize);
00238
00239 virtual String getClassName() const;
00240
00241 private :
00242
00243 FeatureFileReaderAbstract* _pFeatureReader;
00244
00245 bool operator==(const FeatureFileReader&)
00246 const;
00247 bool operator!=(const FeatureFileReader&)
00248 const;
00249 const FeatureFileReader& operator=(
00250 const FeatureFileReader&);
00251 FeatureFileReader(
00252 const FeatureFileReader&);
00253 };
00254
00255 }
00256
00257 #endif // !defined(ALIZE_FeatureFileReader_h)
00258