Skip to content

Commit 91aeb61

Browse files
committed
Support skipping time with LEFT, RIGHT
1 parent 0bcf89d commit 91aeb61

File tree

11 files changed

+49
-4
lines changed

11 files changed

+49
-4
lines changed

demosys/conf/default.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525

2626
MUSIC = None
2727

28-
TIMER = 'demosys.timers.time.Timer'
28+
TIMER = 'demosys.timers.clock.Timer'
2929

3030
TIMELINE = 'demosys.timeline.single.Timeline'
3131

demosys/context/base.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,12 @@ def keyboard_event(self, key, action, modifier):
160160
if key == self.keys.R and action == self.keys.ACTION_PRESS:
161161
project.instance.reload_programs()
162162

163+
if key == self.keys.RIGHT and action == self.keys.ACTION_PRESS:
164+
self.timer.set_time(self.timer.get_time() + 10.0)
165+
166+
if key == self.keys.LEFT and action == self.keys.ACTION_PRESS:
167+
self.timer.set_time(self.timer.get_time() - 10.0)
168+
163169
# Forward the event to the timeline
164170
self.timeline.key_event(key, action, modifier)
165171

demosys/context/glfw/keys.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@ class Keys(BaseKeys):
1414
ENTER = glfw.KEY_ENTER
1515
PAGE_UP = glfw.KEY_PAGE_UP
1616
PAGE_DOWN = glfw.KEY_PAGE_DOWN
17+
LEFT = glfw.KEY_LEFT
18+
RIGHT = glfw.KEY_RIGHT
19+
UP = glfw.KEY_UP
20+
DOWN = glfw.KEY_DOWN
1721

1822
A = glfw.KEY_A
1923
B = glfw.KEY_B

demosys/context/pyglet/keys.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ class Keys(BaseKeys):
1111
ENTER = key.ENTER
1212
PAGE_UP = key.PAGEUP
1313
PAGE_DOWN = key.PAGEDOWN
14+
LEFT = key.LEFT
15+
RIGHT = key.RIGHT
16+
UP = key.UP
17+
DOWN = key.DOWN
1418

1519
A = key.A
1620
B = key.B

demosys/context/pyqt/keys.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ class Keys(BaseKeys):
1111
ENTER = Qt.Key_Enter
1212
PAGE_UP = Qt.Key_PageUp
1313
PAGE_DOWN = Qt.Key_PageDown
14+
LEFT = Qt.Key_Left
15+
RIGHT = Qt.Key_Right
16+
UP = Qt.Key_Up
17+
DOWN = Qt.Key_Down
1418

1519
A = Qt.Key_A
1620
B = Qt.Key_B

demosys/project_template/project/settings.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929

3030
MUSIC = None
3131

32-
TIMER = 'demosys.timers.time.Timer'
32+
TIMER = 'demosys.timers.clock.Timer'
3333

3434
TIMELINE = 'demosys.timeline.single.Timeline'
3535

demosys/timers/base.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,7 @@ def stop(self):
2424
def get_time(self):
2525
"""Get the current time in seconds (float)"""
2626
raise NotImplementedError()
27+
28+
def set_time(self, value):
29+
"""Set the current time"""
30+
raise NotImplementedError()
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,3 +52,9 @@ def get_time(self):
5252

5353
curr_time = time.time()
5454
return curr_time - self.start_time - self.offset
55+
56+
def set_time(self, value):
57+
if value < 0:
58+
value = 0
59+
60+
self.offset += self.get_time() - value

demosys/timers/music.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
class Timer(BaseTimer):
1212
"""Timer based on music"""
1313
def __init__(self, **kwargs):
14-
mixer.init(frequency=44100, size=-16, channels=2, buffer=1024)
14+
mixer.init(frequency=44100, size=-16, channels=2, buffer=4096)
1515
mixer.music.load(settings.MUSIC)
1616
self.paused = True
1717
self.pause_time = 0
@@ -53,3 +53,10 @@ def get_time(self):
5353
return self.pause_time
5454

5555
return mixer.music.get_pos() / 1000.0
56+
57+
def set_time(self, value):
58+
if value < 0:
59+
value = 0
60+
61+
# mixer.music.play(start=value)
62+
mixer.music.set_pos(value)

demosys/timers/rocket.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,10 @@ def __init__(self, **kwargs):
1717
self.mode = config.get('mode') or 'editor'
1818
self.files = config.get('files') or './tracks'
1919
self.project = config.get('project') or 'project.xml'
20+
self.rps = config.get('rps', 24)
2021
self.start_paused = False
2122

22-
self.controller = TimeController(config.get('rps', 24))
23+
self.controller = TimeController(self.rps)
2324
if self.mode == 'editor':
2425
self.rocket = Rocket.from_socket(self.controller, track_path=self.files)
2526
self.start_paused = True
@@ -52,6 +53,12 @@ def get_time(self):
5253
self.rocket.update()
5354
return self.rocket.time
5455

56+
def set_time(self, value):
57+
if value < 0:
58+
value = 0
59+
60+
self.controller.row = self.rps * value
61+
5562
def pause(self):
5663
"""Pause the timer"""
5764
self.controller.playing = False

0 commit comments

Comments
 (0)