From 629196e7a10942046455347c7469d6d42ea82dc9 Mon Sep 17 00:00:00 2001 From: Jeffrey Pfau Date: Mon, 3 Nov 2014 23:28:33 -0800 Subject: [PATCH] SDL: Load SDLK and SDLB input maps --- src/platform/sdl/gl-main.c | 1 + src/platform/sdl/sdl-events.c | 6 ++++++ src/platform/sdl/sdl-events.h | 3 +++ 3 files changed, 10 insertions(+) diff --git a/src/platform/sdl/gl-main.c b/src/platform/sdl/gl-main.c index f55efffde..3b0a9a774 100644 --- a/src/platform/sdl/gl-main.c +++ b/src/platform/sdl/gl-main.c @@ -119,6 +119,7 @@ int main(int argc, char** argv) { renderer.events.bindings = &context.inputMap; GBASDLInitEvents(&renderer.events); + GBASDLEventsLoadConfig(&renderer.events, &config); GBAThreadStart(&context); diff --git a/src/platform/sdl/sdl-events.c b/src/platform/sdl/sdl-events.c index d7561a578..7506b886d 100644 --- a/src/platform/sdl/sdl-events.c +++ b/src/platform/sdl/sdl-events.c @@ -45,9 +45,15 @@ bool GBASDLInitEvents(struct GBASDLEvents* context) { GBAInputBindKey(context->bindings, SDL_BINDING_BUTTON, 6, GBA_KEY_DOWN); GBAInputBindKey(context->bindings, SDL_BINDING_BUTTON, 7, GBA_KEY_LEFT); GBAInputBindKey(context->bindings, SDL_BINDING_BUTTON, 5, GBA_KEY_RIGHT); + return true; } +void GBASDLEventsLoadConfig(struct GBASDLEvents* context, const struct Configuration* config) { + GBAInputMapLoad(context->bindings, SDL_BINDING_KEY, config); + GBAInputMapLoad(context->bindings, SDL_BINDING_BUTTON, config); +} + void GBASDLDeinitEvents(struct GBASDLEvents* context) { SDL_JoystickClose(context->joystick); SDL_QuitSubSystem(SDL_INIT_JOYSTICK); diff --git a/src/platform/sdl/sdl-events.h b/src/platform/sdl/sdl-events.h index a4350d25e..cf261df7f 100644 --- a/src/platform/sdl/sdl-events.h +++ b/src/platform/sdl/sdl-events.h @@ -11,6 +11,7 @@ #define SDL_BINDING_BUTTON 0x53444C42 struct GBAVideoSoftwareRenderer; +struct Configuration; struct GBASDLEvents { struct GBAInputMap* bindings; @@ -25,6 +26,8 @@ struct GBASDLEvents { bool GBASDLInitEvents(struct GBASDLEvents*); void GBASDLDeinitEvents(struct GBASDLEvents*); +void GBASDLEventsLoadConfig(struct GBASDLEvents*, const struct Configuration*); + void GBASDLHandleEvent(struct GBAThread* context, struct GBASDLEvents* sdlContext, const union SDL_Event* event); #endif