diff options
author | Max Kellermann <max@musicpd.org> | 2018-08-19 07:49:54 +0200 |
---|---|---|
committer | Max Kellermann <max@musicpd.org> | 2018-08-19 07:49:54 +0200 |
commit | aaa438e745dbab22f77aff9db00ce9038a07df08 (patch) | |
tree | 3dd15e6e6f703606cba4d1b95e76a4b062a77f73 /src | |
parent | 4531e4cc55fa57964a3014fd65877ead3c23fa5d (diff) |
mixer/Type: mixer_type_parse() throws on error
Diffstat (limited to 'src')
-rw-r--r-- | src/mixer/MixerType.cxx | 8 | ||||
-rw-r--r-- | src/mixer/MixerType.hxx | 15 | ||||
-rw-r--r-- | src/output/Init.cxx | 4 |
3 files changed, 12 insertions, 15 deletions
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 <stdexcept> + #include <assert.h> #include <string.h> 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_: |