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