mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-03 09:01:50 -05:00
bluetooth: Remove pa_bluetooth_discovery_sync().
pa_bluetooth_discovery_sync() waited until all pending method calls had completed. I don't understand what the benefit of that could be, so I removed the function. We should avoid blocking as much as possible, and the code that used pa_bluetooth_discovery_sync() didn't look like it really needed to wait for anything.
This commit is contained in:
parent
de73a3ed98
commit
baa62fb615
3 changed files with 4 additions and 26 deletions
|
|
@ -1049,9 +1049,6 @@ pa_bluetooth_device* pa_bluetooth_discovery_get_by_address(pa_bluetooth_discover
|
||||||
pa_assert(PA_REFCNT_VALUE(y) > 0);
|
pa_assert(PA_REFCNT_VALUE(y) > 0);
|
||||||
pa_assert(address);
|
pa_assert(address);
|
||||||
|
|
||||||
if (!pa_hook_is_firing(&y->hooks[PA_BLUETOOTH_HOOK_DEVICE_CONNECTION_CHANGED]))
|
|
||||||
pa_bluetooth_discovery_sync(y);
|
|
||||||
|
|
||||||
while ((d = pa_hashmap_iterate(y->devices, &state, NULL)))
|
while ((d = pa_hashmap_iterate(y->devices, &state, NULL)))
|
||||||
if (pa_streq(d->address, address))
|
if (pa_streq(d->address, address))
|
||||||
return device_is_audio_ready(d) ? d : NULL;
|
return device_is_audio_ready(d) ? d : NULL;
|
||||||
|
|
@ -1066,9 +1063,6 @@ pa_bluetooth_device* pa_bluetooth_discovery_get_by_path(pa_bluetooth_discovery *
|
||||||
pa_assert(PA_REFCNT_VALUE(y) > 0);
|
pa_assert(PA_REFCNT_VALUE(y) > 0);
|
||||||
pa_assert(path);
|
pa_assert(path);
|
||||||
|
|
||||||
if (!pa_hook_is_firing(&y->hooks[PA_BLUETOOTH_HOOK_DEVICE_CONNECTION_CHANGED]))
|
|
||||||
pa_bluetooth_discovery_sync(y);
|
|
||||||
|
|
||||||
if ((d = pa_hashmap_get(y->devices, path)))
|
if ((d = pa_hashmap_get(y->devices, path)))
|
||||||
if (device_is_audio_ready(d))
|
if (device_is_audio_ready(d))
|
||||||
return d;
|
return d;
|
||||||
|
|
@ -1764,13 +1758,6 @@ void pa_bluetooth_discovery_unref(pa_bluetooth_discovery *y) {
|
||||||
pa_xfree(y);
|
pa_xfree(y);
|
||||||
}
|
}
|
||||||
|
|
||||||
void pa_bluetooth_discovery_sync(pa_bluetooth_discovery *y) {
|
|
||||||
pa_assert(y);
|
|
||||||
pa_assert(PA_REFCNT_VALUE(y) > 0);
|
|
||||||
|
|
||||||
pa_dbus_sync_pending_list(&y->pending);
|
|
||||||
}
|
|
||||||
|
|
||||||
pa_hook* pa_bluetooth_discovery_hook(pa_bluetooth_discovery *y, pa_bluetooth_hook_t hook) {
|
pa_hook* pa_bluetooth_discovery_hook(pa_bluetooth_discovery *y, pa_bluetooth_hook_t hook) {
|
||||||
pa_assert(y);
|
pa_assert(y);
|
||||||
pa_assert(PA_REFCNT_VALUE(y) > 0);
|
pa_assert(PA_REFCNT_VALUE(y) > 0);
|
||||||
|
|
|
||||||
|
|
@ -141,8 +141,6 @@ pa_bluetooth_discovery* pa_bluetooth_discovery_get(pa_core *core);
|
||||||
pa_bluetooth_discovery* pa_bluetooth_discovery_ref(pa_bluetooth_discovery *y);
|
pa_bluetooth_discovery* pa_bluetooth_discovery_ref(pa_bluetooth_discovery *y);
|
||||||
void pa_bluetooth_discovery_unref(pa_bluetooth_discovery *d);
|
void pa_bluetooth_discovery_unref(pa_bluetooth_discovery *d);
|
||||||
|
|
||||||
void pa_bluetooth_discovery_sync(pa_bluetooth_discovery *d);
|
|
||||||
|
|
||||||
pa_bluetooth_device* pa_bluetooth_discovery_get_by_path(pa_bluetooth_discovery *d, const char* path);
|
pa_bluetooth_device* pa_bluetooth_discovery_get_by_path(pa_bluetooth_discovery *d, const char* path);
|
||||||
pa_bluetooth_device* pa_bluetooth_discovery_get_by_address(pa_bluetooth_discovery *d, const char* address);
|
pa_bluetooth_device* pa_bluetooth_discovery_get_by_address(pa_bluetooth_discovery *d, const char* address);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -40,15 +40,14 @@
|
||||||
PA_MODULE_AUTHOR("Joao Paulo Rechi Vita");
|
PA_MODULE_AUTHOR("Joao Paulo Rechi Vita");
|
||||||
PA_MODULE_DESCRIPTION("Detect available bluetooth audio devices and load bluetooth audio drivers");
|
PA_MODULE_DESCRIPTION("Detect available bluetooth audio devices and load bluetooth audio drivers");
|
||||||
PA_MODULE_VERSION(PACKAGE_VERSION);
|
PA_MODULE_VERSION(PACKAGE_VERSION);
|
||||||
PA_MODULE_USAGE("async=<Asynchronous initialization?> "
|
PA_MODULE_USAGE("sco_sink=<name of sink> "
|
||||||
"sco_sink=<name of sink> "
|
|
||||||
"sco_source=<name of source> ");
|
"sco_source=<name of source> ");
|
||||||
PA_MODULE_LOAD_ONCE(TRUE);
|
PA_MODULE_LOAD_ONCE(TRUE);
|
||||||
|
|
||||||
static const char* const valid_modargs[] = {
|
static const char* const valid_modargs[] = {
|
||||||
"sco_sink",
|
"sco_sink",
|
||||||
"sco_source",
|
"sco_source",
|
||||||
"async",
|
"async", /* deprecated */
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -128,7 +127,6 @@ static pa_hook_result_t load_module_for_device(pa_bluetooth_discovery *y, const
|
||||||
int pa__init(pa_module* m) {
|
int pa__init(pa_module* m) {
|
||||||
struct userdata *u;
|
struct userdata *u;
|
||||||
pa_modargs *ma = NULL;
|
pa_modargs *ma = NULL;
|
||||||
pa_bool_t async = FALSE;
|
|
||||||
|
|
||||||
pa_assert(m);
|
pa_assert(m);
|
||||||
|
|
||||||
|
|
@ -137,10 +135,8 @@ int pa__init(pa_module* m) {
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pa_modargs_get_value_boolean(ma, "async", &async) < 0) {
|
if (pa_modargs_get_value(ma, "async", NULL))
|
||||||
pa_log("Failed to parse async argument.");
|
pa_log_warn("The 'async' argument is deprecated and does nothing.");
|
||||||
goto fail;
|
|
||||||
}
|
|
||||||
|
|
||||||
m->userdata = u = pa_xnew0(struct userdata, 1);
|
m->userdata = u = pa_xnew0(struct userdata, 1);
|
||||||
u->module = m;
|
u->module = m;
|
||||||
|
|
@ -155,9 +151,6 @@ int pa__init(pa_module* m) {
|
||||||
u->slot = pa_hook_connect(pa_bluetooth_discovery_hook(u->discovery, PA_BLUETOOTH_HOOK_DEVICE_CONNECTION_CHANGED),
|
u->slot = pa_hook_connect(pa_bluetooth_discovery_hook(u->discovery, PA_BLUETOOTH_HOOK_DEVICE_CONNECTION_CHANGED),
|
||||||
PA_HOOK_NORMAL, (pa_hook_cb_t) load_module_for_device, u);
|
PA_HOOK_NORMAL, (pa_hook_cb_t) load_module_for_device, u);
|
||||||
|
|
||||||
if (!async)
|
|
||||||
pa_bluetooth_discovery_sync(u->discovery);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
fail:
|
fail:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue