#pragma once #include #include #include #ifndef _MSC_VER #include #include #endif namespace hooks::audio { enum class Backend { Asio, WaveOut, Pipewire, None }; extern bool ENABLED; extern bool VOLUME_HOOK_ENABLED; extern bool USE_DUMMY; extern WAVEFORMATEXTENSIBLE FORMAT; extern std::optional BACKEND; extern size_t ASIO_DRIVER_ID; extern bool ASIO_FORCE_UNLOAD_ON_STOP; extern bool LOW_LATENCY_SHARED_WASAPI; void init(); void stop(); inline std::optional name_to_backend(const char *value) { if (_stricmp(value, "asio") == 0) { return Backend::Asio; } else if (_stricmp(value, "waveout") == 0) { return Backend::WaveOut; } else if (_stricmp(value, "pipewire") == 0) { return Backend::Pipewire; } else if (_stricmp(value, "none") == 0) { return Backend::None; } return std::nullopt; } }