| Description | Hierarchy | Fields | Methods | Properties | 
type unaRiffStream = class(unaWaveSoftwareDevice)
RIFF WAVE stream. Use this class to read or create RIFF WAVE files. Non-PCM files will be automatically converted to PCM format when possible. Creation of non-PCM files is also possible.
![]()  | 
constructor create(const fileName: wString; realTime: bool = false; loop: bool = false; acm: unaMsAcm = nil); | 
![]()  | 
constructor createNew(const fileName: wString; const srcFormat: WAVEFORMATEX; dstFormatTag: unsigned = WAVE_FORMAT_PCM; acm: unaMsAcm = nil); | 
![]()  | 
constructor createNewExt(const fileName: wString; srcFormat: pWAVEFORMATEXTENSIBLE; dstFormatTag: unsigned = WAVE_FORMAT_PCM; acm: unaMsAcm = nil); | 
![]()  | 
destructor Destroy(); override; | 
![]()  | 
function assignRIFile(const fileName: wString): int; | 
![]()  | 
function assignRIFileWriteDst(const fileName: wString; dstFormat: pWAVEFORMATEX): int; | 
![]()  | 
function assignRIFileWriteSrc(const fileName: wString; srcFormat: pWAVEFORMATEX; dstFormatTag: unsigned = WAVE_FORMAT_PCM): int; | 
![]()  | 
function readData(buf: pointer; maxSize: unsigned): unsigned; | 
![]()  | 
function afterOpen(): MMRESULT; override; | 
![]()  | 
function doGetPosition(): int64; override; | 
![]()  | 
function doWrite(buf: pointer; size: unsigned): unsigned; override; | 
![]()  | 
function flush2(waitForComplete: bool = true): bool; override; | 
![]()  | 
function onHeaderDone(header: unaWaveHeader; wakeUpByHeaderDone: bool): bool; override; | 
![]()  | 
procedure AfterConstruction(); override; | 
![]()  | 
procedure passiveOpen(); | 
![]()  | 
procedure afterClose(closeResult: MMRESULT); override; | 
![]()  | 
property codec: unaMsAcmCodec read f_codec; | 
![]()  | 
property factSize: unsigned read f_factSize; | 
![]()  | 
property fileName: wString read f_fileName; | 
![]()  | 
property fileType: int read f_fileType; | 
![]()  | 
property loop: bool read f_loop write f_loop; | 
![]()  | 
property mpegFrameSize: int read getMpegFS; | 
![]()  | 
property onStreamIsDone: unaOnRiffStreamIsDone read f_onStreamIsDone write f_onStreamIsDone; | 
![]()  | 
property status: int read f_status; | 
![]()  | 
property streamIsDone: bool read f_streamIsDone; | 
![]()  | 
property streamPosition: unsigned read f_streamPos write setStreamPos; | 
![]()  | 
property streamSize: unsigned read f_streamSize; | 
![]()  | 
constructor create(const fileName: wString; realTime: bool = false; loop: bool = false; acm: unaMsAcm = nil); | 
| 
 Opens existing file for reading.  | |
![]()  | 
constructor createNew(const fileName: wString; const srcFormat: WAVEFORMATEX; dstFormatTag: unsigned = WAVE_FORMAT_PCM; acm: unaMsAcm = nil); | 
| 
 Creates new RIFF WAVE file for writing.  | |
![]()  | 
constructor createNewExt(const fileName: wString; srcFormat: pWAVEFORMATEXTENSIBLE; dstFormatTag: unsigned = WAVE_FORMAT_PCM; acm: unaMsAcm = nil); | 
![]()  | 
destructor Destroy(); override; | 
![]()  | 
function assignRIFile(const fileName: wString): int; | 
| 
 Assigns new existing file for reading.  | |
![]()  | 
function assignRIFileWriteDst(const fileName: wString; dstFormat: pWAVEFORMATEX): int; | 
| 
 Assigns ouput file for writing.  | |
![]()  | 
function assignRIFileWriteSrc(const fileName: wString; srcFormat: pWAVEFORMATEX; dstFormatTag: unsigned = WAVE_FORMAT_PCM): int; | 
| 
 Assigns ouput file for writing.  | |
![]()  | 
function readData(buf: pointer; maxSize: unsigned): unsigned; | 
![]()  | 
function afterOpen(): MMRESULT; override; | 
![]()  | 
function doGetPosition(): int64; override; | 
| 
 Returns current position in wav stream.  | |
![]()  | 
function doWrite(buf: pointer; size: unsigned): unsigned; override; | 
![]()  | 
function flush2(waitForComplete: bool = true): bool; override; | 
| 
 Forces all awaiting data to be resampled.  | |
![]()  | 
function onHeaderDone(header: unaWaveHeader; wakeUpByHeaderDone: bool): bool; override; | 
![]()  | 
procedure AfterConstruction(); override; | 
![]()  | 
procedure passiveOpen(); | 
![]()  | 
procedure afterClose(closeResult: MMRESULT); override; | 
![]()  | 
property codec: unaMsAcmCodec read f_codec; | 
| 
 Codec used for compression or decompression.  | |
![]()  | 
property factSize: unsigned read f_factSize; | 
| 
 Number of bytes indicated in 'fact' chunk.  | |
![]()  | 
property fileName: wString read f_fileName; | 
| 
 WAV file name.  | |
![]()  | 
property fileType: int read f_fileType; | 
| 
 Type of file (RIFF/MP3, etc), see c_unaRiffFileType_XXXX constants.  | |
![]()  | 
property loop: bool read f_loop write f_loop; | 
| 
 Set this property to true if you wish to loop the file reading operation from end to beginning.  | |
![]()  | 
property mpegFrameSize: int read getMpegFS; | 
| 
 Frame saze (in samples) of mpeg audio stream.  | |
![]()  | 
property onStreamIsDone: unaOnRiffStreamIsDone read f_onStreamIsDone write f_onStreamIsDone; | 
| 
 This event is fired when reading from file is done.  | |
![]()  | 
property status: int read f_status; | 
| 
 5 - output riff: no filename was specified 4 - output riff: cannot locate required codec format 3 - output riff: cannot locate required codec 2 - output riff: cannot create output stream 1 - output riff: OK ——- 0 - input riff: OK -1 - input riff: file is not valid RIFF -2 - input riff: file is valid RIFF file, but is not a valid WAVE file -3 - input riff: not acm was specified (but it is required for conversion) -4 - input riff: unknown driver (cannot locate MS ACM codec) -5 - input riff: unknown format (for selected MS ACM codec) $0FFFFFFF - no init  | |
![]()  | 
property streamIsDone: bool read f_streamIsDone; | 
| 
 True when no more data can be read from stream (and loop = false).  | |
![]()  | 
property streamPosition: unsigned read f_streamPos write setStreamPos; | 
| 
 Current position in WAVe stream in bytes.  | |
![]()  | 
property streamSize: unsigned read f_streamSize; | 
| 
 WAVe stream size in bytes.  | |
(c) 2012 Lake of Soft