summaryrefslogtreecommitdiff
path: root/apps/plugins/zxbox
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins/zxbox')
-rw-r--r--apps/plugins/zxbox/spmain.c95
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 */
136static void set_keys(void){ 135static 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 */
199static void select_keymap(void){ 189static 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