xref: /reactos/sdk/lib/3rdparty/libmpg123/feature.c (revision c2c66aff)
1 #include "mpg123lib_intern.h"
2 
3 int mpg123_feature(const enum mpg123_feature_set key)
4 {
5 	switch(key)
6 	{
7 		case MPG123_FEATURE_ABI_UTF8OPEN:
8 #ifdef WANT_WIN32_UNICODE
9 		return 1;
10 #else
11 		return 0;
12 #endif /* WANT_WIN32_UNICODE */
13 
14 		case MPG123_FEATURE_OUTPUT_8BIT:
15 #ifdef NO_8BIT
16 		return 0;
17 #else
18 		return 1;
19 #endif /* mpg123_output_8bit */
20 
21 		case MPG123_FEATURE_OUTPUT_16BIT:
22 #ifdef NO_16BIT
23 		return 0;
24 #else
25 		return 1;
26 #endif /* mpg123_output_16bit */
27 
28 		case MPG123_FEATURE_OUTPUT_32BIT:
29 #ifdef NO_32BIT
30 		return 0;
31 #else
32 		return 1;
33 #endif /* mpg123_output_32bit */
34 
35 		case MPG123_FEATURE_PARSE_ID3V2:
36 #ifdef NO_ID3V2
37 		return 0;
38 #else
39 		return 1;
40 #endif /* NO_ID3V2 */
41 
42 		case MPG123_FEATURE_DECODE_LAYER1:
43 #ifdef NO_LAYER1
44 		return 0;
45 #else
46 		return 1;
47 #endif /* NO_LAYER1 */
48 
49 		case MPG123_FEATURE_DECODE_LAYER2:
50 #ifdef NO_LAYER2
51 		return 0;
52 #else
53 		return 1;
54 #endif /* NO_LAYER2 */
55 
56 		case MPG123_FEATURE_DECODE_LAYER3:
57 #ifdef NO_LAYER3
58 		return 0;
59 #else
60 		return 1;
61 #endif /* NO_LAYER3 */
62 
63 		case MPG123_FEATURE_DECODE_ACCURATE:
64 #ifdef ACCURATE_ROUNDING
65 		return 1;
66 #else
67 		return 0;
68 #endif /* ACCURATE_ROUNDING */
69 
70 		case MPG123_FEATURE_DECODE_DOWNSAMPLE:
71 #ifdef NO_DOWNSAMPLE
72 		return 0;
73 #else
74 		return 1;
75 #endif /* NO_DOWNSAMPLE */
76 
77 		case MPG123_FEATURE_DECODE_NTOM:
78 #ifdef NO_NTOM
79 		return 0;
80 #else
81 		return 1;
82 #endif /* NO_NTOM */
83 
84 		case MPG123_FEATURE_PARSE_ICY:
85 #ifdef NO_ICY
86 		return 0;
87 #else
88 		return 1;
89 #endif /* NO_ICY */
90 
91 		case MPG123_FEATURE_INDEX:
92 #ifdef FRAME_INDEX
93 		return 1;
94 #else
95 		return 0;
96 #endif /* FRAME_INDEX */
97 		case MPG123_FEATURE_TIMEOUT_READ:
98 #ifdef TIMEOUT_READ
99 		return 1;
100 #else
101 		return 0;
102 #endif
103 		case MPG123_FEATURE_EQUALIZER:
104 #ifndef NO_EQUALIZER
105 		return 1;
106 #else
107 		return 0;
108 #endif
109 
110 		default: return 0;
111 	}
112 }
113