diff options
Diffstat (limited to 'profiles/audio/player.c')
-rw-r--r-- | profiles/audio/player.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/profiles/audio/player.c b/profiles/audio/player.c index 4736396d1..8f3d8def2 100644 --- a/profiles/audio/player.c +++ b/profiles/audio/player.c @@ -169,12 +169,17 @@ static gboolean get_position(const GDBusPropertyTable *property, DBusMessageIter *iter, void *data) { struct media_player *mp = data; + struct player_callback *cb = mp->cb; uint32_t position; position = media_player_get_position(mp); dbus_message_iter_append_basic(iter, DBUS_TYPE_UINT32, &position); + /* Trigger a resync if position has drifted more than a sec */ + if (abs(position - mp->position) > 1000) + cb->cbs->get_position(mp, cb->user_data); + return TRUE; } |