commit
cf7eff3310
25 changed files with 217 additions and 149 deletions
@ -1,6 +1,26 @@ |
|||||||
#include <stdarg.h> |
#pragma once |
||||||
|
|
||||||
#include <stdbool.h> |
#include <stdbool.h> |
||||||
#include <stdio.h> |
#include <stdio.h> |
||||||
|
|
||||||
bool load_config(char configPath[255], char supportedInput[255], void *p, bool colorsOnly, |
#define MAX_ERROR_LEN 1024 |
||||||
void *error); |
|
||||||
|
struct config_params { |
||||||
|
char *color, *bcolor, *raw_target, *audio_source, |
||||||
|
/**gradient_color_1, *gradient_color_2,*/ **gradient_colors, *data_format, *mono_option; |
||||||
|
char bar_delim, frame_delim; |
||||||
|
double monstercat, integral, gravity, ignore, sens; |
||||||
|
unsigned int lowcf, highcf; |
||||||
|
double *smooth; |
||||||
|
int smcount, customEQ, im, om, col, bgcol, autobars, stereo, is_bin, ascii_range, bit_format, |
||||||
|
gradient, gradient_count, fixedbars, framerate, bw, bs, autosens, overshoot, waves, |
||||||
|
FFTbufferSize, fifoSample; |
||||||
|
}; |
||||||
|
|
||||||
|
struct error_s { |
||||||
|
char message[MAX_ERROR_LEN]; |
||||||
|
int length; |
||||||
|
}; |
||||||
|
|
||||||
|
bool load_config(char configPath[255], char supportedInput[255], struct config_params *p, |
||||||
|
bool colorsOnly, struct error_s *error); |
||||||
|
|||||||
@ -1,3 +1,5 @@ |
|||||||
// header file for alsa, part of cava.
|
// header file for alsa, part of cava.
|
||||||
|
|
||||||
|
#pragma once |
||||||
|
|
||||||
void *input_alsa(void *data); |
void *input_alsa(void *data); |
||||||
|
|||||||
@ -0,0 +1,43 @@ |
|||||||
|
#include "input/common.h" |
||||||
|
|
||||||
|
int write_to_fftw_input_buffers(int16_t buf[], int16_t frames, void *data) { |
||||||
|
struct audio_data *audio = (struct audio_data *)data; |
||||||
|
|
||||||
|
for (uint16_t i = 0; i < frames * 2; i += 2) { |
||||||
|
if (audio->channels == 1) { |
||||||
|
if (audio->average) { |
||||||
|
audio->audio_out_bass_l[audio->bass_index] = (buf[i] + buf[i + 1]) / 2; |
||||||
|
} |
||||||
|
if (audio->left) { |
||||||
|
audio->audio_out_bass_l[audio->bass_index] = buf[i]; |
||||||
|
} |
||||||
|
if (audio->right) { |
||||||
|
audio->audio_out_bass_l[audio->bass_index] = buf[i + 1]; |
||||||
|
} |
||||||
|
} |
||||||
|
// stereo storing channels in buffer
|
||||||
|
if (audio->channels == 2) { |
||||||
|
audio->audio_out_bass_l[audio->bass_index] = buf[i]; |
||||||
|
audio->audio_out_bass_r[audio->bass_index] = buf[i + 1]; |
||||||
|
|
||||||
|
audio->audio_out_mid_r[audio->mid_index] = audio->audio_out_bass_r[audio->bass_index]; |
||||||
|
audio->audio_out_treble_r[audio->treble_index] = |
||||||
|
audio->audio_out_bass_r[audio->bass_index]; |
||||||
|
} |
||||||
|
|
||||||
|
audio->audio_out_mid_l[audio->mid_index] = audio->audio_out_bass_l[audio->bass_index]; |
||||||
|
audio->audio_out_treble_l[audio->treble_index] = audio->audio_out_bass_l[audio->bass_index]; |
||||||
|
|
||||||
|
audio->bass_index++; |
||||||
|
audio->mid_index++; |
||||||
|
audio->treble_index++; |
||||||
|
if (audio->bass_index == audio->FFTbassbufferSize - 1) |
||||||
|
audio->bass_index = 0; |
||||||
|
if (audio->mid_index == audio->FFTmidbufferSize - 1) |
||||||
|
audio->mid_index = 0; |
||||||
|
if (audio->treble_index == audio->FFTtreblebufferSize - 1) |
||||||
|
audio->treble_index = 0; |
||||||
|
} |
||||||
|
|
||||||
|
return 0; |
||||||
|
} |
||||||
@ -0,0 +1,29 @@ |
|||||||
|
#pragma once |
||||||
|
|
||||||
|
#include <inttypes.h> |
||||||
|
#include <stdbool.h> |
||||||
|
|
||||||
|
struct audio_data { |
||||||
|
int FFTbassbufferSize; |
||||||
|
int FFTmidbufferSize; |
||||||
|
int FFTtreblebufferSize; |
||||||
|
int bass_index; |
||||||
|
int mid_index; |
||||||
|
int treble_index; |
||||||
|
int16_t audio_out_bass_r[65536]; |
||||||
|
int16_t audio_out_bass_l[65536]; |
||||||
|
int16_t audio_out_mid_r[65536]; |
||||||
|
int16_t audio_out_mid_l[65536]; |
||||||
|
int16_t audio_out_treble_r[65536]; |
||||||
|
int16_t audio_out_treble_l[65536]; |
||||||
|
int format; |
||||||
|
unsigned int rate; |
||||||
|
char *source; // alsa device, fifo path or pulse source
|
||||||
|
int im; // input mode alsa, fifo or pulse
|
||||||
|
int channels; |
||||||
|
bool left, right, average; |
||||||
|
int terminate; // shared variable used to terminate audio thread
|
||||||
|
char error_message[1024]; |
||||||
|
}; |
||||||
|
|
||||||
|
int write_to_fftw_input_buffers(int16_t buf[], int16_t frames, void *data); |
||||||
@ -1 +1,3 @@ |
|||||||
|
#pragma once |
||||||
|
|
||||||
void *input_portaudio(void *audiodata); |
void *input_portaudio(void *audiodata); |
||||||
|
|||||||
@ -1,4 +1,6 @@ |
|||||||
// header file for pulse, part of cava.
|
// header file for pulse, part of cava.
|
||||||
|
|
||||||
|
#pragma once |
||||||
|
|
||||||
void *input_pulse(void *data); |
void *input_pulse(void *data); |
||||||
void getPulseDefaultSink(); |
void getPulseDefaultSink(); |
||||||
|
|||||||
@ -0,0 +1,5 @@ |
|||||||
|
// header file for shmem, part of cava.
|
||||||
|
|
||||||
|
#pragma once |
||||||
|
|
||||||
|
void *input_shmem(void *data); |
||||||
@ -0,0 +1,5 @@ |
|||||||
|
// header file for sndio, part of cava.
|
||||||
|
|
||||||
|
#pragma once |
||||||
|
|
||||||
|
void *input_sndio(void *data); |
||||||
Loading…
Reference in new issue