pa_module *module_combine_sink;
pa_module *module_combine_sink_for_ex;
- pa_module *module_null_sink;
- pa_module *module_null_source;
+ uint32_t module_null_sink_index;
+ uint32_t module_null_source_index;
pa_module *module_loopback;
struct {
int32_t latency_msec;
/* unload combine sink */
if (stream_type == STREAM_SINK_INPUT) {
- null_sink = (pa_sink*)pa_namereg_get(u->core, SINK_NAME_NULL, PA_NAMEREG_SINK);
- unload_combine_sink_module(u, SINK_NAME_COMBINED, null_sink);
+ if (null_sink = (pa_sink*)pa_namereg_get(u->core, SINK_NAME_NULL, PA_NAMEREG_SINK))
+ unload_combine_sink_module(u, SINK_NAME_COMBINED, null_sink);
}
route_info.role = "reset";
pa_modargs *ma = NULL;
struct userdata *u;
char *args = NULL;
+ pa_module *module_loaded;
pa_assert(m);
m->userdata = u = pa_xnew0(struct userdata, 1);
u->core = m->core;
u->module = m;
+ u->module_null_sink_index = PA_INVALID_INDEX;
+ u->module_null_source_index = PA_INVALID_INDEX;
if (!(u->hal_interface = pa_hal_interface_get(u->core))) {
pa_log("Failed to get hal interface");
PA_HOOK_EARLY, (pa_hook_cb_t)update_info_hook_cb, u);
}
u->device_manager = pa_device_manager_get(u->core);
-
u->stream_manager = pa_stream_manager_get(u->core);
/* load null sink/source */
args = pa_sprintf_malloc("sink_name=%s norewinds=1", SINK_NAME_NULL);
- if (pa_module_load(&u->module_null_sink, u->core, MODULE_NULL_SINK, args))
+ if (pa_module_load(&module_loaded, u->core, MODULE_NULL_SINK, args))
pa_log_error("failed to load module-null-sink");
+ else
+ u->module_null_sink_index = module_loaded->index;
pa_xfree(args);
+
args = pa_sprintf_malloc("source_name=%s max_latency_msec=100", SOURCE_NAME_NULL);
- if (pa_module_load(&u->module_null_source, u->core, MODULE_NULL_SOURCE, args))
+ if (pa_module_load(&module_loaded, u->core, MODULE_NULL_SOURCE, args))
pa_log_error("failed to load module-null-source");
+ else
+ u->module_null_source_index = module_loaded->index;
pa_xfree(args);
__load_dump_config(u);
bt_sco_close(u, false);
- if (u->module_null_sink)
- pa_module_unload(u->module_null_sink, true);
+ if (u->module_null_sink_index != PA_INVALID_INDEX)
+ pa_module_unload_by_index(m->core, u->module_null_sink_index, true);
- if (u->module_null_source)
- pa_module_unload(u->module_null_source, true);
+ if (u->module_null_source_index != PA_INVALID_INDEX)
+ pa_module_unload_by_index(m->core, u->module_null_source_index, true);
if (u->device_manager)
pa_device_manager_unref(u->device_manager);