2022-01-11 15:02:55 +00:00
|
|
|
#pragma once
|
|
|
|
#include "Observer.h"
|
|
|
|
|
2022-09-20 11:50:18 +00:00
|
|
|
#define ANYKEY 0xFF
|
2022-10-06 14:00:33 +00:00
|
|
|
#define MATRIXKEY 0xFE
|
2022-09-20 11:50:18 +00:00
|
|
|
|
2022-01-12 08:26:42 +00:00
|
|
|
typedef struct _InputEvent {
|
2023-01-21 13:34:29 +00:00
|
|
|
const char *source;
|
2022-01-12 08:26:42 +00:00
|
|
|
char inputEvent;
|
2022-09-20 11:50:18 +00:00
|
|
|
char kbchar;
|
2022-01-12 08:26:42 +00:00
|
|
|
} InputEvent;
|
2023-01-21 13:34:29 +00:00
|
|
|
class InputBroker : public Observable<const InputEvent *>
|
2022-01-11 15:02:55 +00:00
|
|
|
{
|
|
|
|
CallbackObserver<InputBroker, const InputEvent *> inputEventObserver =
|
|
|
|
CallbackObserver<InputBroker, const InputEvent *>(this, &InputBroker::handleInputEvent);
|
|
|
|
|
|
|
|
public:
|
|
|
|
InputBroker();
|
2022-01-13 13:06:10 +00:00
|
|
|
void registerSource(Observable<const InputEvent *> *source);
|
2022-01-11 15:02:55 +00:00
|
|
|
|
|
|
|
protected:
|
|
|
|
int handleInputEvent(const InputEvent *event);
|
|
|
|
};
|
|
|
|
|
|
|
|
extern InputBroker *inputBroker;
|