summaryrefslogtreecommitdiff
path: root/apps/settings.c
diff options
context:
space:
mode:
authorFrank Dischner <phaedrus961@rockbox.org>2006-03-29 16:21:42 +0000
committerFrank Dischner <phaedrus961@rockbox.org>2006-03-29 16:21:42 +0000
commit75c3d0b9f10ea30b827052b7a6f894734e705c4f (patch)
treeec6bfd1a7f7812bf1d7523b597bada006646cb82 /apps/settings.c
parent0fec4711d5ba5fff1b321568fb45651e11d79b08 (diff)
downloadrockbox-75c3d0b9f10ea30b827052b7a6f894734e705c4f.zip
rockbox-75c3d0b9f10ea30b827052b7a6f894734e705c4f.tar.gz
rockbox-75c3d0b9f10ea30b827052b7a6f894734e705c4f.tar.bz2
rockbox-75c3d0b9f10ea30b827052b7a6f894734e705c4f.tar.xz
Add support for loadable vkeyboard layouts
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9347 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/settings.c')
-rw-r--r--apps/settings.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/apps/settings.c b/apps/settings.c
index 6ea7c34..4068f78 100644
--- a/apps/settings.c
+++ b/apps/settings.c
@@ -916,6 +916,11 @@ int settings_save( void )
MAX_FILENAME);
i+= MAX_FILENAME;
#endif
+#ifdef HAVE_LCD_BITMAP
+ strncpy((char *)&config_block[i], (char *)global_settings.kbd_file,
+ MAX_FILENAME);
+ i+= MAX_FILENAME;
+#endif
if(save_config_buffer())
{
@@ -1108,6 +1113,15 @@ void settings_apply(void)
else
font_reset();
+ if ( global_settings.kbd_file[0] &&
+ global_settings.kbd_file[0] != 0xff ) {
+ snprintf(buf, sizeof buf, ROCKBOX_DIR "/%s.kbd",
+ global_settings.kbd_file);
+ load_kbd(buf);
+ }
+ else
+ load_kbd(NULL);
+
lcd_scroll_step(global_settings.scroll_step);
gui_list_screen_scroll_step(global_settings.screen_scroll_step);
gui_list_screen_scroll_out_of_view(global_settings.offset_out_of_view);
@@ -1253,6 +1267,11 @@ void settings_load(int which)
MAX_FILENAME);
i+= MAX_FILENAME;
#endif
+#ifdef HAVE_LCD_BITMAP
+ strncpy((char *)global_settings.kbd_file, (char *)&config_block[i],
+ MAX_FILENAME);
+ i+= MAX_FILENAME;
+#endif
}
}
@@ -1425,6 +1444,12 @@ bool settings_load_config(const char* file)
set_file(value, (char *)global_settings.backdrop_file, MAX_FILENAME);
}
#endif
+#ifdef HAVE_LCD_BITMAP
+ else if (!strcasecmp(name, "keyboard")) {
+ if (!load_kbd(value))
+ set_file(value, (char *)global_settings.kbd_file, MAX_FILENAME);
+ }
+#endif
/* check for scalar values, using the two tables */
@@ -1583,6 +1608,12 @@ bool settings_save_config(void)
global_settings.backdrop_file);
#endif
+#ifdef HAVE_LCD_BITMAP
+ if (global_settings.kbd_file[0] != 0)
+ fdprintf(fd, "keyboard: %s/%s.kbd\r\n", ROCKBOX_DIR,
+ global_settings.kbd_file);
+#endif
+
/* here's the action: write values to file, specified via table */
save_cfg_table(rtc_bits, sizeof(rtc_bits)/sizeof(rtc_bits[0]), fd);
save_cfg_table(hd_bits, sizeof(hd_bits)/sizeof(hd_bits[0]), fd);
@@ -1666,6 +1697,9 @@ void settings_reset(void) {
global_settings.fg_color = LCD_DEFAULT_FG;
global_settings.bg_color = LCD_DEFAULT_BG;
#endif
+#ifdef HAVE_LCD_BITMAP
+ global_settings.kbd_file[0] = '\0';
+#endif
}