From d98311762b8ac21e18957cf9fbda73a714b946a6 Mon Sep 17 00:00:00 2001 From: icex2 Date: Sat, 17 Aug 2024 12:51:00 +0200 Subject: [PATCH] feat(sdvxio-kfca): Use new config api Summary: Test Plan: --- Module.mk | 2 + dist/sdvx/sdvxio-kfca.xml | 8 ++ src/main/sdvxio-kfca/Module.mk | 2 +- src/main/sdvxio-kfca/config-kfca.c | 122 ++------------------------- src/main/sdvxio-kfca/config-kfca.h | 15 ++-- src/main/sdvxio-kfca/sdvxio-kfca.def | 2 + src/main/sdvxio-kfca/sdvxio.c | 59 ++++++------- 7 files changed, 55 insertions(+), 155 deletions(-) create mode 100644 dist/sdvx/sdvxio-kfca.xml diff --git a/Module.mk b/Module.mk index e410660..ba4c12a 100644 --- a/Module.mk +++ b/Module.mk @@ -681,6 +681,7 @@ $(zipdir)/sdvx-hwio-x86.zip: \ build/bin/indep-32/vigem-sdvxio.exe \ dist/sdvx/eamio-icca.xml \ dist/sdvx/sdvxio-bio2.xml \ + dist/sdvx/sdvxio-kfca.xml \ | $(zipdir)/ $(V)echo ... $@ $(V)zip -j $@ $^ @@ -693,6 +694,7 @@ $(zipdir)/sdvx-hwio-x64.zip: \ build/bin/indep-64/vigem-sdvxio.exe \ dist/sdvx/eamio-icca.xml \ dist/sdvx/sdvxio-bio2.xml \ + dist/sdvx/sdvxio-kfca.xml \ | $(zipdir)/ $(V)echo ... $@ $(V)zip -j $@ $^ diff --git a/dist/sdvx/sdvxio-kfca.xml b/dist/sdvx/sdvxio-kfca.xml new file mode 100644 index 0000000..830daa8 --- /dev/null +++ b/dist/sdvx/sdvxio-kfca.xml @@ -0,0 +1,8 @@ + + + COM4 + 115200 + -1 + -1 + -1 + diff --git a/src/main/sdvxio-kfca/Module.mk b/src/main/sdvxio-kfca/Module.mk index 38d034a..2c87646 100644 --- a/src/main/sdvxio-kfca/Module.mk +++ b/src/main/sdvxio-kfca/Module.mk @@ -2,13 +2,13 @@ dlls += sdvxio-kfca libs_sdvxio-kfca := \ aciodrv \ - cconfig \ util \ iface \ module \ iface-acio \ iface-core \ util \ + security \ src_sdvxio-kfca := \ sdvxio.c \ diff --git a/src/main/sdvxio-kfca/config-kfca.c b/src/main/sdvxio-kfca/config-kfca.c index d5d6b34..58b9ff2 100644 --- a/src/main/sdvxio-kfca/config-kfca.c +++ b/src/main/sdvxio-kfca/config-kfca.c @@ -1,118 +1,14 @@ -#include "cconfig/cconfig-util.h" - -#include "iface-core/log.h" +#include "core/config-ext.h" #include "sdvxio-kfca/config-kfca.h" -#define SDVXIO_KFCA_CONFIG_KFCA_PORT_KEY "kfca.port" -#define SDVXIO_KFCA_CONFIG_KFCA_BAUD_KEY "kfca.baud" -#define SDVXIO_KFCA_CONFIG_MAIN_AMP_VOLUME_KEY "kfca.main_override" -#define SDVXIO_KFCA_CONFIG_HEADPHONE_AMP_VOLUME_KEY "kfca.headphone_override" -#define SDVXIO_KFCA_CONFIG_SUBWOOFER_AMP_VOLUME_KEY "kfca.subwoofer_override" - -#define SDVXIO_KFCA_CONFIG_KFCA_DEFAULT_PORT_VALUE "COM3" -#define SDVXIO_KFCA_CONFIG_KFCA_DEFAULT_BAUD_VALUE 57600 -#define SDVXIO_KFCA_CONFIG_DEFAULT_MAIN_AMP_VOLUME_VALUE -1 -#define SDVXIO_KFCA_CONFIG_DEFAULT_HEADPHONE_AMP_VOLUME_VALUE -1 -#define SDVXIO_KFCA_CONFIG_DEFAULT_SUBWOOFER_AMP_VOLUME_VALUE -1 - -void sdvxio_kfca_config_kfca_init(struct cconfig *config) -{ - cconfig_util_set_str( - config, - SDVXIO_KFCA_CONFIG_KFCA_PORT_KEY, - SDVXIO_KFCA_CONFIG_KFCA_DEFAULT_PORT_VALUE, - "KFCA ACIO serial port"); - - cconfig_util_set_int( - config, - SDVXIO_KFCA_CONFIG_KFCA_BAUD_KEY, - SDVXIO_KFCA_CONFIG_KFCA_DEFAULT_BAUD_VALUE, - "KFCA ACIO bus baudrate (real devices expect 57600)"); - - cconfig_util_set_int( - config, - SDVXIO_KFCA_CONFIG_MAIN_AMP_VOLUME_KEY, - SDVXIO_KFCA_CONFIG_DEFAULT_MAIN_AMP_VOLUME_VALUE, - "SDVXIO digital amp main volume (0-96) 0 is high, 96 is low. -1 is no " - "override."); - - cconfig_util_set_int( - config, - SDVXIO_KFCA_CONFIG_HEADPHONE_AMP_VOLUME_KEY, - SDVXIO_KFCA_CONFIG_DEFAULT_HEADPHONE_AMP_VOLUME_VALUE, - "SDVXIO digital amp headphone volume (0-96) 0 is high, 96 is low. -1 " - "is no override."); - - cconfig_util_set_int( - config, - SDVXIO_KFCA_CONFIG_SUBWOOFER_AMP_VOLUME_KEY, - SDVXIO_KFCA_CONFIG_DEFAULT_SUBWOOFER_AMP_VOLUME_VALUE, - "SDVXIO digital amp subwoofer volume (0-96) 0 is high, 96 is low. -1 " - "is no override."); -} - void sdvxio_kfca_config_kfca_get( - struct sdvxio_kfca_config_kfca *config_kfca, struct cconfig *config) + const bt_core_config_t *config, + sdvxio_kfca_config_kfca_t *config_out) { - if (!cconfig_util_get_str( - config, - SDVXIO_KFCA_CONFIG_KFCA_PORT_KEY, - config_kfca->port, - sizeof(config_kfca->port) - 1, - SDVXIO_KFCA_CONFIG_KFCA_DEFAULT_PORT_VALUE)) { - log_warning( - "Invalid value for key '%s' specified, fallback " - "to default '%s'", - SDVXIO_KFCA_CONFIG_KFCA_PORT_KEY, - SDVXIO_KFCA_CONFIG_KFCA_DEFAULT_PORT_VALUE); - } - - if (!cconfig_util_get_int( - config, - SDVXIO_KFCA_CONFIG_KFCA_BAUD_KEY, - &config_kfca->baud, - SDVXIO_KFCA_CONFIG_KFCA_DEFAULT_BAUD_VALUE)) { - log_warning( - "Invalid value for key '%s' specified, fallback " - "to default '%d'", - SDVXIO_KFCA_CONFIG_KFCA_BAUD_KEY, - SDVXIO_KFCA_CONFIG_KFCA_DEFAULT_BAUD_VALUE); - } - - if (!cconfig_util_get_int( - config, - SDVXIO_KFCA_CONFIG_MAIN_AMP_VOLUME_KEY, - &config_kfca->override_main_volume, - SDVXIO_KFCA_CONFIG_DEFAULT_MAIN_AMP_VOLUME_VALUE)) { - log_warning( - "Invalid value for key '%s' specified, fallback " - "to default '%d'", - SDVXIO_KFCA_CONFIG_MAIN_AMP_VOLUME_KEY, - SDVXIO_KFCA_CONFIG_DEFAULT_MAIN_AMP_VOLUME_VALUE); - } - - if (!cconfig_util_get_int( - config, - SDVXIO_KFCA_CONFIG_HEADPHONE_AMP_VOLUME_KEY, - &config_kfca->override_headphone_volume, - SDVXIO_KFCA_CONFIG_DEFAULT_HEADPHONE_AMP_VOLUME_VALUE)) { - log_warning( - "Invalid value for key '%s' specified, fallback " - "to default '%d'", - SDVXIO_KFCA_CONFIG_HEADPHONE_AMP_VOLUME_KEY, - SDVXIO_KFCA_CONFIG_DEFAULT_HEADPHONE_AMP_VOLUME_VALUE); - } - - if (!cconfig_util_get_int( - config, - SDVXIO_KFCA_CONFIG_SUBWOOFER_AMP_VOLUME_KEY, - &config_kfca->override_sub_volume, - SDVXIO_KFCA_CONFIG_DEFAULT_SUBWOOFER_AMP_VOLUME_VALUE)) { - log_warning( - "Invalid value for key '%s' specified, fallback " - "to default '%d'", - SDVXIO_KFCA_CONFIG_SUBWOOFER_AMP_VOLUME_KEY, - SDVXIO_KFCA_CONFIG_DEFAULT_SUBWOOFER_AMP_VOLUME_VALUE); - } -} + bt_core_config_str_get(config, "kfca/port", config_out->port, sizeof(config_out->port)); + bt_core_config_s32_get(config, "kfca/baud", &config_out->baud); + bt_core_config_s32_get(config, "kfca/main_override", &config_out->override_main_volume); + bt_core_config_s32_get(config, "kfca/headphone_override", &config_out->override_headphone_volume); + bt_core_config_s32_get(config, "kfca/subwoofer_override", &config_out->override_sub_volume); +} \ No newline at end of file diff --git a/src/main/sdvxio-kfca/config-kfca.h b/src/main/sdvxio-kfca/config-kfca.h index f212882..3949f96 100644 --- a/src/main/sdvxio-kfca/config-kfca.h +++ b/src/main/sdvxio-kfca/config-kfca.h @@ -1,21 +1,20 @@ #ifndef SDVXIO_KFCA_CONFIG_KFCA_H #define SDVXIO_KFCA_CONFIG_KFCA_H -#include +#include -#include "cconfig/cconfig.h" +#include "api/core/config.h" -struct sdvxio_kfca_config_kfca { +typedef struct sdvxio_kfca_config_kfca { char port[64]; int32_t baud; int32_t override_main_volume; int32_t override_headphone_volume; int32_t override_sub_volume; -}; - -void sdvxio_kfca_config_kfca_init(struct cconfig *config); +} sdvxio_kfca_config_kfca_t; void sdvxio_kfca_config_kfca_get( - struct sdvxio_kfca_config_kfca *config_kfca, struct cconfig *config); - + const bt_core_config_t *config, + sdvxio_kfca_config_kfca_t *config_out); + #endif \ No newline at end of file diff --git a/src/main/sdvxio-kfca/sdvxio-kfca.def b/src/main/sdvxio-kfca/sdvxio-kfca.def index 31142d8..8f233a6 100644 --- a/src/main/sdvxio-kfca/sdvxio-kfca.def +++ b/src/main/sdvxio-kfca/sdvxio-kfca.def @@ -2,7 +2,9 @@ LIBRARY sdvxio EXPORTS ; Bemanitools 6 API + bt_module_core_config_api_set bt_module_core_log_api_set + bt_module_configure_do bt_module_io_sdvx_api_get ; Direct API diff --git a/src/main/sdvxio-kfca/sdvxio.c b/src/main/sdvxio-kfca/sdvxio.c index 16a0243..d099f74 100644 --- a/src/main/sdvxio-kfca/sdvxio.c +++ b/src/main/sdvxio-kfca/sdvxio.c @@ -8,15 +8,17 @@ #include "acio/acio.h" +#include "api/core/config.h" #include "api/core/log.h" -#include "cconfig/cconfig-main.h" - +#include "iface-core/config.h" #include "iface-acio/mgr.h" #include "iface-core/log.h" #include "main/module/acio-mgr-ext.h" +#include "sdk/module/core/config.h" +#include "sdk/module/configure.h" #include "sdk/module/core/log.h" #include "sdk/module/io/sdvx.h" @@ -24,6 +26,8 @@ #include "sdvxio-kfca/config-kfca.h" +static sdvxio_kfca_config_kfca_t _sdvxio_kfca_config; + static uint16_t sdvx_io_gpio[2]; static uint8_t sdvx_io_gpio_sys; static uint16_t sdvx_io_analog[2]; @@ -50,36 +54,13 @@ static void _bt_io_jb_module_acio_mgr_init(module_acio_mgr_t **module) bool bt_io_sdvx_init() { - struct cconfig *config; - struct sdvxio_kfca_config_kfca config_kfca; - - config = cconfig_init(); - - sdvxio_kfca_config_kfca_init(config); - - if (!cconfig_main_config_init( - config, - "--kfca-config", - "sdvxio-kfca.conf", - "--help", - "-h", - "sdvxio-kfca", - CCONFIG_CMD_USAGE_OUT_STDOUT)) { - cconfig_finit(config); - exit(EXIT_FAILURE); - } - - sdvxio_kfca_config_kfca_get(&config_kfca, config); - - cconfig_finit(config); - _bt_io_jb_module_acio_mgr_init(&acio_mgr_module); acio_manager_ctx = - bt_acio_mgr_port_init(config_kfca.port, config_kfca.baud); + bt_acio_mgr_port_init(_sdvxio_kfca_config.port, _sdvxio_kfca_config.baud); if (acio_manager_ctx == NULL) { - log_info("Opening acio device on [%s] failed", config_kfca.port); + log_info("Opening acio device on [%s] failed", _sdvxio_kfca_config.port); return 0; } @@ -116,14 +97,14 @@ bool bt_io_sdvx_init() uint8_t headphone = 0; uint8_t subwoofer = 0; - if (config_kfca.override_main_volume >= 0) { - primary = config_kfca.override_main_volume; + if (_sdvxio_kfca_config.override_main_volume >= 0) { + primary = _sdvxio_kfca_config.override_main_volume; } - if (config_kfca.override_headphone_volume >= 0) { - headphone = config_kfca.override_headphone_volume; + if (_sdvxio_kfca_config.override_headphone_volume >= 0) { + headphone = _sdvxio_kfca_config.override_headphone_volume; } - if (config_kfca.override_sub_volume >= 0) { - subwoofer = config_kfca.override_sub_volume; + if (_sdvxio_kfca_config.override_sub_volume >= 0) { + subwoofer = _sdvxio_kfca_config.override_sub_volume; } bool init_result = aciodrv_kfca_amp( @@ -264,11 +245,23 @@ bool bt_io_sdvx_amp_volume_set( return true; } +void bt_module_core_config_api_set(const bt_core_config_api_t *api) +{ + bt_core_config_api_set(api); +} + void bt_module_core_log_api_set(const bt_core_log_api_t *api) { bt_core_log_api_set(api); } +bool bt_module_configure_do(const bt_core_config_t *config) +{ + sdvxio_kfca_config_kfca_get(config, &_sdvxio_kfca_config); + + return true; +} + void bt_module_io_sdvx_api_get(bt_io_sdvx_api_t *api) { api->version = 1;