diff Plugins/Input/sid/xs_config.h @ 269:1b82a9932b60 trunk

[svn] Import sid plugin. Ported from XMMS by giacomo.
author chainsaw
date Thu, 08 Dec 2005 15:12:12 -0800
parents
children d0e9693d2115
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Plugins/Input/sid/xs_config.h	Thu Dec 08 15:12:12 2005 -0800
@@ -0,0 +1,167 @@
+#ifndef XS_CONFIG_H
+#define XS_CONFIG_H
+
+#include "xmms-sid.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Configuration structure
+ */
+enum XS_EMUENGINE {
+	XS_ENG_SIDPLAY1 = 1,
+	XS_ENG_SIDPLAY2
+};
+
+
+enum XS_BUILDER {
+	XS_BLD_RESID = 1,
+	XS_BLD_HARDSID
+};
+
+enum XS_RESOLUTION {
+	XS_RES_8BIT = 8,
+	XS_RES_16BIT = 16
+};
+
+enum XS_CHANNELS {
+	XS_CHN_MONO = 1,
+	XS_CHN_STEREO = 2,
+	XS_CHN_AUTOPAN = 3
+};
+
+
+enum XS_CLOCK {
+	XS_CLOCK_PAL = 1,
+	XS_CLOCK_NTSC
+};
+
+
+enum XS_MPU {
+	XS_MPU_BANK_SWITCHING = 1,
+	XS_MPU_TRANSPARENT_ROM,
+	XS_MPU_PLAYSID_ENVIRONMENT,
+	XS_MPU_REAL
+};
+
+
+enum XS_SSC {
+	XS_SSC_NONE = 1,
+	XS_SSC_POPUP,
+	XS_SSC_PATCH,
+	XS_SSC_SEEK
+};
+
+
+enum XS_SIDMODEL {
+	XS_SIDMODEL_UNKNOWN = 0,
+	XS_SIDMODEL_6581,
+	XS_SIDMODEL_8580
+};
+
+
+extern struct t_xs_cfg {
+	/* General audio settings */
+	gint		audioBitsPerSample;
+	gint		audioChannels;
+	gint		audioFrequency;
+
+	/* General libSIDPlay settings */
+	gboolean	mos8580;		/* TRUE = 8580, FALSE = 6581 */
+	gboolean	forceModel;
+	gboolean	emulateFilters;
+	gfloat		filterFs;
+	gfloat		filterFm;
+	gfloat		filterFt;
+	gint		memoryMode;		/* See XS_MPU-constants */
+	gint		clockSpeed;		/* PAL (50Hz) or NTSC (60Hz) */
+	gboolean	forceSpeed;		/* TRUE = force to given clockspeed */
+
+	gint		playerEngine;		/* Selected player engine */
+
+	gboolean	sid2OptLevel;		/* SIDPlay2 emulation optimization */
+	gint		sid2Builder;		/* SIDPlay2 "builder" aka SID-emu */
+
+	gboolean	oversampleEnable;
+	gint		oversampleFactor;	/* Factor of oversampling */
+
+	/* Playing settings */
+	gboolean	playMaxTimeEnable,
+			playMaxTimeUnknown;	/* Use max-time only when song-length is unknown */
+	gint		playMaxTime;		/* MAX playtime in seconds */
+
+	gboolean	playMinTimeEnable;
+	gint		playMinTime;		/* MIN playtime in seconds */
+
+	gboolean	songlenDBEnable;
+	gchar		*songlenDBPath;		/* Path to Songlengths.txt */
+
+
+	/* Miscellaneous settings */
+	gboolean	stilDBEnable;
+	gchar		*stilDBPath;		/* Path to STIL.txt */
+	gchar		*hvscPath;		/* Path-prefix for HVSC */
+
+	gint		subsongControl;
+	gboolean	detectMagic;
+
+	gboolean	titleOverride;		/* TRUE if XMMS titles are overriden */
+	gchar		*titleFormat;
+
+	gboolean	subAutoEnable,
+			subAutoMinOnly;
+	gint		subAutoMinTime;
+} xs_cfg;
+
+XS_MUTEX_H(xs_cfg);
+
+/*
+ * Configuration-file
+ */
+enum {
+	CTYPE_INT = 1,
+	CTYPE_FLOAT,
+	CTYPE_STR,
+	CTYPE_BOOL
+};
+
+enum {
+	WTYPE_BGROUP = 1,
+	WTYPE_SPIN,
+	WTYPE_SCALE,
+	WTYPE_BUTTON,
+	WTYPE_TEXT
+};
+
+
+typedef struct {
+	gint	itemType;	/* Type of item (CTYPE_*) */
+	void	*itemData;	/* Pointer to variable */
+	gchar	*itemName;	/* Name of configuration item */
+} t_xs_cfg_item;
+
+
+typedef struct {
+	gint	widType;
+	gint	itemType;
+	gchar	*widName;
+	void	*itemData;
+	gint	itemSet;
+} t_xs_wid_item;
+
+
+/*
+ * Functions
+ */
+void	xs_init_configuration(void);
+void	xs_configure(void);
+void	xs_read_configuration(void);
+gint	xs_write_configuration(void);
+
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* XS_CONFIG_H */