From 0de46a78679adf820eba08c3f72e64202540b692 Mon Sep 17 00:00:00 2001 From: Jeffrey Pfau Date: Thu, 29 Jan 2015 23:16:25 -0800 Subject: [PATCH] GBA: Add API for getting Configuration structs for overrides and input --- CHANGES | 1 + src/gba/gba-config.c | 9 +++++++++ src/gba/gba-config.h | 3 +++ src/platform/perf-main.c | 2 +- src/platform/qt/ConfigController.h | 2 +- src/platform/sdl/main.c | 4 ++-- 6 files changed, 17 insertions(+), 4 deletions(-) diff --git a/CHANGES b/CHANGES index 236c45304..2ca9619a1 100644 --- a/CHANGES +++ b/CHANGES @@ -45,6 +45,7 @@ Misc: - Debugger: Merge Thumb BL instructions when disassembling - Debugger: Clean up debugger interface, removing obsolete state (fixes #67) - Debugger: Watchpoints now report address watched (fixes #68) + - GBA: Add API for getting Configuration structs for overrides and input 0.1.1: (2015-01-24) Bugfixes: diff --git a/src/gba/gba-config.c b/src/gba/gba-config.c index 45769b6e6..eff40ffd0 100644 --- a/src/gba/gba-config.c +++ b/src/gba/gba-config.c @@ -257,6 +257,15 @@ void GBAConfigLoadDefaults(struct GBAConfig* config, const struct GBAOptions* op } } +// These two are basically placeholders in case the internal layout changes, e.g. for loading separate files +struct Configuration* GBAConfigGetInput(struct GBAConfig* config) { + return &config->configTable; +} + +struct Configuration* GBAConfigGetOverrides(struct GBAConfig* config) { + return &config->configTable; +} + void GBAConfigFreeOpts(struct GBAOptions* opts) { free(opts->bios); opts->bios = 0; diff --git a/src/gba/gba-config.h b/src/gba/gba-config.h index ad64f16f4..bd52ccf1f 100644 --- a/src/gba/gba-config.h +++ b/src/gba/gba-config.h @@ -64,6 +64,9 @@ void GBAConfigSetDefaultFloatValue(struct GBAConfig*, const char* key, float val void GBAConfigMap(const struct GBAConfig* config, struct GBAOptions* opts); void GBAConfigLoadDefaults(struct GBAConfig* config, const struct GBAOptions* opts); +struct Configuration* GBAConfigGetInput(struct GBAConfig*); +struct Configuration* GBAConfigGetOverrides(struct GBAConfig*); + void GBAConfigFreeOpts(struct GBAOptions* opts); #endif diff --git a/src/platform/perf-main.c b/src/platform/perf-main.c index 7fa8e78d0..748698c56 100644 --- a/src/platform/perf-main.c +++ b/src/platform/perf-main.c @@ -81,7 +81,7 @@ int main(int argc, char** argv) { } context.debugger = createDebugger(&args, &context); - context.overrides = &config.configTable; + context.overrides = GBAConfigGetOverrides(&config); char gameCode[5] = { 0 }; GBAConfigMap(&config, &opts); diff --git a/src/platform/qt/ConfigController.h b/src/platform/qt/ConfigController.h index 9ee6cbcb8..3536ab67d 100644 --- a/src/platform/qt/ConfigController.h +++ b/src/platform/qt/ConfigController.h @@ -76,7 +76,7 @@ public: QList getMRU() const; void setMRU(const QList& mru); - Configuration* overrides() { return &m_config.configTable; } // TODO: Make this not return the whole table + Configuration* overrides() { return GBAConfigGetOverrides(&m_config); } void saveOverride(const GBACartridgeOverride&); public slots: diff --git a/src/platform/sdl/main.c b/src/platform/sdl/main.c index e43f65f4f..8ed606118 100644 --- a/src/platform/sdl/main.c +++ b/src/platform/sdl/main.c @@ -102,8 +102,8 @@ int main(int argc, char** argv) { renderer.events.bindings = &inputMap; GBASDLInitBindings(&inputMap); GBASDLInitEvents(&renderer.events); - GBASDLEventsLoadConfig(&renderer.events, &config.configTable); // TODO: Don't use this directly - context.overrides = &config.configTable; + GBASDLEventsLoadConfig(&renderer.events, GBAConfigGetInput(&config)); + context.overrides = GBAConfigGetOverrides(&config); int didFail = 0; if (GBAThreadStart(&context)) {