From 44f2d39a6c34d52130dba98aa139374cad21522c Mon Sep 17 00:00:00 2001 From: seife Date: Sat, 6 Nov 2010 14:39:52 +0000 Subject: [PATCH] neutrino: make screen resolution (old -r parameter) configurable The screen resolution (zoom factor for fonts) can now be configured via menu. This obsoletes the -r parameter. git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-experimental@882 e54a6e83-5905-42d5-8d5c-058d10e6a962 --- data/locale/deutsch.locale | 3 +++ data/locale/english.locale | 3 +++ src/neutrino.cpp | 28 ++++++++++++++++++++++------ src/neutrino_menue.cpp | 2 +- src/system/locals.h | 3 +++ src/system/locals_intern.h | 3 +++ src/system/settings.h | 2 ++ 7 files changed, 37 insertions(+), 7 deletions(-) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index 0cb222510..34d05778b 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -435,6 +435,9 @@ flashupdate.wrongbase Abweichende Release-Information\nFortfahren? flashupdate.new_found Updates verfügbar! flashupdate.new_notfound Keine Updates verfügbar! fontmenu.menu Menü +fontmenu.scaling Schriftgrössenfaktor +fontmenu.scaling_x Horizontal (in %) +fontmenu.scaling_y Vertikal (in %) fontmenu.sizes Schriftgrössen fontmenu.channellist Kanalliste fontmenu.epg EPG (Programmführer) diff --git a/data/locale/english.locale b/data/locale/english.locale index 2a2207912..26e6196bc 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -364,6 +364,9 @@ flashupdate.writeflash Write whole image flashupdate.writeflashmtd Write one partition flashupdate.wrongbase Your Release cycle differs.\nTo continue? fontmenu.menu Menu +fontmenu.scaling Global Font Zoom Factor +fontmenu.scaling_x Horizontal (in %) +fontmenu.scaling_y Vertical (in %) fontmenu.sizes Font sizes fontmenu.channellist Channellist fontmenu.epg EPG diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 41e9797c7..43eb898d0 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -198,9 +198,6 @@ cCpuFreqManager * cpuFreq; int prev_video_mode; -int xres = 72; -int yres = 72; // TODO: no globals for that. - int g_channel_list_changed; void stop_daemons(bool stopall = true); @@ -1069,6 +1066,8 @@ printf("***************************** rec dir %s timeshift dir %s\n", g_settings g_settings.channellist_epgtext_align_right = configfile.getBool("channellist_epgtext_align_right" , false); g_settings.channellist_extended = configfile.getBool("channellist_extended" , true); //screen configuration + g_settings.screen_xres = configfile.getInt32("screen_xres", 100); + g_settings.screen_yres = configfile.getInt32("screen_yres", 100); g_settings.screen_StartX_crt = configfile.getInt32( "screen_StartX_crt", DEFAULT_X_START_SD); g_settings.screen_StartY_crt = configfile.getInt32( "screen_StartY_crt", DEFAULT_Y_START_SD ); g_settings.screen_EndX_crt = configfile.getInt32( "screen_EndX_crt", DEFAULT_X_END_SD); @@ -2001,11 +2000,12 @@ void CNeutrinoApp::CmdParser(int argc, char **argv) zapit_debug = 1; } else if (!strcmp(argv[x], "-r")) { + printf("[neutrino] WARNING: parameter -r ignored\n"); x++; if (x < argc) - xres = atoi(argv[x++]); + x++; if (x < argc) - yres = atoi(argv[x++]); + x++; } else { dprintf(DEBUG_NORMAL, "Usage: neutrino [-u | --enable-update] [-f | --enable-flash] " @@ -2051,7 +2051,7 @@ void CNeutrinoApp::SetupFonts() if (g_fontRenderer != NULL) delete g_fontRenderer; - g_fontRenderer = new FBFontRenderClass(xres, yres); + g_fontRenderer = new FBFontRenderClass(72 * g_settings.screen_xres / 100, 72 * g_settings.screen_yres / 100); if(font.filename != NULL) free((void *)font.filename); @@ -4694,6 +4694,22 @@ printf("New timeshift dir: %s\n", timeshiftDir); } return menu_return::RETURN_REPAINT; } + else if (actionKey == "font_scaling") { + int xre = g_settings.screen_xres; + int yre = g_settings.screen_yres; + parent->hide(); + CMenuWidget fontscale(LOCALE_FONTMENU_SCALING, NEUTRINO_ICON_COLORS); + fontscale.addItem(new CMenuOptionNumberChooser(LOCALE_FONTMENU_SCALING_X, &xre, true, 50, 200)); + fontscale.addItem(new CMenuOptionNumberChooser(LOCALE_FONTMENU_SCALING_Y, &yre, true, 50, 200)); + fontscale.exec(NULL, ""); + if (xre != g_settings.screen_xres || yre != g_settings.screen_yres) { + printf("[neutrino] new font scale settings x: %d%% y: %d%%\n", xre, yre); + g_settings.screen_xres = xre; + g_settings.screen_yres = yre; + SetupFonts(); + } + return menu_return::RETURN_REPAINT; + } else if(actionKey == "movieplugin") { parent->hide(); CMenuWidget MoviePluginSelector(LOCALE_MOVIEPLAYER_DEFPLUGIN, NEUTRINO_ICON_FEATURES); diff --git a/src/neutrino_menue.cpp b/src/neutrino_menue.cpp index 7eaf65e9d..950e51aa7 100644 --- a/src/neutrino_menue.cpp +++ b/src/neutrino_menue.cpp @@ -2486,7 +2486,7 @@ void CNeutrinoApp::InitFontSettings(CMenuWidget &fontSettings) fontSettings.addItem( new CMenuForwarder(LOCALE_COLORMENU_FONT_TTX, true, NULL, this, "ttx_font")); fontSettings.addItem(new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_FONTMENU_SIZES)); - + fontSettings.addItem(new CMenuForwarder(LOCALE_FONTMENU_SCALING, true, NULL, this, "font_scaling")); //fontSettings.addItem( new CMenuForwarder(LOCALE_EPGPLUS_SELECT_FONT_NAME, true, NULL, this, "select_font")); for (int i = 0; i < 6; i++) { diff --git a/src/system/locals.h b/src/system/locals.h index bf9bc53b5..df4980687 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -393,6 +393,9 @@ typedef enum { LOCALE_FLASHUPDATE_WRITEFLASHMTD, LOCALE_FLASHUPDATE_WRONGBASE, LOCALE_FONTMENU_MENU, + LOCALE_FONTMENU_SCALING, + LOCALE_FONTMENU_SCALING_X, + LOCALE_FONTMENU_SCALING_Y, LOCALE_FONTMENU_CHANNELLIST, LOCALE_FONTMENU_EPG, LOCALE_FONTMENU_EVENTLIST, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index de71d31b6..3911e007b 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -393,6 +393,9 @@ const char *locale_real_names[] = { "flashupdate.writeflashmtd", "flashupdate.wrongbase", "fontmenu.menu", + "fontmenu.scaling", + "fontmenu.scaling_x", + "fontmenu.scaling_y", "fontmenu.channellist", "fontmenu.epg", "fontmenu.eventlist", diff --git a/src/system/settings.h b/src/system/settings.h index 842e210a1..647d26cc9 100644 --- a/src/system/settings.h +++ b/src/system/settings.h @@ -336,6 +336,8 @@ struct SNeutrinoSettings int screen_preset; int screen_width; int screen_height; + int screen_xres; + int screen_yres; //Software-update int softupdate_mode;