示例#1
0
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;
}
示例#2
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;
}
示例#3
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;
}
示例#4
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;
}
示例#5
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
}