MixerType: convert to strictly-typed enum

This commit is contained in:
Max Kellermann 2014-12-02 18:17:47 +01:00
parent 21c42819c7
commit f2bd2c318c
3 changed files with 17 additions and 17 deletions

View File

@ -29,11 +29,11 @@ mixer_type_parse(const char *input)
assert(input != NULL);
if (strcmp(input, "none") == 0 || strcmp(input, "disabled") == 0)
return MIXER_TYPE_NONE;
return MixerType::NONE;
else if (strcmp(input, "hardware") == 0)
return MIXER_TYPE_HARDWARE;
return MixerType::HARDWARE;
else if (strcmp(input, "software") == 0)
return MIXER_TYPE_SOFTWARE;
return MixerType::SOFTWARE;
else
return MIXER_TYPE_UNKNOWN;
return MixerType::UNKNOWN;
}

View File

@ -20,26 +20,26 @@
#ifndef MPD_MIXER_TYPE_HXX
#define MPD_MIXER_TYPE_HXX
enum MixerType {
enum class MixerType {
/** parser error */
MIXER_TYPE_UNKNOWN,
UNKNOWN,
/** mixer disabled */
MIXER_TYPE_NONE,
NONE,
/** software mixer with pcm_volume() */
MIXER_TYPE_SOFTWARE,
SOFTWARE,
/** hardware mixer (output's plugin) */
MIXER_TYPE_HARDWARE,
HARDWARE,
};
/**
* Parses a #MixerType setting from the configuration file.
*
* @param input the configured string value; must not be NULL
* @return a #MixerType value; MIXER_TYPE_UNKNOWN means #input could
* not be parsed
* @param input the configured string value; must not be NULL @return
* a #MixerType value; #MixerType::UNKNOWN means #input could not be
* parsed
*/
MixerType
mixer_type_parse(const char *input);

View File

@ -103,7 +103,7 @@ audio_output_mixer_type(const config_param &param)
/* try the local "mixer_enabled" setting next (deprecated) */
if (!param.GetBlockValue("mixer_enabled", true))
return MIXER_TYPE_NONE;
return MixerType::NONE;
/* fall back to the global "mixer_type" setting (also
deprecated) */
@ -122,18 +122,18 @@ audio_output_load_mixer(EventLoop &event_loop, AudioOutput &ao,
Mixer *mixer;
switch (audio_output_mixer_type(param)) {
case MIXER_TYPE_NONE:
case MIXER_TYPE_UNKNOWN:
case MixerType::NONE:
case MixerType::UNKNOWN:
return nullptr;
case MIXER_TYPE_HARDWARE:
case MixerType::HARDWARE:
if (plugin == nullptr)
return nullptr;
return mixer_new(event_loop, *plugin, ao, listener,
param, error);
case MIXER_TYPE_SOFTWARE:
case MixerType::SOFTWARE:
mixer = mixer_new(event_loop, software_mixer_plugin, ao,
listener,
config_param(),