From c45a84bd388f66140b1e87e48a89b19c3c8c9b1a Mon Sep 17 00:00:00 2001 From: nirenjan Date: Thu, 22 Jul 2021 15:56:12 -0700 Subject: [PATCH] Replace autogenerated stubs with extern functions This allows us to slowly replace the stubs with the real functions --- daemon/x52d_config.c | 33 ++++++++++++++++++++++++++------- daemon/x52d_config.h | 23 +++++++++++++++++++++++ 2 files changed, 49 insertions(+), 7 deletions(-) diff --git a/daemon/x52d_config.c b/daemon/x52d_config.c index 4e35a91..06bfc4c 100644 --- a/daemon/x52d_config.c +++ b/daemon/x52d_config.c @@ -40,15 +40,34 @@ void x52d_config_load(const char *cfg_file) } } -#define CFG(section, key, name, parser, def) \ -static void x52d_cfg_set_ ## section ## _ ## key(typeof(x52d_config . name) param) \ -{ \ - PINELOG_TRACE("Calling set " #section ":" #key); \ -} -#include "x52d_config.def" +/* Callback stubs + * TODO: Remove the ones below when their implementation is complete + */ +void x52d_cfg_set_Clock_Enabled(bool param) { (void)param; } +void x52d_cfg_set_Clock_PrimaryIsLocal(bool param) { (void)param; } +void x52d_cfg_set_Clock_Secondary(char* param) { (void)param; } +void x52d_cfg_set_Clock_Tertiary(char* param) { (void)param; } +void x52d_cfg_set_LED_Fire(libx52_led_state param) { (void)param; } +void x52d_cfg_set_LED_Throttle(libx52_led_state param) { (void)param; } +void x52d_cfg_set_LED_A(libx52_led_state param) { (void)param; } +void x52d_cfg_set_LED_B(libx52_led_state param) { (void)param; } +void x52d_cfg_set_LED_D(libx52_led_state param) { (void)param; } +void x52d_cfg_set_LED_E(libx52_led_state param) { (void)param; } +void x52d_cfg_set_LED_T1(libx52_led_state param) { (void)param; } +void x52d_cfg_set_LED_T2(libx52_led_state param) { (void)param; } +void x52d_cfg_set_LED_T3(libx52_led_state param) { (void)param; } +void x52d_cfg_set_LED_POV(libx52_led_state param) { (void)param; } +void x52d_cfg_set_LED_Clutch(libx52_led_state param) { (void)param; } +void x52d_cfg_set_Brightness_MFD(uint16_t param) { (void)param; } +void x52d_cfg_set_Brightness_LED(uint16_t param) { (void)param; } +void x52d_cfg_set_Profiles_Directory(char* param) { (void)param; } +void x52d_cfg_set_Profiles_ClutchEnabled(bool param) { (void)param; } +void x52d_cfg_set_Profiles_ClutchLatched(bool param) { (void)param; } void x52d_config_apply(void) { - #define CFG(section, key, name, parser, def) x52d_cfg_set_ ## section ## _ ## key(x52d_config . name); + #define CFG(section, key, name, parser, def) \ + PINELOG_TRACE("Calling configuration callback for " #section "." #name); \ + x52d_cfg_set_ ## section ## _ ## key(x52d_config . name); #include "x52d_config.def" } diff --git a/daemon/x52d_config.h b/daemon/x52d_config.h index ebcca2f..d8fa072 100644 --- a/daemon/x52d_config.h +++ b/daemon/x52d_config.h @@ -37,6 +37,29 @@ struct x52d_config { char profiles_dir[NAME_MAX]; }; +/* Callback functions for configuration */ +// These functions are defined in the individual modules +void x52d_cfg_set_Clock_Enabled(bool param); +void x52d_cfg_set_Clock_PrimaryIsLocal(bool param); +void x52d_cfg_set_Clock_Secondary(char* param); +void x52d_cfg_set_Clock_Tertiary(char* param); +void x52d_cfg_set_LED_Fire(libx52_led_state param); +void x52d_cfg_set_LED_Throttle(libx52_led_state param); +void x52d_cfg_set_LED_A(libx52_led_state param); +void x52d_cfg_set_LED_B(libx52_led_state param); +void x52d_cfg_set_LED_D(libx52_led_state param); +void x52d_cfg_set_LED_E(libx52_led_state param); +void x52d_cfg_set_LED_T1(libx52_led_state param); +void x52d_cfg_set_LED_T2(libx52_led_state param); +void x52d_cfg_set_LED_T3(libx52_led_state param); +void x52d_cfg_set_LED_POV(libx52_led_state param); +void x52d_cfg_set_LED_Clutch(libx52_led_state param); +void x52d_cfg_set_Brightness_MFD(uint16_t param); +void x52d_cfg_set_Brightness_LED(uint16_t param); +void x52d_cfg_set_Profiles_Directory(char* param); +void x52d_cfg_set_Profiles_ClutchEnabled(bool param); +void x52d_cfg_set_Profiles_ClutchLatched(bool param); + int x52d_config_set_defaults(struct x52d_config *cfg); int x52d_config_load_file(struct x52d_config *cfg, const char *cfg_file);