*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
int playing_is_enabled(void);
/* return true iff playing is enabled */
void enable_playing(const char *who, ev_source *ev);
/* enable playing */
int playing_is_enabled(void);
/* return true iff playing is enabled */
void enable_playing(const char *who, ev_source *ev);
/* enable playing */
/* disable random play */
void scratch(const char *who, const char *id);
/* disable random play */
void scratch(const char *who, const char *id);
int server_start(ev_source *ev, int pf,
size_t socklen, const struct sockaddr *sa,
int server_start(ev_source *ev, int pf,
size_t socklen, const struct sockaddr *sa,
/* start listening. Return the fd. */
int server_stop(ev_source *ev, int fd);
/* Stop listening on @fd@ */
/* start listening. Return the fd. */
int server_stop(ev_source *ev, int fd);
/* Stop listening on @fd@ */
extern int volume_left, volume_right; /* last known volume */
extern int wideopen; /* blindly accept all logins */
extern int volume_left, volume_right; /* last known volume */
extern int wideopen; /* blindly accept all logins */
#define START_HARDFAIL 1 /**< @brief Track is broken. */
#define START_SOFTFAIL 2 /**< @brief Track OK, system (temporarily?) broken */
#define START_HARDFAIL 1 /**< @brief Track is broken. */
#define START_SOFTFAIL 2 /**< @brief Track OK, system (temporarily?) broken */