Skip to content

Commit 87097f2

Browse files
committed
Split up the timers package
1 parent b707b8f commit 87097f2

File tree

4 files changed

+49
-45
lines changed

4 files changed

+49
-45
lines changed

demosys/timers/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
from .base import Timer # noqa
2+
from .music import MusicTimer # noqa

demosys/timers/base.py

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
import glfw
2+
3+
4+
class Timer:
5+
"""Timer based on glfw time"""
6+
def __init__(self, **kwargs):
7+
self.start_time = None
8+
self.stop_time = None
9+
self.pause_time = None
10+
self.offset = 0
11+
12+
def start(self):
13+
# Initial start?
14+
if self.start_time is None:
15+
self.start_time = glfw.get_time()
16+
# Play after pause
17+
else:
18+
# Add the duration of the paused interval to the total offset
19+
pause_duration = glfw.get_time() - self.pause_time
20+
self.offset += pause_duration
21+
# print("pause duration", pause_duration, "offset", self.offset)
22+
# Exit the paused state
23+
self.pause_time = None
24+
25+
def pause(self):
26+
self.pause_time = glfw.get_time()
27+
28+
def toggle_pause(self):
29+
if self.pause_time:
30+
self.start()
31+
else:
32+
self.pause()
33+
34+
def stop(self):
35+
self.stop_time = glfw.get_time()
36+
return self.stop_time - self.start_time - self.offset
37+
38+
def get_time(self):
39+
if self.pause_time is not None:
40+
time = self.pause_time - self.offset - self.start_time
41+
return time
42+
43+
time = glfw.get_time()
44+
return time - self.start_time - self.offset

demosys/timeline/timers.py renamed to demosys/timers/music.py

Lines changed: 2 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,9 @@
11
import glfw
22
from pygame import mixer
3+
from .base import Timer
34

45

5-
class Timer:
6-
"""Timer based on glfw time"""
7-
def __init__(self, **kwargs):
8-
self.start_time = None
9-
self.stop_time = None
10-
self.pause_time = None
11-
self.offset = 0
12-
13-
def start(self):
14-
# Initial start?
15-
if self.start_time is None:
16-
self.start_time = glfw.get_time()
17-
# Play after pause
18-
else:
19-
# Add the duration of the paused interval to the total offset
20-
pause_duration = glfw.get_time() - self.pause_time
21-
self.offset += pause_duration
22-
# print("pause duration", pause_duration, "offset", self.offset)
23-
# Exit the paused state
24-
self.pause_time = None
25-
26-
def pause(self):
27-
self.pause_time = glfw.get_time()
28-
29-
def toggle_pause(self):
30-
if self.pause_time:
31-
self.start()
32-
else:
33-
self.pause()
34-
35-
def stop(self):
36-
self.stop_time = glfw.get_time()
37-
return self.stop_time - self.start_time - self.offset
38-
39-
def get_time(self):
40-
if self.pause_time is not None:
41-
time = self.pause_time - self.offset - self.start_time
42-
return time
43-
44-
time = glfw.get_time()
45-
return time - self.start_time - self.offset
46-
47-
48-
class MusicTimer:
6+
class MusicTimer(Timer):
497
"""Timer based on music"""
508
def __init__(self, **kwargs):
519
mixer.init()

demosys/view/controller.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from demosys.opengl import fbo
1010
from demosys.opengl.fbo import WINDOW_FBO
1111
from demosys import resources
12-
from demosys.timeline import timers
12+
from demosys import timers
1313
from demosys.conf import settings
1414
from demosys.scene import camera
1515
from . import screenshot

0 commit comments

Comments
 (0)