summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorBjörn Stenberg <bjorn@haxx.se>2003-10-17 14:49:00 +0000
committerBjörn Stenberg <bjorn@haxx.se>2003-10-17 14:49:00 +0000
commitb1c429e6fb9a2f6881af2c2dd48cfb17c4477fc4 (patch)
tree122eea193a5dc8689ecf989b34f09e8d28271215 /apps
parent3953211531b382ad23b82f35223c0ca82ed9814f (diff)
downloadrockbox-b1c429e6fb9a2f6881af2c2dd48cfb17c4477fc4.tar.gz
rockbox-b1c429e6fb9a2f6881af2c2dd48cfb17c4477fc4.zip
Car Ignition Auto Stop (patch #736339 by Craig Sather)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3976 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r--apps/lang/english.lang5
-rw-r--r--apps/settings.c14
-rw-r--r--apps/settings.h1
-rw-r--r--apps/settings_menu.c10
-rw-r--r--apps/status.c1
-rw-r--r--apps/wps.c20
6 files changed, 44 insertions, 7 deletions
diff --git a/apps/lang/english.lang b/apps/lang/english.lang
index 3bf3c39fea..813955d3b0 100644
--- a/apps/lang/english.lang
+++ b/apps/lang/english.lang
@@ -1757,3 +1757,8 @@ id: LANG_PLUGINS
1757desc: in main_menu() 1757desc: in main_menu()
1758eng: "Plugins" 1758eng: "Plugins"
1759new: 1759new:
1760
1761id: LANG_CAR_ADAPTER_MODE
1762desc: Displayed for setting car adapter mode to on/off
1763eng: "Car Adapter Mode"
1764new:
diff --git a/apps/settings.c b/apps/settings.c
index e31a2d47d3..9b8f1b35e1 100644
--- a/apps/settings.c
+++ b/apps/settings.c
@@ -133,6 +133,8 @@ Rest of config block, only saved to disk:
1330xAC Max number of files in dir (50-10000) 1330xAC Max number of files in dir (50-10000)
1340xAE fade on pause/unpause/stop setting (bit 0) 1340xAE fade on pause/unpause/stop setting (bit 0)
135 caption backlight (bit 1) 135 caption backlight (bit 1)
136 car adapter mode (bit 2)
1370xAF [available/unused]
1360xB0 peak meter clip hold timeout (bit 0-4), peak meter performance (bit 7) 1380xB0 peak meter clip hold timeout (bit 0-4), peak meter performance (bit 7)
1370xB1 peak meter release step size, peak_meter_dbfs (bit 7) 1390xB1 peak meter release step size, peak_meter_dbfs (bit 7)
1380xB2 peak meter min either in -db or in percent 1400xB2 peak meter min either in -db or in percent
@@ -402,7 +404,8 @@ int settings_save( void )
402 (global_settings.max_files_in_dir >> 8) & 0xff; 404 (global_settings.max_files_in_dir >> 8) & 0xff;
403 config_block[0xae] = (unsigned char) 405 config_block[0xae] = (unsigned char)
404 ((global_settings.fade_on_stop & 1) | 406 ((global_settings.fade_on_stop & 1) |
405 ((global_settings.caption_backlight & 1) << 1)); 407 ((global_settings.caption_backlight & 1) << 1) |
408 ((global_settings.car_adapter_mode & 1) << 2));
406 config_block[0xb0] = (unsigned char)global_settings.peak_meter_clip_hold | 409 config_block[0xb0] = (unsigned char)global_settings.peak_meter_clip_hold |
407 (global_settings.peak_meter_performance ? 0x80 : 0); 410 (global_settings.peak_meter_performance ? 0x80 : 0);
408 config_block[0xb1] = global_settings.peak_meter_release | 411 config_block[0xb1] = global_settings.peak_meter_release |
@@ -542,6 +545,8 @@ void settings_apply(void)
542 global_settings.lang_file); 545 global_settings.lang_file);
543 lang_load(buf); 546 lang_load(buf);
544 } 547 }
548
549 set_car_adapter_mode(global_settings.car_adapter_mode);
545} 550}
546 551
547/* 552/*
@@ -684,6 +689,7 @@ void settings_load(void)
684 if (config_block[0xae] != 0xff) { 689 if (config_block[0xae] != 0xff) {
685 global_settings.fade_on_stop = config_block[0xae] & 1; 690 global_settings.fade_on_stop = config_block[0xae] & 1;
686 global_settings.caption_backlight = (config_block[0xae] >> 1) & 1; 691 global_settings.caption_backlight = (config_block[0xae] >> 1) & 1;
692 global_settings.car_adapter_mode = (config_block[0xae] >> 2) & 1;
687 } 693 }
688 694
689 if(config_block[0xb0] != 0xff) { 695 if(config_block[0xb0] != 0xff) {
@@ -1070,6 +1076,8 @@ bool settings_load_config(char* file)
1070 else if (!strcasecmp(name, "max files in playlist")) 1076 else if (!strcasecmp(name, "max files in playlist"))
1071 set_cfg_int(&global_settings.max_files_in_playlist, value, 1077 set_cfg_int(&global_settings.max_files_in_playlist, value,
1072 1000, 20000); 1078 1000, 20000);
1079 else if (!strcasecmp(name, "car adapter mode"))
1080 set_cfg_bool(&global_settings.car_adapter_mode, value);
1073 else if (!strcasecmp(name, "recursive directory insert")) { 1081 else if (!strcasecmp(name, "recursive directory insert")) {
1074 static char* options[] = {"off", "on", "ask"}; 1082 static char* options[] = {"off", "on", "ask"};
1075 set_cfg_option(&global_settings.recursive_dir_insert, value, 1083 set_cfg_option(&global_settings.recursive_dir_insert, value,
@@ -1330,6 +1338,9 @@ bool settings_save_config(void)
1330 options[global_settings.poweroff]); 1338 options[global_settings.poweroff]);
1331 } 1339 }
1332 1340
1341 fprintf(fd, "car adapter mode: %s\r\n",
1342 boolopt[global_settings.car_adapter_mode]);
1343
1333#ifdef HAVE_MAS3587F 1344#ifdef HAVE_MAS3587F
1334 fprintf(fd, "#\r\n# Recording\r\n#\r\n"); 1345 fprintf(fd, "#\r\n# Recording\r\n#\r\n");
1335 fprintf(fd, "rec quality: %d\r\n", global_settings.rec_quality); 1346 fprintf(fd, "rec quality: %d\r\n", global_settings.rec_quality);
@@ -1456,6 +1467,7 @@ void settings_reset(void) {
1456 global_settings.topruntime = 0; 1467 global_settings.topruntime = 0;
1457 global_settings.fade_on_stop = true; 1468 global_settings.fade_on_stop = true;
1458 global_settings.caption_backlight = false; 1469 global_settings.caption_backlight = false;
1470 global_settings.car_adapter_mode = false;
1459 global_settings.max_files_in_dir = 400; 1471 global_settings.max_files_in_dir = 400;
1460 global_settings.max_files_in_playlist = 10000; 1472 global_settings.max_files_in_playlist = 10000;
1461 global_settings.show_icons = true; 1473 global_settings.show_icons = true;
diff --git a/apps/settings.h b/apps/settings.h
index c3772ad7ff..635834cac0 100644
--- a/apps/settings.h
+++ b/apps/settings.h
@@ -135,6 +135,7 @@ struct user_settings
135 bool peak_meter_performance; /* true: high performance, else save energy*/ 135 bool peak_meter_performance; /* true: high performance, else save energy*/
136 int peak_meter_min; /* range minimum */ 136 int peak_meter_min; /* range minimum */
137 int peak_meter_max; /* range maximum */ 137 int peak_meter_max; /* range maximum */
138 bool car_adapter_mode; /* 0=off 1=on */
138 139
139 /* show status bar */ 140 /* show status bar */
140 bool statusbar; /* 0=hide, 1=show */ 141 bool statusbar; /* 0=hide, 1=show */
diff --git a/apps/settings_menu.c b/apps/settings_menu.c
index f12000c1ef..7af267389a 100644
--- a/apps/settings_menu.c
+++ b/apps/settings_menu.c
@@ -44,6 +44,15 @@
44#endif 44#endif
45#include "lang.h" 45#include "lang.h"
46 46
47static bool car_adapter_mode(void)
48{
49 return set_bool_options( str(LANG_CAR_ADAPTER_MODE),
50 &global_settings.car_adapter_mode,
51 str(LANG_SET_BOOL_YES),
52 str(LANG_SET_BOOL_NO),
53 set_car_adapter_mode);
54}
55
47static bool contrast(void) 56static bool contrast(void)
48{ 57{
49 return set_int( str(LANG_CONTRAST), "", &global_settings.contrast, 58 return set_int( str(LANG_CONTRAST), "", &global_settings.contrast,
@@ -901,6 +910,7 @@ static bool system_settings_menu(void)
901 { str(LANG_TIMEFORMAT), timeformat_set }, 910 { str(LANG_TIMEFORMAT), timeformat_set },
902#endif 911#endif
903 { str(LANG_POWEROFF_IDLE), poweroff_idle_timer }, 912 { str(LANG_POWEROFF_IDLE), poweroff_idle_timer },
913 { str(LANG_CAR_ADAPTER_MODE), car_adapter_mode },
904 { str(LANG_RESET), reset_settings }, 914 { str(LANG_RESET), reset_settings },
905 }; 915 };
906 916
diff --git a/apps/status.c b/apps/status.c
index 6f412d81b1..f0445c3901 100644
--- a/apps/status.c
+++ b/apps/status.c
@@ -119,6 +119,7 @@ void status_draw(bool force_redraw)
119 info.shuffle = global_settings.playlist_shuffle; 119 info.shuffle = global_settings.playlist_shuffle;
120 info.keylock = keys_locked; 120 info.keylock = keys_locked;
121 info.repeat = global_settings.repeat_mode; 121 info.repeat = global_settings.repeat_mode;
122 info.playmode = current_mode;
122 123
123 /* only redraw if forced to, or info has changed */ 124 /* only redraw if forced to, or info has changed */
124 if (force_redraw || 125 if (force_redraw ||
diff --git a/apps/wps.c b/apps/wps.c
index f34ec81d9c..c76d7ade26 100644
--- a/apps/wps.c
+++ b/apps/wps.c
@@ -653,14 +653,22 @@ int wps_show(void)
653 restore = true; 653 restore = true;
654 } 654 }
655 655
656 if (mpeg_status() & MPEG_STATUS_PAUSE) {
657 paused = true;
658 } else {
659 paused = false;
660 }
661
662 while ( 1 ) 656 while ( 1 )
663 { 657 {
658 /* did someone else (i.e power thread) change mpeg pause mode? */
659 if (paused != (mpeg_status() & MPEG_STATUS_PAUSE)) {
660 paused = mpeg_status() & MPEG_STATUS_PAUSE;
661 status_set_playmode(paused ? STATUS_PAUSE : STATUS_PLAY);
662
663 /* if another thread paused mpeg, we are probably in car mode,
664 about to shut down. lets save the settings. */
665 if (paused && global_settings.resume) {
666 settings_save();
667#ifndef HAVE_RTC
668 ata_flush();
669#endif
670 }
671 }
664 672
665#ifdef HAVE_LCD_BITMAP 673#ifdef HAVE_LCD_BITMAP
666 /* when the peak meter is enabled we want to have a 674 /* when the peak meter is enabled we want to have a