diff options
-rw-r--r-- | apps/gui/quickscreen.c | 47 | ||||
-rw-r--r-- | apps/gui/quickscreen.h | 3 | ||||
-rw-r--r-- | apps/menu.c | 8 | ||||
-rw-r--r-- | apps/settings.h | 2 | ||||
-rw-r--r-- | apps/settings_list.c | 58 |
5 files changed, 39 insertions, 79 deletions
diff --git a/apps/gui/quickscreen.c b/apps/gui/quickscreen.c index 4eebe09fd3..356f74b283 100644 --- a/apps/gui/quickscreen.c +++ b/apps/gui/quickscreen.c | |||
@@ -417,15 +417,6 @@ static int gui_syncquickscreen_run(struct gui_quickscreen * qs, int button_enter | |||
417 | return ret; | 417 | return ret; |
418 | } | 418 | } |
419 | 419 | ||
420 | static const struct settings_list *get_setting(int gs_value, | ||
421 | const struct settings_list *defaultval) | ||
422 | { | ||
423 | if (gs_value != -1 && gs_value < nb_settings && | ||
424 | is_setting_quickscreenable(&settings[gs_value])) | ||
425 | return &settings[gs_value]; | ||
426 | return defaultval; | ||
427 | } | ||
428 | |||
429 | int quick_screen_quick(int button_enter) | 420 | int quick_screen_quick(int button_enter) |
430 | { | 421 | { |
431 | struct gui_quickscreen qs; | 422 | struct gui_quickscreen qs; |
@@ -436,16 +427,13 @@ int quick_screen_quick(int button_enter) | |||
436 | #endif | 427 | #endif |
437 | bool usb = false; | 428 | bool usb = false; |
438 | 429 | ||
439 | qs.items[QUICKSCREEN_TOP] = | 430 | for (int i = 0; i < 4; ++i) |
440 | get_setting(global_settings.qs_items[QUICKSCREEN_TOP], NULL); | 431 | { |
441 | qs.items[QUICKSCREEN_LEFT] = | 432 | qs.items[i] = global_settings.qs_items[i]; |
442 | get_setting(global_settings.qs_items[QUICKSCREEN_LEFT], | 433 | |
443 | find_setting(&global_settings.playlist_shuffle, NULL)); | 434 | if (!is_setting_quickscreenable(qs.items[i])) |
444 | qs.items[QUICKSCREEN_RIGHT] = | 435 | qs.items[i] = NULL; |
445 | get_setting(global_settings.qs_items[QUICKSCREEN_RIGHT], | 436 | } |
446 | find_setting(&global_settings.repeat_mode, NULL)); | ||
447 | qs.items[QUICKSCREEN_BOTTOM] = | ||
448 | get_setting(global_settings.qs_items[QUICKSCREEN_BOTTOM], NULL); | ||
449 | 437 | ||
450 | qs.callback = NULL; | 438 | qs.callback = NULL; |
451 | int ret = gui_syncquickscreen_run(&qs, button_enter, &usb); | 439 | int ret = gui_syncquickscreen_run(&qs, button_enter, &usb); |
@@ -481,10 +469,14 @@ int quick_screen_quick(int button_enter) | |||
481 | /* stuff to make the quickscreen configurable */ | 469 | /* stuff to make the quickscreen configurable */ |
482 | bool is_setting_quickscreenable(const struct settings_list *setting) | 470 | bool is_setting_quickscreenable(const struct settings_list *setting) |
483 | { | 471 | { |
472 | if (!setting) | ||
473 | return true; | ||
474 | |||
484 | /* to keep things simple, only settings which have a lang_id set are ok */ | 475 | /* to keep things simple, only settings which have a lang_id set are ok */ |
485 | if (setting->lang_id < 0 || (setting->flags&F_BANFROMQS)) | 476 | if (setting->lang_id < 0 || (setting->flags & F_BANFROMQS)) |
486 | return false; | 477 | return false; |
487 | switch (setting->flags&F_T_MASK) | 478 | |
479 | switch (setting->flags & F_T_MASK) | ||
488 | { | 480 | { |
489 | case F_T_BOOL: | 481 | case F_T_BOOL: |
490 | return true; | 482 | return true; |
@@ -495,16 +487,3 @@ bool is_setting_quickscreenable(const struct settings_list *setting) | |||
495 | return false; | 487 | return false; |
496 | } | 488 | } |
497 | } | 489 | } |
498 | |||
499 | void set_as_qs_item(const struct settings_list *setting, | ||
500 | enum quickscreen_item item) | ||
501 | { | ||
502 | int i; | ||
503 | for (i = 0; i < nb_settings; i++) | ||
504 | { | ||
505 | if (&settings[i] == setting) | ||
506 | break; | ||
507 | } | ||
508 | |||
509 | global_settings.qs_items[item] = i; | ||
510 | } | ||
diff --git a/apps/gui/quickscreen.h b/apps/gui/quickscreen.h index 6082b5a883..bd8008bd34 100644 --- a/apps/gui/quickscreen.h +++ b/apps/gui/quickscreen.h | |||
@@ -53,7 +53,6 @@ struct gui_quickscreen | |||
53 | extern int quick_screen_quick(int button_enter); | 53 | extern int quick_screen_quick(int button_enter); |
54 | int quickscreen_set_option(void *data); | 54 | int quickscreen_set_option(void *data); |
55 | bool is_setting_quickscreenable(const struct settings_list *setting); | 55 | bool is_setting_quickscreenable(const struct settings_list *setting); |
56 | void set_as_qs_item(const struct settings_list *setting, | 56 | |
57 | enum quickscreen_item item); | ||
58 | #endif /*_GUI_QUICK_SCREEN_H_*/ | 57 | #endif /*_GUI_QUICK_SCREEN_H_*/ |
59 | #endif /* HAVE_QUICKSCREEN */ | 58 | #endif /* HAVE_QUICKSCREEN */ |
diff --git a/apps/menu.c b/apps/menu.c index 2ef8e0d839..f317f579a4 100644 --- a/apps/menu.c +++ b/apps/menu.c | |||
@@ -544,16 +544,16 @@ int do_menu(const struct menu_item_ex *start_menu, int *start_selected, | |||
544 | break; | 544 | break; |
545 | #ifdef HAVE_QUICKSCREEN | 545 | #ifdef HAVE_QUICKSCREEN |
546 | case 1: /* set as top QS item */ | 546 | case 1: /* set as top QS item */ |
547 | set_as_qs_item(setting, QUICKSCREEN_TOP); | 547 | global_settings.qs_items[QUICKSCREEN_TOP] = setting; |
548 | break; | 548 | break; |
549 | case 2: /* set as left QS item */ | 549 | case 2: /* set as left QS item */ |
550 | set_as_qs_item(setting, QUICKSCREEN_LEFT); | 550 | global_settings.qs_items[QUICKSCREEN_LEFT] = setting; |
551 | break; | 551 | break; |
552 | case 3: /* set as bottom QS item */ | 552 | case 3: /* set as bottom QS item */ |
553 | set_as_qs_item(setting, QUICKSCREEN_BOTTOM); | 553 | global_settings.qs_items[QUICKSCREEN_BOTTOM] = setting; |
554 | break; | 554 | break; |
555 | case 4: /* set as right QS item */ | 555 | case 4: /* set as right QS item */ |
556 | set_as_qs_item(setting, QUICKSCREEN_RIGHT); | 556 | global_settings.qs_items[QUICKSCREEN_RIGHT] = setting; |
557 | break; | 557 | break; |
558 | case 5: /* Add to faves. Same limitation on which can be | 558 | case 5: /* Add to faves. Same limitation on which can be |
559 | added to the shortcuts menu as the quickscreen */ | 559 | added to the shortcuts menu as the quickscreen */ |
diff --git a/apps/settings.h b/apps/settings.h index 75a346e223..1c298d8330 100644 --- a/apps/settings.h +++ b/apps/settings.h | |||
@@ -486,7 +486,7 @@ struct user_settings | |||
486 | #endif | 486 | #endif |
487 | 487 | ||
488 | #ifdef HAVE_QUICKSCREEN | 488 | #ifdef HAVE_QUICKSCREEN |
489 | int qs_items[QUICKSCREEN_ITEM_COUNT]; | 489 | const struct settings_list *qs_items[QUICKSCREEN_ITEM_COUNT]; |
490 | #endif | 490 | #endif |
491 | 491 | ||
492 | int timeformat; /* time format: 0=24 hour clock, 1=12 hour clock */ | 492 | int timeformat; /* time format: 0=24 hour clock, 1=12 hour clock */ |
diff --git a/apps/settings_list.c b/apps/settings_list.c index ab02683d94..2ff4258c54 100644 --- a/apps/settings_list.c +++ b/apps/settings_list.c | |||
@@ -593,52 +593,34 @@ static void eq_set_default(void* setting, void* defaultval) | |||
593 | } | 593 | } |
594 | 594 | ||
595 | #ifdef HAVE_QUICKSCREEN | 595 | #ifdef HAVE_QUICKSCREEN |
596 | static int find_setting_by_name(char*name) | 596 | static void qs_load_from_cfg(void *var, char *value) |
597 | { | 597 | { |
598 | int i = 0; | 598 | const struct settings_list **item = var; |
599 | const struct settings_list *setting; | 599 | |
600 | if (!strcmp(name, "-")) | 600 | if (*value == '-') |
601 | return -1; | 601 | *item = NULL; |
602 | while (i<nb_settings) | 602 | else |
603 | { | 603 | *item = find_setting_by_cfgname(value, NULL); |
604 | setting = &settings[i]; | ||
605 | if (setting->cfg_name && !strcmp(setting->cfg_name, name)) | ||
606 | { | ||
607 | return i; | ||
608 | } | ||
609 | i++; | ||
610 | } | ||
611 | return -1; | ||
612 | } | ||
613 | static void qs_load_from_cfg(void* var, char*value) | ||
614 | { | ||
615 | *(int*)var = find_setting_by_name(value); | ||
616 | } | 604 | } |
617 | static char* qs_write_to_cfg(void* setting, char*buf, int buf_len) | 605 | |
606 | static char* qs_write_to_cfg(void *var, char *buf, int buf_len) | ||
618 | { | 607 | { |
619 | int index = *(int*)setting; | 608 | const struct settings_list *setting = *(const struct settings_list **)var; |
620 | if (index < 0 || index >= nb_settings) | 609 | |
621 | { | 610 | strmemccpy(buf, setting ? setting->cfg_name : "-", buf_len); |
622 | strmemccpy(buf, "-", buf_len); | ||
623 | return buf; | ||
624 | } | ||
625 | const struct settings_list *var = &settings[index]; | ||
626 | strmemccpy(buf, var->cfg_name, buf_len); | ||
627 | return buf; | 611 | return buf; |
628 | } | 612 | } |
629 | static bool qs_is_changed(void* setting, void* defaultval) | 613 | |
614 | static bool qs_is_changed(void* var, void* defaultval) | ||
630 | { | 615 | { |
631 | int i = *(int*)setting; | 616 | const struct settings_list *defaultsetting = find_setting(defaultval, NULL); |
632 | if (i < 0 || i >= nb_settings) | 617 | |
633 | return false; | 618 | return var != defaultsetting; |
634 | const struct settings_list *var = &settings[i]; | ||
635 | return var != find_setting(defaultval, NULL); | ||
636 | } | 619 | } |
637 | static void qs_set_default(void* setting, void* defaultval) | 620 | |
621 | static void qs_set_default(void* var, void* defaultval) | ||
638 | { | 622 | { |
639 | if (defaultval == NULL) | 623 | *(const struct settings_list **)var = find_setting(defaultval, NULL); |
640 | *(int*)setting = -1; | ||
641 | find_setting(defaultval, (int*)setting); | ||
642 | } | 624 | } |
643 | #endif | 625 | #endif |
644 | #ifdef HAVE_TOUCHSCREEN | 626 | #ifdef HAVE_TOUCHSCREEN |