#ifndef AUDIOBEAM_MAIN_H #define AUDIOBEAM_MAIN_H struct audiobeam_DataQueue { float **sample_queue; int head; int tail; unsigned char full; }; struct audiobeam_Delays { float **delay_values; long int max_delay; }; struct audiobeam_PreprocessedDelays { float delay; int low; int high; float offset; }; #undef FLT_MAX #define FLT_MAX 999e999 #define SOUND_SPEED 342 #define SAMPLING_RATE 16000 #define CARTESIAN_DISTANCE(x1, y1, z1, x2, y2, z2) \ (sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2) + \ (z1 - z2) * (z1 - z2))); #define NUM_MIC 15 #define ANGLE_ENERGY_WINDOW_SIZE 400 #define GRID_STEP_SIZE 0.003 // .3cm #define NUM_DIRS 7 #define NUM_TILES 16 #define MIC_HORIZ_SPACE 0.038257 #define MIC_VERT_SPACE 0.015001 #define TWO23 8388608.0 // 2^23 #define BUFFER_SIZE 384 // No of input-tupels (each with NUM_MIC elements) #define NUM_MIC_IN_CHAIN 32 #define NUM_BOARDS_IN_CHAIN 16 #define INPUT_LENGTH 5760 #define INTERPOLATE(low_value, high_value, offset) \ (((high_value - low_value) * (offset)) + low_value) #endif