+
/*
* This file is part of DisOrder.
- * Copyright (C) 2004, 2005, 2006, 2007 Richard Kettlewell
+ * Copyright (C) 2004-2008 Richard Kettlewell
*
* 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
#ifndef CONFIGURATION_H
#define CONFIGURATION_H
+#include <pcre.h>
+
#include "speaker-protocol.h"
#include "rights.h"
-struct real_pcre;
-
/* Configuration is kept in a @struct config@; the live configuration
* is always pointed to by @config@. Values in @config@ are UTF-8 encoded.
*/
struct namepart {
char *part; /* part */
- struct real_pcre *re; /* regexp */
+ pcre *re; /* regexp */
char *replace; /* replacement string */
char *context; /* context glob */
unsigned reflags; /* regexp flags */
char *type; /* track or dir */
char *context; /* sort or choose */
char *replace; /* substitution string */
- struct real_pcre *re; /* compiled re */
+ pcre *re; /* compiled re */
unsigned flags; /* regexp flags */
};
* BACKEND_NETWORK.
*/
int api;
+
+/* These values had better be non-negative */
#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 */
+#if HAVE_ALSA_ASOUNDLIB_H
+# define DEFAULT_BACKEND BACKEND_ALSA
+#elif HAVE_SYS_SOUNDCARD_H || EMPEG_HOST
+# define DEFAULT_BACKEND BACKEND_OSS
+#elif HAVE_COREAUDIO_AUDIOHARDWARE_H
+# define DEFAULT_BACKEND BACKEND_COREAUDIO
+#else
+# error Cannot choose a default backend
+#endif
+
/** @brief Home directory for state files */
const char *home;
/** @brief Target queue length */
long queue_pad;
+ /** @brief Minimum time between a track being played again */
+ long replay_min;
+
struct namepartlist namepart; /* transformations */
/** @brief Termination signal for subprocesses */
/** @brief Origin address for outbound mail */
char *mail_sender;
+
+ /** @brief Maximum number of tracks in response to 'new' */
+ long new_max;
+
+ /** @brief Minimum interval between password reminder emails */
+ long reminder_interval;
+
+ /** @brief Whether to allow user management over TCP */
+ int remote_userman;
+
+ /** @brief Maximum age of biased-up tracks */
+ long new_bias_age;
+
+ /** @brief Maximum bias */
+ long new_bias;
/* derived values: */
int nparts; /* number of distinct name parts */