Blame src/libmpg123/synths.h

Packit c32a2d
#ifndef MPG123_SYNTH_H
Packit c32a2d
#define MPG123_SYNTH_H
Packit c32a2d
Packit c32a2d
/* This is included inside frame.h, which is included in mpg123lib_intern.h,
Packit c32a2d
   at the appropriate place.
Packit c32a2d
   Explicit header inclusions here would cause circular dependencies. */
Packit c32a2d
Packit c32a2d
/* The handle needs these types for selecting the decoding routine at runtime.
Packit c32a2d
   Not just for optimization, mainly for XtoY, mono/stereo. */
Packit c32a2d
typedef int (*func_synth)(real *,int, mpg123_handle *,int );
Packit c32a2d
typedef int (*func_synth_mono)(real *, mpg123_handle *);
Packit c32a2d
typedef int (*func_synth_stereo)(real *, real *, mpg123_handle *);
Packit c32a2d
enum synth_channel  { c_plain=0, c_stereo, c_m2s, c_mono, c_limit };
Packit c32a2d
enum synth_resample
Packit c32a2d
{
Packit c32a2d
	 r_none=-1
Packit c32a2d
	,r_1to1=0
Packit c32a2d
#	ifndef NO_DOWNSAMPLE
Packit c32a2d
	,r_2to1
Packit c32a2d
	,r_4to1
Packit c32a2d
#	endif
Packit c32a2d
#	ifndef NO_NTOM
Packit c32a2d
	,r_ntom
Packit c32a2d
#	endif
Packit c32a2d
	,r_limit
Packit c32a2d
};
Packit c32a2d
enum synth_format
Packit c32a2d
{
Packit c32a2d
	 f_none=-1
Packit c32a2d
#	ifndef NO_16BIT
Packit c32a2d
	,f_16
Packit c32a2d
#	endif
Packit c32a2d
#	ifndef NO_8BIT
Packit c32a2d
	,f_8
Packit c32a2d
#	endif
Packit c32a2d
#	ifndef NO_REAL
Packit c32a2d
	,f_real
Packit c32a2d
#	endif
Packit c32a2d
#	ifndef NO_32BIT
Packit c32a2d
	,f_32
Packit c32a2d
#	endif
Packit c32a2d
	,f_limit
Packit c32a2d
};
Packit c32a2d
struct synth_s
Packit c32a2d
{
Packit c32a2d
	func_synth              plain[r_limit][f_limit];
Packit c32a2d
	func_synth_stereo      stereo[r_limit][f_limit];
Packit c32a2d
	func_synth_mono   mono2stereo[r_limit][f_limit];
Packit c32a2d
	func_synth_mono          mono[r_limit][f_limit];
Packit c32a2d
};
Packit c32a2d
Packit c32a2d
#endif