Subversion Repositories Kolibri OS

Rev

Rev 1905 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1905 serge 1
#ifndef MPG123_SYNTH_H
2
#define MPG123_SYNTH_H
3
 
4
/* This is included inside frame.h, which is included in mpg123lib_intern.h,
5
   at the appropriate place.
6
   Explicit header inclusions here would cause circular dependencies. */
7
 
8
/* The handle needs these types for selecting the decoding routine at runtime.
9
   Not just for optimization, mainly for XtoY, mono/stereo. */
10
typedef int (*func_synth)(real *,int, mpg123_handle *,int );
11
typedef int (*func_synth_mono)(real *, mpg123_handle *);
12
typedef int (*func_synth_stereo)(real *, real *, mpg123_handle *);
3960 Serge 13
enum synth_channel  { c_plain=0, c_stereo, c_m2s, c_mono, c_limit };
1905 serge 14
enum synth_resample
15
{
16
	 r_none=-1
17
	,r_1to1=0
18
#	ifndef NO_DOWNSAMPLE
19
	,r_2to1
20
	,r_4to1
21
#	endif
22
#	ifndef NO_NTOM
23
	,r_ntom
24
#	endif
25
	,r_limit
26
};
27
enum synth_format
28
{
29
	 f_none=-1
30
#	ifndef NO_16BIT
31
	,f_16
32
#	endif
33
#	ifndef NO_8BIT
34
	,f_8
35
#	endif
36
#	ifndef NO_REAL
37
	,f_real
38
#	endif
39
#	ifndef NO_32BIT
40
	,f_32
41
#	endif
42
	,f_limit
43
};
44
struct synth_s
45
{
46
	func_synth              plain[r_limit][f_limit];
47
	func_synth_stereo      stereo[r_limit][f_limit];
48
	func_synth_mono   mono2stereo[r_limit][f_limit];
49
	func_synth_mono          mono[r_limit][f_limit];
50
};
51
 
52
#endif