summaryrefslogtreecommitdiff
path: root/profiles/audio/player.c
diff options
context:
space:
mode:
Diffstat (limited to 'profiles/audio/player.c')
-rw-r--r--profiles/audio/player.c5
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;
}