diff options
Diffstat (limited to 'apps/plugins/zxbox')
-rw-r--r-- | apps/plugins/zxbox/spmain.c | 95 |
1 files changed, 29 insertions, 66 deletions
diff --git a/apps/plugins/zxbox/spmain.c b/apps/plugins/zxbox/spmain.c index b7d20ecf5e..e27770c70c 100644 --- a/apps/plugins/zxbox/spmain.c +++ b/apps/plugins/zxbox/spmain.c | |||
@@ -20,7 +20,6 @@ | |||
20 | #include "zxmisc.h" | 20 | #include "zxmisc.h" |
21 | #include "zxconfig.h" | 21 | #include "zxconfig.h" |
22 | #include "lib/configfile.h" | 22 | #include "lib/configfile.h" |
23 | #include "lib/oldmenuapi.h" | ||
24 | 23 | ||
25 | #include "spperif.h" | 24 | #include "spperif.h" |
26 | #include "z80.h" | 25 | #include "z80.h" |
@@ -134,25 +133,18 @@ int spcf_read_conf_file(const char *filename) | |||
134 | 133 | ||
135 | /* set keys */ | 134 | /* set keys */ |
136 | static void set_keys(void){ | 135 | static void set_keys(void){ |
137 | int m; | ||
138 | char c; | 136 | char c; |
137 | int selected=0; | ||
139 | int result; | 138 | int result; |
140 | int menu_quit=0; | 139 | int menu_quit=0; |
141 | static const struct menu_item items[] = { | 140 | MENUITEM_STRINGLIST(menu, "Custom keymap", NULL, |
142 | { "Map Up key", NULL }, | 141 | "Map Up key", "Map Down key", "Map Left key", |
143 | { "Map Down key", NULL }, | 142 | "Map Right key", "Map Fire/Jump key"); |
144 | { "Map Left key", NULL }, | ||
145 | { "Map Right key", NULL }, | ||
146 | { "Map Fire/Jump key", NULL }, | ||
147 | }; | ||
148 | |||
149 | m = menu_init(items, sizeof(items) / sizeof(*items), | ||
150 | NULL, NULL, NULL, NULL); | ||
151 | 143 | ||
152 | rb->button_clear_queue(); | 144 | rb->button_clear_queue(); |
153 | 145 | ||
154 | while (!menu_quit) { | 146 | while (!menu_quit) { |
155 | result=menu_show(m); | 147 | result = rb->do_menu(&menu, &selected, NULL, false); |
156 | 148 | ||
157 | switch(result) | 149 | switch(result) |
158 | { | 150 | { |
@@ -161,7 +153,7 @@ static void set_keys(void){ | |||
161 | { | 153 | { |
162 | settings.keymap[0]=c; | 154 | settings.keymap[0]=c; |
163 | } | 155 | } |
164 | break; | 156 | break; |
165 | case 1: | 157 | case 1: |
166 | if (!zx_kbd_input((char*) &c)) | 158 | if (!zx_kbd_input((char*) &c)) |
167 | { | 159 | { |
@@ -191,41 +183,33 @@ static void set_keys(void){ | |||
191 | break; | 183 | break; |
192 | } | 184 | } |
193 | } | 185 | } |
194 | |||
195 | menu_exit(m); | ||
196 | } | 186 | } |
197 | 187 | ||
198 | /* select predefined keymap */ | 188 | /* select predefined keymap */ |
199 | static void select_keymap(void){ | 189 | static void select_keymap(void){ |
200 | int m; | 190 | int selected=0; |
201 | int result; | 191 | int result; |
202 | int menu_quit=0; | 192 | int menu_quit=0; |
203 | static const struct menu_item items[] = { | 193 | MENUITEM_STRINGLIST(menu, "Predefined keymap", NULL, |
204 | { "2w90z", NULL }, | 194 | "2w90z", "qaopS", "7658S"); |
205 | { "qaopS", NULL }, | ||
206 | { "7658S", NULL }, | ||
207 | }; | ||
208 | |||
209 | m = menu_init(items, sizeof(items) / sizeof(*items), | ||
210 | NULL, NULL, NULL, NULL); | ||
211 | 195 | ||
212 | rb->button_clear_queue(); | 196 | rb->button_clear_queue(); |
213 | 197 | ||
214 | while (!menu_quit) { | 198 | while (!menu_quit) { |
215 | result=menu_show(m); | 199 | result = rb->do_menu(&menu, &selected, NULL, false); |
216 | 200 | ||
217 | switch(result) | 201 | switch(result) |
218 | { | 202 | { |
219 | case 0: | 203 | case 0: |
220 | rb->memcpy ( (void*)&settings.keymap[0] , (void*)items[0].desc , sizeof(items[0].desc)); | 204 | rb->memcpy ( (void*)&settings.keymap[0] , (void*)"2w90z" , 5); |
221 | menu_quit=1; | 205 | menu_quit=1; |
222 | break; | 206 | break; |
223 | case 1: | 207 | case 1: |
224 | rb->memcpy ( (void*)&settings.keymap[0] , (void*)items[1].desc , sizeof(items[1].desc)); | 208 | rb->memcpy ( (void*)&settings.keymap[0] , (void*)"qaopS" , 5); |
225 | menu_quit=1; | 209 | menu_quit=1; |
226 | break; | 210 | break; |
227 | case 2: | 211 | case 2: |
228 | rb->memcpy ( (void*)&settings.keymap[0] , (void*)items[2].desc , sizeof(items[2].desc)); | 212 | rb->memcpy ( (void*)&settings.keymap[0] , (void*)"7658S" , 5); |
229 | menu_quit=1; | 213 | menu_quit=1; |
230 | break; | 214 | break; |
231 | default: | 215 | default: |
@@ -233,8 +217,6 @@ static void select_keymap(void){ | |||
233 | break; | 217 | break; |
234 | } | 218 | } |
235 | } | 219 | } |
236 | |||
237 | menu_exit(m); | ||
238 | } | 220 | } |
239 | 221 | ||
240 | /* options menu */ | 222 | /* options menu */ |
@@ -243,20 +225,15 @@ static void options_menu(void){ | |||
243 | { "No", -1 }, | 225 | { "No", -1 }, |
244 | { "Yes", -1 }, | 226 | { "Yes", -1 }, |
245 | }; | 227 | }; |
246 | int m; | 228 | int selected; |
247 | int result; | 229 | int result; |
248 | int menu_quit=0; | 230 | int menu_quit=0; |
249 | int new_setting; | 231 | int new_setting; |
250 | static const struct menu_item items[] = { | 232 | MENUITEM_STRINGLIST(menu, "Options", NULL, |
251 | { "Map Keys to kempston", NULL }, | 233 | "Map Keys to kempston", "Display Speed", |
252 | { "Display Speed", NULL }, | 234 | "Invert Colors", "Frameskip", "Sound", "Volume", |
253 | { "Invert Colors", NULL }, | 235 | "Predefined keymap", "Custom keymap"); |
254 | { "Frameskip", NULL }, | 236 | |
255 | { "Sound", NULL }, | ||
256 | { "Volume", NULL }, | ||
257 | { "Predefined keymap", NULL }, | ||
258 | { "Custom keymap", NULL }, | ||
259 | }; | ||
260 | static struct opt_items frameskip_items[] = { | 237 | static struct opt_items frameskip_items[] = { |
261 | { "0", -1 }, | 238 | { "0", -1 }, |
262 | { "1", -1 }, | 239 | { "1", -1 }, |
@@ -269,15 +246,12 @@ static void options_menu(void){ | |||
269 | { "8", -1 }, | 246 | { "8", -1 }, |
270 | { "9", -1 }, | 247 | { "9", -1 }, |
271 | }; | 248 | }; |
272 | |||
273 | 249 | ||
274 | m = menu_init(items, sizeof(items) / sizeof(*items), | ||
275 | NULL, NULL, NULL, NULL); | ||
276 | 250 | ||
277 | rb->button_clear_queue(); | 251 | rb->button_clear_queue(); |
278 | 252 | ||
279 | while (!menu_quit) { | 253 | while (!menu_quit) { |
280 | result=menu_show(m); | 254 | result = rb->do_menu(&menu, &selected, NULL, false); |
281 | 255 | ||
282 | switch(result) | 256 | switch(result) |
283 | { | 257 | { |
@@ -287,7 +261,7 @@ static void options_menu(void){ | |||
287 | no_yes, 2, NULL); | 261 | no_yes, 2, NULL); |
288 | if (new_setting != settings.kempston ) | 262 | if (new_setting != settings.kempston ) |
289 | settings.kempston=new_setting; | 263 | settings.kempston=new_setting; |
290 | break; | 264 | break; |
291 | case 1: | 265 | case 1: |
292 | new_setting = settings.showfps; | 266 | new_setting = settings.showfps; |
293 | rb->set_option("Display Speed",&new_setting,INT, | 267 | rb->set_option("Display Speed",&new_setting,INT, |
@@ -339,8 +313,6 @@ static void options_menu(void){ | |||
339 | break; | 313 | break; |
340 | } | 314 | } |
341 | } | 315 | } |
342 | |||
343 | menu_exit(m); | ||
344 | } | 316 | } |
345 | 317 | ||
346 | /* menu */ | 318 | /* menu */ |
@@ -349,29 +321,21 @@ static bool zxbox_menu(void) | |||
349 | #if CONFIG_CODEC == SWCODEC && !defined SIMULATOR | 321 | #if CONFIG_CODEC == SWCODEC && !defined SIMULATOR |
350 | rb->pcm_play_stop(); | 322 | rb->pcm_play_stop(); |
351 | #endif | 323 | #endif |
352 | int m; | 324 | int selected=0; |
353 | int result; | 325 | int result; |
354 | int menu_quit=0; | 326 | int menu_quit=0; |
355 | int exit=0; | 327 | int exit=0; |
356 | char c; | 328 | char c; |
357 | static const struct menu_item items[] = { | 329 | MENUITEM_STRINGLIST(menu, "ZXBox Menu", NULL, |
358 | { "VKeyboard", NULL }, | 330 | "VKeyboard", "Play/Pause Tape", |
359 | { "Play/Pause Tape", NULL }, | 331 | "Save quick snapshot", "Load quick snapshot", |
360 | { "Save quick snapshot", NULL }, | 332 | "Save Snapshot", "Toggle \"fast\" mode", |
361 | { "Load quick snapshot", NULL }, | 333 | "Options", "Quit"); |
362 | { "Save Snapshot", NULL }, | ||
363 | { "Toggle \"fast\" mode", NULL }, | ||
364 | { "Options", NULL }, | ||
365 | { "Quit", NULL }, | ||
366 | }; | ||
367 | |||
368 | m = menu_init(items, sizeof(items) / sizeof(*items), | ||
369 | NULL, NULL, NULL, NULL); | ||
370 | 334 | ||
371 | rb->button_clear_queue(); | 335 | rb->button_clear_queue(); |
372 | 336 | ||
373 | while (!menu_quit) { | 337 | while (!menu_quit) { |
374 | result=menu_show(m); | 338 | result = rb->do_menu(&menu, &selected, NULL, false); |
375 | 339 | ||
376 | switch(result) | 340 | switch(result) |
377 | { | 341 | { |
@@ -415,7 +379,6 @@ static bool zxbox_menu(void) | |||
415 | } | 379 | } |
416 | } | 380 | } |
417 | 381 | ||
418 | menu_exit(m); | ||
419 | #if defined(HAVE_ADJUSTABLE_CPU_FREQ) | 382 | #if defined(HAVE_ADJUSTABLE_CPU_FREQ) |
420 | rb->cpu_boost(true); | 383 | rb->cpu_boost(true); |
421 | #endif | 384 | #endif |