summaryrefslogtreecommitdiff
path: root/apps/settings.c
diff options
context:
space:
mode:
authorLinus Nielsen Feltzing <linus@haxx.se>2002-09-27 09:31:31 +0000
committerLinus Nielsen Feltzing <linus@haxx.se>2002-09-27 09:31:31 +0000
commitbb572c44121e48d9d54411dff9e0f8dce015e550 (patch)
treea91d8c8e9e5675c9b5039ddc8108f81f55fc4f49 /apps/settings.c
parentacfacd938cfa878aeb69410532b2de58698f703a (diff)
downloadrockbox-bb572c44121e48d9d54411dff9e0f8dce015e550.zip
rockbox-bb572c44121e48d9d54411dff9e0f8dce015e550.tar.gz
rockbox-bb572c44121e48d9d54411dff9e0f8dce015e550.tar.bz2
rockbox-bb572c44121e48d9d54411dff9e0f8dce015e550.tar.xz
Philip Pertermanns peak meter
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2436 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/settings.c')
-rw-r--r--apps/settings.c27
1 files changed, 26 insertions, 1 deletions
diff --git a/apps/settings.c b/apps/settings.c
index 31d4f1a..1b4f864 100644
--- a/apps/settings.c
+++ b/apps/settings.c
@@ -53,6 +53,12 @@ char rockboxdir[] = ROCKBOX_DIR; /* config/font/data file directory */
#define CONFIG_BLOCK_SIZE 512
#define RTC_BLOCK_SIZE 44
+#ifdef HAVE_LCD_BITMAP
+#define MAX_LINES 10
+#else
+#define MAX_LINES 2
+#endif
+
/********************************************
Config block as saved on the battery-packed RTC user RAM memory block
@@ -80,6 +86,9 @@ offset abs
0x16 0x2a <(int) Byte offset into resume file>
0x1a 0x2e <time until disk spindown>
0x1b 0x2f <browse current, play selected>
+0x1c 0x30 <peak meter hold timeout (bit 0-4)>
+0x1d 0x31 <peak meter clip hold timeout (bit 0-4)>
+0x1e 0x32 <peak meter release step size>
<all unused space filled with 0xff>
@@ -290,6 +299,10 @@ int settings_save( void )
(((global_settings.browse_current & 1)) |
((global_settings.play_selected & 1) << 1));
+ config_block[0x1c] = (unsigned char)global_settings.peak_meter_hold;
+ config_block[0x1d] = (unsigned char)global_settings.peak_meter_clip_hold;
+ config_block[0x1e] = (unsigned char)global_settings.peak_meter_release;
+
memcpy(&config_block[0xF8], &global_settings.resume_seed, 4);
memcpy(&config_block[0x24], &global_settings.total_uptime, 4);
@@ -400,6 +413,15 @@ void settings_load(void)
global_settings.play_selected = (config_block[0x1b] >> 1) & 1;
}
+ if (config_block[0x1c] != 0xFF)
+ global_settings.peak_meter_hold = (config_block[0x1c]) & 0x1f;
+
+ if (config_block[0x1d] != 0xFF)
+ global_settings.peak_meter_clip_hold = (config_block[0x1d]) & 0x1f;
+
+ if (config_block[0x1e] != 0xFF)
+ global_settings.peak_meter_release = config_block[0x1e];
+
memcpy(&global_settings.resume_seed, &config_block[0xF8], 4);
if (config_block[0x24] != 0xFF)
@@ -471,7 +493,7 @@ bool settings_load_eq(char* file)
break;
case 3:
snprintf(buf_disp,sizeof(buf_disp),"[%s]%s", buf_set, buf_val);
- lcd_puts(0,line++ % 6,buf_disp);
+ lcd_puts(0,line++ % MAX_LINES, buf_disp);
lcd_update();
sleep(HZ/2);
if (!strcasecmp(buf_set,"volume")) {
@@ -610,6 +632,9 @@ void settings_reset(void) {
global_settings.disk_spindown = 5;
global_settings.browse_current = false;
global_settings.play_selected = true;
+ global_settings.peak_meter_release = 8;
+ global_settings.peak_meter_hold = 1;
+ global_settings.peak_meter_clip_hold = 16;
}