comparison src/xs_sidplay2.cpp @ 958:828dce1195e6

Oops, fix issues caused by previous changesets.
author Matti Hamalainen <ccr@tnsp.org>
date Tue, 20 Nov 2012 22:34:33 +0200
parents 0e60e5d56fdd
children be2a8436461a
comparison
equal deleted inserted replaced
957:0e60e5d56fdd 958:828dce1195e6
99 99
100 /* Initialize SIDPlay2 100 /* Initialize SIDPlay2
101 */ 101 */
102 gboolean xs_sidplay2_init(XSEngineState * state) 102 gboolean xs_sidplay2_init(XSEngineState * state)
103 { 103 {
104 104 (void) state;
105
106 return TRUE; 105 return TRUE;
107 } 106 }
108 107
109 108
110 /* Close SIDPlay2 engine 109 /* Close SIDPlay2 engine
111 */ 110 */
112 void xs_sidplay2_close(XSEngineState * state) 111 void xs_sidplay2_close(XSEngineState * state)
113 { 112 {
114 XSSIDPlay2 *engine = (XSSIDPlay2 *) state->internal;
115
116 XSDEBUG("SIDPlay2 backend shutdown.\n"); 113 XSDEBUG("SIDPlay2 backend shutdown.\n");
117 114
118 xs_sidplay2_delete(state); 115 xs_sidplay2_delete(state);
119 } 116 }
120 117
325 { 322 {
326 ReSIDBuilder *rs = new ReSIDBuilder("ReSID builder"); 323 ReSIDBuilder *rs = new ReSIDBuilder("ReSID builder");
327 if (rs) 324 if (rs)
328 { 325 {
329 engine->config.sidEmulation = rs; 326 engine->config.sidEmulation = rs;
330 if (!*rs) return FALSE; 327 if (!*rs) goto error;
331 rs->create((engine->emu.info()).maxsids); 328 rs->create((engine->emu.info()).maxsids);
332 if (!*rs) return FALSE; 329 if (!*rs) goto error;
333 } 330 }
334 } 331 }
335 break; 332 break;
336 #endif 333 #endif
337 334
344 { 341 {
345 hs->create((engine->emu.info()).maxsids); 342 hs->create((engine->emu.info()).maxsids);
346 if (!*hs) 343 if (!*hs)
347 { 344 {
348 xs_error("hardSID->create() failed.\n"); 345 xs_error("hardSID->create() failed.\n");
349 return FALSE; 346 goto error;
350 } 347 }
351 } 348 }
352 } 349 }
353 break; 350 break;
354 #endif 351 #endif
355 352
356 default: 353 default:
357 xs_error("[SIDPlay2] Invalid or unsupported builder selected.\n"); 354 xs_error("[SIDPlay2] Invalid or unsupported builder selected.\n");
358 return FALSE; 355 goto error;
359 } 356 }
360 357
361 if (!engine->config.sidEmulation) 358 if (!engine->config.sidEmulation)
362 { 359 {
363 xs_error("[SIDPlay2] Could not initialize SIDBuilder object.\n"); 360 xs_error("[SIDPlay2] Could not initialize SIDBuilder object.\n");
364 return FALSE; 361 goto error;
365 } 362 }
366 363
367 XSDEBUG("%s\n", engine->config.sidEmulation->credits()); 364 XSDEBUG("%s\n", engine->config.sidEmulation->credits());
368 365
369 366
376 xs_error("Could not load file '%s': %s\n", 373 xs_error("Could not load file '%s': %s\n",
377 filename, (engine->tune.getInfo()).statusString); 374 filename, (engine->tune.getInfo()).statusString);
378 goto error; 375 goto error;
379 } 376 }
380 377
381 res = TRUE; 378 g_free(buf);
379 return TRUE;
382 380
383 error: 381 error:
382 if (engine)
383 delete engine;
384 state->internal = NULL;
384 g_free(buf); 385 g_free(buf);
385 return res; 386 return FALSE;
386 } 387 }
387 388
388 389
389 /* Delete INTERNAL information 390 /* Delete INTERNAL information
390 */ 391 */