commit
cf7eff3310
25 changed files with 217 additions and 149 deletions
@ -1,6 +1,26 @@ |
||||
#include <stdarg.h> |
||||
#pragma once |
||||
|
||||
#include <stdbool.h> |
||||
#include <stdio.h> |
||||
|
||||
bool load_config(char configPath[255], char supportedInput[255], void *p, bool colorsOnly, |
||||
void *error); |
||||
#define MAX_ERROR_LEN 1024 |
||||
|
||||
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.
|
||||
|
||||
#pragma once |
||||
|
||||
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); |
||||
|
||||
@ -1,4 +1,6 @@ |
||||
// header file for pulse, part of cava.
|
||||
|
||||
#pragma once |
||||
|
||||
void *input_pulse(void *data); |
||||
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