You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

74 lines
1.7 KiB

#pragma once
#include <limits.h>
#include <stdbool.h>
#include <stdio.h>
#include <string.h>
#define MAX_ERROR_LEN 1024
#ifdef PORTAUDIO
#define HAS_PORTAUDIO true
#else
#define HAS_PORTAUDIO false
#endif
#ifdef ALSA
#define HAS_ALSA true
#else
#define HAS_ALSA false
#endif
#ifdef PULSE
#define HAS_PULSE true
#else
#define HAS_PULSE false
#endif
#ifdef SNDIO
#define HAS_SNDIO true
#else
#define HAS_SNDIO false
#endif
#ifdef SHMEM
#define HAS_SHMEM true
#else
#define HAS_SHMEM false
#endif
// These are in order of least-favourable to most-favourable choices, in case
// multiple are supported and configured.
enum input_method {
INPUT_FIFO,
INPUT_PORTAUDIO,
INPUT_ALSA,
INPUT_PULSE,
INPUT_SNDIO,
INPUT_SHMEM,
INPUT_MAX
};
enum output_method { OUTPUT_NCURSES, OUTPUT_NONCURSES, OUTPUT_RAW, OUTPUT_NOT_SUPORTED };
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 lower_cut_off, upper_cut_off;
double *userEQ;
enum input_method im;
enum output_method om;
int userEQ_keys, userEQ_enabled, col, bgcol, autobars, stereo, is_bin, ascii_range, bit_format,
gradient, gradient_count, fixedbars, framerate, bar_width, bar_spacing, autosens, overshoot,
waves, FFTbufferSize, fifoSample, fifoSampleBits;
};
struct error_s {
char message[MAX_ERROR_LEN];
int length;
};
bool load_config(char configPath[PATH_MAX], struct config_params *p, bool colorsOnly,
struct error_s *error);