touch_screen.py 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import pykka
  2. import traceback
  3. import logging
  4. from threading import Thread
  5. import pygame
  6. from .screen_manager import ScreenManager
  7. from mopidy import core
  8. logger = logging.getLogger(__name__)
  9. class TouchScreen(pykka.ThreadingActor, core.CoreListener):
  10. def __init__(self, config, core):
  11. super(TouchScreen, self).__init__()
  12. self.core = core
  13. self.screen_size=(320, 240)
  14. self.screen_manager = ScreenManager(self.screen_size)
  15. def start_thread(self):
  16. pygame.init()
  17. clock = pygame.time.Clock()
  18. screen = pygame.display.set_mode(self.screen_size)
  19. while self.running:
  20. clock.tick(30)
  21. screen.blit(self.screen_manager.update(self.core),(0,0))
  22. pygame.display.flip()
  23. pygame.quit()
  24. def on_start(self):
  25. self.running=True
  26. thread = Thread(target=self.start_thread)
  27. thread.start()
  28. def on_stop(self):
  29. self.running = False
  30. def track_playback_started(self, tl_track):
  31. try:
  32. self.screen_manager.track_started(tl_track)
  33. except:
  34. traceback.print_exc()