config/Option: convert to strictly-typed enum

This commit is contained in:
Max Kellermann
2015-01-21 22:36:13 +01:00
parent 10972da060
commit 1c3f5517fa
36 changed files with 153 additions and 132 deletions

View File

@@ -22,68 +22,78 @@
#include "Compiler.h"
enum ConfigOption {
CONF_MUSIC_DIR,
CONF_PLAYLIST_DIR,
CONF_FOLLOW_INSIDE_SYMLINKS,
CONF_FOLLOW_OUTSIDE_SYMLINKS,
CONF_DB_FILE,
CONF_STICKER_FILE,
CONF_LOG_FILE,
CONF_PID_FILE,
CONF_STATE_FILE,
CONF_STATE_FILE_INTERVAL,
CONF_RESTORE_PAUSED,
CONF_USER,
CONF_GROUP,
CONF_BIND_TO_ADDRESS,
CONF_PORT,
CONF_LOG_LEVEL,
CONF_ZEROCONF_NAME,
CONF_ZEROCONF_ENABLED,
CONF_PASSWORD,
CONF_DEFAULT_PERMS,
CONF_AUDIO_OUTPUT,
CONF_AUDIO_OUTPUT_FORMAT,
CONF_MIXER_TYPE,
CONF_REPLAYGAIN,
CONF_REPLAYGAIN_PREAMP,
CONF_REPLAYGAIN_MISSING_PREAMP,
CONF_REPLAYGAIN_LIMIT,
CONF_VOLUME_NORMALIZATION,
CONF_SAMPLERATE_CONVERTER,
CONF_AUDIO_BUFFER_SIZE,
CONF_BUFFER_BEFORE_PLAY,
CONF_HTTP_PROXY_HOST,
CONF_HTTP_PROXY_PORT,
CONF_HTTP_PROXY_USER,
CONF_HTTP_PROXY_PASSWORD,
CONF_CONN_TIMEOUT,
CONF_MAX_CONN,
CONF_MAX_PLAYLIST_LENGTH,
CONF_MAX_COMMAND_LIST_SIZE,
CONF_MAX_OUTPUT_BUFFER_SIZE,
CONF_FS_CHARSET,
CONF_ID3V1_ENCODING,
CONF_METADATA_TO_USE,
CONF_SAVE_ABSOLUTE_PATHS,
CONF_DECODER,
CONF_INPUT,
CONF_GAPLESS_MP3_PLAYBACK,
CONF_PLAYLIST_PLUGIN,
CONF_AUTO_UPDATE,
CONF_AUTO_UPDATE_DEPTH,
CONF_DESPOTIFY_USER,
CONF_DESPOTIFY_PASSWORD,
CONF_DESPOTIFY_HIGH_BITRATE,
CONF_AUDIO_FILTER,
CONF_DATABASE,
CONF_NEIGHBORS,
CONF_MAX
#if defined(WIN32) && CLANG_OR_GCC_VERSION(4,7)
/* "INPUT" is declared by winuser.h */
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wshadow"
#endif
enum class ConfigOption {
MUSIC_DIR,
PLAYLIST_DIR,
FOLLOW_INSIDE_SYMLINKS,
FOLLOW_OUTSIDE_SYMLINKS,
DB_FILE,
STICKER_FILE,
LOG_FILE,
PID_FILE,
STATE_FILE,
STATE_FILE_INTERVAL,
RESTORE_PAUSED,
USER,
GROUP,
BIND_TO_ADDRESS,
PORT,
LOG_LEVEL,
ZEROCONF_NAME,
ZEROCONF_ENABLED,
PASSWORD,
DEFAULT_PERMS,
AUDIO_OUTPUT,
AUDIO_OUTPUT_FORMAT,
MIXER_TYPE,
REPLAYGAIN,
REPLAYGAIN_PREAMP,
REPLAYGAIN_MISSING_PREAMP,
REPLAYGAIN_LIMIT,
VOLUME_NORMALIZATION,
SAMPLERATE_CONVERTER,
AUDIO_BUFFER_SIZE,
BUFFER_BEFORE_PLAY,
HTTP_PROXY_HOST,
HTTP_PROXY_PORT,
HTTP_PROXY_USER,
HTTP_PROXY_PASSWORD,
CONN_TIMEOUT,
MAX_CONN,
MAX_PLAYLIST_LENGTH,
MAX_COMMAND_LIST_SIZE,
MAX_OUTPUT_BUFFER_SIZE,
FS_CHARSET,
ID3V1_ENCODING,
METADATA_TO_USE,
SAVE_ABSOLUTE_PATHS,
DECODER,
INPUT,
GAPLESS_MP3_PLAYBACK,
PLAYLIST_PLUGIN,
AUTO_UPDATE,
AUTO_UPDATE_DEPTH,
DESPOTIFY_USER,
DESPOTIFY_PASSWORD,
DESPOTIFY_HIGH_BITRATE,
AUDIO_FILTER,
DATABASE,
NEIGHBORS,
MAX
};
#if defined(WIN32) && CLANG_OR_GCC_VERSION(4,7)
#pragma GCC diagnostic pop
#endif
/**
* @return #CONF_MAX if not found
* @return #ConfigOption::MAX if not found
*/
gcc_pure
enum ConfigOption