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
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_FeatureMultipleFileReader_h)
00056 #define ALIZE_FeatureMultipleFileReader_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 "XLine.h"
00070 #include "FeatureFileList.h"
00071 #include "FeatureFileReader.h"
00072 #include "RealVector.h"
00073
00074 namespace alize
00075 {
00076 class Feature;
00077 class LabelServer;
00078 class Config;
00079
00088 class ALIZE_API FeatureMultipleFileReader : public FeatureFileReaderAbstract
00089 {
00090 friend class TestFeatureMultipleFileReader;
00091
00092 public :
00093
00105 explicit FeatureMultipleFileReader(const XLine& l,
00106 const Config&, LabelServer* ls = NULL,
00107 BigEndian be = BIGENDIAN_AUTO, BufferUsage b = BUFFER_AUTO,
00108 unsigned long bufferSize = 0,
00109 HistoricUsage = ALL_FEATURES, unsigned long historicSize = 0);
00110
00120 static FeatureMultipleFileReader& create(const XLine& l,
00121 const Config& c, LabelServer* ls = NULL, BigEndian = BIGENDIAN_AUTO,
00122 BufferUsage = BUFFER_AUTO, unsigned long bufferSize = 0,
00123 HistoricUsage = ALL_FEATURES, unsigned long historicSize = 0);
00124
00125 virtual ~FeatureMultipleFileReader();
00126
00127 virtual bool readFeature(Feature& f, unsigned long step = 1);
00128
00129 virtual bool writeFeature(const Feature& f, unsigned long step = 1);
00130
00137 virtual unsigned long getFeatureCount();
00138
00146 virtual unsigned long getVectSize();
00147
00155 virtual const FeatureFlags& getFeatureFlags();
00156
00164 virtual real_t getSampleRate();
00165
00166
00169 virtual void close();
00170
00174 virtual unsigned long getSourceCount();
00175
00180 virtual unsigned long getFeatureCountOfASource(unsigned long srcIdx);
00181
00186 virtual unsigned long getFeatureCountOfASource(const FileName& f);
00187
00192 virtual unsigned long getFirstFeatureIndexOfASource(unsigned long srcIdx);
00193
00198 virtual unsigned long getFirstFeatureIndexOfASource(const FileName& f);
00199
00204 virtual const String& getNameOfASource(unsigned long srcIdx);
00205
00206 virtual String getClassName() const;
00207 virtual String toString() const;
00208
00209
00210 private :
00211
00212 unsigned long _fileCounter;
00213 const FeatureFileList _fileList;
00214 BigEndian _bigEndian;
00215 unsigned long _fileCount;
00216 ULongVector _readerStack;
00217 ULongVector _memStack;
00218 FeatureFileReader** _readerPtrVect;
00219 FloatVector** _bufferPtrVect;
00220 unsigned long _memUsed;
00221 bool _featuresAreWritableDefined;
00222 unsigned long _lastFeatureIndex;
00223
00224
00225 FeatureFileReader** createReaderPtrVect();
00226 FloatVector** createBufferPtrVect();
00227 FeatureFileReader& getReader(unsigned long idx);
00228 bool rw(bool, Feature&, unsigned long);
00229 bool featureWantedIsInHistoric(unsigned long n) const;
00230
00231 bool operator==(const FeatureMultipleFileReader&)
00232 const;
00233 bool operator!=(const FeatureMultipleFileReader&)
00234 const;
00235 const FeatureMultipleFileReader& operator=(
00236 const FeatureMultipleFileReader&);
00237 FeatureMultipleFileReader(
00238 const FeatureMultipleFileReader&);
00239 };
00240
00241 }
00242
00243 #endif // !defined(ALIZE_FeatureMultipleFileReader_h)
00244