diff --git a/src/output/Init.cxx b/src/output/Init.cxx index 116d417c3..64f9cfe73 100644 --- a/src/output/Init.cxx +++ b/src/output/Init.cxx @@ -39,6 +39,7 @@ #include "config/Option.hxx" #include "config/Block.hxx" #include "util/RuntimeError.hxx" +#include "util/StringAPI.hxx" #include "util/StringFormat.hxx" #include "Log.hxx" @@ -214,7 +215,7 @@ FilteredAudioOutput::Setup(EventLoop &event_loop, const char *replay_gain_handler = block.GetBlockValue("replay_gain_handler", "software"); - if (strcmp(replay_gain_handler, "none") != 0) { + if (!StringIsEqual(replay_gain_handler, "none")) { prepared_replay_gain_filter = NewReplayGainFilter(replay_gain_config); assert(prepared_replay_gain_filter != nullptr); @@ -240,14 +241,14 @@ FilteredAudioOutput::Setup(EventLoop &event_loop, /* use the hardware mixer for replay gain? */ - if (strcmp(replay_gain_handler, "mixer") == 0) { + if (StringIsEqual(replay_gain_handler, "mixer")) { if (mixer != nullptr) replay_gain_filter_set_mixer(*prepared_replay_gain_filter, mixer, 100); else FormatError(output_domain, "No such mixer for output '%s'", name); - } else if (strcmp(replay_gain_handler, "software") != 0 && + } else if (!StringIsEqual(replay_gain_handler, "software") && prepared_replay_gain_filter != nullptr) { throw std::runtime_error("Invalid \"replay_gain_handler\" value"); } diff --git a/src/output/MultipleOutputs.cxx b/src/output/MultipleOutputs.cxx index 12c102618..fe3c9ad5f 100644 --- a/src/output/MultipleOutputs.cxx +++ b/src/output/MultipleOutputs.cxx @@ -28,6 +28,7 @@ #include "config/Data.hxx" #include "config/Option.hxx" #include "util/RuntimeError.hxx" +#include "util/StringAPI.hxx" #include @@ -147,7 +148,7 @@ AudioOutputControl * MultipleOutputs::FindByName(const char *name) noexcept { for (auto *i : outputs) - if (strcmp(i->GetName(), name) == 0) + if (StringIsEqual(i->GetName(), name)) return i; return nullptr; diff --git a/src/output/Registry.cxx b/src/output/Registry.cxx index 035a26130..aa372289e 100644 --- a/src/output/Registry.cxx +++ b/src/output/Registry.cxx @@ -38,8 +38,7 @@ #include "plugins/sles/SlesOutputPlugin.hxx" #include "plugins/SolarisOutputPlugin.hxx" #include "plugins/WinmmOutputPlugin.hxx" - -#include +#include "util/StringAPI.hxx" const AudioOutputPlugin *const audio_output_plugins[] = { #ifdef HAVE_SHOUT @@ -101,7 +100,7 @@ const AudioOutputPlugin * AudioOutputPlugin_get(const char *name) { audio_output_plugins_for_each(plugin) - if (strcmp(plugin->name, name) == 0) + if (StringIsEqual(plugin->name, name)) return plugin; return nullptr; diff --git a/src/output/plugins/AoOutputPlugin.cxx b/src/output/plugins/AoOutputPlugin.cxx index 10fdd130d..8f859aba7 100644 --- a/src/output/plugins/AoOutputPlugin.cxx +++ b/src/output/plugins/AoOutputPlugin.cxx @@ -25,12 +25,11 @@ #include "util/SplitString.hxx" #include "util/RuntimeError.hxx" #include "util/Domain.hxx" +#include "util/StringAPI.hxx" #include "Log.hxx" #include -#include - /* An ao_sample_format, with all fields set to zero: */ static ao_sample_format OUR_AO_FORMAT_INITIALIZER; @@ -105,7 +104,7 @@ AoOutput::AoOutput(const ConfigBlock &block) write_size(block.GetPositiveValue("write_size", 1024U)) { const char *value = block.GetBlockValue("driver", "default"); - if (0 == strcmp(value, "default")) + if (StringIsEqual(value, "default")) driver = ao_default_driver_id(); else driver = ao_driver_id(value); diff --git a/src/output/plugins/OSXOutputPlugin.cxx b/src/output/plugins/OSXOutputPlugin.cxx index 33460ed0d..c57e86b73 100644 --- a/src/output/plugins/OSXOutputPlugin.cxx +++ b/src/output/plugins/OSXOutputPlugin.cxx @@ -30,6 +30,7 @@ #include "thread/Mutex.hxx" #include "thread/Cond.hxx" #include "util/ByteOrder.hxx" +#include "util/StringAPI.hxx" #include "util/StringBuffer.hxx" #include "util/StringFormat.hxx" #include "Log.hxx" @@ -138,11 +139,11 @@ OSXOutput::OSXOutput(const ConfigBlock &block) { const char *device = block.GetBlockValue("device"); - if (device == nullptr || 0 == strcmp(device, "default")) { + if (device == nullptr || StringIsEqual(device, "default")) { component_subtype = kAudioUnitSubType_DefaultOutput; device_name = nullptr; } - else if (0 == strcmp(device, "system")) { + else if (StringIsEqual(device, "system")) { component_subtype = kAudioUnitSubType_SystemOutput; device_name = nullptr; } @@ -689,7 +690,7 @@ osx_output_set_device(OSXOutput *oo) if (!cfname_.GetCString(name, sizeof(name))) throw std::runtime_error("Unable to convert device name from CFStringRef to char*"); - if (strcmp(oo->device_name, name) == 0) { + if (StringIsEqual(oo->device_name, name)) { FormatDebug(osx_output_domain, "found matching device: ID=%u, name=%s", (unsigned)deviceids[i], name); diff --git a/src/output/plugins/ShoutOutputPlugin.cxx b/src/output/plugins/ShoutOutputPlugin.cxx index e5aaa63e6..3811fc596 100644 --- a/src/output/plugins/ShoutOutputPlugin.cxx +++ b/src/output/plugins/ShoutOutputPlugin.cxx @@ -35,7 +35,6 @@ #include #include -#include #include static constexpr unsigned DEFAULT_CONN_TIMEOUT = 2; @@ -123,15 +122,15 @@ ShoutOutput::ShoutOutput(const ConfigBlock &block) unsigned protocol; const char *value = block.GetBlockValue("protocol"); if (value != nullptr) { - if (0 == strcmp(value, "shoutcast") && + if (StringIsEqual(value, "shoutcast") && !StringIsEqual(mime_type, "audio/mpeg")) throw FormatRuntimeError("you cannot stream \"%s\" to shoutcast, use mp3", mime_type); - else if (0 == strcmp(value, "shoutcast")) + else if (StringIsEqual(value, "shoutcast")) protocol = SHOUT_PROTOCOL_ICY; - else if (0 == strcmp(value, "icecast1")) + else if (StringIsEqual(value, "icecast1")) protocol = SHOUT_PROTOCOL_XAUDIOCAST; - else if (0 == strcmp(value, "icecast2")) + else if (StringIsEqual(value, "icecast2")) protocol = SHOUT_PROTOCOL_HTTP; else throw FormatRuntimeError("shout protocol \"%s\" is not \"shoutcast\" or " @@ -145,15 +144,15 @@ ShoutOutput::ShoutOutput(const ConfigBlock &block) unsigned tls; value = block.GetBlockValue("tls"); if (value != nullptr) { - if (0 == strcmp(value, "disabled")) + if (StringIsEqual(value, "disabled")) tls = SHOUT_TLS_DISABLED; - else if(0 == strcmp(value, "auto")) + else if (StringIsEqual(value, "auto")) tls = SHOUT_TLS_AUTO; - else if(0 == strcmp(value, "auto_no_plain")) + else if (StringIsEqual(value, "auto_no_plain")) tls = SHOUT_TLS_AUTO_NO_PLAIN; - else if(0 == strcmp(value, "rfc2818")) + else if (StringIsEqual(value, "rfc2818")) tls = SHOUT_TLS_RFC2818; - else if(0 == strcmp(value, "rfc2817")) + else if (StringIsEqual(value, "rfc2817")) tls = SHOUT_TLS_RFC2817; else throw FormatRuntimeError("invalid shout TLS option \"%s\"", value);