summaryrefslogtreecommitdiff
path: root/apps/settings.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/settings.c')
-rw-r--r--apps/settings.c180
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
639void set_bool(char* string, bool* variable ) 640bool 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
644void set_bool_options(char* string, bool* variable, char* yes_str, char* no_str ) 645bool 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
652void set_int(char* string, 657bool 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
723void set_option(char* string, int* variable, char* options[], 734bool 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}};
798char daysinmonth[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; 814char daysinmonth[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
799 815
800void set_time(char* string, int timedate[]) 816bool 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