[pulseaudio-discuss] [PATCH 31/56] bluetooth: Implement org.bluez.MediaEndpoint1.ClearConfiguration()
João Paulo Rechi Vita
jprvita at gmail.com
Thu Aug 1 17:35:37 PDT 2013
On Fri, Jul 19, 2013 at 8:28 AM, Tanu Kaskinen
<tanu.kaskinen at linux.intel.com> wrote:
> On Fri, 2013-07-12 at 15:06 -0300, jprvita at gmail.com wrote:
>> From: João Paulo Rechi Vita <jprvita at openbossa.org>
>>
>> ---
>> src/modules/bluetooth/bluez5-util.c | 34 ++++++++++++++++++++++++++++++++--
>> 1 file changed, 32 insertions(+), 2 deletions(-)
>>
>> diff --git a/src/modules/bluetooth/bluez5-util.c b/src/modules/bluetooth/bluez5-util.c
>> index d8cf1df..762d1e4 100644
>> --- a/src/modules/bluetooth/bluez5-util.c
>> +++ b/src/modules/bluetooth/bluez5-util.c
>> @@ -631,11 +631,41 @@ fail:
>> }
>>
>> static DBusMessage *endpoint_clear_configuration(DBusConnection *conn, DBusMessage *m, void *userdata) {
>> + pa_bluetooth_discovery *y = userdata;
>> + pa_bluetooth_transport *t;
>> DBusMessage *r;
>> + DBusError err;
>> + const char *path;
>>
>> - pa_assert_se(r = dbus_message_new_error(m, BLUEZ_MEDIA_ENDPOINT_INTERFACE ".Error.NotImplemented",
>> - "Method not implemented"));
>> + dbus_error_init(&err);
>>
>> + if (!dbus_message_get_args(m, &err, DBUS_TYPE_OBJECT_PATH, &path, DBUS_TYPE_INVALID)) {
>> + pa_log_error("Endpoint ClearConfiguration(): %s", err.message);
>> + dbus_error_free(&err);
>> + goto fail;
>> + }
>> +
>> + if ((t = pa_hashmap_get(y->transports, path))) {
>> + bool old_any_connected = pa_bluetooth_device_any_transport_connected(t->device);
>> +
>> + pa_log_debug("Clearing transport %s profile %d", t->path, t->profile);
>
> Human-readable profile, please.
>
Ok
>> + t->device->transports[t->profile] = NULL;
>> + t->state = PA_BLUETOOTH_TRANSPORT_STATE_DISCONNECTED;
>> + pa_hook_fire(&y->hooks[PA_BLUETOOTH_HOOK_TRANSPORT_STATE_CHANGED], t);
>
> Copied from earlier mails:
>
> "Can the transport state be DISCONNECTED already before we set it here?
> If it can, please fire the hook only if the state actually changes."
>
> "Also, I'd like a log message (debug level) whenever t->state changes.
> There could be set_state() helper function that checks whether the new
> state is different than the old state, and if it is, then sets t->state,
> logs a message (including the old state, "state changed from <old> to
> <new>") and fires the STATE_CHANGED hook.
>
> This is just a wish, so I won't continue arguing if you for some reason
> don't think this is a good idea."
>
As replied before (copying here just FTR), I agree it is a good idea
and I'm gonna work on that.
>> +
>> + if (old_any_connected != pa_bluetooth_device_any_transport_connected(t->device)) {
>> + pa_hook_fire(&y->hooks[PA_BLUETOOTH_HOOK_DEVICE_CONNECTION_CHANGED], t->device);
>> + }
>
> Redundant braces.
>
I've missed that, fixing.
--
João Paulo Rechi Vita
http://about.me/jprvita
More information about the pulseaudio-discuss
mailing list