Files
wav/Wav.h
T
jens b0d1ac6057 Initial import
git-svn-id: http://moon:8086/svn/software/trunk/libsrc/wav@1 b431acfa-c32f-4a4a-93f1-934dc6c82436
2014-07-19 07:44:42 +00:00

84 lines
2.6 KiB
C
Executable File

/*************************************************************************/
/* Speicher, Laden und Erzeugen von WAV und PCM Dateien
/*
/* Datum : 27.03.2002
/* Autor : Jens Ahrensfeld
/* Datei : wav.h
/*
/*************************************************************************/
#ifndef AVWAV_H
#define AVWAV_H
#include <windows.h>
#define INT8 char
#define INT16 short
#define INT32 long
#define UINT8 unsigned char
#define UINT16 unsigned short
#define UINT32 unsigned long
#define bs 18
#define WAVE_FORMAT_PCM 1
#define FILETYPE_RAW 0
#define FILETYPE_WAV 1
/******************************************************************************/
typedef struct _sWAVEHEADER
{
UINT16 wFormatTag;
UINT16 nChannels;
UINT32 nSamplesPerSec;
UINT32 nAvgBytesPerSec;
UINT16 nBlockAlign;
UINT16 wBitsPerSample;
UINT16 cbSize;
} WAVEHEADER;
/******************************************************************************/
typedef struct _sWAV
{
char m_Name[257];
WAVEHEADER m_Format;
UINT32 m_DataSize, m_FileSize, m_HeaderSize, m_FileType, m_numSamples;
FILE *pHndWavFile;
UINT32 WREAD;
UINT16 m_nChannels;
UINT32 m_SampleRate;
UINT16 m_nBits;
} WAV;
/******************************************************************************/
/* Global Functions
/******************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif
void WavInit(struct _sWAV*, UINT32 nSamplesPerSec, UINT16 nBits, UINT16 nChannels, UINT16 format);
UINT32 WavSetFormat(struct _sWAV*, UINT32, UINT16, UINT16, UINT16 format);
UINT32 WavOpen (struct _sWAV*, char*);
UINT32 WavCreate(struct _sWAV*, char*, UINT32);
UINT32 WavClose(struct _sWAV*);
UINT32 WavRead(struct _sWAV*, void*, UINT32);
UINT32 WavWrite(struct _sWAV*, void*, UINT32);
UINT32 ReadHeader(struct _sWAV*);
UINT32 WriteHeader(struct _sWAV*);
UINT16 WavGetnBits(struct _sWAV *pObj);
UINT32 WavGetRate(struct _sWAV *pObj);
UINT16 WavGetnChannels(struct _sWAV *pObj);
char* WavGetFileName(struct _sWAV *pObj);
void WavDeIlvd(struct _sWAV *pObj, INT16 *pIn, INT16 **ppOut, UINT32 len);
void WavDeIlvdDouble(struct _sWAV *pObj, INT16 *pIn, double **ppOut, UINT32 len);
void WavDeIlvdFloat(struct _sWAV *pObj, INT16 *pIn, float **ppOut, UINT32 len);
void WavIlvd(struct _sWAV *pObj, INT16 **ppIn, INT16 *pOut, UINT32 len);
void WavIlvdDouble(struct _sWAV *pObj, double **ppIn, INT16 *pOut, UINT32 len);
void WavIlvdFloat(struct _sWAV *pObj, float **ppIn, INT16 *pOut, UINT32 len);
#ifdef __cplusplus
}
#endif
#endif /* AVWAV_H */