conf.h 3.71 KB
Newer Older
Led's avatar
Led committed
1
/* the Music Player Daemon (MPD)
Led's avatar
Led committed
2
 * (c)2003-2006 by Warren Dukes (warren.dukes@gmail.com)
Led's avatar
Led committed
3
 * This project's homepage is: http://www.musicpd.org
Led's avatar
Led committed
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

#ifndef CONF_H
#define CONF_H

Led's avatar
Led committed
22 23
#include "../config.h"

Led's avatar
Led committed
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
#define CONF_PORT                       "port"
#define CONF_PID_FILE                   "pid_file"
#define CONF_MUSIC_DIR                  "music_directory"
#define CONF_PLAYLIST_DIR               "playlist_directory"
#define CONF_LOG_FILE                   "log_file"
#define CONF_ERROR_FILE                 "error_file"
#define CONF_CONN_TIMEOUT               "connection_timeout"
#define CONF_MIXER_DEVICE               "mixer_device"
#define CONF_MAX_CONN                   "max_connections"
#define CONF_MAX_PLAYLIST_LENGTH        "max_playlist_length"
#define CONF_BUFFER_BEFORE_PLAY         "buffer_before_play"
#define CONF_MAX_COMMAND_LIST_SIZE      "max_command_list_size"
#define CONF_MAX_OUTPUT_BUFFER_SIZE     "max_output_buffer_size"
#define CONF_AUDIO_OUTPUT               "audio_output"
#define CONF_SAVE_ABSOLUTE_PATHS        "save_absolute_paths_in_playlists"
#define CONF_BIND_TO_ADDRESS            "bind_to_address"
#define CONF_MIXER_TYPE                 "mixer_type"
#define CONF_STATE_FILE                 "state_file"
#define CONF_USER                       "user"
#define CONF_DB_FILE                    "db_file"
#define CONF_LOG_LEVEL                  "log_level"
#define CONF_MIXER_CONTROL              "mixer_control"
#define CONF_FS_CHARSET                 "filesystem_charset"
#define CONF_PASSWORD                   "password"
#define CONF_DEFAULT_PERMS              "default_permissions"
#define CONF_AUDIO_BUFFER_SIZE          "audio_buffer_size"
#define CONF_AUDIO_OUTPUT_FORMAT        "audio_output_format"
#define CONF_REPLAYGAIN                 "replaygain"
#define CONF_REPLAYGAIN_PREAMP          "replaygain_preamp"
#define CONF_HTTP_PROXY_HOST            "http_proxy_host"
#define CONF_HTTP_PROXY_PORT            "http_proxy_port"
#define CONF_HTTP_PROXY_USER            "http_proxy_user"
#define CONF_HTTP_PROXY_PASSWORD        "http_proxy_password"
#define CONF_HTTP_BUFFER_SIZE           "http_buffer_size"
#define CONF_HTTP_PREBUFFER_SIZE        "http_prebuffer_size"
#define CONF_METADATA_TO_USE            "metadata_to_use"
#define CONF_ID3V1_ENCODING             "id3v1_encoding"
#define CONF_VOLUME_NORMALIZATION       "volume_normalization"
Led's avatar
Led committed
62

Led's avatar
Led committed
63
typedef struct _BlockParam {
Led's avatar
Led committed
64 65
	char *name;
	char *value;
Led's avatar
Led committed
66 67
	int line;
} BlockParam;
Led's avatar
Led committed
68

Led's avatar
Led committed
69
typedef struct _ConfigParam {
Led's avatar
Led committed
70
	char *value;
Led's avatar
Led committed
71
	unsigned int line;
Led's avatar
Led committed
72
	BlockParam *blockParams;
Led's avatar
Led committed
73 74
	int numberOfBlockParams;
} ConfigParam;
Led's avatar
Led committed
75

Led's avatar
Led committed
76 77
void initConf(void);
void finishConf(void);
Led's avatar
Led committed
78

Led's avatar
Led committed
79
void readConf(char *file);
Led's avatar
Led committed
80 81 82

/* don't free the returned value
   set _last_ to NULL to get first entry */
Led's avatar
Led committed
83
ConfigParam *getNextConfigParam(char *name, ConfigParam * last);
Led's avatar
Led committed
84 85 86

#define getConfigParam(name) 	getNextConfigParam(name, NULL)

Led's avatar
Led committed
87
char *getConfigParamValue(char *name);
Led's avatar
Led committed
88

Led's avatar
Led committed
89
int getBoolConfigParam(char *name);
Led's avatar
Led committed
90

Led's avatar
Led committed
91
BlockParam *getBlockParam(ConfigParam * param, char *name);
Led's avatar
Led committed
92

Led's avatar
Led committed
93
ConfigParam *parseConfigFilePath(char *name, int force);
Led's avatar
Led committed
94 95

#endif