X-Git-Url: https://scm.cri.ensmp.fr/git/minwii.git/blobdiff_plain/5034abc0164f6c09cb53291d2fe3e71c33cc4cf9..8efd1374d9e4265c1bd891018e6fd3465eb9e0aa:/src/minwii/widgets/playingscreen.py diff --git a/src/minwii/widgets/playingscreen.py b/src/minwii/widgets/playingscreen.py index 9519053..5829a4e 100755 --- a/src/minwii/widgets/playingscreen.py +++ b/src/minwii/widgets/playingscreen.py @@ -9,6 +9,8 @@ $URL$ import pygame import types +import kinect.pygamedisplay as kinect + import minwii.events as events from minwii.log import eventLogger from minwii.eventutils import event_handler, EventDispatcher, EventHandlerMixin @@ -44,7 +46,10 @@ class PlayingScreenBase(pygame.sprite.LayeredDirty, EventHandlerMixin) : self._initColumns() self._running = False self.draw(pygame.display.get_surface()) - self._initCursor() + self._initCursor() + + self.kinectRgb = kinect.RGB() + self.kinectRgbSur = pygame.Surface((640, 480)) def _initRects(self) : """ création des espaces réservés pour @@ -96,6 +101,14 @@ class PlayingScreenBase(pygame.sprite.LayeredDirty, EventHandlerMixin) : EventDispatcher.dispatchEvents() dirty = self.draw(pygame.display.get_surface()) pygame.display.update(dirty) + + self.kinectRgb.update() + rgbImg = self.kinectRgb.capture() + self.kinectRgbSur.blit(rgbImg, (0, 0)) + screen = pygame.display.get_surface() + screen.blit(pygame.transform.flip(self.kinectRgbSur, True, False), (0, 0)) + pygame.display.flip() + clock.tick(FRAMERATE) def stop(self) : @@ -106,9 +119,8 @@ class PlayingScreenBase(pygame.sprite.LayeredDirty, EventHandlerMixin) : @event_handler(pygame.KEYDOWN) def handleKeyDown(self, event) : - if event.key == pygame.K_q or \ - event.unicode == u'q' or \ - pygame.K_ESCAPE: + if event.key in (pygame.K_q, pygame.K_ESCAPE) or \ + event.unicode == u'q' : self.stop() @event_handler(pygame.MOUSEBUTTONDOWN) @@ -323,6 +335,9 @@ class SongPlayingScreen(PlayingScreenBase) : def setNoteTimeout(self) : delay = self.currentNote.duration * self.quarterNoteDuration delay = delay + delay * self.tempoTrim + delay = int(delay) + if delay < 1 : + delay = 1 # durée minimale, car 0 désactiverait le timer. pygame.time.set_timer(events.NOTEEND, delay) def tempoTrimUp(self, step=0.1) :