diff --git a/terminis/terminis.py b/terminis/terminis.py index c7d20de..6bfa94f 100644 --- a/terminis/terminis.py +++ b/terminis/terminis.py @@ -1,8 +1,11 @@ + + # -*- coding: utf-8 -*- import sys import os import subprocess +import signal try: import curses @@ -604,13 +607,23 @@ class Music: self.play() else: scheduler.cancel("music") - + + def pause(self): + if self.process: + scheduler.cancel("music") + self.process.send_signal(signal.SIGSTOP) + subprocess.Popen(["beep", "-l1", "-f1"]) + scheduler.repeat("music", 0.02, self.repeat) + + def resume(self): + if self.process: + self.process.send_signal(signal.SIGCONT) def stop(self): if self.process: + scheduler.cancel("music") self.process.terminate() self.process = None - scheduler.cancel("music") class Game: @@ -710,7 +723,7 @@ class Game: self.matrix.refresh(paused=True) self.next.refresh(paused=True) self.scr.timeout(-1) - self.music.stop() + self.music.pause() while True: key = self.scr.getkey() @@ -725,7 +738,7 @@ class Game: self.matrix.refresh() self.next.refresh() self.stats.time = time.time() - self.stats.time - self.music.play() + self.music.resume() def swap(self): if self.matrix.piece.hold_enabled: @@ -774,7 +787,7 @@ def main(): if "--help" in sys.argv[1:] or "-h" in sys.argv[1:] or "/?" in sys.argv[1:]: print(HELP_MSG) else: - if "--reset" in sys.argv[1:] or "-r" in sys.argv[1:]: + if "-reset" in sys.argv[1:] or "-r" in sys.argv[1:]: controls = ControlsParser() controls.reset() controls.edit() @@ -789,3 +802,4 @@ def main(): if __name__ == "__main__": main() +