comparison 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
comparison
equal deleted inserted replaced
268:1368faba73c9 269:1b82a9932b60
1 #ifndef XS_CONFIG_H
2 #define XS_CONFIG_H
3
4 #include "xmms-sid.h"
5
6 #ifdef __cplusplus
7 extern "C" {
8 #endif
9
10 /*
11 * Configuration structure
12 */
13 enum XS_EMUENGINE {
14 XS_ENG_SIDPLAY1 = 1,
15 XS_ENG_SIDPLAY2
16 };
17
18
19 enum XS_BUILDER {
20 XS_BLD_RESID = 1,
21 XS_BLD_HARDSID
22 };
23
24 enum XS_RESOLUTION {
25 XS_RES_8BIT = 8,
26 XS_RES_16BIT = 16
27 };
28
29 enum XS_CHANNELS {
30 XS_CHN_MONO = 1,
31 XS_CHN_STEREO = 2,
32 XS_CHN_AUTOPAN = 3
33 };
34
35
36 enum XS_CLOCK {
37 XS_CLOCK_PAL = 1,
38 XS_CLOCK_NTSC
39 };
40
41
42 enum XS_MPU {
43 XS_MPU_BANK_SWITCHING = 1,
44 XS_MPU_TRANSPARENT_ROM,
45 XS_MPU_PLAYSID_ENVIRONMENT,
46 XS_MPU_REAL
47 };
48
49
50 enum XS_SSC {
51 XS_SSC_NONE = 1,
52 XS_SSC_POPUP,
53 XS_SSC_PATCH,
54 XS_SSC_SEEK
55 };
56
57
58 enum XS_SIDMODEL {
59 XS_SIDMODEL_UNKNOWN = 0,
60 XS_SIDMODEL_6581,
61 XS_SIDMODEL_8580
62 };
63
64
65 extern struct t_xs_cfg {
66 /* General audio settings */
67 gint audioBitsPerSample;
68 gint audioChannels;
69 gint audioFrequency;
70
71 /* General libSIDPlay settings */
72 gboolean mos8580; /* TRUE = 8580, FALSE = 6581 */
73 gboolean forceModel;
74 gboolean emulateFilters;
75 gfloat filterFs;
76 gfloat filterFm;
77 gfloat filterFt;
78 gint memoryMode; /* See XS_MPU-constants */
79 gint clockSpeed; /* PAL (50Hz) or NTSC (60Hz) */
80 gboolean forceSpeed; /* TRUE = force to given clockspeed */
81
82 gint playerEngine; /* Selected player engine */
83
84 gboolean sid2OptLevel; /* SIDPlay2 emulation optimization */
85 gint sid2Builder; /* SIDPlay2 "builder" aka SID-emu */
86
87 gboolean oversampleEnable;
88 gint oversampleFactor; /* Factor of oversampling */
89
90 /* Playing settings */
91 gboolean playMaxTimeEnable,
92 playMaxTimeUnknown; /* Use max-time only when song-length is unknown */
93 gint playMaxTime; /* MAX playtime in seconds */
94
95 gboolean playMinTimeEnable;
96 gint playMinTime; /* MIN playtime in seconds */
97
98 gboolean songlenDBEnable;
99 gchar *songlenDBPath; /* Path to Songlengths.txt */
100
101
102 /* Miscellaneous settings */
103 gboolean stilDBEnable;
104 gchar *stilDBPath; /* Path to STIL.txt */
105 gchar *hvscPath; /* Path-prefix for HVSC */
106
107 gint subsongControl;
108 gboolean detectMagic;
109
110 gboolean titleOverride; /* TRUE if XMMS titles are overriden */
111 gchar *titleFormat;
112
113 gboolean subAutoEnable,
114 subAutoMinOnly;
115 gint subAutoMinTime;
116 } xs_cfg;
117
118 XS_MUTEX_H(xs_cfg);
119
120 /*
121 * Configuration-file
122 */
123 enum {
124 CTYPE_INT = 1,
125 CTYPE_FLOAT,
126 CTYPE_STR,
127 CTYPE_BOOL
128 };
129
130 enum {
131 WTYPE_BGROUP = 1,
132 WTYPE_SPIN,
133 WTYPE_SCALE,
134 WTYPE_BUTTON,
135 WTYPE_TEXT
136 };
137
138
139 typedef struct {
140 gint itemType; /* Type of item (CTYPE_*) */
141 void *itemData; /* Pointer to variable */
142 gchar *itemName; /* Name of configuration item */
143 } t_xs_cfg_item;
144
145
146 typedef struct {
147 gint widType;
148 gint itemType;
149 gchar *widName;
150 void *itemData;
151 gint itemSet;
152 } t_xs_wid_item;
153
154
155 /*
156 * Functions
157 */
158 void xs_init_configuration(void);
159 void xs_configure(void);
160 void xs_read_configuration(void);
161 gint xs_write_configuration(void);
162
163
164 #ifdef __cplusplus
165 }
166 #endif
167 #endif /* XS_CONFIG_H */