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.tar.gz
rockbox-75c3d0b9f10ea30b827052b7a6f894734e705c4f.zip
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 6ea7c34a31..4068f78015 100644
--- a/apps/settings.c
+++ b/apps/settings.c
@@ -916,6 +916,11 @@ int settings_save( void )
916 MAX_FILENAME); 916 MAX_FILENAME);
917 i+= MAX_FILENAME; 917 i+= MAX_FILENAME;
918#endif 918#endif
919#ifdef HAVE_LCD_BITMAP
920 strncpy((char *)&config_block[i], (char *)global_settings.kbd_file,
921 MAX_FILENAME);
922 i+= MAX_FILENAME;
923#endif
919 924
920 if(save_config_buffer()) 925 if(save_config_buffer())
921 { 926 {
@@ -1108,6 +1113,15 @@ void settings_apply(void)
1108 else 1113 else
1109 font_reset(); 1114 font_reset();
1110 1115
1116 if ( global_settings.kbd_file[0] &&
1117 global_settings.kbd_file[0] != 0xff ) {
1118 snprintf(buf, sizeof buf, ROCKBOX_DIR "/%s.kbd",
1119 global_settings.kbd_file);
1120 load_kbd(buf);
1121 }
1122 else
1123 load_kbd(NULL);
1124
1111 lcd_scroll_step(global_settings.scroll_step); 1125 lcd_scroll_step(global_settings.scroll_step);
1112 gui_list_screen_scroll_step(global_settings.screen_scroll_step); 1126 gui_list_screen_scroll_step(global_settings.screen_scroll_step);
1113 gui_list_screen_scroll_out_of_view(global_settings.offset_out_of_view); 1127 gui_list_screen_scroll_out_of_view(global_settings.offset_out_of_view);
@@ -1253,6 +1267,11 @@ void settings_load(int which)
1253 MAX_FILENAME); 1267 MAX_FILENAME);
1254 i+= MAX_FILENAME; 1268 i+= MAX_FILENAME;
1255#endif 1269#endif
1270#ifdef HAVE_LCD_BITMAP
1271 strncpy((char *)global_settings.kbd_file, (char *)&config_block[i],
1272 MAX_FILENAME);
1273 i+= MAX_FILENAME;
1274#endif
1256 } 1275 }
1257} 1276}
1258 1277
@@ -1425,6 +1444,12 @@ bool settings_load_config(const char* file)
1425 set_file(value, (char *)global_settings.backdrop_file, MAX_FILENAME); 1444 set_file(value, (char *)global_settings.backdrop_file, MAX_FILENAME);
1426 } 1445 }
1427#endif 1446#endif
1447#ifdef HAVE_LCD_BITMAP
1448 else if (!strcasecmp(name, "keyboard")) {
1449 if (!load_kbd(value))
1450 set_file(value, (char *)global_settings.kbd_file, MAX_FILENAME);
1451 }
1452#endif
1428 1453
1429 1454
1430 /* check for scalar values, using the two tables */ 1455 /* check for scalar values, using the two tables */
@@ -1583,6 +1608,12 @@ bool settings_save_config(void)
1583 global_settings.backdrop_file); 1608 global_settings.backdrop_file);
1584#endif 1609#endif
1585 1610
1611#ifdef HAVE_LCD_BITMAP
1612 if (global_settings.kbd_file[0] != 0)
1613 fdprintf(fd, "keyboard: %s/%s.kbd\r\n", ROCKBOX_DIR,
1614 global_settings.kbd_file);
1615#endif
1616
1586 /* here's the action: write values to file, specified via table */ 1617 /* here's the action: write values to file, specified via table */
1587 save_cfg_table(rtc_bits, sizeof(rtc_bits)/sizeof(rtc_bits[0]), fd); 1618 save_cfg_table(rtc_bits, sizeof(rtc_bits)/sizeof(rtc_bits[0]), fd);
1588 save_cfg_table(hd_bits, sizeof(hd_bits)/sizeof(hd_bits[0]), fd); 1619 save_cfg_table(hd_bits, sizeof(hd_bits)/sizeof(hd_bits[0]), fd);
@@ -1666,6 +1697,9 @@ void settings_reset(void) {
1666 global_settings.fg_color = LCD_DEFAULT_FG; 1697 global_settings.fg_color = LCD_DEFAULT_FG;
1667 global_settings.bg_color = LCD_DEFAULT_BG; 1698 global_settings.bg_color = LCD_DEFAULT_BG;
1668#endif 1699#endif
1700#ifdef HAVE_LCD_BITMAP
1701 global_settings.kbd_file[0] = '\0';
1702#endif
1669 1703
1670} 1704}
1671 1705