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 |