mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-03-18 21:30:38 +01:00
[ION] Get rid of scankey, use ion_key_states[] instead
This commit is contained in:
@@ -1,3 +1,3 @@
|
||||
SFLAGS += -Iion/include -DKD_CONFIG_H=1
|
||||
include ion/platform/$(PLATFORM)/Makefile
|
||||
#objs += $(addprefix ion/src/, ion.o)
|
||||
objs += $(addprefix ion/src/, keyboard.o)
|
||||
|
||||
@@ -5,12 +5,11 @@
|
||||
void FltkKbdButtonCallback(Fl_Widget * w, void * context) {
|
||||
FltkKbd * kbd = (FltkKbd *)context;
|
||||
FltkKbdButton * button = (FltkKbdButton *)w;
|
||||
kbd->register_key_state(button->m_key, button->value());
|
||||
kbd->m_keyStates[button->m_key] = button->value();
|
||||
printf("Register state %d at %d\n", button->m_key, button->value());
|
||||
}
|
||||
|
||||
FltkKbd::FltkKbd(int x, int y, int w, int h) : Fl_Group(x, y, w, h) {
|
||||
m_keyState = new bool[ION_NUMBER_OF_KEYS];
|
||||
for (int i=0; i<ION_NUMBER_OF_KEYS; i++) {
|
||||
m_keyState[i] = false;
|
||||
}
|
||||
@@ -22,13 +21,3 @@ FltkKbd::FltkKbd(int x, int y, int w, int h) : Fl_Group(x, y, w, h) {
|
||||
}
|
||||
end();
|
||||
}
|
||||
|
||||
// FIXME: Destructor: delete[] m_keyState
|
||||
|
||||
bool FltkKbd::scankey(ion_key_t key) {
|
||||
return m_keyState[key];
|
||||
}
|
||||
|
||||
void FltkKbd::register_key_state(ion_key_t key, bool active) {
|
||||
m_keyState[key] = active;
|
||||
}
|
||||
|
||||
@@ -7,13 +7,9 @@ extern "C" {
|
||||
}
|
||||
|
||||
class FltkKbd : public Fl_Group {
|
||||
friend void FltkKbdButtonCallback(Fl_Widget * w, void * context);
|
||||
public:
|
||||
FltkKbd(int x, int y, int w, int h);
|
||||
bool scankey(ion_key_t key);
|
||||
private:
|
||||
bool * m_keyState;
|
||||
void register_key_state(ion_key_t key, bool active);
|
||||
bool m_keyStates[ION_NUMBER_OF_KEYS];
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -3,15 +3,19 @@
|
||||
|
||||
#include <stdbool.h>
|
||||
|
||||
|
||||
typedef enum {
|
||||
ION_KEY_1,
|
||||
ION_KEY_2,
|
||||
ION_KEY_PLUS,
|
||||
ION_KEY_MINUS,
|
||||
ION_NUMBER_OF_KEYS // Should be defined last
|
||||
} ion_key_t;
|
||||
|
||||
bool ion_scankey(ion_key_t key);
|
||||
#define ION_NUMBER_OF_KEYS 4
|
||||
|
||||
extern bool * ion_key_states;
|
||||
|
||||
// ion_key_states[ion_key] gives the state of ion_key
|
||||
|
||||
char ion_getchar();
|
||||
|
||||
|
||||
@@ -13,16 +13,17 @@ extern "C" {
|
||||
void ion_init() {
|
||||
Fl::visual(FL_RGB);
|
||||
int margin = 10;
|
||||
Fl_Window * window = new Fl_Window(ION_FRAMEBUFFER_WIDTH+2*margin, ION_FRAMEBUFFER_HEIGHT+2*margin+40+2*margin);
|
||||
|
||||
Fl_Window * window = new Fl_Window(ION_FRAMEBUFFER_WIDTH+2*margin, ION_FRAMEBUFFER_HEIGHT+2*margin+120+2*margin);
|
||||
|
||||
FltkLCD * lcd = new FltkLCD(margin, margin, ION_FRAMEBUFFER_WIDTH, ION_FRAMEBUFFER_HEIGHT);
|
||||
assert(ION_FRAMEBUFFER_BITS_PER_PIXEL == 8);
|
||||
Platform.display = lcd;
|
||||
PlatformFramebuffer = lcd->m_framebuffer;
|
||||
|
||||
FltkKbd * kbd = new FltkKbd(0,0,100,100);
|
||||
FltkKbd * kbd = new FltkKbd(margin,ION_FRAMEBUFFER_HEIGHT+3*margin,ION_FRAMEBUFFER_WIDTH,120);
|
||||
Platform.keyboard = kbd;
|
||||
|
||||
ion_key_states = kbd->m_keyStates;
|
||||
|
||||
window->end();
|
||||
window->show(NULL, NULL);
|
||||
|
||||
Reference in New Issue
Block a user