Mercurial > hg > xmms-sid
diff src/xmms-sid.c @ 872:b02f934d8224
Move some code to xs_backend.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Fri, 09 Nov 2012 04:37:25 +0200 |
parents | 9052d9096c59 |
children | 0fdb001e456c |
line wrap: on
line diff
--- a/src/xmms-sid.c Fri Nov 09 04:24:48 2012 +0200 +++ b/src/xmms-sid.c Fri Nov 09 04:37:25 2012 +0200 @@ -37,62 +37,10 @@ #include "xs_fileinfo.h" #include "xs_interface.h" #include "xs_glade.h" -#include "xs_player.h" +#include "xs_backend.h" #include "xs_slsup.h" -/* List of emulator engines - */ -#ifdef HAVE_SIDPLAY1 -# include "xs_sidplay1.h" -#endif -#ifdef HAVE_SIDPLAY2 -# include "xs_sidplay2.h" -#endif -#ifdef HAVE_SIDPLAYFP -# include "xs_sidplayfp.h" -#endif - -static XSEngine xs_enginelist[] = -{ -#ifdef HAVE_SIDPLAY1 - { - XS_ENG_SIDPLAY1, - xs_sidplay1_probe, - xs_sidplay1_init, xs_sidplay1_close, - xs_sidplay1_initsong, xs_sidplay1_fillbuffer, - xs_sidplay1_load, xs_sidplay1_delete, - xs_sidplay1_getinfo, xs_sidplay1_updateinfo, - NULL - }, -#endif -#ifdef HAVE_SIDPLAY2 - { - XS_ENG_SIDPLAY2, - xs_sidplay2_probe, - xs_sidplay2_init, xs_sidplay2_close, - xs_sidplay2_initsong, xs_sidplay2_fillbuffer, - xs_sidplay2_load, xs_sidplay2_delete, - xs_sidplay2_getinfo, xs_sidplay2_updateinfo, - xs_sidplay2_flush - }, -#endif -#ifdef HAVE_SIDPLAYFP - { - XS_ENG_SIDPLAYFP, - xs_sidplayfp_probe, - xs_sidplayfp_init, xs_sidplayfp_close, - xs_sidplayfp_initsong, xs_sidplayfp_fillbuffer, - xs_sidplayfp_load, xs_sidplayfp_delete, - xs_sidplayfp_getinfo, xs_sidplayfp_updateinfo, - xs_sidplayfp_flush - }, -#endif -}; - -static const gint xs_nenginelist = sizeof(xs_enginelist) / sizeof(xs_enginelist[0]); - - /* Global variables */ XSEngineState xs_status; @@ -137,9 +85,6 @@ */ void xs_reinit(void) { - gint engine; - gboolean initialized = FALSE; - /* Stop playing, if we are */ XS_MUTEX_LOCK(xs_status); if (xs_status.playing) @@ -176,19 +121,7 @@ xs_status.audioFormat = -1; /* Try to initialize emulator engine */ - XSDEBUG("initializing emulator engine #%i...\n", xs_cfg.playerEngine); - - for (engine = 0; engine < xs_nenginelist && !initialized; engine++) - { - if (xs_enginelist[engine].plrIdent == xs_cfg.playerEngine && - xs_enginelist[engine].plrInit(&xs_status)) - { - initialized = TRUE; - xs_status.engine = &xs_enginelist[engine]; - } - } - - XSDEBUG("init#1: %s, %i\n", initialized ? "OK" : "FAILED", xs_cfg.playerEngine); + xs_init_emu_backend(&xs_cfg.playerEngine); /* Get settings back, in case the chosen emulator backend changed them */ xs_cfg.audioFrequency = xs_status.audioFrequency;