From 397fc452f7d366530dc7a556950d7c1b28691a8a Mon Sep 17 00:00:00 2001 From: Romain Goyet Date: Wed, 2 Sep 2015 15:23:32 +0200 Subject: [PATCH] [ION] Get rid of scankey, use ion_key_states[] instead --- ion/Makefile | 2 +- ion/drivers/fltkkbd/fltkkbd.cpp | 13 +------------ ion/drivers/fltkkbd/fltkkbd.h | 6 +----- ion/include/ion/keyboard.h | 8 ++++++-- ion/platform/simulator/init.cpp | 7 ++++--- 5 files changed, 13 insertions(+), 23 deletions(-) diff --git a/ion/Makefile b/ion/Makefile index 09c955dff..77933d052 100644 --- a/ion/Makefile +++ b/ion/Makefile @@ -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) diff --git a/ion/drivers/fltkkbd/fltkkbd.cpp b/ion/drivers/fltkkbd/fltkkbd.cpp index 48028d8e7..8d6cc969d 100644 --- a/ion/drivers/fltkkbd/fltkkbd.cpp +++ b/ion/drivers/fltkkbd/fltkkbd.cpp @@ -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 + 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(); diff --git a/ion/platform/simulator/init.cpp b/ion/platform/simulator/init.cpp index d07e89c27..8e5895be4 100644 --- a/ion/platform/simulator/init.cpp +++ b/ion/platform/simulator/init.cpp @@ -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);