Home Information Classes Download Usage Mail List Requirements Links FAQ Tutorial

# FileWrite.h

    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.