summaryrefslogtreecommitdiffstats
path: root/src/modules/bluetooth/module-bluetooth-device.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/bluetooth/module-bluetooth-device.c')
-rw-r--r--src/modules/bluetooth/module-bluetooth-device.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/modules/bluetooth/module-bluetooth-device.c b/src/modules/bluetooth/module-bluetooth-device.c
index 2f98c160..b0e0a7b4 100644
--- a/src/modules/bluetooth/module-bluetooth-device.c
+++ b/src/modules/bluetooth/module-bluetooth-device.c
@@ -119,7 +119,9 @@ struct a2dp_info {
struct hsp_info {
pcm_capabilities_t pcm_capabilities;
pa_sink *sco_sink;
+ void (*sco_sink_set_volume)(pa_sink *s);
pa_source *sco_source;
+ void (*sco_source_set_volume)(pa_source *s);
pa_hook_slot *sink_state_changed_slot;
pa_hook_slot *source_state_changed_slot;
};
@@ -2802,12 +2804,14 @@ int pa__init(pa_module* m) {
init_bt(u);
if (u->hsp.sco_sink) {
+ u->hsp.sco_sink_set_volume = u->hsp.sco_sink->set_volume;
k = pa_sprintf_malloc("bluetooth-device@%p", (void*) u->hsp.sco_sink);
pa_shared_set(u->core, k, u);
pa_xfree(k);
}
if (u->hsp.sco_source) {
+ u->hsp.sco_source_set_volume = u->hsp.sco_source->set_volume;
k = pa_sprintf_malloc("bluetooth-device@%p", (void*) u->hsp.sco_source);
pa_shared_set(u->core, k, u);
pa_xfree(k);
@@ -2888,12 +2892,14 @@ void pa__done(pa_module *m) {
shutdown_bt(u);
if (u->hsp.sco_sink) {
+ u->hsp.sco_sink->set_volume = u->hsp.sco_sink_set_volume;
k = pa_sprintf_malloc("bluetooth-device@%p", (void*) u->hsp.sco_sink);
pa_shared_remove(u->core, k);
pa_xfree(k);
}
if (u->hsp.sco_source) {
+ u->hsp.sco_source->set_volume = u->hsp.sco_source_set_volume;
k = pa_sprintf_malloc("bluetooth-device@%p", (void*) u->hsp.sco_source);
pa_shared_remove(u->core, k);
pa_xfree(k);