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