cannam@126: /* cannam@126: ** Copyright (c) 2002-2016, Erik de Castro Lopo cannam@126: ** All rights reserved. cannam@126: ** cannam@126: ** This code is released under 2-clause BSD license. Please see the cannam@126: ** file at : https://github.com/erikd/libsamplerate/blob/master/COPYING cannam@126: */ cannam@126: cannam@126: #define ABS(a) (((a) < 0) ? - (a) : (a)) cannam@126: #define MIN(a,b) (((a) < (b)) ? (a) : (b)) cannam@126: #define MAX(a,b) (((a) >= (b)) ? (a) : (b)) cannam@126: cannam@126: #define ARRAY_LEN(x) ((int) (sizeof (x) / sizeof ((x) [0]))) cannam@126: cannam@126: void gen_windowed_sines (int freq_count, const double *freqs, double max, float *output, int output_len) ; cannam@126: cannam@126: void save_oct_float (char *filename, float *input, int in_len, float *output, int out_len) ; cannam@126: void save_oct_double (char *filename, double *input, int in_len, double *output, int out_len) ; cannam@126: cannam@126: void interleave_data (const float *in, float *out, int frames, int channels) ; cannam@126: cannam@126: void deinterleave_data (const float *in, float *out, int frames, int channels) ; cannam@126: cannam@126: void reverse_data (float *data, int datalen) ; cannam@126: cannam@126: double calculate_snr (float *data, int len, int expected_peaks) ; cannam@126: cannam@126: const char * get_cpu_name (void) ; cannam@126: cannam@126: #if OS_IS_WIN32 cannam@126: /* cannam@126: ** Extra Win32 hacks. cannam@126: ** cannam@126: ** Despite Microsoft claim of windows being POSIX compatibile it has '_sleep' cannam@126: ** instead of 'sleep'. cannam@126: */ cannam@126: cannam@126: #define sleep _sleep cannam@126: #endif cannam@126: