mirror of
https://github.com/thestk/stk
synced 2026-01-17 22:51:53 +00:00
Version 4.2.1
This commit is contained in:
committed by
Stephen Sinclair
parent
a6381b9d38
commit
2cbce2d8bd
87
include/FileWvOut.h
Normal file
87
include/FileWvOut.h
Normal file
@@ -0,0 +1,87 @@
|
||||
/***************************************************/
|
||||
/*! \class FileWvOut
|
||||
\brief STK audio file output class.
|
||||
|
||||
This class inherits from WvOut. It provides a "tick-level"
|
||||
interface to the FileWrite class.
|
||||
|
||||
FileWvOut writes samples to an audio file and supports
|
||||
multi-channel data. It is important to distinguish the tick()
|
||||
methods, which output single samples to all channels in a sample
|
||||
frame, from the tickFrame() methods, which take a pointer or
|
||||
reference to multi-channel sample frame data.
|
||||
|
||||
See the FileWrite class for a description of the supported audio
|
||||
file formats.
|
||||
|
||||
Currently, FileWvOut is non-interpolating and the output rate is
|
||||
always Stk::sampleRate().
|
||||
|
||||
by Perry R. Cook and Gary P. Scavone, 1995 - 2005.
|
||||
*/
|
||||
/***************************************************/
|
||||
|
||||
#ifndef STK_FILEWVOUT_H
|
||||
#define STK_FILEWVOUT_H
|
||||
|
||||
#include "WvOut.h"
|
||||
#include "FileWrite.h"
|
||||
|
||||
class FileWvOut : public WvOut
|
||||
{
|
||||
public:
|
||||
|
||||
//! Default constructor with optional output buffer size argument.
|
||||
/*!
|
||||
The output buffer size defines the number of frames that are
|
||||
accumulated between writes to disk.
|
||||
*/
|
||||
FileWvOut( unsigned int bufferFrames = 1024 );
|
||||
|
||||
//! Overloaded constructor used to specify a file name, type, and data format with this object.
|
||||
/*!
|
||||
An StkError is thrown for invalid argument values or if an error occurs when initializing the output file.
|
||||
*/
|
||||
FileWvOut( std::string fileName,
|
||||
unsigned int nChannels = 1,
|
||||
FileWrite::FILE_TYPE type = FileWrite::FILE_WAV,
|
||||
Stk::StkFormat format = STK_SINT16,
|
||||
unsigned int bufferFrames = 1024 );
|
||||
|
||||
//! Class destructor.
|
||||
virtual ~FileWvOut();
|
||||
|
||||
//! Open a new file with the specified parameters.
|
||||
/*!
|
||||
If a file was previously open, it will be closed. An StkError
|
||||
will be thrown if any of the specified arguments are invalid or a
|
||||
file error occurs during opening.
|
||||
*/
|
||||
void openFile( std::string fileName,
|
||||
unsigned int nChannels,
|
||||
FileWrite::FILE_TYPE type,
|
||||
Stk::StkFormat format );
|
||||
|
||||
//! Close a file if one is open.
|
||||
/*!
|
||||
Any data remaining in the internal buffer will be written to
|
||||
the file before closing.
|
||||
*/
|
||||
void closeFile( void );
|
||||
|
||||
protected:
|
||||
|
||||
void computeSample( const StkFloat sample );
|
||||
|
||||
void computeFrames( const StkFrames& frames );
|
||||
|
||||
void incrementFrame( void );
|
||||
|
||||
FileWrite file_;
|
||||
unsigned int bufferFrames_;
|
||||
unsigned int bufferIndex_;
|
||||
unsigned int iData_;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user