diff --git a/configure.ac b/configure.ac index b5ff86c..e6f71b4 100644 --- a/configure.ac +++ b/configure.ac @@ -17,7 +17,7 @@ dnl changes are made dnl --- JACK_MAJOR_VERSION=0 JACK_MINOR_VERSION=109 -JACK_MICRO_VERSION=11 +JACK_MICRO_VERSION=12 dnl --- dnl HOWTO: updating the jack protocol version @@ -648,7 +648,7 @@ HAVE_FIREWIRE="false" if test "x$TRY_FIREWIRE" = "xyes" then # check for FFADO libraries - PKG_CHECK_MODULES(LIBFFADO, libffado >= 1.999.14, + PKG_CHECK_MODULES(LIBFFADO, libffado >= 1.999.17, [HAVE_FIREWIRE="true" JACK_DEFAULT_DRIVER=\"firewire\" ], AC_MSG_RESULT([no])) diff --git a/drivers/firewire/ffado_driver.c b/drivers/firewire/ffado_driver.c index 885be14..69efd02 100644 --- a/drivers/firewire/ffado_driver.c +++ b/drivers/firewire/ffado_driver.c @@ -50,7 +50,7 @@ static int ffado_driver_stop (ffado_driver_t *driver); -#define FIREWIRE_REQUIRED_FFADO_API_VERSION 7 +#define FIREWIRE_REQUIRED_FFADO_API_VERSION 8 // enable verbose messages static int g_verbose=0; @@ -526,8 +526,10 @@ ffado_driver_wait (ffado_driver_t *driver, int extra_fd, int *status, driver->wait_last = wait_ret; driver->wait_next = wait_ret + driver->period_usecs; driver->engine->transport_cycle_start (driver->engine, wait_ret); - - if (response == ffado_wait_xrun) { + if (response == ffado_wait_ok) { + // all good + *status=0; + } else if (response == ffado_wait_xrun) { // xrun happened, but it's handled *status=0; return 0; @@ -536,9 +538,19 @@ ffado_driver_wait (ffado_driver_t *driver, int extra_fd, int *status, // this should be fatal *status=-1; return 0; + } else if (response == ffado_wait_shutdown) { + // we are to shutdown the ffado system + // this should be fatal + *status=-1; + return 0; + } else { + // we don't know about this response code + printError("unknown wait response (%d) from ffado", response); + // this should be fatal + *status=-1; + return 0; } - *status = 0; driver->last_wait_ust = wait_ret; // FIXME: this should do something more useful