Home Information Classes Download Usage Mail List Requirements Links FAQ Tutorial
00001 #ifndef STK_FILEWRITE_H 00002 #define STK_FILEWRITE_H 00003 00004 #include "Stk.h" 00005 00006 namespace stk { 00007 00008 /***************************************************/ 00029 /***************************************************/ 00030 00031 class FileWrite : public Stk 00032 { 00033 public: 00034 00035 typedef unsigned long FILE_TYPE; 00036 00037 static const FILE_TYPE FILE_RAW; 00038 static const FILE_TYPE FILE_WAV; 00039 static const FILE_TYPE FILE_SND; 00040 static const FILE_TYPE FILE_AIF; 00041 static const FILE_TYPE FILE_MAT; 00043 00044 FileWrite( void ); 00045 00047 00050 FileWrite( std::string fileName, unsigned int nChannels = 1, FILE_TYPE type = FILE_WAV, Stk::StkFormat format = STK_SINT16 ); 00051 00053 virtual ~FileWrite(); 00054 00056 00059 void open( std::string fileName, unsigned int nChannels = 1, 00060 FileWrite::FILE_TYPE type = FILE_WAV, Stk::StkFormat format = STK_SINT16 ); 00061 00063 void close( void ); 00064 00066 bool isOpen( void ); 00067 00069 00074 void write( StkFrames& buffer ); 00075 00076 protected: 00077 00078 // Write STK RAW file header. 00079 bool setRawFile( const char *fileName ); 00080 00081 // Write WAV file header. 00082 bool setWavFile( const char *fileName ); 00083 00084 // Close WAV file, updating the header. 00085 void closeWavFile( void ); 00086 00087 // Write SND (AU) file header. 00088 bool setSndFile( const char *fileName ); 00089 00090 // Close SND file, updating the header. 00091 void closeSndFile( void ); 00092 00093 // Write AIFF file header. 00094 bool setAifFile( const char *fileName ); 00095 00096 // Close AIFF file, updating the header. 00097 void closeAifFile( void ); 00098 00099 // Write MAT-file header. 00100 bool setMatFile( const char *fileName ); 00101 00102 // Close MAT-file, updating the header. 00103 void closeMatFile( void ); 00104 00105 FILE *fd_; 00106 FILE_TYPE fileType_; 00107 StkFormat dataType_; 00108 unsigned int channels_; 00109 unsigned long frameCounter_; 00110 bool byteswap_; 00111 00112 }; 00113 00114 } // stk namespace 00115 00116 #endif
The Synthesis ToolKit in C++ (STK) |
©1995-2010 Perry R. Cook and Gary P. Scavone. All Rights Reserved. |