Fixed synchronization, but joining new mplayer to already playing session still fails

This commit is contained in:
Tomasz Fluxid Kowalczyk 2012-01-30 22:59:28 +01:00
parent 70c18ba17f
commit 89b48934b7
2 changed files with 6 additions and 4 deletions

View File

@ -17,7 +17,7 @@ if __name__ == '__main__':
else: else:
port = 8999 port = 8999
args.extend(('-slave', '-msglevel', 'all=1')) args.extend(('-slave', '-msglevel', 'all=1:global=4'))
manager = client.Manager(host, port, name) manager = client.Manager(host, port, name)
manager.start() manager.start()

View File

@ -75,7 +75,7 @@ class Manager(object):
self.player_paused = True self.player_paused = True
self.player_paused_at = 0.0 self.player_paused_at = 0.0
self.player_position = 0.0 self.player_position = 0.0
self.last_player_update = 0.0 self.last_player_update = None
self.player_speed_fix = False self.player_speed_fix = False
self.counter = 0 self.counter = 0
@ -162,7 +162,9 @@ class Manager(object):
self.last_global_update = curtime self.last_global_update = curtime
if self.player and not (self.counter and counter < self.counter): if self.player and not (self.counter and counter < self.counter):
changed = False changed = False
diff = position - self.player_position + (curtime - self.last_player_update) diff = self.player_position - position
if self.last_player_update is not None:
diff += curtime - self.last_player_update
if abs(diff) > 4: if abs(diff) > 4:
self.player.send_set_position(position) self.player.send_set_position(position)
changed = True changed = True
@ -172,7 +174,7 @@ class Manager(object):
changed = True changed = True
elif paused and not self.player_paused: elif paused and not self.player_paused:
self.player_paused_at = position self.player_paused_at = position
if diff > 0: if diff < 0:
self.player.send_set_paused(True) self.player.send_set_paused(True)
changed = True changed = True