view src/xs_config.h @ 40:1788f4ce6a44

Numerous changes towards 0.8
author Matti Hamalainen <ccr@tnsp.org>
date Thu, 19 Jun 2003 22:38:01 +0000
parents 271be59be975
children 90cd38b28a72
line wrap: on
line source

#ifndef XS_CONFIG_H
#define XS_CONFIG_H

#ifdef __cplusplus
extern "C" {
#endif

#include <xmms-sid.h>

/*
 * Constants
 */
#define XS_CONFIG_IDENT		"XMMS-SID"	/* Configuration file identifier */
#define XS_CONFIG_FILE		"/.xmms/config"


/*
 * 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
};


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;
	gint		clockSpeed;		/* PAL (50Hz) or NTSC (60Hz) */
	gboolean	forceSpeed;		/* TRUE = force to given clockspeed */

	gboolean	oversampleEnable;	/* TRUE = oversample */
	gint		oversampleFactor;	/* Factor of oversampling */


	/* Playing settings */
	gboolean	playMaxTimeEnable;	/* TRUE = use MAX playtime */
	gint		playMaxTime;		/* MAX playtime in seconds */
	gboolean	songlenDBEnable;
	gchar		*songlenDBPath;


	/* Miscellaneous settings */
	gboolean	stilDBEnable;
	gchar		*stilDBPath;

	gboolean	detectMagic;

	gboolean	titleOverride;
	gchar		*titleFormat;
} xs_cfg;


/*
 *	Configuration-file
 */
enum {
	ATYPE_INT = 1,
	ATYPE_FLOAT,
	ATYPE_STR,
	ATYPE_BOOL
};


typedef struct {
	gint	atype;	/* Type of item (ATYPE_*) */
	void	*adata;	/* Pointer to variable */
	gchar	*aname;	/* Name of configuration item */
} t_xs_cfg_item;


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


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