comparison src/xs_config.h @ 548:ba80c052e425

Configuration widget naming cleanups and GUI-related improvements; Started planning and implementation of SIDPlay2 filter settings loading/saving and import/export functionality.
author Matti Hamalainen <ccr@tnsp.org>
date Fri, 23 Feb 2007 05:13:05 +0000
parents fa95d942f226
children b0743dc9165d
comparison
equal deleted inserted replaced
547:6490ceb38b64 548:ba80c052e425
1 #ifndef XS_CONFIG_H 1 #ifndef XS_CONFIG_H
2 #define XS_CONFIG_H 2 #define XS_CONFIG_H
3 3
4 #include "xmms-sid.h" 4 #include "xmms-sid.h"
5 #include "xs_curve.h"
5 6
6 #ifdef __cplusplus 7 #ifdef __cplusplus
7 extern "C" { 8 extern "C" {
8 #endif 9 #endif
9 10
10 /* 11
11 * Configuration structure 12 /* Configuration structure
12 */ 13 */
13 enum XS_EMUENGINE { 14 enum XS_EMUENGINE {
14 XS_ENG_SIDPLAY1 = 1, 15 XS_ENG_SIDPLAY1 = 1,
15 XS_ENG_SIDPLAY2 16 XS_ENG_SIDPLAY2
16 }; 17 };
64 XS_SIDMODEL_8580, 65 XS_SIDMODEL_8580,
65 XS_SIDMODEL_ANY 66 XS_SIDMODEL_ANY
66 }; 67 };
67 68
68 69
70 typedef struct {
71 t_xs_int_point points[XS_SIDPLAY2_NFPOINTS];
72 gint npoints;
73 gchar *name;
74 } t_xs_sid2_filter;
75
76
69 extern struct t_xs_cfg { 77 extern struct t_xs_cfg {
70 /* General audio settings */ 78 /* General audio settings */
71 gint audioBitsPerSample; 79 gint audioBitsPerSample;
72 gint audioChannels; 80 gint audioChannels;
73 gint audioFrequency; 81 gint audioFrequency;
74 82
75 /* General libSIDPlay settings */ 83 gboolean oversampleEnable;
84 gint oversampleFactor; /* Factor of oversampling */
85
86 /* Emulation settings */
76 gboolean mos8580; /* TRUE = 8580, FALSE = 6581 */ 87 gboolean mos8580; /* TRUE = 8580, FALSE = 6581 */
77 gboolean forceModel; 88 gboolean forceModel;
78 gboolean emulateFilters;
79 gfloat filterFs;
80 gfloat filterFm;
81 gfloat filterFt;
82 gint memoryMode; /* See XS_MPU-constants */ 89 gint memoryMode; /* See XS_MPU-constants */
83 gint clockSpeed; /* PAL (50Hz) or NTSC (60Hz) */ 90 gint clockSpeed; /* PAL (50Hz) or NTSC (60Hz) */
84 gboolean forceSpeed; /* TRUE = force to given clockspeed */ 91 gboolean forceSpeed; /* TRUE = force to given clockspeed */
85 92
86 gint playerEngine; /* Selected player engine */ 93 gint playerEngine; /* Selected player engine */
87 94
95 gboolean emulateFilters;
96 gfloat sid1FilterFs;
97 gfloat sid1FilterFm;
98 gfloat sid1FilterFt;
99
88 gint sid2OptLevel; /* SIDPlay2 emulation optimization */ 100 gint sid2OptLevel; /* SIDPlay2 emulation optimization */
89 gint sid2Builder; /* SIDPlay2 "builder" aka SID-emu */ 101 gint sid2Builder; /* SIDPlay2 "builder" aka SID-emu */
90 102 t_xs_sid2_filter sid2Filter; /* Current SIDPlay2 filter */
91 gboolean oversampleEnable; 103 t_xs_sid2_filter **sid2FilterPresets;
92 gint oversampleFactor; /* Factor of oversampling */ 104 gint sid2NFilterPresets;
93 105
106
94 /* Playing settings */ 107 /* Playing settings */
95 gboolean playMaxTimeEnable, 108 gboolean playMaxTimeEnable,
96 playMaxTimeUnknown; /* Use max-time only when song-length is unknown */ 109 playMaxTimeUnknown; /* Use max-time only when song-length is unknown */
97 gint playMaxTime; /* MAX playtime in seconds */ 110 gint playMaxTime; /* MAX playtime in seconds */
98 111
119 gint subAutoMinTime; 132 gint subAutoMinTime;
120 } xs_cfg; 133 } xs_cfg;
121 134
122 XS_MUTEX_H(xs_cfg); 135 XS_MUTEX_H(xs_cfg);
123 136
124 /* 137
125 * Configuration-file 138 /* Configuration-file
126 */ 139 */
127 enum { 140 enum {
128 CTYPE_INT = 1, 141 CTYPE_INT = 1,
129 CTYPE_FLOAT, 142 CTYPE_FLOAT,
130 CTYPE_STR, 143 CTYPE_STR,
155 void *itemData; 168 void *itemData;
156 gint itemSet; 169 gint itemSet;
157 } t_xs_wid_item; 170 } t_xs_wid_item;
158 171
159 172
160 /* 173 /* Functions
161 * Functions
162 */ 174 */
163 void xs_init_configuration(void); 175 void xs_init_configuration(void);
164 void xs_configure(void); 176 void xs_configure(void);
165 void xs_read_configuration(void); 177 void xs_read_configuration(void);
166 gint xs_write_configuration(void); 178 gint xs_write_configuration(void);
167 179
168
169 #ifdef __cplusplus 180 #ifdef __cplusplus
170 } 181 }
171 #endif 182 #endif
172 #endif /* XS_CONFIG_H */ 183 #endif /* XS_CONFIG_H */