main.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #!/usr/bin/env python3
  2. from keyboard import Keyboard
  3. from sock import Sock
  4. from clock import Clock
  5. from slides import Slides
  6. from preguntas import Preg
  7. from enum import Enum
  8. #from websocket import ws
  9. import time
  10. import signal
  11. import sys
  12. def signal_handler(signal, frame):
  13. print('Interrupted. Exiting')
  14. sys.exit(0)
  15. class Mode(Enum):
  16. diapo = 0
  17. preg = 1
  18. class Main(object):
  19. def __init__(self):
  20. self.mode = Mode.diapo
  21. self.s = Sock()
  22. self.s.setDaemon(True)
  23. self.s.start()
  24. time.sleep(0.5)
  25. self.k = Keyboard(self.next,self.prev,self.toggle)
  26. self.k.setDaemon(True)
  27. #self.ws = Websocket()
  28. self.c = Clock(self.timerTick)
  29. self.c.setDaemon(True)
  30. self.slides = Slides("../node/")
  31. self.preg = Preg()
  32. #self.ws.start()
  33. self.k.start()
  34. self.c.start()
  35. signal.signal(signal.SIGINT, signal_handler)
  36. print('Running. Exit with Ctrl-C')
  37. signal.pause()
  38. def next(self):
  39. if self.mode == Mode.diapo:
  40. self.s.send(self.slides.next())
  41. def prev(self):
  42. if self.mode == Mode.diapo:
  43. self.s.send(self.slides.prev())
  44. def toggle(self):
  45. print("toggle")
  46. if self.mode == Mode.diapo:
  47. if len(self.preg.preg) == 0:
  48. print("NO preg")
  49. return
  50. self.mode = Mode.preg
  51. self.s.send(self.preg.cur())
  52. else:
  53. self.mode = Mode.diapo
  54. self.s.send(self.slides.cur())
  55. def timerTick(self,data):
  56. self.s.send(dict(type="time",time=data))
  57. m = Main()