2017-02-20 18:55:16 +00:00
|
|
|
#ifndef __TEENSY_KEYBOARD_H
|
|
|
|
#define __TEENSY_KEYBOARD_H
|
|
|
|
|
|
|
|
#include "physicalkeyboard.h"
|
|
|
|
|
|
|
|
class TeensyKeyboard : public PhysicalKeyboard {
|
|
|
|
public:
|
|
|
|
TeensyKeyboard(VMKeyboard *k);
|
|
|
|
virtual ~TeensyKeyboard();
|
|
|
|
|
|
|
|
// Interface used by the VM...
|
|
|
|
virtual void maintainKeyboard();
|
|
|
|
|
|
|
|
// Interface used by the BIOS...
|
2018-02-07 15:20:26 +00:00
|
|
|
virtual bool kbhit();
|
|
|
|
virtual int8_t read();
|
2017-02-20 18:55:16 +00:00
|
|
|
|
|
|
|
|
2021-01-20 01:14:49 +00:00
|
|
|
public:
|
|
|
|
// These are only public b/c teensy.ino (not a class) needs them.
|
2017-02-20 18:55:16 +00:00
|
|
|
void pressedKey(uint8_t key);
|
|
|
|
void releasedKey(uint8_t key);
|
|
|
|
|
2021-01-20 01:42:15 +00:00
|
|
|
private:
|
|
|
|
bool addEvent(uint8_t kc, bool pressed);
|
|
|
|
bool popEvent(uint8_t *kc, bool *pressed);
|
|
|
|
|
2022-01-07 17:24:07 +00:00
|
|
|
uint8_t modifyKeycode(uint8_t key);
|
|
|
|
|
2017-02-20 18:55:16 +00:00
|
|
|
private:
|
|
|
|
bool leftShiftPressed;
|
|
|
|
bool rightShiftPressed;
|
|
|
|
bool ctrlPressed;
|
|
|
|
bool capsLock;
|
|
|
|
bool leftApplePressed;
|
|
|
|
bool rightApplePressed;
|
|
|
|
|
|
|
|
int8_t numPressed;
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|