From 9ef2dbdeda75a83eea29f9209e4469f3d7c82aad Mon Sep 17 00:00:00 2001 From: Luiz Augusto von Dentz Date: Thu, 24 Jan 2013 11:58:04 +0200 Subject: [PATCH] tools: Emit Seeked signal if Position changes MPRIS spec says PropertiesChanged is not emitted for Position, which is probably to make clear that progress is done using the rate, so instead Seeked should be emitted. --- tools/mpris-player.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tools/mpris-player.c b/tools/mpris-player.c index 5903ca1ac..95ef8ab66 100644 --- a/tools/mpris-player.c +++ b/tools/mpris-player.c @@ -1650,6 +1650,8 @@ static void player_property_changed(GDBusProxy *proxy, const char *name, { struct player *player; const char *property; + uint32_t position; + uint64_t value; player = find_player(proxy); if (player == NULL) @@ -1662,6 +1664,18 @@ static void player_property_changed(GDBusProxy *proxy, const char *name, g_dbus_emit_property_changed(player->conn, MPRIS_PLAYER_PATH, MPRIS_PLAYER_INTERFACE, property); + + if (strcasecmp(name, "Position") != 0) + return; + + dbus_message_iter_get_basic(iter, &position); + + value = position * 1000; + + g_dbus_emit_signal(player->conn, MPRIS_PLAYER_PATH, + MPRIS_PLAYER_INTERFACE, "Seeked", + DBUS_TYPE_INT64, &value, + DBUS_TYPE_INVALID); } static void transport_property_changed(GDBusProxy *proxy, const char *name, -- 2.47.3