mirror of
https://github.com/badaix/snapcast.git
synced 2025-05-22 13:36:18 +02:00
Add mixer command line option
This commit is contained in:
parent
38cddf6424
commit
3ed76e2059
3 changed files with 56 additions and 7 deletions
|
@ -144,9 +144,15 @@ int main(int argc, char** argv)
|
|||
#ifdef HAS_WASAPI
|
||||
auto sharing_mode = op.add<Value<string>>("", "sharingmode", "audio mode to use [shared|exclusive]", "shared");
|
||||
#endif
|
||||
|
||||
// TODO: hardcoded
|
||||
settings.player.mixer.mode = ClientSettings::Mixer::Mode::hardware;
|
||||
bool hw_mixer_supported = false;
|
||||
#if defined(HAS_ALSA)
|
||||
hw_mixer_supported = true;
|
||||
#endif
|
||||
std::shared_ptr<popl::Value<std::string>> mixer_mode;
|
||||
if (hw_mixer_supported)
|
||||
mixer_mode = op.add<Value<string>>("", "mixer", "<software|hardware|script>[:<options>]", "software");
|
||||
else
|
||||
mixer_mode = op.add<Value<string>>("", "mixer", "<software|script>[:<options>]", "software");
|
||||
|
||||
try
|
||||
{
|
||||
|
@ -301,6 +307,21 @@ int main(int argc, char** argv)
|
|||
}
|
||||
#endif
|
||||
|
||||
settings.player.mixer.mode = ClientSettings::Mixer::Mode::software;
|
||||
if (mixer_mode->is_set())
|
||||
{
|
||||
string mode;
|
||||
utils::string::split_left(mixer_mode->value(), ':', mode, settings.player.mixer.parameter);
|
||||
if (mode == "software")
|
||||
settings.player.mixer.mode = ClientSettings::Mixer::Mode::software;
|
||||
else if ((mode == "hardware") && hw_mixer_supported)
|
||||
settings.player.mixer.mode = ClientSettings::Mixer::Mode::hardware;
|
||||
else if (mode == "script")
|
||||
settings.player.mixer.mode = ClientSettings::Mixer::Mode::script;
|
||||
else
|
||||
throw SnapException("Mixer mode not supported: " + mode);
|
||||
}
|
||||
|
||||
boost::asio::io_context io_context;
|
||||
// Construct a signal set registered for process termination.
|
||||
boost::asio::signal_set signals(io_context, SIGHUP, SIGINT, SIGTERM);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue