Home Information Classes Download Usage Mail List Requirements Links FAQ Tutorial
00001 /***************************************************/ 00032 /***************************************************/ 00033 00034 #ifndef STK_FILEWVIN_H 00035 #define STK_FILEWVIN_H 00036 00037 #include "WvIn.h" 00038 #include "FileRead.h" 00039 00040 class FileWvIn : public WvIn 00041 { 00042 public: 00044 FileWvIn( unsigned long chunkThreshold = 1000000, unsigned long chunkSize = 1024 ); 00045 00047 00051 FileWvIn( std::string fileName, bool raw = false, bool doNormalize = true, 00052 unsigned long chunkThreshold = 1000000, unsigned long chunkSize = 1024 ); 00053 00055 virtual ~FileWvIn(); 00056 00058 00067 void openFile( std::string fileName, bool raw = false, bool doNormalize = true ); 00068 00070 void closeFile( void ); 00071 00073 void reset( void ); 00074 00076 00080 void normalize( void ); 00081 00083 00087 void normalize( StkFloat peak ); 00088 00090 unsigned long getSize( void ) const { return data_.frames(); }; 00091 00093 00098 StkFloat getFileRate( void ) const { return data_.dataRate(); }; 00099 00101 bool isFinished( void ) const { return finished_; }; 00102 00104 00107 void setRate( StkFloat rate ); 00108 00110 00113 virtual void addTime( StkFloat time ); 00114 00116 00122 void setInterpolate( bool doInterpolate ) { interpolate_ = doInterpolate; }; 00123 00124 StkFloat lastOut( void ) const; 00125 00126 protected: 00127 00128 virtual void computeFrame( void ); 00129 virtual void sampleRateChanged( StkFloat newRate, StkFloat oldRate ); 00130 00131 FileRead file_; 00132 bool finished_; 00133 bool interpolate_; 00134 bool normalizing_; 00135 bool chunking_; 00136 StkFloat time_; 00137 StkFloat rate_; 00138 unsigned long chunkThreshold_; 00139 unsigned long chunkSize_; 00140 long chunkPointer_; 00141 00142 }; 00143 00144 #endif
The Synthesis ToolKit in C++ (STK) |
©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved. |