1 #pragma once 2 3 #include <assert.h> 4 #include <errno.h> 5 #include <fcntl.h> 6 #include <inttypes.h> 7 #include <pthread.h> 8 #include <stdbool.h> 9 #include <stdio.h> 10 #include <stdlib.h> 11 #include <string.h> 12 #include <unistd.h> 13 14 struct audio_data { 15 int FFTbassbufferSize; 16 int FFTmidbufferSize; 17 int FFTtreblebufferSize; 18 int bass_index; 19 int mid_index; 20 int treble_index; 21 double *bass_multiplier; 22 double *mid_multiplier; 23 double *treble_multiplier; 24 double *in_bass_r_raw, *in_bass_l_raw; 25 double *in_mid_r_raw, *in_mid_l_raw; 26 double *in_treble_r_raw, *in_treble_l_raw; 27 double *in_bass_r, *in_bass_l; 28 double *in_mid_r, *in_mid_l; 29 double *in_treble_r, *in_treble_l; 30 int format; 31 unsigned int rate; 32 char *source; // alsa device, fifo path or pulse source 33 int im; // input mode alsa, fifo or pulse 34 unsigned int channels; 35 bool left, right, average; 36 int terminate; // shared variable used to terminate audio thread 37 char error_message[1024]; 38 }; 39 40 void reset_output_buffers(struct audio_data *data); 41 42 int write_to_fftw_input_buffers(int16_t frames, int16_t buf[frames * 2], void *data); 43 44 extern pthread_mutex_t lock; 45