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
|