main.py 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  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 Websocket
  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.c = Clock(self.timerTick)
  28. self.c.setDaemon(True)
  29. self.ws = Websocket(self.add_question, self.handle_diapo,self.handle_rec,self.toggle,self.handle_video)
  30. self.ws.setDaemon(True)
  31. self.slides = Slides("../node/")
  32. self.preg = Preg()
  33. self.ws.start()
  34. self.k.start()
  35. self.c.start()
  36. signal.signal(signal.SIGINT, signal_handler)
  37. print('Running. Exit with Ctrl-C')
  38. signal.pause()
  39. def add_question(self,question):
  40. pass
  41. def handle_diapo(self,data):
  42. pass
  43. def handle_rec(self,data):
  44. pass
  45. def handle_video(self,data):
  46. pass
  47. def next(self):
  48. if self.mode == Mode.diapo:
  49. self.s.send(self.slides.next())
  50. def prev(self):
  51. if self.mode == Mode.diapo:
  52. self.s.send(self.slides.prev())
  53. def toggle(self):
  54. if self.mode == Mode.diapo:
  55. if len(self.preg.preg) == 0:
  56. print("NO preg")
  57. return
  58. self.mode = Mode.preg
  59. self.s.send(self.preg.cur())
  60. else:
  61. self.mode = Mode.diapo
  62. self.s.send(self.slides.cur())
  63. def timerTick(self,data):
  64. self.s.send(dict(type="time",time=data))
  65. m = Main()