diff --git a/src/mixer/MixerType.cxx b/src/mixer/MixerType.cxx index e792123df..7e73beb3c 100644 --- a/src/mixer/MixerType.cxx +++ b/src/mixer/MixerType.cxx @@ -1,5 +1,5 @@ /* - * Copyright 2003-2017 The Music Player Daemon Project + * Copyright 2003-2018 The Music Player Daemon Project * http://www.musicpd.org * * This program is free software; you can redistribute it and/or modify @@ -20,11 +20,13 @@ #include "config.h" #include "MixerType.hxx" +#include + #include #include MixerType -mixer_type_parse(const char *input) noexcept +mixer_type_parse(const char *input) { assert(input != NULL); @@ -37,5 +39,5 @@ mixer_type_parse(const char *input) noexcept else if (strcmp(input, "null") == 0) return MixerType::NULL_; else - return MixerType::UNKNOWN; + throw std::runtime_error("Unrecognized mixer type"); } diff --git a/src/mixer/MixerType.hxx b/src/mixer/MixerType.hxx index 6c6d4cb47..ce2832981 100644 --- a/src/mixer/MixerType.hxx +++ b/src/mixer/MixerType.hxx @@ -1,5 +1,5 @@ /* - * Copyright 2003-2017 The Music Player Daemon Project + * Copyright 2003-2018 The Music Player Daemon Project * http://www.musicpd.org * * This program is free software; you can redistribute it and/or modify @@ -23,9 +23,6 @@ #include "Compiler.h" enum class MixerType { - /** parser error */ - UNKNOWN, - /** mixer disabled */ NONE, @@ -42,12 +39,12 @@ enum class MixerType { /** * Parses a #MixerType setting from the configuration file. * - * @param input the configured string value; must not be NULL @return - * a #MixerType value; #MixerType::UNKNOWN means #input could not be - * parsed + * Throws if the string could not be parsed. + * + * @param input the configured string value + * @return a #MixerType value */ -gcc_pure MixerType -mixer_type_parse(const char *input) noexcept; +mixer_type_parse(const char *input); #endif diff --git a/src/output/Init.cxx b/src/output/Init.cxx index 0924a0f00..9cac298fe 100644 --- a/src/output/Init.cxx +++ b/src/output/Init.cxx @@ -87,9 +87,8 @@ audio_output_detect() * This handles the deprecated options mixer_type (global) and * mixer_enabled, if the mixer_type setting is not configured. */ -gcc_pure static MixerType -audio_output_mixer_type(const ConfigBlock &block) noexcept +audio_output_mixer_type(const ConfigBlock &block) { /* read the local "mixer_type" setting */ const char *p = block.GetBlockValue("mixer_type"); @@ -117,7 +116,6 @@ audio_output_load_mixer(EventLoop &event_loop, FilteredAudioOutput &ao, switch (audio_output_mixer_type(block)) { case MixerType::NONE: - case MixerType::UNKNOWN: return nullptr; case MixerType::NULL_: