From: Tanu Kaskinen Date: Sun, 29 Sep 2013 16:47:16 +0000 (+0300) Subject: bluetooth: Add a comment about messing with the IDLE suspend cause X-Git-Tag: accepted/tizen/20131022.162753~71 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=189708a59715568b05f04e3078e303dbe770b813;p=platform%2Fupstream%2Fpulseaudio.git bluetooth: Add a comment about messing with the IDLE suspend cause --- diff --git a/src/modules/bluetooth/module-bluez5-device.c b/src/modules/bluetooth/module-bluez5-device.c index 013cce5..df08d62 100644 --- a/src/modules/bluetooth/module-bluez5-device.c +++ b/src/modules/bluetooth/module-bluez5-device.c @@ -1699,11 +1699,21 @@ static void handle_transport_state_change(struct userdata *u, struct pa_bluetoot if (acquire && transport_acquire(u, true) >= 0) { if (u->source) { pa_log_debug("Resuming source %s because its transport state changed to playing", u->source->name); + + /* We remove the IDLE suspend cause, because otherwise + * module-loopback doesn't uncork its streams. FIXME: Messing with + * the IDLE suspend cause here is wrong, the correct way to handle + * this would probably be to uncork the loopback streams not only + * when the other end is unsuspended, but also when the other end's + * suspend cause changes to IDLE only (currently there's no + * notification mechanism for suspend cause changes, though). */ pa_source_suspend(u->source, false, PA_SUSPEND_IDLE|PA_SUSPEND_USER); } if (u->sink) { pa_log_debug("Resuming sink %s because its transport state changed to playing", u->sink->name); + + /* FIXME: See the previous comment. */ pa_sink_suspend(u->sink, false, PA_SUSPEND_IDLE|PA_SUSPEND_USER); } }