Home Information Classes Download Usage Mail List Requirements Links FAQ Tutorial
00001 #ifndef STK_FILEREAD_H 00002 #define STK_FILEREAD_H 00003 00004 #include "Stk.h" 00005 00006 namespace stk { 00007 00008 /***************************************************/ 00037 /***************************************************/ 00038 00039 class FileRead : public Stk 00040 { 00041 public: 00043 FileRead( void ); 00044 00046 00052 FileRead( std::string fileName, bool typeRaw = false, unsigned int nChannels = 1, 00053 StkFormat format = STK_SINT16, StkFloat rate = 22050.0 ); 00054 00056 ~FileRead( void ); 00057 00059 00065 void open( std::string fileName, bool typeRaw = false, unsigned int nChannels = 1, 00066 StkFormat format = STK_SINT16, StkFloat rate = 22050.0 ); 00067 00069 void close( void ); 00070 00072 bool isOpen( void ); 00073 00075 unsigned long fileSize( void ) const { return fileSize_; }; 00076 00078 unsigned int channels( void ) const { return channels_; }; 00079 00081 00086 StkFloat fileRate( void ) const { return fileRate_; }; 00087 00089 00101 void read( StkFrames& buffer, unsigned long startFrame = 0, bool doNormalize = true ); 00102 00103 protected: 00104 00105 // Get STK RAW file information. 00106 bool getRawInfo( const char *fileName, unsigned int nChannels, 00107 StkFormat format, StkFloat rate ); 00108 00109 // Get WAV file header information. 00110 bool getWavInfo( const char *fileName ); 00111 00112 // Get SND (AU) file header information. 00113 bool getSndInfo( const char *fileName ); 00114 00115 // Get AIFF file header information. 00116 bool getAifInfo( const char *fileName ); 00117 00118 // Get MAT-file header information. 00119 bool getMatInfo( const char *fileName ); 00120 00121 FILE *fd_; 00122 bool byteswap_; 00123 bool wavFile_; 00124 unsigned long fileSize_; 00125 unsigned long dataOffset_; 00126 unsigned int channels_; 00127 StkFormat dataType_; 00128 StkFloat fileRate_; 00129 }; 00130 00131 } // stk namespace 00132 00133 #endif
The Synthesis ToolKit in C++ (STK) |
©1995-2010 Perry R. Cook and Gary P. Scavone. All Rights Reserved. |