void VPiano::customEvent ( QEvent *event ) { if (event->type() == NoteOnEventType ) { NoteOnEvent *ev = static_cast<NoteOnEvent*>(event); ui.pianokeybd->showNoteOn(ev->getNote()); if (m_midiThru) noteOn(ev->getNote()); event->accept(); } else if (event->type() == NoteOffEventType ) { NoteOffEvent *ev = static_cast<NoteOffEvent*>(event); ui.pianokeybd->showNoteOff(ev->getNote()); if (m_midiThru) noteOff(ev->getNote()); event->accept(); } else if (event->type() == ControllerEventType ) { ControllerEvent *ev = static_cast<ControllerEvent*>(event); updateController(ev->getController(), ev->getValue()); if (m_midiThru) sendController(ev->getController(), ev->getValue()); event->accept(); } }
void FeedbackManager::playNoteOffEvent(NoteOffEvent event) { switch (state) { case OFF: break; case ECHO: eatChannelEvent(event); break; case REPING: emit gotNoteOnEvent(NoteOnEvent(event.getTime(), event.getChannel(), event.getNote(), 128)); events.enqueue(event); timer->start(PINGDELAY); break; case TUNNEL: break; case PINGPONG: emit gotNoteOnEvent(NoteOnEvent(0, 0, 127, 127)); emit gotNoteOffEvent(NoteOffEvent(0, 0, 127, 0)); break; } }