WAVE Audio -- C API

[ Header Files | Types | Constants | Allocation | Slot Access | Decoding and Encoding | Wave Output Device Functions | See Also ]

Header Files

#include <dvmwave.h>

Type Definitions

WaveHeader

This structure stores information decoded from the header of a WAVE file.

        typedef struct WaveHdr {
            int format;
            int numOfChan;
            int samplesPerSec;
            int bytesPerSec;
            int blockAlign;
            int bitsPerSample;
            int dataLen;
            unsigned char *extra;
            int extralen;
        } WaveHdr;
    
format
format code of wave file. See constants below.
numOfChan
number of channels; 1 = mono, 2 = stereo
samplesPerSec
sampling rate of audio in Hz
bytesPerSec
Streaming rate of the data (samplesPerSec * blockAlign)
blockAlign
Block Alignment in bytes = (numOfChan * bitsPerSample / 8)
1 for 8-bit mono, 2 for 16-bit mono, 2 for 8-bit stereo, 4 for 16-bit stereo
bitsPerSample
resolution (in bits); 8 or 16
dataLen
number of bytes of audio data
extra
dynamically allocated space for extra information which is not anticipated in the primitive implementation. This field meant to enable future addition support of other wave formats
extralen
length of extra

Constants

WAVE Format

These constants are among the possible values of the format fields in the WAVE header. Only PCM, A-Law, and Mu-Law are supported.

         #define WAVE_FORMAT_PCM    (0x0001)
         #define WAVE_FORMAT_ALAW   (0x0006)
         #define WAVE_FORMAT_MULAW  (0x0007)
     

Return Codes

These constants are returned by some of the Wave package primitives to indicate status of the function.

	 #define DVM_WAVE_OK                     (0)
	 #define DVM_WAVE_ERROR                  (1)
	 #define DVM_WAVE_ALREADY_OPEN           (2)
	 #define DVM_WAVE_NOT_OPEN               (3)
     

Operators

Allocation

WaveHdr *WaveHdrNew();

void WaveHdrFree(WaveHdr *hdr)


Slot Access

int WaveHdrGetFormat (WaveHdr *hdr)
int WaveHdrGetNumOfChan(WaveHdr *hdr)
int WaveHdrGetSamplesPerSec(WaveHdr *hdr)
int WaveHdrGetBlockAlign(WaveHdr *hdr)
int WaveHdrGetBitsPerSample(WaveHdr *hdr)
int WaveHdrGetBytesPerSec(WaveHdr *hdr)
int WaveHdrGetDataLen(WaveHdr *hdr)

void WaveHdrSetFormat (WaveHdr *hdr, int format)
void WaveHdrSetNumOfChan(WaveHdr *hdr, int numOfChan)
void WaveHdrSetSamplesPerSec(WaveHdr *hdr, int rate)
void WaveHdrSetBlockAlign(WaveHdr *hdr, int blockAlign)
void WaveHdrSetBitsPerSample(WaveHdr *hdr, int resolution)
void WaveHdrSetBytesPerSec(WaveHdr *hdr, int resolution)
void WaveHdrSetDataLen(WaveHdr *hdr, int len)


Decoding and Encoding

int WaveHdrParse(BitParser *bp, WaveHeader *hdr)

int WaveHdrEncode(WaveHeader *hdr, BitParser *bp)


Wave Output Device Functions


int WaveOutOpen(WaveHdr *hdr)

int WaveOutClose()

int WaveAudioPrepPlay(Audio *audio)

int WaveAudioPlay(int length)

int WaveOutDone()


See Also

Audio , Streams


Last updated : Saturday, November 14, 1998, 07:50 PM