Skip to content

Commit b943ec7

Browse files
committed
Remove timer hacks
1 parent d42f0a3 commit b943ec7

File tree

2 files changed

+6
-26
lines changed

2 files changed

+6
-26
lines changed

demosys/timers/music.py

Lines changed: 5 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import glfw
1+
# import glfw
22
from demosys.conf import settings
33
from .base import BaseTimer
44

@@ -11,13 +11,11 @@
1111
class MusicTimer(BaseTimer):
1212
"""Timer based on music"""
1313
def __init__(self, **kwargs):
14-
mixer.init()
14+
mixer.init(frequency=44100, size=-16, channels=2, buffer=1024)
1515
mixer.music.load(settings.MUSIC)
1616
self.paused = True
17-
# Reported time is not accurate when pausing or unpausing. We hack around it.
1817
self.pause_time = 0
1918
self.initialized = False
20-
self._upt = 0 # hack fixing jaggy unpause
2119
super().__init__(**kwargs)
2220

2321
def start(self):
@@ -32,16 +30,14 @@ def start(self):
3230
self.paused = False
3331

3432
def pause(self):
33+
mixer.music.pause()
3534
self.pause_time = self.get_time()
36-
print("paused", self.pause_time)
3735
self.paused = True
38-
mixer.music.pause()
3936

4037
def toggle_pause(self):
4138
"""Toggle pause mode"""
4239
if self.paused:
4340
self.start()
44-
self._upt = glfw.get_time()
4541
else:
4642
self.pause()
4743

@@ -52,23 +48,8 @@ def stop(self):
5248

5349
def get_time(self):
5450
"""Get the current time in seconds"""
55-
# Hack around inaccuracy in mixer
56-
if self.paused:
57-
return self.pause_time
5851

59-
time = mixer.music.get_pos() / 1000.0
60-
61-
# Jaggy unpause. get_pos returns future and past time.
62-
# We inspect the difference between the paused time and
63-
# the reported time for 0.25 seconds after the unpause
64-
if glfw.get_time() < (self._upt + 0.25):
65-
if time > self.pause_time + 0.25:
66-
return self.pause_time
67-
68-
if time < self.pause_time:
52+
if self.paused:
6953
return self.pause_time
7054

71-
# Avoid jaggy time skips when unpausing
72-
if time < self.pause_time:
73-
return self.pause_time
74-
return time
55+
return mixer.music.get_pos() / 1000.0

demosys/timers/vlc.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,5 +44,4 @@ def get_time(self):
4444
if self.paused:
4545
return self.pause_time
4646

47-
time = self.player.get_time() / 1000.0
48-
return time
47+
return self.player.get_time() / 1000.0

0 commit comments

Comments
 (0)