#ifndef CONFIGURATION_H
#define CONFIGURATION_H
-#include <ao/ao.h>
+#include "speaker-protocol.h"
+#include "rights.h"
struct real_pcre;
struct config {
/* server config */
+ /** @brief Authorization algorithm */
+ char *authorization_algorithm;
+
/** @brief All players */
struct stringlistlist player;
+ /** @brief All tracklength plugins */
+ struct stringlistlist tracklength;
+
/** @brief Allowed users */
struct stringlistlist allow;
/** @brief Maximum number of recent tracks to record in history */
long history;
+ /** @brief Expiry limit for noticed.db */
+ long noticed_history;
+
/** @brief Trusted users */
struct stringlist trust;
const char *speaker_command;
/** @brief Target sample format */
- ao_sample_format sample_format;
+ struct stream_header sample_format;
/** @brief Sox syntax generation */
long sox_generation;
#define BACKEND_ALSA 0 /**< Use ALSA (Linux only) */
#define BACKEND_COMMAND 1 /**< Execute a command */
#define BACKEND_NETWORK 2 /**< Transmit RTP */
+#define BACKEND_COREAUDIO 3 /**< Use Core Audio (Mac only) */
+#define BACKEND_OSS 4 /**< Use OSS */
/** @brief Home directory for state files */
const char *home;
struct stringlist templates;
/** @brief Canonical URL of web interface */
- const char *url;
+ char *url;
+
+ /** @brief Short display limit */
+ long short_display;
/** @brief Maximum refresh interval for web interface (seconds) */
long refresh;
/** @brief TTL for multicast packets */
long multicast_ttl;
+ /** @brief Whether to loop back multicast packets */
+ int multicast_loop;
+
+ /** @brief Login lifetime in seconds */
+ long cookie_login_lifetime;
+
+ /** @brief Signing key lifetime in seconds */
+ long cookie_key_lifetime;
+
+ /** @brief Default rights for a new user */
+ char *default_rights;
+
+ /** @brief SMTP server for sending mail */
+ char *smtp_server;
+
+ /** @brief Origin address for outbound mail */
+ char *mail_sender;
+
/* derived values: */
int nparts; /* number of distinct name parts */
char **parts; /* name part list */
+
+ /* undocumented, for testing only */
+ long dbversion;
};
extern struct config *config;
/* the current configuration */
-int config_read(void);
+int config_read(int server);
/* re-read config, return 0 on success or non-0 on error.
* Only updates @config@ if the new configuration is valid. */
/* get the private config file */
extern char *configfile;
+extern int config_per_user;
#endif /* CONFIGURATION_H */