diff options
author | Marc-André Lureau <marc-andre.lureau@nokia.com> | 2011-03-28 15:35:17 +0300 |
---|---|---|
committer | Colin Guthrie <colin@mageia.org> | 2011-04-01 13:33:08 +0100 |
commit | ccbf7a3006abfda81cb891a68625a9304689b352 (patch) | |
tree | a9292f896bdab4ffbad73b26da1269d8f62624d4 /src/modules/bluetooth | |
parent | 2386471e10c25c01e7b4b7885c41ce72de6e84ca (diff) |
bluetooth: restore original sco_{sink, src}->set_volume when unloading
Diffstat (limited to 'src/modules/bluetooth')
-rw-r--r-- | src/modules/bluetooth/module-bluetooth-device.c | 6 |
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); |