wmix: fix multiple definitions of global variables.
The mixer API variables are declared in a header with no explicit linkage. This results in there being definitions of them in multiple object files, which causes a link failure with GCC 10, since this uses -fno-common by default. Add `extern` to the header declarations and separate declarations with no linkage in mixer.c where they are assigned. Link: https://bugs.debian.org/957947 Signed-off-by: Jeremy Sowden <jeremy@azazel.net>
This commit is contained in:
parent
554ab5db1b
commit
7e43b2a679
|
@ -55,28 +55,28 @@
|
|||
* - Muting must occur independently of the volume level.
|
||||
*/
|
||||
|
||||
void (*mixer_init)(const char *mixer_device,
|
||||
extern void (*mixer_init)(const char *mixer_device,
|
||||
bool verbose,
|
||||
const char *exclude[]);
|
||||
bool (*mixer_is_changed)(void);
|
||||
int (*mixer_get_channel_count)(void);
|
||||
int (*mixer_get_channel)(void);
|
||||
const char *(*mixer_get_channel_name)(void);
|
||||
const char *(*mixer_get_short_name)(void);
|
||||
void (*mixer_set_channel)(int channel);
|
||||
void (*mixer_set_channel_rel)(int delta_channel);
|
||||
float (*mixer_get_volume)(void);
|
||||
void (*mixer_set_volume)(float volume);
|
||||
void (*mixer_set_volume_rel)(float delta_volume);
|
||||
float (*mixer_get_balance)(void);
|
||||
void (*mixer_set_balance)(float balance);
|
||||
void (*mixer_set_balance_rel)(float delta_balance);
|
||||
void (*mixer_toggle_mute)(void);
|
||||
void (*mixer_toggle_rec)(void);
|
||||
bool (*mixer_is_muted)(void);
|
||||
bool (*mixer_is_stereo)(void);
|
||||
bool (*mixer_is_rec)(void);
|
||||
bool (*mixer_can_rec)(void);
|
||||
bool (*is_exclude)(const char *short_name,
|
||||
extern bool (*mixer_is_changed)(void);
|
||||
extern int (*mixer_get_channel_count)(void);
|
||||
extern int (*mixer_get_channel)(void);
|
||||
extern const char *(*mixer_get_channel_name)(void);
|
||||
extern const char *(*mixer_get_short_name)(void);
|
||||
extern void (*mixer_set_channel)(int channel);
|
||||
extern void (*mixer_set_channel_rel)(int delta_channel);
|
||||
extern float (*mixer_get_volume)(void);
|
||||
extern void (*mixer_set_volume)(float volume);
|
||||
extern void (*mixer_set_volume_rel)(float delta_volume);
|
||||
extern float (*mixer_get_balance)(void);
|
||||
extern void (*mixer_set_balance)(float balance);
|
||||
extern void (*mixer_set_balance_rel)(float delta_balance);
|
||||
extern void (*mixer_toggle_mute)(void);
|
||||
extern void (*mixer_toggle_rec)(void);
|
||||
extern bool (*mixer_is_muted)(void);
|
||||
extern bool (*mixer_is_stereo)(void);
|
||||
extern bool (*mixer_is_rec)(void);
|
||||
extern bool (*mixer_can_rec)(void);
|
||||
extern bool (*is_exclude)(const char *short_name,
|
||||
const char *exclude[]);
|
||||
void (*mixer_tick)(void);
|
||||
extern void (*mixer_tick)(void);
|
||||
|
|
25
wmix/wmix.c
25
wmix/wmix.c
|
@ -41,6 +41,31 @@
|
|||
#include "include/mixer-oss.h"
|
||||
#include "include/mixer-alsa.h"
|
||||
|
||||
void (*mixer_init)(const char *mixer_device,
|
||||
bool verbose,
|
||||
const char *exclude[]);
|
||||
bool (*mixer_is_changed)(void);
|
||||
int (*mixer_get_channel_count)(void);
|
||||
int (*mixer_get_channel)(void);
|
||||
const char *(*mixer_get_channel_name)(void);
|
||||
const char *(*mixer_get_short_name)(void);
|
||||
void (*mixer_set_channel)(int channel);
|
||||
void (*mixer_set_channel_rel)(int delta_channel);
|
||||
float (*mixer_get_volume)(void);
|
||||
void (*mixer_set_volume)(float volume);
|
||||
void (*mixer_set_volume_rel)(float delta_volume);
|
||||
float (*mixer_get_balance)(void);
|
||||
void (*mixer_set_balance)(float balance);
|
||||
void (*mixer_set_balance_rel)(float delta_balance);
|
||||
void (*mixer_toggle_mute)(void);
|
||||
void (*mixer_toggle_rec)(void);
|
||||
bool (*mixer_is_muted)(void);
|
||||
bool (*mixer_is_stereo)(void);
|
||||
bool (*mixer_is_rec)(void);
|
||||
bool (*mixer_can_rec)(void);
|
||||
bool (*is_exclude)(const char *short_name,
|
||||
const char *exclude[]);
|
||||
void (*mixer_tick)(void);
|
||||
|
||||
static Display *display;
|
||||
static bool button_pressed = false;
|
||||
|
|
Loading…
Reference in a new issue