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;