#pragma once #include #include #include #ifndef _MSC_VER #include #include #endif namespace hooks::audio { enum class Backend { Asio, WaveOut, }; 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; } return std::nullopt; } }