Mercurial > hg > xmms-sid
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 |
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 |