From 29c9f3163143a8c63b9a3020e85bb5bd7a8cb3ac Mon Sep 17 00:00:00 2001 From: Luiz Augusto von Dentz Date: Thu, 2 Oct 2008 16:42:54 -0300 Subject: Add code to emit PropertyChanged on sink interface. --- audio/sink.c | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/audio/sink.c b/audio/sink.c index ab0a161d..e90ad0e3 100644 --- a/audio/sink.c +++ b/audio/sink.c @@ -91,6 +91,10 @@ static void stream_state_changed(struct avdtp_stream *stream, AUDIO_SINK_INTERFACE, "Disconnected", DBUS_TYPE_INVALID); + dbus_connection_emit_property_changed(dev->conn, dev->path, + AUDIO_SINK_INTERFACE, + "Connected", + DBUS_TYPE_BOOLEAN, &value); if (sink->disconnect) { DBusMessage *reply; struct pending_request *p; @@ -112,22 +116,42 @@ static void stream_state_changed(struct avdtp_stream *stream, sink->cb_id = 0; break; case AVDTP_STATE_OPEN: - if (old_state == AVDTP_STATE_CONFIGURED) + if (old_state == AVDTP_STATE_CONFIGURED) { + value = TRUE; g_dbus_emit_signal(dev->conn, dev->path, AUDIO_SINK_INTERFACE, "Connected", DBUS_TYPE_INVALID); - else if (old_state == AVDTP_STATE_STREAMING) + dbus_connection_emit_property_changed(dev->conn, + dev->path, + AUDIO_SINK_INTERFACE, + "Connected", + DBUS_TYPE_BOOLEAN, + &value); + } else if (old_state == AVDTP_STATE_STREAMING) { + value = FALSE; g_dbus_emit_signal(dev->conn, dev->path, AUDIO_SINK_INTERFACE, "Stopped", DBUS_TYPE_INVALID); + dbus_connection_emit_property_changed(dev->conn, + dev->path, + AUDIO_SINK_INTERFACE, + "Playing", + DBUS_TYPE_BOOLEAN, + &value); + } break; case AVDTP_STATE_STREAMING: + value = TRUE; g_dbus_emit_signal(dev->conn, dev->path, AUDIO_SINK_INTERFACE, "Playing", DBUS_TYPE_INVALID); + dbus_connection_emit_property_changed(dev->conn, dev->path, + AUDIO_SINK_INTERFACE, + "Playing", + DBUS_TYPE_BOOLEAN, &value); break; case AVDTP_STATE_CONFIGURED: case AVDTP_STATE_CLOSING: -- cgit