mirror of
https://github.com/TomHarte/CLK.git
synced 2025-02-18 01:30:56 +00:00
Adds virtual keys for F1, F2, etc.
This commit is contained in:
parent
3758ec79ac
commit
462a76dd96
@ -115,13 +115,36 @@ class ConcreteMachine:
|
|||||||
}
|
}
|
||||||
|
|
||||||
void set_key_state(uint16_t key, bool isPressed) final {
|
void set_key_state(uint16_t key, bool isPressed) final {
|
||||||
if(key == KeyBreak) {
|
switch(key) {
|
||||||
m6502_.set_reset_line(isPressed);
|
default:
|
||||||
} else {
|
if(isPressed)
|
||||||
if(isPressed)
|
key_states_[key >> 4] |= key&0xf;
|
||||||
key_states_[key >> 4] |= key&0xf;
|
else
|
||||||
else
|
key_states_[key >> 4] &= ~(key&0xf);
|
||||||
key_states_[key >> 4] &= ~(key&0xf);
|
break;
|
||||||
|
|
||||||
|
case KeyBreak:
|
||||||
|
m6502_.set_reset_line(isPressed);
|
||||||
|
break;
|
||||||
|
|
||||||
|
#define ShiftedKey(source, dest) \
|
||||||
|
case source: \
|
||||||
|
set_key_state(KeyShift, isPressed); \
|
||||||
|
set_key_state(dest, isPressed); \
|
||||||
|
break;
|
||||||
|
|
||||||
|
ShiftedKey(KeyF1, Key1);
|
||||||
|
ShiftedKey(KeyF2, Key2);
|
||||||
|
ShiftedKey(KeyF3, Key3);
|
||||||
|
ShiftedKey(KeyF4, Key4);
|
||||||
|
ShiftedKey(KeyF5, Key5);
|
||||||
|
ShiftedKey(KeyF6, Key6);
|
||||||
|
ShiftedKey(KeyF7, Key7);
|
||||||
|
ShiftedKey(KeyF8, Key8);
|
||||||
|
ShiftedKey(KeyF9, Key9);
|
||||||
|
ShiftedKey(KeyF0, Key0);
|
||||||
|
|
||||||
|
#undef ShiftedKey
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -52,6 +52,18 @@ uint16_t KeyboardMapper::mapped_key_for_key(Inputs::Keyboard::Key key) {
|
|||||||
BIND(KeypadMinus, KeyMinus); BIND(KeypadPlus, KeyColon);
|
BIND(KeypadMinus, KeyMinus); BIND(KeypadPlus, KeyColon);
|
||||||
|
|
||||||
BIND(Space, KeySpace);
|
BIND(Space, KeySpace);
|
||||||
|
|
||||||
|
// Virtual mappings.
|
||||||
|
BIND(F1, KeyF1);
|
||||||
|
BIND(F2, KeyF2);
|
||||||
|
BIND(F3, KeyF3);
|
||||||
|
BIND(F4, KeyF4);
|
||||||
|
BIND(F5, KeyF5);
|
||||||
|
BIND(F6, KeyF6);
|
||||||
|
BIND(F7, KeyF7);
|
||||||
|
BIND(F8, KeyF8);
|
||||||
|
BIND(F9, KeyF9);
|
||||||
|
BIND(F10, KeyF0);
|
||||||
}
|
}
|
||||||
#undef BIND
|
#undef BIND
|
||||||
return KeyboardMachine::MappedMachine::KeyNotMapped;
|
return KeyboardMachine::MappedMachine::KeyNotMapped;
|
||||||
|
@ -30,6 +30,9 @@ enum Key: uint16_t {
|
|||||||
KeyZ = 0x00c0 | 0x08, KeyA = 0x00c0 | 0x04, KeyQ = 0x00c0 | 0x02, Key1 = 0x00c0 | 0x01,
|
KeyZ = 0x00c0 | 0x08, KeyA = 0x00c0 | 0x04, KeyQ = 0x00c0 | 0x02, Key1 = 0x00c0 | 0x01,
|
||||||
KeyShift = 0x00d0 | 0x08, KeyControl = 0x00d0 | 0x04, KeyFunc = 0x00d0 | 0x02, KeyEscape = 0x00d0 | 0x01,
|
KeyShift = 0x00d0 | 0x08, KeyControl = 0x00d0 | 0x04, KeyFunc = 0x00d0 | 0x02, KeyEscape = 0x00d0 | 0x01,
|
||||||
|
|
||||||
|
// Virtual keys.
|
||||||
|
KeyF1 = 0xfff0, KeyF2, KeyF3, KeyF4, KeyF5, KeyF6, KeyF7, KeyF8, KeyF9, KeyF0,
|
||||||
|
|
||||||
KeyBreak = 0xfffd,
|
KeyBreak = 0xfffd,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user