X-Git-Url: https://git.distorted.org.uk/~mdw/disorder/blobdiff_plain/e7eb3a2744aa45179daea235800753d3d1955338..02ba7921a8b083f421a747b89c65a87d0afd5841:/disobedience/disobedience.c diff --git a/disobedience/disobedience.c b/disobedience/disobedience.c index ab51bb3..a4e9d20 100644 --- a/disobedience/disobedience.c +++ b/disobedience/disobedience.c @@ -20,12 +20,12 @@ */ #include "disobedience.h" -#include "mixer.h" #include "version.h" #include #include #include +#include /* Apologies for the numerous de-consting casts, but GLib et al do not seem to * have heard of const. */ @@ -68,6 +68,9 @@ int volume_l; /** @brief Right channel volume */ int volume_r; +/** @brief Audio backend */ +const struct uaudio *backend; + double goesupto = 10; /* volume upper bound */ /** @brief True if a NOP is in flight */ @@ -263,10 +266,10 @@ static gboolean periodic_fast(gpointer attribute((unused)) data) { } last = now; #endif - if(rtp_supported && mixer_supported(DEFAULT_BACKEND)) { + if(rtp_supported && backend && backend->get_volume) { int nl, nr; - if(!mixer_control(DEFAULT_BACKEND, &nl, &nr, 0) - && (nl != volume_l || nr != volume_r)) { + backend->get_volume(&nl, &nr); + if(nl != volume_l || nr != volume_r) { volume_l = nl; volume_r = nr; event_raise("volume-changed", 0); @@ -446,13 +449,22 @@ int main(int argc, char **argv) { } if(!gtkok) fatal(0, "failed to initialize GTK+"); + /* gcrypt initialization */ + if(!gcry_check_version(NULL)) + disorder_fatal(0, "gcry_check_version failed"); + gcry_control(GCRYCTL_INIT_SECMEM, 0); + gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0); signal(SIGPIPE, SIG_IGN); init_styles(); load_settings(); /* create the event loop */ D(("create main loop")); mainloop = g_main_loop_new(0, 0); - if(config_read(0)) fatal(0, "cannot read configuration"); + if(config_read(0, NULL)) fatal(0, "cannot read configuration"); + /* we'll need mixer support */ + backend = uaudio_apis[0]; + if(backend->open_mixer) + backend->open_mixer(); /* create the clients */ if(!(client = gtkclient()) || !(logclient = gtkclient()))