diff --git a/client/snapclient.cpp b/client/snapclient.cpp index ef4e231b..c816b628 100644 --- a/client/snapclient.cpp +++ b/client/snapclient.cpp @@ -118,37 +118,35 @@ int main(int argc, char** argv) OptionParser op("Allowed options"); auto helpSwitch = op.add("", "help", "produce help message"); auto groffSwitch = op.add("", "groff", "produce groff message"); - op.add>("", "logsink", "log sink [null,system,stdout,stderr,file:]", settings.logging.sink, &settings.logging.sink); - auto logfilterOption = op.add>( - "", "logfilter", "log filter :[,:]* with tag = * or and level = [trace,debug,info,notice,warning,error,fatal]", - settings.logging.filter); auto versionSwitch = op.add("v", "version", "show version number"); + op.add>("h", "host", "server hostname or ip address", "", &settings.server.host); + op.add>("p", "port", "server port", 1704, &settings.server.port); + op.add>("i", "instance", "instance id when running multiple instances on the same host", 1, &settings.instance); + op.add>("", "hostID", "unique host id, default is MAC address", "", &settings.host_id); + +// PCM device specific #if defined(HAS_ALSA) || defined(HAS_WASAPI) auto listSwitch = op.add("l", "list", "list PCM devices"); /*auto soundcardValue =*/op.add>("s", "soundcard", "index or name of the pcm device", "default", &pcm_device); -#endif - auto metaStderr = op.add("e", "mstderr", "send metadata to stderr"); - /*auto hostValue =*/op.add>("h", "host", "server hostname or ip address", "", &settings.server.host); - /*auto portValue =*/op.add>("p", "port", "server port", 1704, &settings.server.port); -#ifdef HAS_DAEMON - int processPriority(-3); - auto daemonOption = op.add>("d", "daemon", "daemonize, optional process priority [-20..19]", processPriority, &processPriority); - auto userValue = op.add>("", "user", "the user[:group] to run snapclient as when daemonized"); #endif /*auto latencyValue =*/op.add>("", "latency", "latency of the PCM device", 0, &settings.player.latency); - /*auto instanceValue =*/op.add>("i", "instance", "instance id", 1, &settings.instance); - /*auto hostIdValue =*/op.add>("", "hostID", "unique host id", "", &settings.host_id); +#ifdef HAS_SOXR + auto sample_format = op.add>("", "sampleformat", "resample audio stream to ::", ""); +#endif + +// audio backend #if defined(HAS_OBOE) && defined(HAS_OPENSL) op.add>("", "player", "audio backend (oboe, opensl)", "oboe", &settings.player.player_name); #else op.add, Attribute::hidden>("", "player", "audio backend (, file)", "", &settings.player.player_name); #endif -#ifdef HAS_SOXR - auto sample_format = op.add>("", "sampleformat", "resample audio stream to ::", ""); -#endif + +// sharing mode #if defined(HAS_OBOE) || defined(HAS_WASAPI) auto sharing_mode = op.add>("", "sharingmode", "audio mode to use [shared|exclusive]", "shared"); #endif + + // mixer bool hw_mixer_supported = false; #if defined(HAS_ALSA) hw_mixer_supported = true; @@ -159,6 +157,21 @@ int main(int argc, char** argv) else mixer_mode = op.add>("", "mixer", "software|script|none|?[:]", "software"); + auto metaStderr = op.add("e", "mstderr", "send metadata to stderr"); + +// daemon settings +#ifdef HAS_DAEMON + int processPriority(-3); + auto daemonOption = op.add>("d", "daemon", "daemonize, optional process priority [-20..19]", processPriority, &processPriority); + auto userValue = op.add>("", "user", "the user[:group] to run snapclient as when daemonized"); +#endif + + // logging + op.add>("", "logsink", "log sink [null,system,stdout,stderr,file:]", settings.logging.sink, &settings.logging.sink); + auto logfilterOption = op.add>( + "", "logfilter", "log filter :[,:]* with tag = * or and level = [trace,debug,info,notice,warning,error,fatal]", + settings.logging.filter); + try { op.parse(argc, argv);