comparison src/descriptors.c @ 211:ef80f7c52c6d

add VC2012 project to compile static and dynamic lib, also fix some C issues
author Q <andrea@nocte.co.uk>
date Thu, 27 Mar 2014 09:48:26 +0000
parents f6fcf3bec020
children d383a8c66b5d
comparison
equal deleted inserted replaced
210:c99c00e1c508 211:ef80f7c52c6d
40 xtract_function_descriptor_t *fd, *d; 40 xtract_function_descriptor_t *fd, *d;
41 xtract_type_t *argv_type; 41 xtract_type_t *argv_type;
42 42
43 f = F = XTRACT_FEATURES; 43 f = F = XTRACT_FEATURES;
44 44
45 fd = malloc(XTRACT_FEATURES * sizeof(xtract_function_descriptor_t)); 45 fd = (xtract_function_descriptor_t*)malloc(XTRACT_FEATURES * sizeof(xtract_function_descriptor_t));
46 46
47 /* FIX - this file probably needs a rewrite for readability */ 47 /* FIX - this file probably needs a rewrite for readability */
48 48
49 while(f--) 49 while(f--)
50 { 50 {
127 *argv_def = XTRACT_FUNDAMENTAL_DEFAULT; 127 *argv_def = XTRACT_FUNDAMENTAL_DEFAULT;
128 *argv_unit = XTRACT_HERTZ; 128 *argv_unit = XTRACT_HERTZ;
129 *(argv_min + 1) = 0.0; 129 *(argv_min + 1) = 0.0;
130 *(argv_max + 1) = 1.0 ; 130 *(argv_max + 1) = 1.0 ;
131 *(argv_def + 1) = .1 ; 131 *(argv_def + 1) = .1 ;
132 *(argv_unit + 1) = XTRACT_NONE; 132 *(argv_unit + 1) = (xtract_unit_t)XTRACT_NONE;
133 break; 133 break;
134 case XTRACT_NOISINESS: 134 case XTRACT_NOISINESS:
135 case XTRACT_SKEWNESS: 135 case XTRACT_SKEWNESS:
136 case XTRACT_KURTOSIS: 136 case XTRACT_KURTOSIS:
137 case XTRACT_SPECTRAL_SKEWNESS: 137 case XTRACT_SPECTRAL_SKEWNESS:
138 case XTRACT_SPECTRAL_KURTOSIS: 138 case XTRACT_SPECTRAL_KURTOSIS:
139 case XTRACT_CREST: 139 case XTRACT_CREST:
140 *argv_min = XTRACT_NONE; 140 *argv_min = XTRACT_NONE;
141 *argv_max = XTRACT_NONE; 141 *argv_max = XTRACT_NONE;
142 *argv_def = XTRACT_NONE; 142 *argv_def = XTRACT_NONE;
143 *argv_unit = XTRACT_NONE; 143 *argv_unit = (xtract_unit_t)XTRACT_NONE;
144 *(argv_min + 1) = XTRACT_NONE; 144 *(argv_min + 1) = XTRACT_NONE;
145 *(argv_max + 1) = XTRACT_NONE; 145 *(argv_max + 1) = XTRACT_NONE;
146 *(argv_def + 1) = XTRACT_NONE; 146 *(argv_def + 1) = XTRACT_NONE;
147 *(argv_unit + 1) = XTRACT_NONE; 147 *(argv_unit + 1) = (xtract_unit_t)XTRACT_NONE;
148 break; 148 break;
149 /* argc = 4 */ 149 /* argc = 4 */
150 case XTRACT_SPECTRUM: 150 case XTRACT_SPECTRUM:
151 *argv_min = XTRACT_SR_LOWER_LIMIT / XTRACT_FFT_BANDS_MIN; 151 *argv_min = XTRACT_SR_LOWER_LIMIT / XTRACT_FFT_BANDS_MIN;
152 *argv_max = XTRACT_SR_UPPER_LIMIT / XTRACT_FFT_BANDS_MAX; 152 *argv_max = XTRACT_SR_UPPER_LIMIT / XTRACT_FFT_BANDS_MAX;
153 *argv_def = XTRACT_SR_DEFAULT / XTRACT_FFT_BANDS_DEF; 153 *argv_def = XTRACT_SR_DEFAULT / XTRACT_FFT_BANDS_DEF;
154 *argv_unit = XTRACT_HERTZ; 154 *argv_unit = XTRACT_HERTZ;
155 *(argv_min + 1) = 0; 155 *(argv_min + 1) = 0;
156 *(argv_max + 1) = 3 ; 156 *(argv_max + 1) = 3 ;
157 *(argv_def + 1) = 0; 157 *(argv_def + 1) = 0;
158 *(argv_unit + 1) = XTRACT_NONE; 158 *(argv_unit + 1) = (xtract_unit_t)XTRACT_NONE;
159 *(argv_min + 2) = 0; 159 *(argv_min + 2) = 0;
160 *(argv_max + 2) = 1; 160 *(argv_max + 2) = 1;
161 *(argv_def + 2) = 0; 161 *(argv_def + 2) = 0;
162 *(argv_unit + 2) = XTRACT_NONE; 162 *(argv_unit + 2) = (xtract_unit_t)XTRACT_NONE;
163 *(argv_min + 3) = 0; 163 *(argv_min + 3) = 0;
164 *(argv_max + 3) = 1; 164 *(argv_max + 3) = 1;
165 *(argv_def + 3) = 0; 165 *(argv_def + 3) = 0;
166 *(argv_unit + 3) = XTRACT_NONE; 166 *(argv_unit + 3) = (xtract_unit_t)XTRACT_NONE;
167 break; 167 break;
168 case XTRACT_SUBBANDS: 168 case XTRACT_SUBBANDS:
169 *argv_min = XTRACT_ANY; 169 *argv_min = XTRACT_ANY;
170 *argv_max = XTRACT_ANY; 170 *argv_max = XTRACT_ANY;
171 *argv_def = XTRACT_MEAN; 171 *argv_def = XTRACT_MEAN;
172 *argv_unit = XTRACT_NONE; 172 *argv_unit = (xtract_unit_t)XTRACT_NONE;
173 *(argv_min + 1) = 1; 173 *(argv_min + 1) = 1;
174 *(argv_max + 1) = 16384; 174 *(argv_max + 1) = 16384;
175 *(argv_def + 1) = 4; 175 *(argv_def + 1) = 4;
176 *(argv_unit + 1) = XTRACT_NONE; 176 *(argv_unit + 1) = (xtract_unit_t)XTRACT_NONE;
177 *(argv_min + 2) = 0; 177 *(argv_min + 2) = 0;
178 *(argv_max + 2) = 32; 178 *(argv_max + 2) = 32;
179 *(argv_def + 2) = 0; 179 *(argv_def + 2) = 0;
180 *(argv_unit + 2) = XTRACT_NONE; 180 *(argv_unit + 2) = (xtract_unit_t)XTRACT_NONE;
181 *(argv_min + 3) = 0; 181 *(argv_min + 3) = 0;
182 *(argv_max + 3) = XTRACT_ANY; 182 *(argv_max + 3) = XTRACT_ANY;
183 *(argv_def + 3) = 0; 183 *(argv_def + 3) = 0;
184 *(argv_unit + 3) = XTRACT_BINS; 184 *(argv_unit + 3) = XTRACT_BINS;
185 break; 185 break;
189 /* WINDOWED is special because argc = window size = N */ 189 /* WINDOWED is special because argc = window size = N */
190 default: 190 default:
191 *argv_min = XTRACT_NONE; 191 *argv_min = XTRACT_NONE;
192 *argv_max = XTRACT_NONE; 192 *argv_max = XTRACT_NONE;
193 *argv_def = XTRACT_NONE; 193 *argv_def = XTRACT_NONE;
194 *argv_unit = XTRACT_NONE; 194 *argv_unit = (xtract_unit_t)XTRACT_NONE;
195 break; 195 break;
196 } 196 }
197 197
198 argv_donor = &d->argv.donor[0]; 198 argv_donor = &d->argv.donor[0];
199 199
441 case XTRACT_NONZERO_COUNT: 441 case XTRACT_NONZERO_COUNT:
442 case XTRACT_LPC: 442 case XTRACT_LPC:
443 case XTRACT_LPCC: 443 case XTRACT_LPCC:
444 case XTRACT_WINDOWED: 444 case XTRACT_WINDOWED:
445 case XTRACT_SUBBANDS: 445 case XTRACT_SUBBANDS:
446 *data_unit = XTRACT_ANY; 446 *data_unit = (xtract_unit_t)XTRACT_ANY;
447 break; 447 break;
448 case XTRACT_SPECTRAL_MEAN: 448 case XTRACT_SPECTRAL_MEAN:
449 case XTRACT_SPECTRAL_VARIANCE: 449 case XTRACT_SPECTRAL_VARIANCE:
450 case XTRACT_SPECTRAL_STANDARD_DEVIATION: 450 case XTRACT_SPECTRAL_STANDARD_DEVIATION:
451 /* case XTRACT_SPECTRAL_AVERAGE_DEVIATION: */ 451 /* case XTRACT_SPECTRAL_AVERAGE_DEVIATION: */
1249 case XTRACT_SUM: 1249 case XTRACT_SUM:
1250 case XTRACT_FLUX: 1250 case XTRACT_FLUX:
1251 case XTRACT_LNORM: 1251 case XTRACT_LNORM:
1252 case XTRACT_NONZERO_COUNT: 1252 case XTRACT_NONZERO_COUNT:
1253 case XTRACT_WINDOWED: 1253 case XTRACT_WINDOWED:
1254 *result_unit = XTRACT_ANY; 1254 *result_unit = (xtract_unit_t)XTRACT_ANY;
1255 *result_min = XTRACT_ANY; 1255 *result_min = XTRACT_ANY;
1256 *result_max = XTRACT_ANY; 1256 *result_max = XTRACT_ANY;
1257 break; 1257 break;
1258 case XTRACT_SPECTRAL_SKEWNESS: 1258 case XTRACT_SPECTRAL_SKEWNESS:
1259 case XTRACT_SPECTRAL_KURTOSIS: 1259 case XTRACT_SPECTRAL_KURTOSIS:
1262 case XTRACT_TRISTIMULUS_1: 1262 case XTRACT_TRISTIMULUS_1:
1263 case XTRACT_TRISTIMULUS_2: 1263 case XTRACT_TRISTIMULUS_2:
1264 case XTRACT_TRISTIMULUS_3: 1264 case XTRACT_TRISTIMULUS_3:
1265 case XTRACT_NOISINESS: 1265 case XTRACT_NOISINESS:
1266 case XTRACT_SMOOTHNESS: 1266 case XTRACT_SMOOTHNESS:
1267 *result_unit = XTRACT_NONE; 1267 *result_unit = (xtract_unit_t)XTRACT_NONE;
1268 *result_min = XTRACT_ANY; /* FIX: need to check these */ 1268 *result_min = XTRACT_ANY; /* FIX: need to check these */
1269 *result_max = XTRACT_ANY; 1269 *result_max = XTRACT_ANY;
1270 break; 1270 break;
1271 case XTRACT_SPECTRAL_MEAN: 1271 case XTRACT_SPECTRAL_MEAN:
1272 case XTRACT_SPECTRAL_VARIANCE: 1272 case XTRACT_SPECTRAL_VARIANCE:
1291 *result_unit = XTRACT_HERTZ; 1291 *result_unit = XTRACT_HERTZ;
1292 *result_min = 0.0; 1292 *result_min = 0.0;
1293 *result_max = XTRACT_ANY; 1293 *result_max = XTRACT_ANY;
1294 break; 1294 break;
1295 case XTRACT_ODD_EVEN_RATIO: 1295 case XTRACT_ODD_EVEN_RATIO:
1296 *result_unit = XTRACT_NONE; 1296 *result_unit = (xtract_unit_t)XTRACT_NONE;
1297 *result_min = 0.0; 1297 *result_min = 0.0;
1298 *result_max = 1.0; 1298 *result_max = 1.0;
1299 break; 1299 break;
1300 case XTRACT_FLATNESS_DB: 1300 case XTRACT_FLATNESS_DB:
1301 *result_unit = XTRACT_DBFS; 1301 *result_unit = XTRACT_DBFS;
1311 case XTRACT_SHARPNESS: 1311 case XTRACT_SHARPNESS:
1312 case XTRACT_SPECTRAL_SLOPE: 1312 case XTRACT_SPECTRAL_SLOPE:
1313 case XTRACT_LPC: 1313 case XTRACT_LPC:
1314 case XTRACT_LPCC: 1314 case XTRACT_LPCC:
1315 default: 1315 default:
1316 *result_unit = XTRACT_UNKNOWN; 1316 *result_unit = (xtract_unit_t)XTRACT_UNKNOWN;
1317 *result_min = XTRACT_UNKNOWN; 1317 *result_min = XTRACT_UNKNOWN;
1318 *result_max = XTRACT_UNKNOWN; 1318 *result_max = XTRACT_UNKNOWN;
1319 break; 1319 break;
1320 } 1320 }
1321 } 1321 }
1334 case XTRACT_ASDF: 1334 case XTRACT_ASDF:
1335 case XTRACT_DCT: 1335 case XTRACT_DCT:
1336 case XTRACT_SUBBANDS: 1336 case XTRACT_SUBBANDS:
1337 case XTRACT_WINDOWED: 1337 case XTRACT_WINDOWED:
1338 *result_format = XTRACT_ARBITRARY_SERIES; 1338 *result_format = XTRACT_ARBITRARY_SERIES;
1339 *result_unit = XTRACT_ANY; 1339 *result_unit = (xtract_unit_t)XTRACT_ANY;
1340 break; 1340 break;
1341 case XTRACT_BARK_COEFFICIENTS: 1341 case XTRACT_BARK_COEFFICIENTS:
1342 *result_format = XTRACT_BARK_COEFFS; 1342 *result_format = XTRACT_BARK_COEFFS;
1343 *result_unit = XTRACT_UNKNOWN; /* FIX: check */ 1343 *result_unit = (xtract_unit_t)XTRACT_UNKNOWN; /* FIX: check */
1344 break; 1344 break;
1345 case XTRACT_PEAK_SPECTRUM: 1345 case XTRACT_PEAK_SPECTRUM:
1346 case XTRACT_SPECTRUM: 1346 case XTRACT_SPECTRUM:
1347 case XTRACT_HARMONIC_SPECTRUM: 1347 case XTRACT_HARMONIC_SPECTRUM:
1348 *result_format = XTRACT_SPECTRAL; 1348 *result_format = XTRACT_SPECTRAL;
1350 break; 1350 break;
1351 case XTRACT_AUTOCORRELATION_FFT: 1351 case XTRACT_AUTOCORRELATION_FFT:
1352 break; 1352 break;
1353 case XTRACT_MFCC: 1353 case XTRACT_MFCC:
1354 *result_format = XTRACT_MEL_COEFFS; 1354 *result_format = XTRACT_MEL_COEFFS;
1355 *result_unit = XTRACT_UNKNOWN; /* FIX: check */ 1355 *result_unit = (xtract_unit_t)XTRACT_UNKNOWN; /* FIX: check */
1356 break; 1356 break;
1357 case XTRACT_LPC: 1357 case XTRACT_LPC:
1358 *result_format = XTRACT_LPC_COEFFS; 1358 *result_format = XTRACT_LPC_COEFFS;
1359 *result_unit = XTRACT_UNKNOWN; 1359 *result_unit = (xtract_unit_t)XTRACT_UNKNOWN;
1360 break; 1360 break;
1361 case XTRACT_LPCC: 1361 case XTRACT_LPCC:
1362 *result_format = XTRACT_LPCC_COEFFS; 1362 *result_format = XTRACT_LPCC_COEFFS;
1363 *result_unit = XTRACT_UNKNOWN; 1363 *result_unit = (xtract_unit_t)XTRACT_UNKNOWN;
1364 break; 1364 break;
1365 default: 1365 default:
1366 break; 1366 break;
1367 } 1367 }
1368 } 1368 }