Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Class Members | File Members

FileWvIn.h

Go to the documentation of this file.
00001 /***************************************************/
00032 /***************************************************/
00033 
00034 #ifndef STK_FILEWVIN_H
00035 #define STK_FILEWVIN_H
00036 
00037 #include "WvIn.h"
00038 #include "FileRead.h"
00039 #include "qthread.h"
00040 #include "qobject.h"
00041 #include "qmutex.h"
00042 class FileWvIn : public QObject, public QThread, public WvIn
00043 {
00044 Q_OBJECT 
00045 public:
00047   FileWvIn( unsigned long chunkThreshold = 1000000, unsigned long chunkSize = 7000 );
00048 
00050 
00054   FileWvIn( std::string fileName, bool raw = false, bool doNormalize = true,
00055             unsigned long chunkThreshold = 1000000, unsigned long chunkSize = 7000 );
00056 
00057   FileWvIn( bool loop, std::string fileName, bool raw = false, bool doNormalize = true,
00058             unsigned long chunkThreshold = 1000000, unsigned long chunkSize = 7000 );
00059 
00061   virtual ~FileWvIn();
00062 
00064 
00073   void openFile( std::string fileName, bool raw = false, bool doNormalize = true );
00074 
00076   void closeFile( void );
00077 
00079   void reset( void );
00080 
00082 
00086   void normalize( void );
00087 
00089 
00093   void normalize( StkFloat peak );
00094 
00096   unsigned long getSize( void ) const { return data_.frames(); };
00097 
00099 
00104   StkFloat getFileRate( void ) const { return data_.dataRate(); };
00105 
00107   bool isFinished( void ) const { return finished_; };
00108 
00110 
00113   void setRate( StkFloat rate );
00114 
00116 
00119   virtual void addTime( StkFloat time );
00120 
00122 
00128   void setInterpolate( bool doInterpolate ) { interpolate_ = doInterpolate; };
00129 
00130   StkFloat lastOut( void );
00131   
00132   // cc added...
00133   void loadFrames( void );
00134         virtual void run ();
00135         bool _loop;     
00136         bool file_loop; 
00137   double _gain;
00138   void setLoop(bool l) {file_loop = l;};
00139   void setGain( double g) {_gain = g;};
00140   bool data1old;        
00141   bool data2old;
00142         QMutex mutex;
00143     StkFrames data1;
00144   StkFrames data2;
00145 
00146  int ptr;
00147         public slots:
00148         void go ();
00149         void stop ();
00150         void join ();   
00151 
00152 protected:
00153 
00154   virtual void computeFrame( void );
00155 
00156   FileRead file_;
00157   bool finished_;
00158   bool interpolate_;
00159   bool normalizing_;
00160   bool chunking_;
00161   StkFloat time_;
00162   StkFloat rate_;
00163   unsigned long chunkThreshold_;
00164   unsigned long chunkSize_;
00165   long chunkPointer_;
00166 
00167 };
00168 
00169 #endif

Generated on Thu Aug 3 16:14:47 2006 by  doxygen 1.4.4