view src/xs_config.h @ 69:bf6a524cf7ca dev-0-8-0a1

Fixes, cleanups, etc.
author Matti Hamalainen <ccr@tnsp.org>
date Mon, 30 Jun 2003 17:16:02 +0000
parents bf7b647b3239
children e3b205a6bc7e
line wrap: on
line source

#ifndef XS_CONFIG_H
#define XS_CONFIG_H

#ifdef __cplusplus
extern "C" {
#endif

#include "xmms-sid.h"

/*
 * Configuration structure
 */
enum XS_RES {
	XS_RES_8BIT = 8,
	XS_RES_16BIT = 16,
	XS_RES_24BIT = 24
};

enum XS_CHN {
	XS_CHN_MONO = 1,
	XS_CHN_STEREO = 2,
	XS_CHN_AUTOPAN = 3
};


enum XS_CLOCK {
	XS_CLOCK_PAL = 1,
	XS_CLOCK_NTSC
};


enum XS_EMUENGINE {
	XS_SIDPLAY1 = 1,
	XS_SIDPLAY2
};


enum XS_MPU {
	XS_MPU_BANK_SWITCHING = 1,
	XS_MPU_TRANSPARENT_ROM,
	XS_MPU_PLAYSID_ENVIRONMENT,
	XS_MPU_REAL
};


extern struct t_xs_cfg {
	/* General audio settings */
	gint		fmtBitsPerSample;
	gint		fmtChannels;
	gint		fmtFrequency;

	/* General libSIDPlay settings */
	gboolean	mos8580;		/* TRUE = 8580, FALSE = 6581 */
	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 */
	gboolean	optimiseLevel;		/* SIDPlay2 emulation optimization */
	gboolean	oversampleEnable;
	gint		oversampleFactor;	/* Factor of oversampling */

	/* Playing settings */
	gboolean	playMaxTimeEnable;
	gint		playMaxTime;		/* MAX playtime in seconds */
	gboolean	playMaxTimeUnknown;	/* Use max-time only when song-length is unknown */
	gboolean	songlenDBEnable;
	gchar		*songlenDBPath;		/* Path to Songlengths.txt */

	gboolean	silenceEnable;		/* Silence detection */
	gint		silenceMinTime;
	gint		silenceMaxCheck;

	/* Miscellaneous settings */
	gboolean	stilDBEnable;
	gchar		*stilDBPath;		/* Path to STIL.txt */

	gboolean	detectMagic;
	gboolean	alwaysRaise;

	gboolean	titleOverride;		/* TRUE if XMMS titles are overriden */
	gchar		*titleFormat;
} 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	valType;	/* Type of item (ATYPE_*) */
	void	*valData;	/* Pointer to variable */
	gchar	*valName;	/* Name of configuration item */
} t_xs_cfg_item;


typedef struct {
	gint	widType;
	gint	valType;
	gchar	*widName;
	void	*valData;
	gint	valSet;
} t_xs_wid_item;


/*
 * Functions
 */
void	xs_configure(void);
void	xs_read_configuration(void);
gint	xs_write_configuration(void);


#ifdef __cplusplus
}
#endif
#endif /* XS_CONFIG_H */