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
from minwii.config import MIDI_VELOCITY_RANGE
from minwii.config import MIDI_PAN_RANGE
from minwii.config import MIDI_VELOCITY_WRONG_NOTE_ATTN
+from minwii.config import SCREEN_RESOLUTION
from minwii.globals import BACKGROUND_LAYER
from minwii.globals import CURSOR_LAYER
from minwii.globals import PLAYING_MODES_DICT
self.columns = {}
self._initColumns()
self._running = False
- self.draw(pygame.display.get_surface())
- self._initCursor()
+ self.kinectRgb = kinect.RGBSprite(alpha=128, size=SCREEN_RESOLUTION)
+ self.add(self.kinectRgb, layer=CURSOR_LAYER)
+ self._initCursor()
+
def _initRects(self) :
""" création des espaces réservés pour
pygame.display.flip()
pygame.mouse.set_visible(False)
while self._running :
- EventDispatcher.dispatchEvents()
- dirty = self.draw(pygame.display.get_surface())
- pygame.display.update(dirty)
- clock.tick(FRAMERATE)
+ try :
+ EventDispatcher.dispatchEvents()
+ self.kinectRgb.update()
+ dirty = self.draw(pygame.display.get_surface())
+ pygame.display.update(dirty)
+ clock.tick(FRAMERATE)
+ except KeyboardInterrupt :
+ self.stop()
+ raise
def stop(self) :
self._running = False
@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)
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) :