Mercurial > hg > xmms-sid
comparison src/xs_sidplay2.cc @ 74:8cb66a3f75f7
Testing
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Sun, 14 Sep 2003 18:51:05 +0000 |
parents | 2bc607888f53 |
children | 653c9b0d1320 |
comparison
equal
deleted
inserted
replaced
73:2bc607888f53 | 74:8cb66a3f75f7 |
---|---|
155 if (!pcFileName) return FALSE; | 155 if (!pcFileName) return FALSE; |
156 newTune = new SidTune(pcFileName); | 156 newTune = new SidTune(pcFileName); |
157 if (!newTune) return FALSE; | 157 if (!newTune) return FALSE; |
158 | 158 |
159 /* Get current configuration */ | 159 /* Get current configuration */ |
160 myPlayer->currEng->getConfig(myPlayer->currConfig); | 160 myPlayer->currConfig = myPlayer->currEng->config(); |
161 | 161 |
162 /* Configure channels and stuff */ | 162 /* Configure channels and stuff */ |
163 switch (xs_cfg.fmtChannels) { | 163 switch (xs_cfg.fmtChannels) { |
164 | 164 |
165 case XS_CHN_AUTOPAN: | 165 case XS_CHN_AUTOPAN: |
166 myPlayer->currConfig.channels = SIDEMU_STEREO; | 166 myPlayer->currConfig.playback = sid2_stereo; |
167 myPlayer->currConfig.autoPanning = SIDEMU_CENTEREDAUTOPANNING; | |
168 myPlayer->currConfig.volumeControl = SIDEMU_FULLPANNING; | |
169 break; | 167 break; |
170 | 168 |
171 case XS_CHN_STEREO: | 169 case XS_CHN_STEREO: |
172 myPlayer->currConfig.channels = SIDEMU_STEREO; | 170 myPlayer->currConfig.playback = sid2_stereo; |
173 myPlayer->currConfig.autoPanning = SIDEMU_NONE; | |
174 myPlayer->currConfig.volumeControl = SIDEMU_NONE; | |
175 break; | 171 break; |
176 | 172 |
177 case XS_CHN_MONO: | 173 case XS_CHN_MONO: |
178 default: | 174 default: |
179 myPlayer->currConfig.channels = SIDEMU_MONO; | 175 myPlayer->currConfig.playback = sid2_mono; |
180 myPlayer->currConfig.autoPanning = SIDEMU_NONE; | |
181 myPlayer->currConfig.volumeControl = SIDEMU_NONE; | |
182 break; | 176 break; |
183 } | 177 } |
184 | 178 |
185 | 179 |
186 /* Memory mode settings */ | 180 /* Memory mode settings */ |
187 switch (xs_cfg.memoryMode) { | 181 switch (xs_cfg.memoryMode) { |
188 case XS_MPU_BANK_SWITCHING: | 182 case XS_MPU_BANK_SWITCHING: |
189 myPlayer->currConfig.memoryMode = MPU_BANK_SWITCHING; | 183 myPlayer->currConfig.environment = sid2_envBS; |
190 break; | 184 break; |
191 | 185 |
192 case XS_MPU_TRANSPARENT_ROM: | 186 case XS_MPU_TRANSPARENT_ROM: |
193 myPlayer->currConfig.memoryMode = MPU_TRANSPARENT_ROM; | 187 myPlayer->currConfig.environment = sid2_envTP; |
194 break; | 188 break; |
195 | 189 |
196 case XS_MPU_PLAYSID_ENVIRONMENT: | 190 case XS_MPU_PLAYSID_ENVIRONMENT: |
197 myPlayer->currConfig.memoryMode = MPU_PLAYSID_ENVIRONMENT; | 191 myPlayer->currConfig.environment = sid2_envPS; |
198 break; | 192 break; |
199 | 193 |
194 case XS_MPU_REAL: | |
200 default: | 195 default: |
201 myPlayer->currConfig.memoryMode = MPU_BANK_SWITCHING; | 196 myPlayer->currConfig.environment = sid2_envR; |
202 break; | 197 break; |
203 } | 198 } |
204 | 199 |
205 | 200 |
206 /* Clockspeed settings */ | 201 /* Clockspeed settings */ |
207 switch (xs_cfg.clockSpeed) { | 202 switch (xs_cfg.clockSpeed) { |
208 case XS_CLOCK_NTSC: | 203 case XS_CLOCK_NTSC: |
209 myPlayer->currConfig.clockSpeed = SIDTUNE_CLOCK_NTSC; | 204 myPlayer->currConfig.clockSpeed = myPlayer->currConfig.clockDefault = SID2_CLOCK_NTSC; |
210 break; | 205 break; |
211 | 206 |
212 case XS_CLOCK_PAL: | 207 case XS_CLOCK_PAL: |
213 default: | 208 default: |
214 myPlayer->currConfig.clockSpeed = SIDTUNE_CLOCK_PAL; | 209 myPlayer->currConfig.clockSpeed = myPlayer->currConfig.clockDefault = SID2_CLOCK_PAL; |
215 break; | 210 break; |
216 } | 211 } |
217 | 212 |
218 | 213 |
219 /* Configure rest of the emulation */ | 214 /* Configure rest of the emulation */ |
220 myPlayer->currConfig.bitsPerSample = xs_cfg.fmtBitsPerSample; | 215 myPlayer->currConfig.precision = xs_cfg.fmtBitsPerSample; |
221 myPlayer->currConfig.frequency = xs_cfg.fmtFrequency; | 216 myPlayer->currConfig.frequency = xs_cfg.fmtFrequency; |
217 myPlayer->currConfig.clockForced = xs_cfg.forceSpeed; | |
218 myPlayer->currConfig.optimisation = (xs_cfg.optimiseLevel) ? 1 : 0; | |
219 myPlayer->currConfig.sidDefault = myPlayer->currConfig.sidModel = (xs_cfg.mos8580) ? SID2_MOS8580 : SID2_MOS6581; | |
220 myPlayer->currConfig.sidSamples = TRUE; // FIXME FIX ME, make configurable! | |
221 | |
222 #ifdef HAVE_UNSIGNEDPCM | 222 #ifdef HAVE_UNSIGNEDPCM |
223 myPlayer->currConfig.sampleFormat = SIDEMU_UNSIGNED_PCM; | 223 #ifdef WORDS_BIGENDIAN |
224 myPlayer->currConfig.sampleFormat = SID2_BIG_UNSIGNED; | |
224 #else | 225 #else |
225 myPlayer->currConfig.sampleFormat = SIDEMU_SIGNED_PCM; | 226 myPlayer->currConfig.sampleFormat = SID2_LITTLE_UNSIGNED; |
226 #endif | 227 #endif |
227 myPlayer->currConfig.mos8580 = xs_cfg.mos8580; | 228 #else |
228 myPlayer->currConfig.emulateFilter = xs_cfg.emulateFilters; | 229 #ifdef WORDS_BIGENDIAN |
229 myPlayer->currConfig.filterFs = xs_cfg.filterFs; | 230 myPlayer->currConfig.sampleFormat = SID2_BIG_SIGNED; |
230 myPlayer->currConfig.filterFm = xs_cfg.filterFm; | 231 #else |
231 myPlayer->currConfig.filterFt = xs_cfg.filterFt; | 232 myPlayer->currConfig.sampleFormat = SID2_LITTLE_SIGNED; |
233 #endif | |
234 #endif | |
232 | 235 |
233 /* Now set the emulator configuration */ | 236 /* Now set the emulator configuration */ |
234 myPlayer->currEng->setConfig(myPlayer->currConfig); | 237 myPlayer->currEng->config(myPlayer->currConfig); |
235 | 238 |
236 /* Initialize status information */ | 239 /* Initialize status information */ |
237 newTune->getInfo(tuneInfo); | 240 newTune->getInfo(tuneInfo); |
238 | 241 |
239 myStatus->isPlaying = TRUE; | 242 myStatus->isPlaying = TRUE; |
254 { | 257 { |
255 t_xs_sidplay2 *myPlayer; | 258 t_xs_sidplay2 *myPlayer; |
256 | 259 |
257 if (!myStatus) return; | 260 if (!myStatus) return; |
258 | 261 |
262 if (myStatus->currFileName) | |
263 { | |
264 g_free(myStatus->currFileName); | |
265 myStatus->currFileName = NULL; | |
266 } | |
267 | |
259 myPlayer = (t_xs_sidplay2 *) myStatus->player; | 268 myPlayer = (t_xs_sidplay2 *) myStatus->player; |
260 if (!myPlayer) return; | 269 if (!myPlayer) return; |
261 | 270 |
262 if (myPlayer->currTune) | 271 if (myPlayer->currTune) |
272 { | |
263 delete myPlayer->currTune; | 273 delete myPlayer->currTune; |
274 myPlayer->currTune = NULL; | |
275 } | |
264 } | 276 } |
265 | 277 |
266 | 278 |
267 gint xs_sidplay2_gettunespeed(t_xs_status *myStatus) | 279 gint xs_sidplay2_gettunespeed(t_xs_status *myStatus) |
268 { | 280 { |