Make controller async, add client Mixer settings

Controller uses the asio io_context and thus uses one thread less.
This also fixes a lot of thread sanitizer issues.
This commit is contained in:
badaix 2020-04-29 17:31:51 +02:00
parent 4ce69d4bfb
commit 9bb1c4a041
22 changed files with 838 additions and 711 deletions

View file

@ -34,19 +34,33 @@ struct ClientSettings
shared
};
struct ServerSettings
struct Mixer
{
enum class Mode
{
hardware,
software,
script
};
Mode mode{Mode::software};
std::string parameter{""};
};
struct Server
{
std::string host{""};
size_t port{1704};
};
struct PlayerSettings
struct Player
{
std::string player_name{""};
int latency{0};
PcmDevice pcm_device;
SampleFormat sample_format;
SharingMode sharing_mode{SharingMode::shared};
Mixer mixer;
};
struct Logging
@ -58,8 +72,8 @@ struct ClientSettings
size_t instance{1};
std::string host_id;
ServerSettings server;
PlayerSettings player;
Server server;
Player player;
Logging logging;
};