# HG changeset patch # User Matti Hamalainen # Date 1352207086 -7200 # Node ID 8f0d1186574249afd8e563d8809a1847cdb838d4 # Parent 0f8723dabc786a1c15330e93f58c865deba43ee9 Move some code around, remove xs_player.c diff -r 0f8723dabc78 -r 8f0d11865742 Makefile.am --- a/Makefile.am Tue Nov 06 15:03:58 2012 +0200 +++ b/Makefile.am Tue Nov 06 15:04:46 2012 +0200 @@ -104,6 +104,6 @@ src/xs_sidplay1.cc src/xs_sidplay1.h \ src/xs_sidplay2.cc src/xs_sidplay2.h \ src/xs_slsup.c src/xs_slsup.h \ - src/xs_player.c src/xs_player.h \ + src/xs_player.h \ src/xmms-sid.c src/xmms-sid.h diff -r 0f8723dabc78 -r 8f0d11865742 src/xmms-sid.c --- a/src/xmms-sid.c Tue Nov 06 15:03:58 2012 +0200 +++ b/src/xmms-sid.c Tue Nov 06 15:04:46 2012 +0200 @@ -41,8 +41,45 @@ #include "xs_slsup.h" -/* - * Global variables +/* List of emulator engines + */ +#ifdef HAVE_SIDPLAY1 +#include "xs_sidplay1.h" +#endif +#ifdef HAVE_SIDPLAY2 +#include "xs_sidplay2.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 +}; + +static const gint xs_nenginelist = sizeof(xs_enginelist) / sizeof(xs_enginelist[0]); + + +/* Global variables */ XSEngineState xs_status; XS_MUTEX(xs_status); @@ -56,8 +93,7 @@ void xs_subctrl_update(void); -/* - * Error messages +/* Error messages */ void xs_error(const char *fmt, ...) { @@ -87,6 +123,9 @@ */ void xs_reinit(void) { + gint engine; + gboolean initialized = FALSE; + /* Stop playing, if we are */ XS_MUTEX_LOCK(xs_status); if (xs_status.isPlaying) { @@ -111,8 +150,19 @@ xs_status.audioFormat = -1; /* Try to initialize emulator engine */ - if (!xs_init_emu_engine(&xs_cfg.playerEngine, &xs_status)) - xs_error("Could not initialize any emulator engine!\n"); + 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); /* Get settings back, in case the chosen emulator backend changed them */ xs_cfg.audioFrequency = xs_status.audioFrequency; diff -r 0f8723dabc78 -r 8f0d11865742 src/xs_fileinfo.c --- a/src/xs_fileinfo.c Tue Nov 06 15:03:58 2012 +0200 +++ b/src/xs_fileinfo.c Tue Nov 06 15:04:46 2012 +0200 @@ -32,6 +32,10 @@ #include "xs_slsup.h" +extern XSEngineState xs_status; +XS_MUTEX_H(xs_status); + + static GtkWidget *xs_fileinfowin = NULL; static XSSTILNode *xs_fileinfostil = NULL; XS_MUTEX(xs_fileinfowin); diff -r 0f8723dabc78 -r 8f0d11865742 src/xs_player.c --- a/src/xs_player.c Tue Nov 06 15:03:58 2012 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,77 +0,0 @@ -#include "xs_player.h" - -#ifdef HAVE_SIDPLAY1 -#include "xs_sidplay1.h" -#endif -#ifdef HAVE_SIDPLAY2 -#include "xs_sidplay2.h" -#endif - - -/* List of emulator engines - */ -static const 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 -}; - -static const gint xs_nenginelist = sizeof(xs_enginelist) / sizeof(xs_enginelist[0]); - - -gboolean xs_init_emu_engine(int *configured, XSEngineState *status) -{ - gint engine; - gboolean initialized = FALSE; - - XSDEBUG("initializing emulator engine #%i...\n", *configured); - - for (engine = 0; engine < xs_nenginelist && !initialized; engine++) - { - if (xs_enginelist[engine].plrIdent == *configured && - xs_enginelist[engine].plrInit(status)) - { - initialized = TRUE; - status->engine = &xs_enginelist[engine]; - } - } - - XSDEBUG("init#1: %s, %i\n", initialized ? "OK" : "FAILED", *configured); - -#if 0 - for (engine = 0; engine < xs_nenginelist && !initialized; engine++) - { - if (xs_enginelist[engine].plrInit(status)) - { - initialized = TRUE; - status->engine = &xs_enginelist[engine]; - *configured = xs_enginelist[engine].plrIdent; - } - } - - XSDEBUG("init#2: %s, %i\n", initialized ? "OK" : "FAILED", *configured); -#endif - - return initialized; -} - diff -r 0f8723dabc78 -r 8f0d11865742 src/xs_player.h --- a/src/xs_player.h Tue Nov 06 15:03:58 2012 +0200 +++ b/src/xs_player.h Tue Nov 06 15:04:46 2012 +0200 @@ -2,7 +2,6 @@ #define XS_PLAYER_H #include "xmms-sid.h" -#include "xs_config.h" #ifdef __cplusplus extern "C" { @@ -43,15 +42,6 @@ } XSEngineState; -/* Global variables - */ -extern InputPlugin xs_plugin_ip; - -extern XSEngineState xs_status; -XS_MUTEX_H(xs_status); - -gboolean xs_init_emu_engine(int *configured, XSEngineState *status); - #ifdef __cplusplus } #endif