forked from karlstav/cava
-
Notifications
You must be signed in to change notification settings - Fork 0
/
config.h
133 lines (113 loc) · 2.83 KB
/
config.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#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 PIPEWIRE
#define HAS_PIPEWIRE true
#else
#define HAS_PIPEWIRE false
#endif
#ifdef SNDIO
#define HAS_SNDIO true
#else
#define HAS_SNDIO false
#endif
#ifdef OSS
#define HAS_OSS true
#else
#define HAS_OSS false
#endif
#ifdef JACK
#define HAS_JACK true
#else
#define HAS_JACK false
#endif
#ifdef _MSC_VER
#define HAS_WINSCAP true
#define SDL true
#define HAS_FIFO false
#define HAS_SHMEM false
#define PATH_MAX 260
#else
#define HAS_WINSCAP false
#define HAS_FIFO true
#define HAS_SHMEM true
#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_PIPEWIRE,
INPUT_ALSA,
INPUT_PULSE,
INPUT_SNDIO,
INPUT_OSS,
INPUT_JACK,
INPUT_SHMEM,
INPUT_WINSCAP,
INPUT_MAX,
};
enum output_method {
OUTPUT_NCURSES,
OUTPUT_NONCURSES,
OUTPUT_RAW,
OUTPUT_SDL,
OUTPUT_SDL_GLSL,
OUTPUT_NORITAKE,
OUTPUT_NOT_SUPORTED
};
enum mono_option { LEFT, RIGHT, AVERAGE };
enum data_format { FORMAT_ASCII = 0, FORMAT_BINARY = 1, FORMAT_NTK3000 = 2 };
enum xaxis_scale { NONE, FREQUENCY, NOTE };
enum orientation {
ORIENT_BOTTOM,
ORIENT_TOP,
ORIENT_LEFT,
ORIENT_RIGHT,
ORIENT_SPLIT_H,
ORIENT_SPLIT_V
};
struct config_params {
char *color, *bcolor, *raw_target, *audio_source,
/**gradient_color_1, *gradient_color_2,*/ **gradient_colors, *data_format, *vertex_shader,
*fragment_shader;
char bar_delim, frame_delim;
double monstercat, integral, gravity, ignore, sens, noise_reduction;
unsigned int lower_cut_off, upper_cut_off;
double *userEQ;
enum input_method input;
enum output_method output;
enum xaxis_scale xaxis;
enum mono_option mono_opt;
enum orientation orientation;
int userEQ_keys, userEQ_enabled, col, bgcol, autobars, stereo, raw_format, ascii_range,
bit_format, gradient, gradient_count, fixedbars, framerate, bar_width, bar_spacing,
bar_height, autosens, overshoot, waves, samplerate, samplebits, channels, autoconnect,
sleep_timer, sdl_width, sdl_height, sdl_x, sdl_y, sdl_full_screen, draw_and_quit, zero_test,
non_zero_test, reverse, sync_updates, continuous_rendering, disable_blanking,
show_idle_bar_heads, waveform;
};
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);