From ea7a89606cfaffb2ae2c843ea9868bd8c8dd16c9 Mon Sep 17 00:00:00 2001 From: Fred Bauer Date: Sat, 19 Nov 2011 23:34:26 +0000 Subject: FS#12293 Global default glyph setting in System > Limits > Glyphs To Cache. Defaults to 250. This saves a lot of RAM while still allowing non-English users to have adequate glyph coverage. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31031 a1c6a512-1295-4272-9138-f99709370657 --- apps/gui/skin_engine/skin_parser.c | 6 ++---- apps/lang/english.lang | 14 ++++++++++++++ apps/menus/settings_menu.c | 9 ++++++++- apps/settings.c | 2 +- apps/settings.h | 1 + apps/settings_list.c | 6 ++++++ 6 files changed, 32 insertions(+), 6 deletions(-) (limited to 'apps') diff --git a/apps/gui/skin_engine/skin_parser.c b/apps/gui/skin_engine/skin_parser.c index ad10689107..c4a96d0e9b 100644 --- a/apps/gui/skin_engine/skin_parser.c +++ b/apps/gui/skin_engine/skin_parser.c @@ -78,7 +78,6 @@ #define WPS_ERROR_INVALID_PARAM -1 -#define GLYPHS_TO_CACHE 256 static char* skin_buffer = NULL; void skinparser_set_buffer(char* pointer) { @@ -468,7 +467,7 @@ static int parse_font_load(struct skin_element *element, if(element->params_count > 2) glyphs = get_param(element, 2)->data.number; else - glyphs = GLYPHS_TO_CACHE; + glyphs = global_settings.glyphs; if (id < 2) { DEBUGF("font id must be >= 2\n"); @@ -1742,8 +1741,7 @@ static bool skin_load_fonts(struct wps_data *data) char path[MAX_PATH]; snprintf(path, sizeof path, FONT_DIR "/%s", font->name); #ifndef __PCTOOL__ - font->id = font_load_ex(path, - font_glyphs_to_bufsize(path, skinfonts[font_id-2].glyphs)); + font->id = font_load_ex(path, 0, skinfonts[font_id-2].glyphs); #else font->id = font_load(path); diff --git a/apps/lang/english.lang b/apps/lang/english.lang index a228a78f7f..29e6205729 100644 --- a/apps/lang/english.lang +++ b/apps/lang/english.lang @@ -12951,3 +12951,17 @@ hardware_click: "Speaker Keyclick" + + id: LANG_GLYPHS + desc: in settings_menu + user: core + + *: "Glyphs To Cache" + + + *: "Glyphs To Cache" + + + *: "Glyphs To Cache" + + diff --git a/apps/menus/settings_menu.c b/apps/menus/settings_menu.c index 079e86616d..4ea98efd95 100644 --- a/apps/menus/settings_menu.c +++ b/apps/menus/settings_menu.c @@ -221,8 +221,15 @@ MENUITEM_SETTING(poweroff, &global_settings.poweroff, NULL); /* Limits menu */ MENUITEM_SETTING(max_files_in_dir, &global_settings.max_files_in_dir, NULL); MENUITEM_SETTING(max_files_in_playlist, &global_settings.max_files_in_playlist, NULL); +#ifdef HAVE_LCD_BITMAP +MENUITEM_SETTING(default_glyphs, &global_settings.glyphs, NULL); +#endif MAKE_MENU(limits_menu, ID2P(LANG_LIMITS_MENU), 0, Icon_NOICON, - &max_files_in_dir, &max_files_in_playlist); + &max_files_in_dir, &max_files_in_playlist +#ifdef HAVE_LCD_BITMAP + ,&default_glyphs +#endif + ); /* Keyclick menu */ diff --git a/apps/settings.c b/apps/settings.c index fbfa438ab5..c22fa50f17 100644 --- a/apps/settings.c +++ b/apps/settings.c @@ -886,7 +886,7 @@ void settings_apply(bool read_disk) CHART2(">font_load ", global_settings.font_file); if (font_ui >= 0) font_unload(font_ui); - rc = font_load(buf); + rc = font_load_ex(buf, 0, global_settings.glyphs); CHART2("