Mercurial > hg > xmms-sid
view src/xs_player.c @ 744:c7fa50576c70
Initial implementation for supporting libSIDPlay2-FP (or libSIDPlay-FP, as
they seem to call it.) Also removed support for the "old" libSIDPlay2 API,
only supporting the "new" CVS trunk COMI API for the old libSIDPlay2.
We'll see how that goes ..
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Mon, 05 Nov 2012 17:24:16 +0200 |
parents | 53a4210889e2 |
children | 55eea3fa8868 |
line wrap: on
line source
#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 xs_engine_t 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, xs_status_t *status) { gint engine; gboolean initialized; XSDEBUG("initializing emulator engine #%i...\n", *configured); engine = 0; initialized = FALSE; while (engine < xs_nenginelist && !initialized) { if (xs_enginelist[engine].plrIdent == *configured) { if (xs_enginelist[engine].plrInit(status)) { initialized = TRUE; status->sidPlayer = (xs_engine_t *) & xs_enginelist[engine]; } } engine++; } XSDEBUG("init#1: %s, %i\n", initialized ? "OK" : "FAILED", engine); engine = 0; while (engine < xs_nenginelist && !initialized) { if (xs_enginelist[engine].plrInit(status)) { initialized = TRUE; status->sidPlayer = (xs_engine_t *) &xs_enginelist[engine]; *configured = xs_enginelist[engine].plrIdent; } else engine++; } XSDEBUG("init#2: %s, %i\n", initialized ? "OK" : "FAILED", engine); return initialized; }