|
Packit |
c32a2d |
/*
|
|
Packit |
c32a2d |
wavhead.h: wav file header, to be included twice for integer and float wavs
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
copyright ?-2015 by the mpg123 project - free software under the terms of the LGPL 2.1
|
|
Packit |
c32a2d |
see COPYING and AUTHORS files in distribution or http://mpg123.org
|
|
Packit |
c32a2d |
initially written by Samuel Audet
|
|
Packit |
c32a2d |
*/
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
struct RIFF_STRUCT_NAME
|
|
Packit |
c32a2d |
{
|
|
Packit |
c32a2d |
byte riffheader[4];
|
|
Packit |
c32a2d |
byte WAVElen[4]; /* should this include riffheader or not? */
|
|
Packit |
c32a2d |
struct
|
|
Packit |
c32a2d |
{
|
|
Packit |
c32a2d |
byte WAVEID[4];
|
|
Packit |
c32a2d |
byte fmtheader[4];
|
|
Packit |
c32a2d |
byte fmtlen[4];
|
|
Packit |
c32a2d |
struct
|
|
Packit |
c32a2d |
{
|
|
Packit |
c32a2d |
byte FormatTag[2];
|
|
Packit |
c32a2d |
byte Channels[2];
|
|
Packit |
c32a2d |
byte SamplesPerSec[4];
|
|
Packit |
c32a2d |
byte AvgBytesPerSec[4];
|
|
Packit |
c32a2d |
byte BlockAlign[2];
|
|
Packit |
c32a2d |
byte BitsPerSample[2]; /* format specific for PCM */
|
|
Packit |
c32a2d |
#ifdef FLOATOUT
|
|
Packit |
c32a2d |
byte cbSize[2];
|
|
Packit |
c32a2d |
#endif
|
|
Packit |
c32a2d |
} fmt;
|
|
Packit |
c32a2d |
#ifdef FLOATOUT
|
|
Packit |
c32a2d |
byte factheader[4];
|
|
Packit |
c32a2d |
byte factlen[4];
|
|
Packit |
c32a2d |
struct
|
|
Packit |
c32a2d |
{
|
|
Packit |
c32a2d |
byte samplelen[4];
|
|
Packit |
c32a2d |
} fact;
|
|
Packit |
c32a2d |
#endif
|
|
Packit |
c32a2d |
struct
|
|
Packit |
c32a2d |
{
|
|
Packit |
c32a2d |
byte dataheader[4];
|
|
Packit |
c32a2d |
byte datalen[4];
|
|
Packit |
c32a2d |
/* from here you insert your PCM data */
|
|
Packit |
c32a2d |
} data;
|
|
Packit |
c32a2d |
} WAVE;
|
|
Packit |
c32a2d |
} const RIFF_NAME =
|
|
Packit |
c32a2d |
{
|
|
Packit |
c32a2d |
{ 'R','I','F','F' } ,
|
|
Packit |
c32a2d |
{ sizeof(RIFF_NAME.WAVE),0,0,0 } ,
|
|
Packit |
c32a2d |
{
|
|
Packit |
c32a2d |
{ 'W','A','V','E' },
|
|
Packit |
c32a2d |
{ 'f','m','t',' ' },
|
|
Packit |
c32a2d |
{ sizeof(RIFF_NAME.WAVE.fmt),0,0,0 } ,
|
|
Packit |
c32a2d |
{
|
|
Packit |
c32a2d |
{WAVE_FORMAT,0} , {0,0},{0,0,0,0},{0,0,0,0},{0,0},{0,0}
|
|
Packit |
c32a2d |
#ifdef FLOATOUT
|
|
Packit |
c32a2d |
,{0,0}
|
|
Packit |
c32a2d |
#endif
|
|
Packit |
c32a2d |
} ,
|
|
Packit |
c32a2d |
#ifdef FLOATOUT
|
|
Packit |
c32a2d |
{ 'f','a','c','t' },
|
|
Packit |
c32a2d |
{ sizeof(RIFF_NAME.WAVE.fact),0,0,0 },
|
|
Packit |
c32a2d |
{
|
|
Packit |
c32a2d |
{0,0,0,0} /* to be filled later, like datalen and wavelen */
|
|
Packit |
c32a2d |
},
|
|
Packit |
c32a2d |
#endif
|
|
Packit |
c32a2d |
{ { 'd','a','t','a' } , {0,0,0,0} }
|
|
Packit |
c32a2d |
}
|
|
Packit |
c32a2d |
};
|