mirror of
https://github.com/djhackersdev/bemanitools.git
synced 2026-08-28 03:14:03 -05:00
feat(sdvxio-kfca): Use new config api
Summary: Test Plan:
This commit is contained in:
@@ -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 $@ $^
|
||||
|
||||
8
dist/sdvx/sdvxio-kfca.xml
vendored
Normal file
8
dist/sdvx/sdvxio-kfca.xml
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="Shift-JIS"?>
|
||||
<sdvxio-kfca>
|
||||
<port __type="str">COM4</port>
|
||||
<baud __type="s32">115200</baud>
|
||||
<main_override __type="s32">-1</main_override>
|
||||
<headphone_override __type="s32">-1</headphone_override>
|
||||
<subwoofer_override __type="s32">-1</subwoofer_override>
|
||||
</sdvxio-kfca>
|
||||
@@ -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 \
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
@@ -1,21 +1,20 @@
|
||||
#ifndef SDVXIO_KFCA_CONFIG_KFCA_H
|
||||
#define SDVXIO_KFCA_CONFIG_KFCA_H
|
||||
|
||||
#include <windows.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#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
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user