Initial commit.
This commit is contained in:
65
KeyboardSimulation.cpp
Normal file
65
KeyboardSimulation.cpp
Normal file
@@ -0,0 +1,65 @@
|
||||
/*
|
||||
* File: KeyboardSimulation.cpp
|
||||
* Author: SET - nmset@yandex.com
|
||||
* Licence : LGPL 2.1
|
||||
* Copyright SET, M.D. - © 2022
|
||||
*
|
||||
* Created on October 8, 2022, 3:43 PM
|
||||
*/
|
||||
|
||||
#include "KeyboardSimulation.h"
|
||||
|
||||
KeyboardSimulation::KeyboardSimulation(PedalEVH * evh) {
|
||||
m_pedalEVH = evh;
|
||||
if (!m_pedalEVH)
|
||||
return;
|
||||
m_pedalEVH->m_owner->Bind(wxEVT_CHAR_HOOK, &KeyboardSimulation::OnKeyDown, this);
|
||||
}
|
||||
|
||||
KeyboardSimulation::~KeyboardSimulation() {
|
||||
}
|
||||
|
||||
void KeyboardSimulation::OnKeyDown(wxKeyEvent& evt) {
|
||||
const int keycode = evt.GetKeyCode();
|
||||
if (keycode != WXK_ESCAPE && keycode != WXK_F5
|
||||
&& keycode != WXK_F6 && keycode != WXK_F7)
|
||||
return;
|
||||
// Stop current.
|
||||
if (m_currentLeftStatus == PedalEvent::PRESSED) {
|
||||
m_currentLeftStatus = PedalEvent::RELEASED;
|
||||
m_pedalEVH->Left(m_currentLeftStatus);
|
||||
}
|
||||
if (m_currentMiddleStatus == PedalEvent::PRESSED) {
|
||||
m_currentMiddleStatus = PedalEvent::RELEASED;
|
||||
m_pedalEVH->Middle(m_currentMiddleStatus);
|
||||
}
|
||||
if (m_currentRightStatus == PedalEvent::PRESSED) {
|
||||
m_currentRightStatus = PedalEvent::RELEASED;
|
||||
m_pedalEVH->Right(m_currentRightStatus);
|
||||
}
|
||||
// Start new or stop all..
|
||||
switch (keycode) {
|
||||
case WXK_F5:
|
||||
m_currentLeftStatus = PedalEvent::PRESSED;
|
||||
m_pedalEVH->Left(m_currentLeftStatus);
|
||||
break;
|
||||
case WXK_F6:
|
||||
m_currentMiddleStatus = PedalEvent::PRESSED;
|
||||
m_pedalEVH->Middle(m_currentMiddleStatus);
|
||||
break;
|
||||
case WXK_F7:
|
||||
m_currentRightStatus = PedalEvent::PRESSED;
|
||||
m_pedalEVH->Right(m_currentRightStatus);
|
||||
break;
|
||||
case WXK_ESCAPE:
|
||||
m_currentLeftStatus = PedalEvent::RELEASED;
|
||||
m_pedalEVH->Left(m_currentLeftStatus);
|
||||
m_currentMiddleStatus = PedalEvent::RELEASED;
|
||||
m_pedalEVH->Middle(m_currentMiddleStatus);
|
||||
m_currentRightStatus = PedalEvent::RELEASED;
|
||||
m_pedalEVH->Right(m_currentRightStatus);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user