diff options
Diffstat (limited to 'apps/settings.c')
-rw-r--r-- | apps/settings.c | 180 |
1 files changed, 100 insertions, 80 deletions
diff --git a/apps/settings.c b/apps/settings.c index 61076836be..025a911557 100644 --- a/apps/settings.c +++ b/apps/settings.c | |||
@@ -38,6 +38,7 @@ | |||
38 | #include "powermgmt.h" | 38 | #include "powermgmt.h" |
39 | #include "status.h" | 39 | #include "status.h" |
40 | #include "atoi.h" | 40 | #include "atoi.h" |
41 | #include "screens.h" | ||
41 | #ifdef HAVE_LCD_BITMAP | 42 | #ifdef HAVE_LCD_BITMAP |
42 | #include "icons.h" | 43 | #include "icons.h" |
43 | #include "font.h" | 44 | #include "font.h" |
@@ -476,84 +477,84 @@ bool settings_load_eq(char* file) | |||
476 | if (!strcasecmp(buf_set,"volume")) { | 477 | if (!strcasecmp(buf_set,"volume")) { |
477 | global_settings.volume = (atoi(buf_val)/2); | 478 | global_settings.volume = (atoi(buf_val)/2); |
478 | if(global_settings.volume > mpeg_sound_max(SOUND_VOLUME) || | 479 | if(global_settings.volume > mpeg_sound_max(SOUND_VOLUME) || |
479 | global_settings.volume < mpeg_sound_min(SOUND_VOLUME)) { | 480 | global_settings.volume < mpeg_sound_min(SOUND_VOLUME)) { |
480 | global_settings.volume = mpeg_sound_default(SOUND_VOLUME); | 481 | global_settings.volume = mpeg_sound_default(SOUND_VOLUME); |
481 | syntax_error = true; | 482 | syntax_error = true; |
482 | } | 483 | } |
483 | mpeg_sound_set(SOUND_VOLUME, global_settings.volume); | 484 | mpeg_sound_set(SOUND_VOLUME, global_settings.volume); |
484 | 485 | ||
485 | } else | 486 | } else |
486 | if (!strcasecmp(buf_set,"bass")) { | 487 | if (!strcasecmp(buf_set,"bass")) { |
487 | if (buf_val[0] == '-') | 488 | if (buf_val[0] == '-') |
488 | global_settings.bass = ((mpeg_sound_max(SOUND_BASS)/2)-atoi(buf_val+1)); | 489 | global_settings.bass = ((mpeg_sound_max(SOUND_BASS)/2)-atoi(buf_val+1)); |
489 | else | 490 | else |
490 | global_settings.bass = (atoi(buf_val)+(mpeg_sound_max(SOUND_BASS)/2)); | 491 | global_settings.bass = (atoi(buf_val)+(mpeg_sound_max(SOUND_BASS)/2)); |
491 | if (global_settings.bass > mpeg_sound_max(SOUND_BASS) || | 492 | if (global_settings.bass > mpeg_sound_max(SOUND_BASS) || |
492 | global_settings.bass < mpeg_sound_min(SOUND_BASS)) { | 493 | global_settings.bass < mpeg_sound_min(SOUND_BASS)) { |
493 | global_settings.bass = mpeg_sound_default(SOUND_BASS); | 494 | global_settings.bass = mpeg_sound_default(SOUND_BASS); |
494 | syntax_error = true; | 495 | syntax_error = true; |
495 | } | 496 | } |
496 | mpeg_sound_set(SOUND_BASS, global_settings.bass); | 497 | mpeg_sound_set(SOUND_BASS, global_settings.bass); |
497 | } else | 498 | } else |
498 | if (!strcasecmp(buf_set,"treble")) { | 499 | if (!strcasecmp(buf_set,"treble")) { |
499 | if (buf_val[0] == '-') | 500 | if (buf_val[0] == '-') |
500 | global_settings.treble = ((mpeg_sound_max(SOUND_TREBLE)/2)-atoi(buf_val+1)); | 501 | global_settings.treble = ((mpeg_sound_max(SOUND_TREBLE)/2)-atoi(buf_val+1)); |
501 | else | 502 | else |
502 | global_settings.treble = (atoi(buf_val)+(mpeg_sound_max(SOUND_TREBLE)/2)); | 503 | global_settings.treble = (atoi(buf_val)+(mpeg_sound_max(SOUND_TREBLE)/2)); |
503 | if (global_settings.treble > mpeg_sound_max(SOUND_TREBLE) || | 504 | if (global_settings.treble > mpeg_sound_max(SOUND_TREBLE) || |
504 | global_settings.treble < mpeg_sound_min(SOUND_TREBLE)) { | 505 | global_settings.treble < mpeg_sound_min(SOUND_TREBLE)) { |
505 | global_settings.treble = mpeg_sound_default(SOUND_TREBLE); | 506 | global_settings.treble = mpeg_sound_default(SOUND_TREBLE); |
506 | syntax_error = true; | 507 | syntax_error = true; |
507 | } | 508 | } |
508 | mpeg_sound_set(SOUND_TREBLE, global_settings.treble); | 509 | mpeg_sound_set(SOUND_TREBLE, global_settings.treble); |
509 | } else | 510 | } else |
510 | if (!strcasecmp(buf_set,"balance")) { | 511 | if (!strcasecmp(buf_set,"balance")) { |
511 | if (buf_val[0] == '-') | 512 | if (buf_val[0] == '-') |
512 | global_settings.balance = -(atoi(buf_val+1)/2); | 513 | global_settings.balance = -(atoi(buf_val+1)/2); |
513 | else | 514 | else |
514 | global_settings.balance = ((atoi(buf_val)/2)); | 515 | global_settings.balance = ((atoi(buf_val)/2)); |
515 | if (global_settings.balance > mpeg_sound_max(SOUND_BALANCE) || | 516 | if (global_settings.balance > mpeg_sound_max(SOUND_BALANCE) || |
516 | global_settings.balance < mpeg_sound_min(SOUND_BALANCE)) { | 517 | global_settings.balance < mpeg_sound_min(SOUND_BALANCE)) { |
517 | global_settings.balance = mpeg_sound_default(SOUND_BALANCE); | 518 | global_settings.balance = mpeg_sound_default(SOUND_BALANCE); |
518 | syntax_error = true; | 519 | syntax_error = true; |
519 | } | 520 | } |
520 | mpeg_sound_set(SOUND_BALANCE, global_settings.balance); | 521 | mpeg_sound_set(SOUND_BALANCE, global_settings.balance); |
521 | } else | 522 | } else |
522 | if (!strcasecmp(buf_set,"channels")) { | 523 | if (!strcasecmp(buf_set,"channels")) { |
523 | global_settings.channel_config = atoi(buf_val); | 524 | global_settings.channel_config = atoi(buf_val); |
524 | if (global_settings.channel_config > mpeg_sound_max(SOUND_CHANNELS) || | 525 | if (global_settings.channel_config > mpeg_sound_max(SOUND_CHANNELS) || |
525 | global_settings.channel_config < mpeg_sound_min(SOUND_CHANNELS)) { | 526 | global_settings.channel_config < mpeg_sound_min(SOUND_CHANNELS)) { |
526 | global_settings.channel_config = mpeg_sound_default(SOUND_CHANNELS); | 527 | global_settings.channel_config = mpeg_sound_default(SOUND_CHANNELS); |
527 | syntax_error = true; | 528 | syntax_error = true; |
528 | } | 529 | } |
529 | mpeg_sound_set(SOUND_CHANNELS, global_settings.channel_config); | 530 | mpeg_sound_set(SOUND_CHANNELS, global_settings.channel_config); |
530 | } else | 531 | } else |
531 | if (!strcasecmp(buf_set,"loudness")) { | 532 | if (!strcasecmp(buf_set,"loudness")) { |
532 | global_settings.loudness = atoi(buf_val); | 533 | global_settings.loudness = atoi(buf_val); |
533 | if(global_settings.loudness > mpeg_sound_max(SOUND_LOUDNESS) || | 534 | if(global_settings.loudness > mpeg_sound_max(SOUND_LOUDNESS) || |
534 | global_settings.loudness < mpeg_sound_min(SOUND_LOUDNESS)) { | 535 | global_settings.loudness < mpeg_sound_min(SOUND_LOUDNESS)) { |
535 | global_settings.loudness = mpeg_sound_default(SOUND_LOUDNESS); | 536 | global_settings.loudness = mpeg_sound_default(SOUND_LOUDNESS); |
536 | syntax_error = true; | 537 | syntax_error = true; |
537 | } | 538 | } |
538 | mpeg_sound_set(SOUND_LOUDNESS, global_settings.loudness); | 539 | mpeg_sound_set(SOUND_LOUDNESS, global_settings.loudness); |
539 | } else | 540 | } else |
540 | if (!strcasecmp(buf_set,"bass boost")) { | 541 | if (!strcasecmp(buf_set,"bass boost")) { |
541 | global_settings.bass_boost = (atoi(buf_val)/10); | 542 | global_settings.bass_boost = (atoi(buf_val)/10); |
542 | if(global_settings.bass_boost > mpeg_sound_max(SOUND_SUPERBASS) || | 543 | if(global_settings.bass_boost > mpeg_sound_max(SOUND_SUPERBASS) || |
543 | global_settings.bass_boost < mpeg_sound_min(SOUND_SUPERBASS)) { | 544 | global_settings.bass_boost < mpeg_sound_min(SOUND_SUPERBASS)) { |
544 | global_settings.bass_boost = mpeg_sound_default(SOUND_SUPERBASS); | 545 | global_settings.bass_boost = mpeg_sound_default(SOUND_SUPERBASS); |
545 | syntax_error = true; | 546 | syntax_error = true; |
546 | } | 547 | } |
547 | mpeg_sound_set(SOUND_SUPERBASS, global_settings.bass_boost); | 548 | mpeg_sound_set(SOUND_SUPERBASS, global_settings.bass_boost); |
548 | } else if (!strcasecmp(buf_set,"auto volume")) { | 549 | } else if (!strcasecmp(buf_set,"auto volume")) { |
549 | global_settings.avc = atoi(buf_val); | 550 | global_settings.avc = atoi(buf_val); |
550 | if (global_settings.avc > mpeg_sound_max(SOUND_AVC) || | 551 | if (global_settings.avc > mpeg_sound_max(SOUND_AVC) || |
551 | global_settings.avc < mpeg_sound_min(SOUND_AVC)) { | 552 | global_settings.avc < mpeg_sound_min(SOUND_AVC)) { |
552 | global_settings.avc = mpeg_sound_default(SOUND_AVC); | 553 | global_settings.avc = mpeg_sound_default(SOUND_AVC); |
553 | syntax_error = true; | 554 | syntax_error = true; |
554 | } | 555 | } |
555 | mpeg_sound_set(SOUND_AVC, global_settings.avc); | 556 | mpeg_sound_set(SOUND_AVC, global_settings.avc); |
556 | } | 557 | } |
557 | if (syntax_error) { | 558 | if (syntax_error) { |
558 | lcd_clear_display(); | 559 | lcd_clear_display(); |
559 | lcd_puts(0,1,"SyntaxError"); | 560 | lcd_puts(0,1,"SyntaxError"); |
@@ -636,20 +637,24 @@ void settings_display(void) | |||
636 | #endif | 637 | #endif |
637 | } | 638 | } |
638 | 639 | ||
639 | void set_bool(char* string, bool* variable ) | 640 | bool set_bool(char* string, bool* variable ) |
640 | { | 641 | { |
641 | set_bool_options(string, variable, "yes", "no "); | 642 | return set_bool_options(string, variable, "yes", "no "); |
642 | } | 643 | } |
643 | 644 | ||
644 | void set_bool_options(char* string, bool* variable, char* yes_str, char* no_str ) | 645 | bool set_bool_options(char* string, bool* variable, |
646 | char* yes_str, char* no_str ) | ||
645 | { | 647 | { |
646 | char* names[] = { yes_str, no_str }; | 648 | char* names[] = { yes_str, no_str }; |
647 | int value = !*variable; | 649 | int value = !*variable; |
648 | set_option(string, &value, names, 2, NULL); | 650 | bool result; |
651 | |||
652 | result = set_option(string, &value, names, 2, NULL); | ||
649 | *variable = !value; | 653 | *variable = !value; |
654 | return result; | ||
650 | } | 655 | } |
651 | 656 | ||
652 | void set_int(char* string, | 657 | bool set_int(char* string, |
653 | char* unit, | 658 | char* unit, |
654 | int* variable, | 659 | int* variable, |
655 | void (*function)(int), | 660 | void (*function)(int), |
@@ -713,14 +718,20 @@ void set_int(char* string, | |||
713 | #endif | 718 | #endif |
714 | done = true; | 719 | done = true; |
715 | break; | 720 | break; |
721 | |||
722 | case SYS_USB_CONNECTED: | ||
723 | usb_screen(); | ||
724 | return true; | ||
716 | } | 725 | } |
717 | if ( function && button != BUTTON_NONE) | 726 | if ( function && button != BUTTON_NONE) |
718 | function(*variable); | 727 | function(*variable); |
719 | } | 728 | } |
720 | lcd_stop_scroll(); | 729 | lcd_stop_scroll(); |
730 | |||
731 | return false; | ||
721 | } | 732 | } |
722 | 733 | ||
723 | void set_option(char* string, int* variable, char* options[], | 734 | bool set_option(char* string, int* variable, char* options[], |
724 | int numoptions, void (*function)(int)) | 735 | int numoptions, void (*function)(int)) |
725 | { | 736 | { |
726 | bool done = false; | 737 | bool done = false; |
@@ -778,12 +789,17 @@ void set_option(char* string, int* variable, char* options[], | |||
778 | #endif | 789 | #endif |
779 | done = true; | 790 | done = true; |
780 | break; | 791 | break; |
792 | |||
793 | case SYS_USB_CONNECTED: | ||
794 | usb_screen(); | ||
795 | return true; | ||
781 | } | 796 | } |
782 | 797 | ||
783 | if ( function && button != BUTTON_NONE) | 798 | if ( function && button != BUTTON_NONE) |
784 | function(*variable); | 799 | function(*variable); |
785 | } | 800 | } |
786 | lcd_stop_scroll(); | 801 | lcd_stop_scroll(); |
802 | return false; | ||
787 | } | 803 | } |
788 | 804 | ||
789 | #ifdef HAVE_LCD_BITMAP | 805 | #ifdef HAVE_LCD_BITMAP |
@@ -797,7 +813,7 @@ char cursor[][3] = {{ 0, 8, 12}, {18, 8, 12}, {36, 8, 12}, | |||
797 | {24, 16, 24}, {54, 16, 18}, {78, 16, 12}}; | 813 | {24, 16, 24}, {54, 16, 18}, {78, 16, 12}}; |
798 | char daysinmonth[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; | 814 | char daysinmonth[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; |
799 | 815 | ||
800 | void set_time(char* string, int timedate[]) | 816 | bool set_time(char* string, int timedate[]) |
801 | { | 817 | { |
802 | bool done = false; | 818 | bool done = false; |
803 | int button; | 819 | int button; |
@@ -999,9 +1015,13 @@ void set_time(char* string, int timedate[]) | |||
999 | #endif | 1015 | #endif |
1000 | break; | 1016 | break; |
1001 | #endif | 1017 | #endif |
1002 | default: | 1018 | |
1003 | break; | 1019 | case SYS_USB_CONNECTED: |
1020 | usb_screen(); | ||
1021 | return true; | ||
1004 | } | 1022 | } |
1005 | } | 1023 | } |
1024 | |||
1025 | return false; | ||
1006 | } | 1026 | } |
1007 | #endif | 1027 | #endif |