mirror of
https://github.com/djhackersdev/bemanitools.git
synced 2026-09-17 04:45:10 -05:00
76 lines
2.5 KiB
C
76 lines
2.5 KiB
C
#include "cconfig/cconfig-util.h"
|
|
|
|
#include "asio/config-asio.h"
|
|
|
|
#include "util/log.h"
|
|
|
|
#define ASIOHOOK_CONFIG_IO_FORCE_ASIO_KEY "asio.force_asio"
|
|
#define ASIOHOOK_CONFIG_IO_FORCE_WASAPI_KEY "asio.force_wasapi"
|
|
#define ASIOHOOK_CONFIG_IO_ASIO_DEVICE_NAME_KEY "asio.device_name"
|
|
|
|
#define ASIOHOOK_CONFIG_IO_DEFAULT_FORCE_ASIO_VALUE false
|
|
#define ASIOHOOK_CONFIG_IO_DEFAULT_FORCE_WASAPI_VALUE false
|
|
#define ASIOHOOK_CONFIG_IO_DEFAULT_ASIO_DEVICE_NAME_VALUE \
|
|
"XONAR SOUND CARD(64)"
|
|
|
|
void asiohook_config_init(struct cconfig *config)
|
|
{
|
|
cconfig_util_set_bool(
|
|
config,
|
|
ASIOHOOK_CONFIG_IO_FORCE_ASIO_KEY,
|
|
ASIOHOOK_CONFIG_IO_DEFAULT_FORCE_ASIO_VALUE,
|
|
"Force ASIO audio mode/device (if applicable)");
|
|
|
|
cconfig_util_set_bool(
|
|
config,
|
|
ASIOHOOK_CONFIG_IO_FORCE_WASAPI_KEY,
|
|
ASIOHOOK_CONFIG_IO_DEFAULT_FORCE_WASAPI_VALUE,
|
|
"Force WASAPI audio mode (if applicable)");
|
|
|
|
cconfig_util_set_str(
|
|
config,
|
|
ASIOHOOK_CONFIG_IO_ASIO_DEVICE_NAME_KEY,
|
|
ASIOHOOK_CONFIG_IO_DEFAULT_ASIO_DEVICE_NAME_VALUE,
|
|
"The ASIO device name to use");
|
|
}
|
|
|
|
void asiohook_config_asio_get(
|
|
struct asiohook_config_asio *config_asio, struct cconfig *config)
|
|
{
|
|
if (!cconfig_util_get_bool(
|
|
config,
|
|
ASIOHOOK_CONFIG_IO_FORCE_ASIO_KEY,
|
|
&config_asio->force_asio,
|
|
ASIOHOOK_CONFIG_IO_DEFAULT_FORCE_ASIO_VALUE)) {
|
|
log_warning(
|
|
"Invalid value for key '%s' specified, fallback "
|
|
"to default '%d'",
|
|
ASIOHOOK_CONFIG_IO_FORCE_ASIO_KEY,
|
|
ASIOHOOK_CONFIG_IO_DEFAULT_FORCE_ASIO_VALUE);
|
|
}
|
|
if (!cconfig_util_get_bool(
|
|
config,
|
|
ASIOHOOK_CONFIG_IO_FORCE_WASAPI_KEY,
|
|
&config_asio->force_wasapi,
|
|
ASIOHOOK_CONFIG_IO_DEFAULT_FORCE_WASAPI_VALUE)) {
|
|
log_warning(
|
|
"Invalid value for key '%s' specified, fallback "
|
|
"to default '%d'",
|
|
ASIOHOOK_CONFIG_IO_FORCE_WASAPI_KEY,
|
|
ASIOHOOK_CONFIG_IO_DEFAULT_FORCE_WASAPI_VALUE);
|
|
}
|
|
|
|
if (!cconfig_util_get_str(
|
|
config,
|
|
ASIOHOOK_CONFIG_IO_ASIO_DEVICE_NAME_KEY,
|
|
config_asio->replacement_name,
|
|
sizeof(config_asio->replacement_name) - 1,
|
|
ASIOHOOK_CONFIG_IO_DEFAULT_ASIO_DEVICE_NAME_VALUE)) {
|
|
log_warning(
|
|
"Invalid value for key '%s' specified, fallback "
|
|
"to default '%s'",
|
|
ASIOHOOK_CONFIG_IO_ASIO_DEVICE_NAME_KEY,
|
|
ASIOHOOK_CONFIG_IO_DEFAULT_ASIO_DEVICE_NAME_VALUE);
|
|
}
|
|
}
|