Blame src/libout123/wavhead.h

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
};