diff --git a/src/output/Init.cxx b/src/output/Init.cxx index 080cc399e..e226086d7 100644 --- a/src/output/Init.cxx +++ b/src/output/Init.cxx @@ -35,6 +35,7 @@ #include "filter/plugins/VolumeFilterPlugin.hxx" #include "filter/plugins/NormalizeFilterPlugin.hxx" #include "util/RuntimeError.hxx" +#include "util/StringAPI.hxx" #include "util/StringFormat.hxx" #include "Log.hxx" @@ -212,7 +213,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")) { /* when using software volume, we lose quality by invoking PcmVolume::Apply() twice; to avoid losing too much precision, we allow the ReplayGainFilter @@ -244,14 +245,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 7cdb0ef7f..05cd5649e 100644 --- a/src/output/MultipleOutputs.cxx +++ b/src/output/MultipleOutputs.cxx @@ -27,6 +27,7 @@ #include "config/Data.hxx" #include "config/Option.hxx" #include "util/RuntimeError.hxx" +#include "util/StringAPI.hxx" #include @@ -135,7 +136,7 @@ AudioOutputControl * MultipleOutputs::FindByName(const char *name) noexcept { for (const auto &i : outputs) - if (strcmp(i->GetName(), name) == 0) + if (StringIsEqual(i->GetName(), name)) return i.get(); return nullptr; diff --git a/src/output/Registry.cxx b/src/output/Registry.cxx index 85574d920..dad9622f4 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 27ac9d428..012d6adef 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 2b043fb93..26b7cbde3 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" @@ -135,11 +136,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; } @@ -666,7 +667,7 @@ osx_output_set_device(OSXOutput *oo) kCFStringEncodingUTF8)) 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 a4b7678e3..a7efb88e3 100644 --- a/src/output/plugins/ShoutOutputPlugin.cxx +++ b/src/output/plugins/ShoutOutputPlugin.cxx @@ -34,7 +34,6 @@ #include #include -#include #include static constexpr unsigned DEFAULT_CONN_TIMEOUT = 2; @@ -122,15 +121,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 " @@ -144,15 +143,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);