static int dummy_driver_detach (dummy_driver_t *driver) { JSList * node; if (driver->engine == 0) return 0; for (node = driver->capture_ports; node; node = jack_slist_next (node)) jack_port_unregister (driver->client, ((jack_port_t *) node->data)); jack_slist_free (driver->capture_ports); driver->capture_ports = NULL; for (node = driver->playback_ports; node; node = jack_slist_next (node)) jack_port_unregister (driver->client, ((jack_port_t *) node->data)); jack_slist_free (driver->playback_ports); driver->playback_ports = NULL; return 0; }
static int coreaudio_driver_detach (coreaudio_driver_t *driver, jack_engine_t *engine) { JSList *node; if (driver->engine == 0) { return -1; } for (node = driver->capture_ports; node; node = jack_slist_next (node)) { jack_port_unregister (driver->client, ((jack_port_t *) node->data)); } jack_slist_free (driver->capture_ports); driver->capture_ports = 0; for (node = driver->playback_ports; node; node = jack_slist_next (node)) { jack_port_unregister (driver->client, ((jack_port_t *) node->data)); } jack_slist_free (driver->playback_ports); driver->playback_ports = 0; driver->engine = 0; return 0; }
static int oss_driver_detach (oss_driver_t *driver, jack_engine_t *engine) { JSList *node; if (driver->engine == NULL) return -1; /*jack_deactivate(driver->client);*/ /* ? */ node = driver->capture_ports; while (node != NULL) { jack_port_unregister(driver->client, ((jack_port_t *) node->data)); node = jack_slist_next(node); } jack_slist_free(driver->capture_ports); driver->capture_ports = NULL; node = driver->playback_ports; while (node != NULL) { jack_port_unregister(driver->client, ((jack_port_t *) node->data)); node = jack_slist_next(node); } jack_slist_free(driver->playback_ports); driver->playback_ports = NULL; driver->engine = NULL; return 0; }
static int iio_driver_detach (iio_driver_t *driver, jack_engine_t *engine) { JSList *node; printf("iio_driver_detach\n"); if (driver->engine == 0) return -1; // unregister all ports for (node = driver->capture_ports; node; node = jack_slist_next(node)) { jack_port_unregister(driver->client, ((jack_port_t *) node->data)); } jack_slist_free(driver->capture_ports); driver->capture_ports = 0; for (node = driver->playback_ports; node; node = jack_slist_next(node)) { jack_port_unregister(driver->client, ((jack_port_t *) node->data)); } jack_slist_free(driver->playback_ports); driver->playback_ports = 0; driver->engine = 0; return 0; }
void netjack_detach( netjack_driver_state_t *netj ) { JSList * node; for (node = netj->capture_ports; node; node = jack_slist_next (node)) jack_port_unregister (netj->client, ((jack_port_t *) node->data)); jack_slist_free (netj->capture_ports); netj->capture_ports = NULL; for (node = netj->capture_srcs; node; node = jack_slist_next (node)) { #if HAVE_CELT if( netj->bitdepth == CELT_MODE ) { CELTDecoder * decoder = node->data; celt_decoder_destroy(decoder); } else #endif { #if HAVE_SAMPLERATE SRC_STATE * src = node->data; src_delete(src); #endif } } jack_slist_free (netj->capture_srcs); netj->playback_srcs = NULL; for (node = netj->playback_ports; node; node = jack_slist_next (node)) jack_port_unregister (netj->client, ((jack_port_t *) node->data)); jack_slist_free (netj->playback_ports); netj->playback_ports = NULL; for (node = netj->playback_srcs; node; node = jack_slist_next (node)) { #if HAVE_CELT if( netj->bitdepth == CELT_MODE ) { CELTEncoder * encoder = node->data; celt_encoder_destroy(encoder); } else #endif { #if HAVE_SAMPLERATE SRC_STATE * src = node->data; src_delete(src); #endif } } jack_slist_free (netj->playback_srcs); netj->playback_srcs = NULL; #if HAVE_CELT if( netj->bitdepth == CELT_MODE ) celt_mode_destroy(netj->celt_mode); #endif }