Home   Information   Classes   Download   Usage   Mail List   Requirements   Links   FAQ   Tutorial


FileLoop.h
1 #ifndef STK_FILELOOP_H
2 #define STK_FILELOOP_H
3 
4 #include "FileWvIn.h"
5 
6 namespace stk {
7 
8 /***************************************************/
24 /***************************************************/
25 
26 class FileLoop : protected FileWvIn
27 {
28  public:
30  FileLoop( unsigned long chunkThreshold = 1000000, unsigned long chunkSize = 1024 );
31 
33  FileLoop( std::string fileName, bool raw = false, bool doNormalize = true,
34  unsigned long chunkThreshold = 1000000, unsigned long chunkSize = 1024,
35  bool doInt2FloatScaling = true );
36 
38  ~FileLoop( void );
39 
41 
51  void openFile( std::string fileName, bool raw = false, bool doNormalize = true, bool doInt2FloatScaling = true );
52 
54  void closeFile( void ) { FileWvIn::closeFile(); };
55 
57  void reset( void ) { FileWvIn::reset(); };
58 
60  unsigned int channelsOut( void ) const { return data_.channels(); };
61 
63 
67  void normalize( void ) { FileWvIn::normalize( 1.0 ); };
68 
70 
74  void normalize( StkFloat peak ) { FileWvIn::normalize( peak ); };
75 
77  //unsigned long getSize( void ) const { return data_.frames(); };
78  unsigned long getSize( void ) const { return fileSize_; };
79 
81 
86  StkFloat getFileRate( void ) const { return data_.dataRate(); };
87 
89 
92  void setRate( StkFloat rate );
93 
95 
101  void setFrequency( StkFloat frequency ) { this->setRate( fileSize_ * frequency / Stk::sampleRate() ); };
102 
104  void addTime( StkFloat time );
105 
107 
112  void addPhase( StkFloat angle );
113 
115 
120  void addPhaseOffset( StkFloat angle );
121 
123 
132  StkFloat lastOut( unsigned int channel = 0 ) { return FileWvIn::lastOut( channel ); };
133 
135 
144  StkFloat tick( unsigned int channel = 0 );
145 
147 
154  virtual StkFrames& tick( StkFrames& frames,unsigned int channel = 0 );
155 
156  protected:
157 
158  StkFrames firstFrame_;
159  StkFloat phaseOffset_;
160 
161 };
162 
163 } // stk namespace
164 
165 #endif

The Synthesis ToolKit in C++ (STK)
©1995--2019 Perry R. Cook and Gary P. Scavone. All Rights Reserved.