annotate src/xs_player.c @ 732:8312acdb7b15

Bump autotools version requirement.
author Matti Hamalainen <ccr@tnsp.org>
date Mon, 05 Nov 2012 12:06:05 +0200
parents 53a4210889e2
children 55eea3fa8868
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
726
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
1 #include "xs_player.h"
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
2
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
3 #ifdef HAVE_SIDPLAY1
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
4 #include "xs_sidplay1.h"
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
5 #endif
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
6 #ifdef HAVE_SIDPLAY2
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
7 #include "xs_sidplay2.h"
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
8 #endif
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
9
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
10
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
11 /* List of emulator engines
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
12 */
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
13 static const xs_engine_t xs_enginelist[] = {
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
14 #ifdef HAVE_SIDPLAY1
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
15 {XS_ENG_SIDPLAY1,
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
16 xs_sidplay1_probe,
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
17 xs_sidplay1_init, xs_sidplay1_close,
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
18 xs_sidplay1_initsong, xs_sidplay1_fillbuffer,
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
19 xs_sidplay1_load, xs_sidplay1_delete,
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
20 xs_sidplay1_getinfo, xs_sidplay1_updateinfo,
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
21 NULL
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
22 },
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
23 #endif
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
24 #ifdef HAVE_SIDPLAY2
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
25 {XS_ENG_SIDPLAY2,
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
26 xs_sidplay2_probe,
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
27 xs_sidplay2_init, xs_sidplay2_close,
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
28 xs_sidplay2_initsong, xs_sidplay2_fillbuffer,
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
29 xs_sidplay2_load, xs_sidplay2_delete,
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
30 xs_sidplay2_getinfo, xs_sidplay2_updateinfo,
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
31 xs_sidplay2_flush
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
32 },
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
33 #endif
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
34 };
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
35
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
36 static const gint xs_nenginelist = (sizeof(xs_enginelist) / sizeof(xs_enginelist[0]));
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
37
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
38
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
39 gboolean xs_init_emu_engine(int *configured, xs_status_t *status)
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
40 {
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
41 gint engine;
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
42 gboolean initialized;
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
43
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
44 XSDEBUG("initializing emulator engine #%i...\n", *configured);
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
45
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
46 engine = 0;
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
47 initialized = FALSE;
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
48 while (engine < xs_nenginelist && !initialized) {
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
49 if (xs_enginelist[engine].plrIdent == *configured) {
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
50 if (xs_enginelist[engine].plrInit(status)) {
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
51 initialized = TRUE;
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
52 status->sidPlayer = (xs_engine_t *) & xs_enginelist[engine];
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
53 }
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
54 }
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
55 engine++;
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
56 }
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
57
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
58 XSDEBUG("init#1: %s, %i\n", initialized ? "OK" : "FAILED", engine);
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
59
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
60 engine = 0;
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
61 while (engine < xs_nenginelist && !initialized) {
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
62 if (xs_enginelist[engine].plrInit(status)) {
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
63 initialized = TRUE;
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
64 status->sidPlayer = (xs_engine_t *) &xs_enginelist[engine];
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
65 *configured = xs_enginelist[engine].plrIdent;
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
66 } else
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
67 engine++;
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
68 }
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
69
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
70 XSDEBUG("init#2: %s, %i\n", initialized ? "OK" : "FAILED", engine);
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
71 return initialized;
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
72 }
53a4210889e2 Move engine choosing / initialization code to xs_player.c
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
73