diff options
| -rw-r--r-- | audio/sink.c | 28 | 
1 files 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: | 
