From f4fa9bddedb035c26a0ff66b651ba2f94ce72337 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Sun, 8 Jul 2012 16:12:20 +0400 Subject: [PATCH 001/317] gui/channellist.cpp: fix detail box comments --- src/gui/channellist.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/gui/channellist.cpp b/src/gui/channellist.cpp index b6bc1afb2..2fbfd78b5 100644 --- a/src/gui/channellist.cpp +++ b/src/gui/channellist.cpp @@ -1571,11 +1571,11 @@ void CChannelList::paintItem2DetailsLine (int pos, int /*ch_index*/) if(1) // FIXME why -> ? (!g_settings.channellist_extended) { int fh = fheight > 10 ? fheight - 10: 5; - /* item mark */ + /* horizontal item mark */ frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-4, ypos1+5, 4, fh, col1); frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-4, ypos1+5, 1, fh, col2); - /* info mark */ + /* horizontal info mark */ frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-4, ypos2+7, 4,info_height-14, col1); frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-4, ypos2+7, 1,info_height-14, col2); @@ -1583,11 +1583,11 @@ void CChannelList::paintItem2DetailsLine (int pos, int /*ch_index*/) frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a, 4,ypos2a-ypos1a, col1); frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a, 1,ypos2a-ypos1a+4, col2); - /* horizontal item line */ + /* vertical item line */ frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a, 12,4, col1); frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a, 12,1, col2); - /* horizontal info line */ + /* vertical info line */ frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos2a, 12,4, col1); frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-12, ypos2a, 8,1, col2); From d8cdb87e8395dbce8139fe56144cbbe763b0254a Mon Sep 17 00:00:00 2001 From: satbaby Date: Sun, 8 Jul 2012 18:30:03 +0200 Subject: [PATCH 002/317] menue.cpp:-fix OSD on corners switch --- src/gui/network_service.cpp | 1 + src/gui/widget/menue.cpp | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/src/gui/network_service.cpp b/src/gui/network_service.cpp index 7902d6018..dab986945 100644 --- a/src/gui/network_service.cpp +++ b/src/gui/network_service.cpp @@ -34,6 +34,7 @@ #include #include +#include #define TOUCH_BASE "/var/etc/." diff --git a/src/gui/widget/menue.cpp b/src/gui/widget/menue.cpp index 53414aaf1..ac78ab80a 100644 --- a/src/gui/widget/menue.cpp +++ b/src/gui/widget/menue.cpp @@ -850,6 +850,14 @@ void CMenuWidget::paint() saveScreen(); #endif CVFD::getInstance()->setMode(CVFD::MODE_MENU_UTF8, nameString.c_str()); + //clear backround on corners switch + static bool corners = g_settings.rounded_corners; + if(g_settings.rounded_corners != corners){ + corners = g_settings.rounded_corners; + if(!g_settings.rounded_corners){ + frameBuffer->paintBackgroundBoxRel(x, y+full_height, full_width, CORNER_RADIUS_LARGE-2+SHADOW_OFFSET); + } + } //paint shadow and backround int rad = RADIUS_LARGE-2; From c5f60b5b47863d32ff5eaa86f14227bcb4b8808a Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Sun, 8 Jul 2012 21:33:59 +0400 Subject: [PATCH 003/317] gui/widget/menue.cpp: add menu hints paint --- src/gui/widget/menue.cpp | 189 ++++++++++++++++++++++++++++++++------- src/gui/widget/menue.h | 11 ++- 2 files changed, 168 insertions(+), 32 deletions(-) diff --git a/src/gui/widget/menue.cpp b/src/gui/widget/menue.cpp index 53414aaf1..901a4aba9 100644 --- a/src/gui/widget/menue.cpp +++ b/src/gui/widget/menue.cpp @@ -1,27 +1,17 @@ /* - $port: menue.cpp,v 1.178 2010/12/08 19:49:30 tuxbox-cvs Exp $ - Neutrino-GUI - DBoxII-Project Copyright (C) 2001 Steffen Hehn 'McClean' Homepage: http://dbox.cyberphoria.org/ (C) 2008, 2009 Stefan Seyfried + Copyright (C) 2012 CoolStream International Ltd - Kommentar: - - Diese GUI wurde von Grund auf neu programmiert und sollte nun vom - Aufbau und auch den Ausbaumoeglichkeiten gut aussehen. Neutrino basiert - auf der Client-Server Idee, diese GUI ist also von der direkten DBox- - Steuerung getrennt. Diese wird dann von Daemons uebernommen. - - - License: GPL + License: GPLv2 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. + the Free Software Foundation This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -73,6 +63,7 @@ CMenuItem::CMenuItem() can_arrow = false; used = false; icon_frame_w = 10; + hint = NONEXISTANT_LOCALE; } void CMenuItem::init(const int X, const int Y, const int DX, const int OFFX) @@ -370,6 +361,9 @@ void CMenuWidget::Init(const std::string & Icon, const int mwidth, const mn_widg fade = true; savescreen = false; background = NULL; + has_hints = false; + hint_painted = false; + hint_height = 0; } void CMenuWidget::move(int xoff, int yoff) @@ -503,6 +497,7 @@ int CMenuWidget::exec(CMenuTarget* parent, const std::string &) } } } + GenericMenuBack->setHint(NEUTRINO_ICON_HINT_BACK, LOCALE_MENU_HINT_BACK); if(savescreen) { calcSize(); saveScreen(); @@ -599,6 +594,7 @@ int CMenuWidget::exec(CMenuTarget* parent, const std::string &) if ((pos < (int)page_start[current_page + 1]) && (pos >= (int)page_start[current_page])) { items[selected]->paint( false ); item->paint( true ); + paintHint(pos); selected = pos; } else { selected=pos; @@ -633,6 +629,7 @@ int CMenuWidget::exec(CMenuTarget* parent, const std::string &) items[selected]->paint( false ); //select new item->paint( true ); + paintHint(pos); selected = pos; } else { selected=pos; @@ -695,6 +692,11 @@ int CMenuWidget::exec(CMenuTarget* parent, const std::string &) retval = menu_return::RETURN_EXIT_ALL; } break; + case (CRCInput::RC_help): + hide(); + g_settings.show_menu_hints = !g_settings.show_menu_hints; + paint(); + break; default: if ( CNeutrinoApp::getInstance()->handleMsg( msg, data ) & messages_return::cancel_all ) { @@ -747,8 +749,10 @@ void CMenuWidget::hide() //frameBuffer->paintBackgroundBoxRel(x, y, width+15+SHADOW_OFFSET,height+10+SHADOW_OFFSET); if(savescreen && background) restoreScreen();//FIXME - else + else { frameBuffer->paintBackgroundBoxRel(x, y, full_width, full_height); + paintHint(-1); + } /* setActive() paints item for hidden parent menu, if called from child menu */ for (unsigned int count = 0; count < items.size(); count++) @@ -760,9 +764,6 @@ void CMenuWidget::calcSize() if (name != NONEXISTANT_LOCALE) nameString = g_Locale->getText(name); - /* set the max height to 9/10 of usable screen height - debatable, if the callers need a possibility to set this */ - height = frameBuffer->getScreenHeight() / 20 * 18; /* make sure its a multiple of 2 */ width = min_width; int wi, hi; @@ -778,7 +779,24 @@ void CMenuWidget::calcSize() int tmpw = items[i]->getWidth() + 10 + 10 + wi; /* 10 pixels to the left and right of the text */ if (tmpw > width) width = tmpw; + + if(g_settings.show_menu_hints && (!items[i]->hintIcon.empty() || items[i]->hint != NONEXISTANT_LOCALE)) { + has_hints = true; + } } + hint_height = 0; + if(g_settings.show_menu_hints && has_hints) { + int fheight = g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->getHeight(); + hint_height = 10 + 2*fheight; + /* assuming all hint icons has the same size ! */ + int iw, ih; + frameBuffer->getIconSize(NEUTRINO_ICON_HINT_TVMODE, &iw, &ih); + if(hint_height < (ih+10)) + hint_height = ih+10; + } + /* set the max height to 9/10 of usable screen height + debatable, if the callers need a possibility to set this */ + height = (frameBuffer->getScreenHeight() - hint_height) / 20 * 18; /* make sure its a multiple of 2 */ if(height > ((int)frameBuffer->getScreenHeight() - 10)) height = frameBuffer->getScreenHeight() - 10; @@ -796,13 +814,14 @@ void CMenuWidget::calcSize() total_pages=1; for (unsigned int i= 0; i< items.size(); i++) { int item_height=items[i]->getHeight(); - itemHeightTotal+=item_height; heightCurrPage+=item_height; if(heightCurrPage > (height-hheight)) { page_start.push_back(i); total_pages++; heightCurrPage=item_height; } + if(total_pages == 1) + itemHeightTotal+=item_height; } page_start.push_back(items.size()); @@ -837,7 +856,7 @@ void CMenuWidget::calcSize() sb_width=15; full_width = width+sb_width+SHADOW_OFFSET; - full_height = height+RADIUS_LARGE-2+SHADOW_OFFSET; + full_height = height+RADIUS_LARGE-2+SHADOW_OFFSET+hint_height; setMenuPos(width - sb_width); } @@ -874,19 +893,17 @@ void CMenuWidget::paint() void CMenuWidget::setMenuPos(const int& menu_width) { - int mn_width = menu_width; - int scr_x = frameBuffer->getScreenX(); int scr_y = frameBuffer->getScreenY(); int scr_w = frameBuffer->getScreenWidth(); int scr_h = frameBuffer->getScreenHeight(); - + //configured positions switch(g_settings.menu_pos) { case MENU_POS_CENTER: - x = offx + scr_x + ((scr_w - mn_width ) >> 1 ); - y = offy + scr_y + ((scr_h - height) >> 1 ); + x = offx + scr_x + ((scr_w - menu_width ) >> 1 ); + y = offy + scr_y + ((scr_h - height - hint_height) >> 1 ); break; case MENU_POS_TOP_LEFT: @@ -896,17 +913,17 @@ void CMenuWidget::setMenuPos(const int& menu_width) case MENU_POS_TOP_RIGHT: y = offy + scr_y + 10; - x = offx + scr_x + scr_w - mn_width - 10; + x = offx + scr_x + scr_w - menu_width - 10; break; case MENU_POS_BOTTOM_LEFT: - y = offy + scr_y + scr_h - height - 10; + y = offy + scr_y + scr_h - height - hint_height - 10; x = offx + scr_x + 10; break; case MENU_POS_BOTTOM_RIGHT: - y = offy + scr_y + scr_h - height - 10; - x = offx + scr_x + scr_w - mn_width - 10; + y = offy + scr_y + scr_h - height - hint_height - 10; + x = offx + scr_x + scr_w - menu_width - 10; break; } } @@ -942,12 +959,15 @@ void CMenuWidget::paintItems() item->init(x, ypos, width, iconOffset); if( (item->isSelectable()) && (selected==-1) ) { + paintHint(count); ypos = item->paint(true); selected = count; } else { bool sel = selected==((signed int) count) ; + if(sel) + paintHint(count); ypos = item->paint(sel); } } @@ -1016,12 +1036,117 @@ void CMenuWidget::restoreScreen() void CMenuWidget::enableSaveScreen(bool enable) { savescreen = enable; - if(!enable && background) { + if (!enable && background) { delete[] background; background = NULL; } } +void CMenuWidget::paintHint(int pos) +{ +#define ConnectLineBox_Width 16 + if (!g_settings.show_menu_hints) + return; + + if (pos < 0 && !hint_painted) + return; + + fb_pixel_t col1 = COL_MENUCONTENT_PLUS_6; + fb_pixel_t col2 = COL_MENUCONTENT_PLUS_1; + int rad = RADIUS_LARGE; + + int xpos = x - ConnectLineBox_Width; + int ypos2 = y + height + rad + SHADOW_OFFSET; + int iwidth = width+sb_width+SHADOW_OFFSET; + + if (hint_painted) { + /* clear line box */ + frameBuffer->paintBackgroundBoxRel(xpos, y, ConnectLineBox_Width, height+hint_height+rad); + /* clear info box */ + frameBuffer->paintBackgroundBoxRel(x, ypos2, iwidth, hint_height); + + hint_painted = false; + } + if (pos < 0) + return; + + CMenuItem* item = items[pos]; +printf("paintHint: icon %s text %s\n", item->hintIcon.c_str(), g_Locale->getText(item->hint)); + + if (item->hintIcon.empty() && item->hint == NONEXISTANT_LOCALE) + return; + + hint_painted = true; + + int iheight = item->getHeight(); + + int ypos1 = item->getYPosition(); + int ypos1a = ypos1 + (iheight/2)-2; + int ypos2a = ypos2 + (hint_height/2)-2; + + int markh = hint_height > rad*2 ? hint_height - rad*2 : hint_height; + int imarkh = iheight/2; + int imarkoff = iheight/4; + + /* horizontal item mark - */ + frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-4, ypos1+imarkoff, 4, imarkh, col1); + frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-4, ypos1+imarkoff, 1, imarkh, col2); + + /* horizontal info mark - */ + frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-4, ypos2+rad, 4, markh, col1); + frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-4, ypos2+rad, 1 , markh, col2); + + /* vertical connect line [ */ + frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a, 4, ypos2a-ypos1a, col1); + frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a, 1, ypos2a-ypos1a+4, col2); + + /* vertical item line | */ + frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a, 12, 4, col1); + frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a, 12, 1, col2); + + /* vertical info line | */ + frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos2a, 12, 4, col1); + frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-12, ypos2a, 8, 1, col2); +#if 0 + /* box shadow */ + frameBuffer->paintBoxRel(x+SHADOW_OFFSET, ypos2+SHADOW_OFFSET, width + sb_width, hint_height, COL_MENUCONTENTDARK_PLUS_0, rad); +#endif + /* box frame and fill */ + frameBuffer->paintBoxFrame(x, ypos2, iwidth, hint_height, 2, col1, rad); + /* box frame and fill */ + frameBuffer->paintBoxRel(x+2, ypos2+2, iwidth-4, hint_height-4, COL_MENUCONTENTDARK_PLUS_0, rad); + + int offset = 10; + if (!item->hintIcon.empty()) { + int iw, ih; + frameBuffer->getIconSize(item->hintIcon.c_str(), &iw, &ih); + if (iw && ih) { + int ix = x + offset; + int iy = ypos2 + (hint_height - ih)/2; + frameBuffer->paintIcon(item->hintIcon.c_str(), ix, iy); + offset += iw + 10; + } + } + if (item->hint == NONEXISTANT_LOCALE) + return; + + int fheight = g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->getHeight(); + + std::string str1, str2; + std::string str = g_Locale->getText(item->hint); + std::string::size_type spos = str.find_first_of("\n"); + if (spos != std::string::npos) { + str1 = str.substr(0, spos); + str2 = str.substr(spos+1); + } else { + str1 = str; + } + if (!str1.empty()) + g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->RenderString(x+offset, ypos2+5+fheight, iwidth-4-offset, str1, COL_MENUCONTENT, 0, true); // UTF-8 + if (!str2.empty()) + g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->RenderString(x+offset, ypos2+5+fheight*2, iwidth-4-offset, str2, COL_MENUCONTENT, 0, true); // UTF-8 +} + //------------------------------------------------------------------------------------------------------------------------------- CMenuOptionNumberChooser::CMenuOptionNumberChooser(const neutrino_locale_t name, int * const OptionValue, const bool Active, const int min_value, const int max_value, CChangeObserver * const Observ, const int print_offset, const int special_value, const neutrino_locale_t special_value_name, const char * non_localized_name, bool sliderOn) { @@ -1201,7 +1326,9 @@ int CMenuOptionChooser::exec(CMenuTarget*) int select = -1; char cnt[5]; CMenuWidget* menu = new CMenuWidget(optionNameString.c_str(), NEUTRINO_ICON_SETTINGS); - menu->addIntroItems(); + /* FIXME: BACK button with hints enabled - parent menu getting holes, possible solution + * to hide parent, or add hints ? */ + menu->addIntroItems(NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, CMenuWidget::BTN_TYPE_CANCEL); // menu->move(20, 0); CMenuSelectorTarget * selector = new CMenuSelectorTarget(&select); for(unsigned int count = 0; count < number_of_options; count++) @@ -1360,7 +1487,7 @@ int CMenuOptionStringChooser::exec(CMenuTarget* parent) parent->hide(); CMenuWidget* menu = new CMenuWidget(optionName, NEUTRINO_ICON_SETTINGS); - menu->addIntroItems(); + menu->addIntroItems(NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, CMenuWidget::BTN_TYPE_CANCEL); //if(parent) menu->move(20, 0); CMenuSelectorTarget * selector = new CMenuSelectorTarget(&select); for(unsigned int count = 0; count < options.size(); count++) diff --git a/src/gui/widget/menue.h b/src/gui/widget/menue.h index 8a4fa70b6..3a353444d 100644 --- a/src/gui/widget/menue.h +++ b/src/gui/widget/menue.h @@ -96,6 +96,9 @@ class CMenuItem std::string iconName; std::string selected_iconName; std::string iconName_Info_right; + std::string hintIcon; + neutrino_locale_t hint; + CMenuItem(); virtual ~CMenuItem(){} @@ -112,6 +115,7 @@ class CMenuItem { return 0; } + virtual int getYPosition(void) const { return y; } virtual bool isSelectable(void) const { @@ -137,6 +141,7 @@ class CMenuItem virtual void paintItemSlider( const bool select_mode, const int &item_height, const int &optionvalue, const int &factor, const char * left_text=NULL, const char * right_text=NULL); virtual int isMenueOptionChooser(void) const{return 0;} + void setHint(std::string icon, neutrino_locale_t text) { hintIcon = icon; hint = text; } }; class CMenuSeparator : public CMenuItem @@ -420,7 +425,10 @@ class CMenuWidget : public CMenuTarget fb_pixel_t *background; int full_width, full_height; bool savescreen; - + int hint_height; + bool has_hints; // is any items has hints + bool hint_painted; // is hint painted + unsigned int item_start_y; unsigned int current_page; unsigned int total_pages; @@ -470,6 +478,7 @@ class CMenuWidget : public CMenuTarget void setWizardMode(bool _from_wizard) { from_wizard = _from_wizard;}; void enableFade(bool _enable) { fade = _enable; }; void enableSaveScreen(bool enable); + void paintHint(int num); enum { MENU_POS_CENTER , From 7ea994eab8609b29f953a9dabcf5bd1e79829847 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Sun, 8 Jul 2012 21:35:28 +0400 Subject: [PATCH 004/317] locals: add menu hints, work in progress --- data/locale/english.locale | 203 ++++++++++++++++++++++++++++++++++++ src/system/locals.h | 204 +++++++++++++++++++++++++++++++++++++ src/system/locals_intern.h | 204 +++++++++++++++++++++++++++++++++++++ 3 files changed, 611 insertions(+) diff --git a/data/locale/english.locale b/data/locale/english.locale index f91381b0d..342c113ad 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -687,6 +687,208 @@ mainsettings.timezone Timezone mainsettings.video Video menu.back Back menu.cancel Cancel + +menu.hint_back Return to previous menu\nPress menu key to close all menus +menu.hint_tvmode Switch box to TV mode +menu.hint_radiomode Switch box to radio mode +menu.hint_timers Add/Remove/Edit scheduled\nrecording, reminders etc. +menu.hint_media Play movies, audio files\nWatch pictures +menu.hint_games Show list of installed games +menu.hint_scripts Run scripts +menu.hint_settings Configure Neutrino-HD\nNetwork, audio, video, OSD and more +menu.hint_service Tuner setup, service scan,\nbouquet editor, software upgrade +menu.hint_sleeptimer Set timer to put your box\nin sleep mode +menu.hint_reboot Reboot box\nNo confirmation +menu.hint_shutdown Put your box in deep standby mode\nNo confirmation +menu.hint_info Information about image, box cpu and storage,\nstream information +menu.hint_ci Conditional access menu\nto setup your CI CAM or embeded Conax card + +menu.hint_aplay Audio player +menu.hint_inet_radio Internet radio +menu.hint_movie Play movies +menu.hint_picview View pictures +menu.hint_mb Your recordings +menu.hint_fileplay Play various video files + +menu.hint_save_settings Save all settings to flash +menu.hint_manage_settings Backup, restore, revert to defaults\nFactory box reset +menu.hint_personalize Enable, disable or Protect menu items\nConfigure color-buttons user menus +menu.hint_extended Power saving, EPG save/load options\nHDMI-CEC, Start channel, zap options +menu.hint_video Video output, resolution, format\nAspect ratio, fast mode switch options +menu.hint_audio Audio output, DD\nSRS True volume options +menu.hint_protection Protect content by PIN code\nDefault PIN 0000 +menu.hint_network IP address, gateway, DNS, Time sync\nNetwork shares and services +menu.hint_recording Recording and timeshift options\nTimers safety, audio pids options +menu.hint_language OSD language, timezone\nPreffered audio and subtitles languages +menu.hint_osd Colors, fonts, screen size\nGUI look and feel options +menu.hint_vfd Frontpanel LEDS, VFD options +menu.hint_hdd Format / check hard disk drive +menu.hint_keys Remote control repeat rate\nEdit key bindings +menu.hint_a_pic Configure audio player and picture viewer + +menu.hint_service_scan Tuner setup, service scan +menu.hint_reload_channels Reload channels from flash +menu.hint_bedit Edit favorites and bouquets +menu.hint_delete_channels Remove all channels +menu.hint_soft_restart Restart Neutrino-HD without reboot +menu.hint_reload_plugins Reload plugins from flash +menu.hint_sw_update Update software + +menu.hint_imageinfo Information about installed software +menu.hint_dboxinfo Information about box cpu and storage +menu.hint_streaminfo Current channel info: pids, signal and noise ratio\nBitrate graphs + +menu.hint_reset Reset Neutrino-HD GUI settings to defaults\nTuner config and channels not affected +menu.hint_saveas Save Neutrino-HD GUI settings to file +menu.hint_load Load Neutrino-HD GUI settings from file +menu.hint_backup Backup configs and channels to selected dir +menu.hint_restore Restore files from selected backup +menu.hint_factory Reset box to factory state\nBox will reboot after reset + +menu.hint_misc_general Start to standby, cache teletext, swp rotor\nplugin hdd dir +menu.hint_misc_energy Enable soft-standby, delayed shutdown\ninactivity timers +menu.hint_misc_epg Save/load EPG options, EPG cache options\nEPG save directory +menu.hint_misc_filebrowser Filesystem encoding, file rights\ndeny directory leave +menu.hint_misc_cec HDMI-CEC Options +menu.hint_misc_channellist HD/New/Removed channel lists\nZap cycle +menu.hint_misc_zapit Initial TV/Radio channels + +menu.hint_start_tostandby Enter standby mode after boot +menu.hint_cache_txt Start teletext caching after channel switch +menu.hint_fan_speed Control fan speed +menu.hint_rotor_swap Swap rotor east/west directions\nin motor control +menu.hint_plugins_hdd_dir Select directory to load\nplugins from + +menu.hint_shutdown_real Enable soft-standby mode\nIf disabled, power button put box to deep-standby +menu.hint_shutdown_rcdelay Enable deep-standby, if power button\npressed more than 1 second +menu.hint_shutdown_count Time to put box in deep-standby\nfrom soft-standby mode +menu.hint_inact_timer Shutdown box after inactivity + +menu.hint_epg_save Save cached EPG to harddisk or usb flash\nand load it after boot +menu.hint_epg_cache Maximum days to cache for future events +menu.hint_epg_extendedcache Maximum hours to cache extended\nevents descriptions +menu.hint_epg_old_events Hours after event end time to consider\nevent old and remove it from cache +menu.hint_epg_max_events Maximum events to cache. After reaching limit\nEPG cache will remove future events +menu.hint_epg_dir Select directory on harddisk or usb flash\nto save EPG. + +menu.hint_filesystem_is_utf8 Filebrowser filesystem encoding +menu.hint_filebrowser_showrights Show file permissions in file browser +menu.hint_filebrowser_denydirectoryleave Deny filebrowser to leave initial directory + +menu.hint_make_hdlist Auto-create HD channel list based on\nchannel type and name +menu.hint_make_newlist Create list of recently added channels +menu.hint_make_removedlist Create list of recently removed channels +menu.hint_keep_numbers Keep channel numbers over next scans\nand bouquets editing +menu.hint_zap_cycle When swithing channels, stay in current bouquet +menu.hint_new_zap_mode Allow channel switch while browsing\n(toggle mode with 'mute' in channel list) + +menu.hint_cec_mode CEC mode +menu.hint_cec_view_on CEC view ON +menu.hint_cec_standby CEC standby + +menu.hint_last_use Start box on last used channel +menu.hint_last_tv Start box on selected channel\nif last mode is TV +menu.hint_last_radio Start box on selected channel\nif last mode is Radio + +menu.hint_video_analog_mode Select analog output mode\nfor SCART and CINCH connectors +menu.hint_video_scart_mode Select analog output mode for SCART connectors +menu.hint_video_cinch_mode Select analog output mode for\ncomposite video out +menu.hint_video_43mode Display mode for 4:3 content\non 16:9 TV +menu.hint_video_format TV aspect ratio +menu.hint_video_mode HDMI output video mode +menu.hint_video_dbdr MPEG2 enhancement filters +menu.hint_video_modes VF key will cycle between enabled modes + +menu.hint_audio_analog_mode Select audio channel to use\nstereo, mono-left, mono-right +menu.hint_audio_dd Auto-switch to DolbyDigital audio pid,\nif available +menu.hint_audio_hdmi_dd DolbyDigital over HDMI: off - decoded\nauto if supported by device, force +menu.hint_audio_spdif_dd DolbyDigital over optical output +menu.hint_audio_avsync A/V sync +menu.hint_audio_volstep Volume +/- keys increase/decrease step +menu.hint_audio_srs SRS TruVolume control volume jumps\nat content changes +menu.hint_audio_srs_algo Amount of control, light or normal +menu.hint_audio_srs_nmgr Noise manager +menu.hint_audio_srs_volume Reference level to maintain + +menu.hint_parentallock_promt Configure when Neutrino-HD will ask you\nfor PIN code +menu.hint_parentallock_lockage Select age allowed to watch +menu.hint_parentallock_changepin Change PIN code + +menu.hint_net_setupnow Apply current settings +menu.hint_net_test Test network connection: ping gateway,\n name server and external IP +menu.hint_net_show Show current network settings +menu.hint_net_if Select interface to config +menu.hint_net_setuponstartup Start network at boot time +menu.hint_net_dhcp Use DHCP server to auto-configure +menu.hint_net_hostname Change your box hostname +menu.hint_net_ipaddress Enter your box IP address +menu.hint_net_netmask Enter network mask\nif unsure, use 255.255.255.0 +menu.hint_net_broadcast Enter broadcast address\nif unsure, use IP address with last .255 +menu.hint_net_gateway Enter gateway/router IP address +menu.hint_net_nameserver Enter name server (DNS) IP address +menu.hint_net_ssid Enter SSID of wireless network\nyou want to connect to +menu.hint_net_pass Enter passkey (WPA-PSK) +menu.hint_net_ntp Configure time sync +menu.hint_net_mount Configure, mount and un-mount network shares\nNFS and CIFS supported +menu.hint_net_nfs_mount Configure and mount network shares +menu.hint_net_nfs_umount Un-mount mounted shares +menu.hint_net_ntpenable Enable time sync using NTP protocol\nIf NTP sync not successfull, DVB will be used +menu.hint_net_ntpserver Enter NTP server name +menu.hint_net_ntprefresh Time sync interval +menu.hint_net_proxy If you use proxy to access internet\nconfigure it here for online software update +menu.hint_net_proxyserver Proxy server name +menu.hint_net_proxyuser Proxy user name\nif authorization required +menu.hint_net_proxypass Proxy user password\nif authorization required +menu.hint_net_services Configure network services:\nTelnet, ftp, uPnp +menu.hint_net_telnet Enable telnet login to your box +menu.hint_net_ftpd Enable file transfer using FTP +menu.hint_net_djmount mount uPnp devices as filesystem\nunder /media/00upnp +menu.hint_net_ushare Share connected HDD over uPnp + +menu.hint_record_apply Apply record options +menu.hint_record_dir Select directory to store recordings +menu.hint_record_chandir Create directory with name of channel\nto store recording +menu.hint_record_time Record time before stop when\nusing direct record with record button +menu.hint_record_end Stop direct record after max. time\nor after current event end time +menu.hint_record_timeshift Configure timeshift options +menu.hint_record_timer Configure record by timer options +menu.hint_record_apids Configure audio pids to record +menu.hint_record_timebefore Start record before event start\nin minutes +menu.hint_record_timeafter Stop record after event end\nin minutes +menu.hint_record_zap Switch to channel to be recorded\nat record announce +menu.hint_record_zap_pre_time For ZapTo timers, switch channel\nbefore event start, in minutes +menu.hint_record_apid_std Record first audio pid +menu.hint_record_apid_alt Record alternative non-AC3 audio pids +menu.hint_record_apid_ac3 Record AC3 audio pids +menu.hint_record_tdir Select directory to save timeshift recordings\nin temporary timeshift mode +menu.hint_record_timeshift_pause Start timeshift playback in paused mode +menu.hint_record_timeshift_auto Auto start timeshift after channel switch, in seconds +menu.hint_record_timeshift_delete Delete timeshift files after timeshift stop +menu.hint_record_timeshift_temp If off, timeshift started as\nany direct record + +menu.hint_osd_language Select OSD language +menu.hint_timezone Select your timezone +menu.hint_lang_pref Configure preferred audio, EPG\nand subtitle languages +menu.hint_auto_lang Auto-switch audio to preferred language +menu.hint_pref_lang Select preferred audio and EPG language\nselect 'none' to disable +menu.hint_auto_subs Auto-start subtitles for preferred language +menu.hint_pref_subs Select preferred subtitle language\nselect 'none' to disable + +menu.hint_colors Configure GUI colors +menu.hint_theme Select Select pre-defined color theme\nSave or load theme from files +menu.hint_head_back Change GUI title background color +menu.hint_head_textcolor Change GUI window title text color +menu.hint_content_back Change GUI window background color +menu.hint_content_textcolor Change GUI window text color +menu.hint_inactive_back Change inactive item background color +menu.hint_inactive_textcolor Change inactive item text color +menu.hint_selected_back Change selected item background color +menu.hint_selected_text Change selected item text color +menu.hint_infobar_back Change infobar background color +menu.hint_infobar_textcolor Change infobar text color +menu.hint_event_textcolor Change event color for colored-event options\nin channel list and infobar +menu.hint_fonts Configure GUI fonts and font sizes + menu.next Next (press Menu to quit) messagebox.back Back messagebox.cancel Cancel @@ -1235,6 +1437,7 @@ servicemenu.update Software Update settings.backup Image-Settings: Backup settings.backup_failed Backup failed! settings.help Help +settings.menu_hints Show menu hints settings.menu_pos Menu position settings.missingoptionsconffile The Neutrino-HD settings have been updated.\nNew Options will be set to default. settings.noconffile No Neutrino-HD settings found.\nUsing defaults. diff --git a/src/system/locals.h b/src/system/locals.h index 7797e770e..1aed9e4df 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -714,6 +714,209 @@ typedef enum LOCALE_MAINSETTINGS_VIDEO, LOCALE_MENU_BACK, LOCALE_MENU_CANCEL, + + LOCALE_MENU_HINT_BACK, + LOCALE_MENU_HINT_TVMODE, + LOCALE_MENU_HINT_RADIOMODE, + LOCALE_MENU_HINT_TIMERS, + LOCALE_MENU_HINT_MEDIA, + LOCALE_MENU_HINT_GAMES, + LOCALE_MENU_HINT_SCRIPTS, + LOCALE_MENU_HINT_SETTINGS, + LOCALE_MENU_HINT_SERVICE, + LOCALE_MENU_HINT_SLEEPTIMER, + LOCALE_MENU_HINT_REBOOT, + LOCALE_MENU_HINT_SHUTDOWN, + LOCALE_MENU_HINT_INFO, + LOCALE_MENU_HINT_CI, + + LOCALE_MENU_HINT_APLAY, + LOCALE_MENU_HINT_INET_RADIO, + LOCALE_MENU_HINT_MOVIE, + LOCALE_MENU_HINT_PICVIEW, + + LOCALE_MENU_HINT_MB, + LOCALE_MENU_HINT_FILEPLAY, + + LOCALE_MENU_HINT_SAVE_SETTINGS, + LOCALE_MENU_HINT_MANAGE_SETTINGS, + LOCALE_MENU_HINT_PERSONALIZE, + LOCALE_MENU_HINT_EXTENDEED, + LOCALE_MENU_HINT_VIDEO, + LOCALE_MENU_HINT_AUDIO, + LOCALE_MENU_HINT_PROTECTION, + LOCALE_MENU_HINT_NETWORK, + LOCALE_MENU_HINT_RECORDING, + LOCALE_MENU_HINT_LANGUAGE, + LOCALE_MENU_HINT_OSD, + LOCALE_MENU_HINT_VFD, + LOCALE_MENU_HINT_HDD, + LOCALE_MENU_HINT_KEYS, + LOCALE_MENU_HINT_A_PIC, + + LOCALE_MENU_HINT_SERVICE_SCAN, + LOCALE_MENU_HINT_RELOAD_CHANNELS, + LOCALE_MENU_HINT_BEDIT, + LOCALE_MENU_HINT_DELETE_CHANNELS, + LOCALE_MENU_HINT_SOFT_RESTART, + LOCALE_MENU_HINT_RELOAD_PLUGINS, + LOCALE_MENU_HINT_SW_UPDATE, + + LOCALE_MENU_HINT_IMAGEINFO, + LOCALE_MENU_HINT_DBOXINFO, + LOCALE_MENU_HINT_STREAMINFO, + + LOCALE_MENU_HINT_RESET, + LOCALE_MENU_HINT_SAVEAS, + LOCALE_MENU_HINT_LOAD, + LOCALE_MENU_HINT_BACKUP, + LOCALE_MENU_HINT_RESTORE, + LOCALE_MENU_HINT_FACTORY, + + LOCALE_MENU_HINT_MISC_GENERAL, + LOCALE_MENU_HINT_MISC_ENERGY, + LOCALE_MENU_HINT_MISC_EPG, + LOCALE_MENU_HINT_MISC_FILEBROWSER, + LOCALE_MENU_HINT_MISC_CEC, + LOCALE_MENU_HINT_MISC_CHANNELLIST, + LOCALE_MENU_HINT_MISC_ZAPIT, + + LOCALE_MENU_HINT_START_TOSTANDBY, + LOCALE_MENU_HINT_CACHE_TXT, + LOCALE_MENU_HINT_FAN_SPEED, + LOCALE_MENU_HINT_ROTOR_SWAP, + LOCALE_MENU_HINT_PLUGINS_HDD_DIR, + + LOCALE_MENU_HINT_SHUTDOWN_REAL, + LOCALE_MENU_HINT_SHUTDOWN_REAL_RCDELAY, + LOCALE_MENU_HINT_SHUTDOWN_COUNT, + LOCALE_MENU_HINT_INACT_TIMER, + + LOCALE_MENU_HINT_EPG_SAVE, + LOCALE_MENU_HINT_EPG_CACHE, + LOCALE_MENU_HINT_EPG_EXTENDEDCACHE, + LOCALE_MENU_HINT_EPG_OLD_EVENTS, + LOCALE_MENU_HINT_EPG_MAX_EVENTS, + LOCALE_MENU_HINT_EPG_DIR, + + LOCALE_MENU_HINT_FILESYSTEM_IS_UTF8, + LOCALE_MENU_HINT_FILEBROWSER_SHOWRIGHTS, + LOCALE_MENU_HINT_FILEBROWSER_DENYDIRECTORYLEAVE, + + LOCALE_MENU_HINT_MAKE_HDLIST, + LOCALE_MENU_HINT_MAKE_NEWLIST, + LOCALE_MENU_HINT_MAKE_REMOVEDLIST, + LOCALE_MENU_HINT_KEEP_NUMBERS, + LOCALE_MENU_HINT_ZAP_CYCLE, + LOCALE_MENU_HINT_NEW_ZAP_MODE, + + LOCALE_MENU_HINT_CEC_MODE, + LOCALE_MENU_HINT_CEC_VIEW_ON, + LOCALE_MENU_HINT_CEC_STANDBY, + + LOCALE_MENU_HINT_LAST_USE, + LOCALE_MENU_HINT_LAST_TV, + LOCALE_MENU_HINT_LAST_RADIO, + + LOCALE_MENU_HINT_VIDEO_ANALOG_MODE, + LOCALE_MENU_HINT_VIDEO_SCART_MODE, + LOCALE_MENU_HINT_VIDEO_CINCH_MODE, + LOCALE_MENU_HINT_VIDEO_43MODE, + LOCALE_MENU_HINT_VIDEO_FORMAT, + LOCALE_MENU_HINT_VIDEO_MODE, + LOCALE_MENU_HINT_VIDEO_DBDR, + LOCALE_MENU_HINT_VIDEO_MODES, + + LOCALE_MENU_HINT_AUDIO_ANALOG_MODE, + LOCALE_MENU_HINT_AUDIO_DOLBYDIGITAL, + LOCALE_MENU_HINT_AUDIO_HDMI_DD, + LOCALE_MENU_HINT_AUDIO_SPDIF_DD, + LOCALE_MENU_HINT_AUDIO_AVSYNC, + LOCALE_MENU_HINT_AUDIO_VOLSTEP, + LOCALE_MENU_HINT_AUDIO_SRS, + LOCALE_MENU_HINT_AUDIO_SRS_ALGO, + LOCALE_MENU_HINT_AUDIO_SRS_NMGR, + LOCALE_MENU_HINT_AUDIO_SRS_VOLUME, + + LOCALE_MENU_HINT_PARENTALLOCK_PROMPT, + LOCALE_MENU_HINT_PARENTALLOCK_LOCKAGE, + LOCALE_MENU_HINT_PARENTALLOCK_CHANGEPIN, + + LOCALE_MENU_HINT_NET_SETUPNOW, + LOCALE_MENU_HINT_NET_TEST, + LOCALE_MENU_HINT_NET_SHOW, + LOCALE_MENU_HINT_NET_IF, + LOCALE_MENU_HINT_NET_SETUPONSTARTUP, + LOCALE_MENU_HINT_NET_DHCP, + LOCALE_MENU_HINT_NET_HOSTNAME, + LOCALE_MENU_HINT_NET_IPADDRESS, + LOCALE_MENU_HINT_NET_NETMASK, + LOCALE_MENU_HINT_NET_BROADCAST, + LOCALE_MENU_HINT_NET_GATEWAY, + LOCALE_MENU_HINT_NET_NAMESERVER, + LOCALE_MENU_HINT_NET_SSID, + LOCALE_MENU_HINT_NET_PASS, + LOCALE_MENU_HINT_NET_NTP, + LOCALE_MENU_HINT_NET_NTPENABLE, + LOCALE_MENU_HINT_NET_NTPSERVER, + LOCALE_MENU_HINT_NET_NTPREFRESH, + LOCALE_MENU_HINT_NET_MOUNT, + LOCALE_MENU_HINT_NET_NFS_MOUNT, + LOCALE_MENU_HINT_NET_NFS_UMOUNT, + LOCALE_MENU_HINT_NET_PROXY, + LOCALE_MENU_HINT_NET_PROXYSERVER, + LOCALE_MENU_HINT_NET_PROXYUSER, + LOCALE_MENU_HINT_NET_PROXYPASS, + LOCALE_MENU_HINT_NET_SERVICES, + LOCALE_MENU_HINT_NET_TELNET, + LOCALE_MENU_HINT_NET_FTPD, + LOCALE_MENU_HINT_NET_DJMOUNT, + LOCALE_MENU_HINT_NET_USHARE, + + LOCALE_MENU_HINT_RECORD_APPLY, + LOCALE_MENU_HINT_RECORD_DIR, + LOCALE_MENU_HINT_RECORD_CHANDIR, + LOCALE_MENU_HINT_RECORD_TIME, + LOCALE_MENU_HINT_RECORD_END, + LOCALE_MENU_HINT_RECORD_TIMESHIFT, + LOCALE_MENU_HINT_RECORD_TIMER, + LOCALE_MENU_HINT_RECORD_APIDS, + LOCALE_MENU_HINT_RECORD_TIMEBEFORE, + LOCALE_MENU_HINT_RECORD_TIMEAFTER, + LOCALE_MENU_HINT_RECORD_ZAP, + LOCALE_MENU_HINT_RECORD_ZAP_PRE_TIME, + LOCALE_MENU_HINT_RECORD_APID_STD, + LOCALE_MENU_HINT_RECORD_APID_ALT, + LOCALE_MENU_HINT_RECORD_APID_AC3, + LOCALE_MENU_HINT_RECORD_TDIR, + LOCALE_MENU_HINT_RECORD_TIMESHIFT_PAUSE, + LOCALE_MENU_HINT_RECORD_TIMESHIFT_AUTO, + LOCALE_MENU_HINT_RECORD_TIMESHIFT_DELETE, + LOCALE_MENU_HINT_RECORD_TIMESHIFT_TEMP, + + LOCALE_MENU_HINT_OSD_LANGUAGE, + LOCALE_MENU_HINT_TIMEZONE, + LOCALE_MENU_HINT_LANG_PREF, + LOCALE_MENU_HINT_AUTO_LANG, + LOCALE_MENU_HINT_PREF_LANG, + LOCALE_MENU_HINT_AUTO_SUBS, + LOCALE_MENU_HINT_PREF_SUBS, + + LOCALE_MENU_HINT_COLORS, + LOCALE_MENU_HINT_THEME, + LOCALE_MENU_HINT_HEAD_BACKGROUND, + LOCALE_MENU_HINT_HEAD_TEXTCOLOR, + LOCALE_MENU_HINT_CONTENT_BACKGROUND, + LOCALE_MENU_HINT_CONTENT_TEXTCOLOR, + LOCALE_MENU_HINT_INACTIVE_BACKGROUND, + LOCALE_MENU_HINT_INACTIVE_TEXTCOLOR, + LOCALE_MENU_HINT_SELECTED_BACKGROUND, + LOCALE_MENU_HINT_SELECTED_TEXTCOLOR, + LOCALE_MENU_HINT_INFOBAR_BACKGROUND, + LOCALE_MENU_HINT_INFOBAR_TEXTCOLOR, + LOCALE_MENU_HINT_EVENT_TEXTCOLOR, + LOCALE_MENU_HINT_FONTS, + LOCALE_MENU_NEXT, LOCALE_MESSAGEBOX_BACK, LOCALE_MESSAGEBOX_CANCEL, @@ -1262,6 +1465,7 @@ typedef enum LOCALE_SETTINGS_BACKUP, LOCALE_SETTINGS_BACKUP_FAILED, LOCALE_SETTINGS_HELP, + LOCALE_SETTINGS_MENU_HINTS, LOCALE_SETTINGS_MENU_POS, LOCALE_SETTINGS_MISSINGOPTIONSCONFFILE, LOCALE_SETTINGS_NOCONFFILE, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index 7f86f2df4..ceb27c652 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -714,6 +714,209 @@ const char * locale_real_names[] = "mainsettings.video", "menu.back", "menu.cancel", + + "menu.hint_back", + "menu.hint_tvmode", + "menu.hint_radiomode", + "menu.hint_timers", + "menu.hint_media", + "menu.hint_games", + "menu.hint_scripts", + "menu.hint_settings", + "menu.hint_service", + "menu.hint_sleeptimer", + "menu.hint_reboot", + "menu.hint_shutdown", + "menu.hint_info", + "menu.hint_ci", + + "menu.hint_aplay", + "menu.hint_inet_radio", + "menu.hint_movie", + "menu.hint_picview", + + "menu.hint_mb", + "menu.hint_fileplay", + + "menu.hint_save_settings", + "menu.hint_manage_settings", + "menu.hint_personalize", + "menu.hint_extended", + "menu.hint_video", + "menu.hint_audio", + "menu.hint_protection", + "menu.hint_network", + "menu.hint_recording", + "menu.hint_language", + "menu.hint_osd", + "menu.hint_vfd", + "menu.hint_hdd", + "menu.hint_keys", + "menu.hint_a_pic", + + "menu.hint_service_scan", + "menu.hint_reload_channels", + "menu.hint_bedit", + "menu.hint_delete_channels", + "menu.hint_soft_restart", + "menu.hint_reload_plugins", + "menu.hint_sw_update", + + "menu.hint_imageinfo", + "menu.hint_dboxinfo", + "menu.hint_streaminfo", + + "menu.hint_reset", + "menu.hint_saveas", + "menu.hint_load", + "menu.hint_backup", + "menu.hint_restore", + "menu.hint_factory", + + "menu.hint_misc_general", + "menu.hint_misc_energy", + "menu.hint_misc_epg", + "menu.hint_misc_filebrowser", + "menu.hint_misc_cec", + "menu.hint_misc_channellist", + "menu.hint_misc_zapit", + + "menu.hint_start_tostandby", + "menu.hint_cache_txt", + "menu.hint_fan_speed", + "menu.hint_rotor_swap", + "menu.hint_plugins_hdd_dir", + + "menu.hint_shutdown_real", + "menu.hint_shutdown_rcdelay", + "menu.hint_shutdown_count", + "menu.hint_inact_timer", + + "menu.hint_epg_save", + "menu.hint_epg_cache", + "menu.hint_epg_extendedcache", + "menu.hint_epg_old_events", + "menu.hint_epg_max_events", + "menu.hint_epg_dir", + + "menu.hint_filesystem_is_utf8", + "menu.hint_filebrowser_showrights", + "menu.hint_filebrowser_denydirectoryleave", + + "menu.hint_make_hdlist", + "menu.hint_make_newlist", + "menu.hint_make_removedlist", + "menu.hint_keep_numbers", + "menu.hint_zap_cycle", + "menu.hint_new_zap_mode", + + "menu.hint_cec_mode", + "menu.hint_cec_view_on", + "menu.hint_cec_standby", + + "menu.hint_last_use", + "menu.hint_last_tv", + "menu.hint_last_radio", + + "menu.hint_video_analog_mode", + "menu.hint_video_scart_mode", + "menu.hint_video_cinch_mode", + "menu.hint_video_43mode", + "menu.hint_video_format", + "menu.hint_video_mode", + "menu.hint_video_dbdr", + "menu.hint_video_modes", + + "menu.hint_audio_analog_mode", + "menu.hint_audio_dd", + "menu.hint_audio_hdmi_dd", + "menu.hint_audio_spdif_dd", + "menu.hint_audio_avsync", + "menu.hint_audio_volstep", + "menu.hint_audio_srs", + "menu.hint_audio_srs_algo", + "menu.hint_audio_srs_nmgr", + "menu.hint_audio_srs_volume", + + "menu.hint_parentallock_promt", + "menu.hint_parentallock_lockage", + "menu.hint_parentallock_changepin", + + "menu.hint_net_setupnow", + "menu.hint_net_test", + "menu.hint_net_show", + "menu.hint_net_if", + "menu.hint_net_setuponstartup", + "menu.hint_net_dhcp", + "menu.hint_net_hostname", + "menu.hint_net_ipaddress", + "menu.hint_net_netmask", + "menu.hint_net_broadcast", + "menu.hint_net_gateway", + "menu.hint_net_nameserver", + "menu.hint_net_ssid", + "menu.hint_net_pass", + "menu.hint_net_ntp", + "menu.hint_net_ntpenable", + "menu.hint_net_ntpserver", + "menu.hint_net_ntprefresh", + "menu.hint_net_mount", + "menu.hint_net_nfs_mount", + "menu.hint_net_nfs_umount", + "menu.hint_net_proxy", + "menu.hint_net_proxyserver", + "menu.hint_net_proxyuser", + "menu.hint_net_proxypass", + "menu.hint_net_services", + "menu.hint_net_telnet", + "menu.hint_net_ftpd", + "menu.hint_net_djmount", + "menu.hint_net_ushare", + + "menu.hint_record_apply", + "menu.hint_record_dir", + "menu.hint_record_chandir", + "menu.hint_record_time", + "menu.hint_record_end", + "menu.hint_record_timeshift", + "menu.hint_record_timer", + "menu.hint_record_apids", + "menu.hint_record_timebefore", + "menu.hint_record_timeafter", + "menu.hint_record_zap", + "menu.hint_record_zap_pre_time", + "menu.hint_record_apid_std", + "menu.hint_record_apid_alt", + "menu.hint_record_apid_ac3", + "menu.hint_record_tdir", + "menu.hint_record_timeshift_pause", + "menu.hint_record_timeshift_auto", + "menu.hint_record_timeshift_delete", + "menu.hint_record_timeshift_temp", + + "menu.hint_osd_language", + "menu.hint_timezone", + "menu.hint_lang_pref", + "menu.hint_auto_lang", + "menu.hint_pref_lang", + "menu.hint_auto_subs", + "menu.hint_pref_subs", + + "menu.hint_colors", + "menu.hint_theme", + "menu.hint_head_back", + "menu.hint_head_textcolor", + "menu.hint_content_back", + "menu.hint_content_textcolor", + "menu.hint_inactive_back", + "menu.hint_inactive_textcolor", + "menu.hint_selected_back", + "menu.hint_selected_text", + "menu.hint_infobar_back", + "menu.hint_infobar_textcolor", + "menu.hint_event_textcolor", + "menu.hint_fonts", + "menu.next", "messagebox.back", "messagebox.cancel", @@ -1262,6 +1465,7 @@ const char * locale_real_names[] = "settings.backup", "settings.backup_failed", "settings.help", + "settings.menu_hints", "settings.menu_pos", "settings.missingoptionsconffile", "settings.noconffile", From 90dea0cf6741caa5bad694481670abebbb2bb4ee Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Sun, 8 Jul 2012 21:35:56 +0400 Subject: [PATCH 005/317] gui/widget/icons.h: add main menu and one level down hint icons --- src/gui/widget/icons.h | 65 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/src/gui/widget/icons.h b/src/gui/widget/icons.h index 1f7df6ae3..c0b43eb3f 100644 --- a/src/gui/widget/icons.h +++ b/src/gui/widget/icons.h @@ -166,6 +166,71 @@ #define NEUTRINO_ICON_BUTTON_MUTE_ZAP_ACTIVE "mute_zap_green" #define NEUTRINO_ICON_BUTTON_MUTE_ZAP_INACTIVE "mute_zap_gray" +/* menu hints */ +#define NEUTRINO_ICON_HINT_BACK "hint_back" +/* main menu */ +#define NEUTRINO_ICON_HINT_TVMODE "hint_tvmode" +#define NEUTRINO_ICON_HINT_RADIOMODE "hint_radiomode" +#define NEUTRINO_ICON_HINT_TIMERS "hint_timers" +#define NEUTRINO_ICON_HINT_MEDIA "hint_media" +#define NEUTRINO_ICON_HINT_GAMES "hint_games" +#define NEUTRINO_ICON_HINT_SCRIPTS "hint_scripts" +#define NEUTRINO_ICON_HINT_SETTINGS "hint_settings" +#define NEUTRINO_ICON_HINT_SERVICE "hint_service" +#define NEUTRINO_ICON_HINT_SLEEPTIMER "hint_sleeptimer" +#define NEUTRINO_ICON_HINT_REBOOT "hint_reboot" +#define NEUTRINO_ICON_HINT_SHUTDOWN "hint_shutdown" +#define NEUTRINO_ICON_HINT_INFO "hint_info" +#define NEUTRINO_ICON_HINT_CI "hint_ci" +/* media */ +#define NEUTRINO_ICON_HINT_APLAY "hint_aplay" +#define NEUTRINO_ICON_HINT_INET_RADIO "hint_inetradio" +#define NEUTRINO_ICON_HINT_MOVIE "hint_movie" +#define NEUTRINO_ICON_HINT_PICVIEW "hint_picview" + +#define NEUTRINO_ICON_HINT_MB "hint_mb" +#define NEUTRINO_ICON_HINT_FILEPLAY "hint_fileplay" + +/* settings */ +#define NEUTRINO_ICON_HINT_SAVE_SETTINGS "hint_save" +#define NEUTRINO_ICON_HINT_MANAGE_SETTINGS "hint_manage" +#define NEUTRINO_ICON_HINT_PERSONALIZE "hint_personalize" +#define NEUTRINO_ICON_HINT_EXTENDED "hint_extended" +#define NEUTRINO_ICON_HINT_VIDEO "hint_video" +#define NEUTRINO_ICON_HINT_AUDIO "hint_audio" +#define NEUTRINO_ICON_HINT_PROTECTION "hint_protection" +#define NEUTRINO_ICON_HINT_NETWORK "hint_network" +#define NEUTRINO_ICON_HINT_RECORDING "hint_recording" +#define NEUTRINO_ICON_HINT_LANGUAGE "hint_language" +#define NEUTRINO_ICON_HINT_OSD "hint_osd" +#define NEUTRINO_ICON_HINT_VFD "hint_vfd" +#define NEUTRINO_ICON_HINT_HDD "hint_hdd" +#define NEUTRINO_ICON_HINT_KEYS "hint_keys" +#define NEUTRINO_ICON_HINT_A_PIC "hint_a_pic" + +#define NEUTRINO_ICON_HINT_COLORS "hint_colors" +#define NEUTRINO_ICON_HINT_FONTS "hint_fonts" + +/* service */ +#define NEUTRINO_ICON_HINT_SERVICE_SCAN "hint_scan" +#define NEUTRINO_ICON_HINT_RELOAD_CHANNELS "hint_reload" +#define NEUTRINO_ICON_HINT_BEDIT "hint_bedit" +#define NEUTRINO_ICON_HINT_DELETE_CHANNELS "hint_delete" +#define NEUTRINO_ICON_HINT_SOFT_RESTART "hint_restart" +#define NEUTRINO_ICON_HINT_SW_UPDATE "hint_swupdate" + +/* info */ +#define NEUTRINO_ICON_HINT_IMAGEINFO "hint_imageinfo" +#define NEUTRINO_ICON_HINT_DBOXINFO "hint_dboxinfo" +#define NEUTRINO_ICON_HINT_STREAMINFO "hint_streaminfo" + +/* settings manager */ +#define NEUTRINO_ICON_HINT_RESET "hint_reset" +#define NEUTRINO_ICON_HINT_SAVEAS "hint_saveas" +#define NEUTRINO_ICON_HINT_LOAD "hint_load" +#define NEUTRINO_ICON_HINT_BACKUP "hint_backup" +#define NEUTRINO_ICON_HINT_RESTORE "hint_restore" +#define NEUTRINO_ICON_HINT_FACTORY "hint_factory" /* misc */ From eac5349e67e19a2a451a3c555619aba8808dcfd2 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Sun, 8 Jul 2012 21:36:21 +0400 Subject: [PATCH 006/317] neutrino_menue.cpp: add menu hints --- src/neutrino_menue.cpp | 285 +++++++++++++++++++++++++---------------- 1 file changed, 177 insertions(+), 108 deletions(-) diff --git a/src/neutrino_menue.cpp b/src/neutrino_menue.cpp index dbdf3c349..259b63336 100644 --- a/src/neutrino_menue.cpp +++ b/src/neutrino_menue.cpp @@ -89,7 +89,7 @@ enum MENU_MAIN, MENU_SETTINGS, MENU_SERVICE, - + MENU_MAX //3 }; @@ -106,18 +106,18 @@ const mn_widget_struct_t menu_widgets[MENU_MAX] = void CNeutrinoApp::InitMenu() { printf("[neutrino] init menus...\n"); - + //personalize: neutrino.h, neutrino.cpp personalize.enableUsermenu(); personalize.enablePinSetup(); personalize.addWidgets(menu_widgets, MENU_MAX); - + InitMenuMain(); InitMenuSettings(); InitMenuService(); //add submenu for media CMediaPlayerMenu::getInstance()->initMenuMedia(new CMenuWidget(LOCALE_MAINMENU_MEDIA, NEUTRINO_ICON_MULTIMEDIA, MENU_WIDTH), &personalize); - + personalize.addPersonalizedItems(); } @@ -125,87 +125,110 @@ void CNeutrinoApp::InitMenu() void CNeutrinoApp::InitMenuMain() { dprintf(DEBUG_DEBUG, "init mainmenue\n"); - + unsigned int system_rev = cs_get_revision(); - + // Dynamic renumbering personalize.setShortcut(); - + //CMenuWidget &menu = personalize.getWidget(MENU_MAIN)/**main**/; - + //top personalize.addItem(MENU_MAIN, GenericMenuSeparator, NULL, false, CPersonalizeGui::PERSONALIZE_SHOW_NO); - - //1st section*************************************************************************************************** - + + //1st section*************************************************************************************************** + //tv <-> radio toggle CMenuForwarder *tvradio_switch = new CMenuForwarder(LOCALE_MAINMENU_TVRADIO_SWITCH, true, NULL, this, "tv_radio_switch", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED); personalize.addItem(MENU_MAIN, tvradio_switch, &g_settings.personalize[SNeutrinoSettings::P_MAIN_TV_RADIO_MODE]); - + //tv-mode CMenuForwarder *tvswitch = new CMenuForwarder(LOCALE_MAINMENU_TVMODE, true, NULL, this, "tv", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED); + tvswitch->setHint(NEUTRINO_ICON_HINT_TVMODE, LOCALE_MENU_HINT_TVMODE); personalize.addItem(MENU_MAIN, tvswitch, &g_settings.personalize[SNeutrinoSettings::P_MAIN_TV_MODE], false, CPersonalizeGui::PERSONALIZE_SHOW_AS_ITEM_OPTION, tvradio_switch); //observed - + //radio-mode CMenuForwarder *radioswitch = new CMenuForwarder(LOCALE_MAINMENU_RADIOMODE, true, NULL, this, "radio", CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN); + radioswitch->setHint(NEUTRINO_ICON_HINT_RADIOMODE, LOCALE_MENU_HINT_RADIOMODE); personalize.addItem(MENU_MAIN, radioswitch, &g_settings.personalize[SNeutrinoSettings::P_MAIN_RADIO_MODE], false, CPersonalizeGui::PERSONALIZE_SHOW_AS_ITEM_OPTION, tvradio_switch); //observed - + //timer CMenuForwarder *timerlist = new CMenuForwarder(LOCALE_TIMERLIST_NAME, true, NULL, new CTimerList(), NULL, CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW); + timerlist->setHint(NEUTRINO_ICON_HINT_TIMERS, LOCALE_MENU_HINT_TIMERS); personalize.addItem(MENU_MAIN, timerlist, &g_settings.personalize[SNeutrinoSettings::P_MAIN_TIMER]); - + //multimedia menu CMenuForwarder *media = new CMenuForwarder(LOCALE_MAINMENU_MEDIA, true, NULL, CMediaPlayerMenu::getInstance(), NULL, CRCInput::RC_blue, NEUTRINO_ICON_BUTTON_BLUE); + media->setHint(NEUTRINO_ICON_HINT_MEDIA, LOCALE_MENU_HINT_MEDIA); personalize.addItem(MENU_MAIN, media, &g_settings.personalize[SNeutrinoSettings::P_MAIN_MEDIA]); - + //separator personalize.addSeparator(MENU_MAIN); - - + //2nd section*************************************************************************************************** - + //games bool show_games = g_PluginList->hasPlugin(CPlugins::P_TYPE_GAME); - personalize.addItem(MENU_MAIN, new CMenuForwarder(LOCALE_MAINMENU_GAMES, show_games, NULL, new CPluginList(LOCALE_MAINMENU_GAMES,CPlugins::P_TYPE_GAME)), &g_settings.personalize[SNeutrinoSettings::P_MAIN_GAMES]); + CMenuForwarder * mf = new CMenuForwarder(LOCALE_MAINMENU_GAMES, show_games, NULL, new CPluginList(LOCALE_MAINMENU_GAMES,CPlugins::P_TYPE_GAME)); + mf->setHint(NEUTRINO_ICON_HINT_GAMES, LOCALE_MENU_HINT_GAMES); + personalize.addItem(MENU_MAIN, mf, &g_settings.personalize[SNeutrinoSettings::P_MAIN_GAMES]); - //scripts + //scripts bool show_scripts = g_PluginList->hasPlugin(CPlugins::P_TYPE_SCRIPT); - personalize.addItem(MENU_MAIN, new CMenuForwarder(LOCALE_MAINMENU_SCRIPTS, show_scripts, NULL, new CPluginList(LOCALE_MAINMENU_SCRIPTS,CPlugins::P_TYPE_SCRIPT)), &g_settings.personalize[SNeutrinoSettings::P_MAIN_SCRIPTS]); - + mf = new CMenuForwarder(LOCALE_MAINMENU_SCRIPTS, show_scripts, NULL, new CPluginList(LOCALE_MAINMENU_SCRIPTS,CPlugins::P_TYPE_SCRIPT)); + mf->setHint(NEUTRINO_ICON_HINT_SCRIPTS, LOCALE_MENU_HINT_SCRIPTS); + personalize.addItem(MENU_MAIN, mf, &g_settings.personalize[SNeutrinoSettings::P_MAIN_SCRIPTS]); + // settings, also as pin protected option in personalize menu, as a result of parameter value CPersonalizeGui::PERSONALIZE_SHOW_AS_ACCESS_OPTION - personalize.addItem(MENU_MAIN, new CMenuForwarder(LOCALE_MAINMENU_SETTINGS, true, NULL, &personalize.getWidget(MENU_SETTINGS)/**settings**/), &g_settings.personalize[SNeutrinoSettings::P_MAIN_SETTINGS], false, CPersonalizeGui::PERSONALIZE_SHOW_AS_ACCESS_OPTION); + mf = new CMenuForwarder(LOCALE_MAINMENU_SETTINGS, true, NULL, &personalize.getWidget(MENU_SETTINGS)/**settings**/); + mf->setHint(NEUTRINO_ICON_HINT_SETTINGS, LOCALE_MENU_HINT_SETTINGS); + personalize.addItem(MENU_MAIN, mf, &g_settings.personalize[SNeutrinoSettings::P_MAIN_SETTINGS], false, CPersonalizeGui::PERSONALIZE_SHOW_AS_ACCESS_OPTION); // service, also as pin protected option in personalize menu, as a result of parameter value CPersonalizeGui::PERSONALIZE_SHOW_AS_ACCESS_OPTION - personalize.addItem(MENU_MAIN, new CMenuForwarder(LOCALE_MAINMENU_SERVICE, true, NULL, &personalize.getWidget(MENU_SERVICE)/**service**/), &g_settings.personalize[SNeutrinoSettings::P_MAIN_SERVICE], false, CPersonalizeGui::PERSONALIZE_SHOW_AS_ACCESS_OPTION); - + mf = new CMenuForwarder(LOCALE_MAINMENU_SERVICE, true, NULL, &personalize.getWidget(MENU_SERVICE)); + mf->setHint(NEUTRINO_ICON_HINT_SERVICE, LOCALE_MENU_HINT_SERVICE); + personalize.addItem(MENU_MAIN, mf, &g_settings.personalize[SNeutrinoSettings::P_MAIN_SERVICE], false, CPersonalizeGui::PERSONALIZE_SHOW_AS_ACCESS_OPTION); + //separator personalize.addSeparator(MENU_MAIN); - + //3rd section*************************************************************************************************** - + //10. -- only 10 shortcuts (1-9, 0), the next could be the last also!(10. => 0) //sleeptimer - personalize.addItem(MENU_MAIN, new CMenuForwarder(LOCALE_MAINMENU_SLEEPTIMER, true, NULL, new CSleepTimerWidget), &g_settings.personalize[SNeutrinoSettings::P_MAIN_SLEEPTIMER]); + mf = new CMenuForwarder(LOCALE_MAINMENU_SLEEPTIMER, true, NULL, new CSleepTimerWidget); + mf->setHint(NEUTRINO_ICON_HINT_SLEEPTIMER, LOCALE_MENU_HINT_SLEEPTIMER); + personalize.addItem(MENU_MAIN, mf, &g_settings.personalize[SNeutrinoSettings::P_MAIN_SLEEPTIMER]); //reboot - personalize.addItem(MENU_MAIN, new CMenuForwarder(LOCALE_MAINMENU_REBOOT, true, NULL, this, "reboot"), &g_settings.personalize[SNeutrinoSettings::P_MAIN_REBOOT]); + mf = new CMenuForwarder(LOCALE_MAINMENU_REBOOT, true, NULL, this, "reboot"); + mf->setHint(NEUTRINO_ICON_HINT_REBOOT, LOCALE_MENU_HINT_REBOOT); + personalize.addItem(MENU_MAIN, mf, &g_settings.personalize[SNeutrinoSettings::P_MAIN_REBOOT]); //shutdown - if(system_rev >= 8) - personalize.addItem(MENU_MAIN, new CMenuForwarder(LOCALE_MAINMENU_SHUTDOWN, true, NULL, this, "shutdown", CRCInput::RC_standby, NEUTRINO_ICON_BUTTON_POWER), &g_settings.personalize[SNeutrinoSettings::P_MAIN_SHUTDOWN]); + if(system_rev >= 8) { + mf = new CMenuForwarder(LOCALE_MAINMENU_SHUTDOWN, true, NULL, this, "shutdown", CRCInput::RC_standby, NEUTRINO_ICON_BUTTON_POWER); + mf->setHint(NEUTRINO_ICON_HINT_SHUTDOWN, LOCALE_MENU_HINT_SHUTDOWN); + personalize.addItem(MENU_MAIN, mf, &g_settings.personalize[SNeutrinoSettings::P_MAIN_SHUTDOWN]); + } //separator personalize.addSeparator(MENU_MAIN); - + //4th section*************************************************************************************************** //infomenu - personalize.addItem(MENU_MAIN, new CMenuForwarder(LOCALE_MESSAGEBOX_INFO, true, NULL, new CInfoMenu(), NULL, CRCInput::RC_info, NEUTRINO_ICON_BUTTON_INFO_SMALL), &g_settings.personalize[SNeutrinoSettings::P_MAIN_INFOMENU]); - + mf = new CMenuForwarder(LOCALE_MESSAGEBOX_INFO, true, NULL, new CInfoMenu(), NULL, CRCInput::RC_info, NEUTRINO_ICON_BUTTON_INFO_SMALL); + mf->setHint(NEUTRINO_ICON_HINT_INFO, LOCALE_MENU_HINT_INFO); + personalize.addItem(MENU_MAIN, mf, &g_settings.personalize[SNeutrinoSettings::P_MAIN_INFOMENU]); + //cisettings - if (cCA::GetInstance()->GetNumberCISlots() > 0 || cCA::GetInstance()->GetNumberSmartCardSlots() > 0) - personalize.addItem(MENU_MAIN, new CMenuForwarder(LOCALE_CI_SETTINGS, true, NULL, g_CamHandler), &g_settings.personalize[SNeutrinoSettings::P_MAIN_CISETTINGS]); - + if (cCA::GetInstance()->GetNumberCISlots() > 0 || cCA::GetInstance()->GetNumberSmartCardSlots() > 0) { + mf = new CMenuForwarder(LOCALE_CI_SETTINGS, true, NULL, g_CamHandler); + mf->setHint(NEUTRINO_ICON_HINT_CI, LOCALE_MENU_HINT_CI); + personalize.addItem(MENU_MAIN, mf, &g_settings.personalize[SNeutrinoSettings::P_MAIN_CISETTINGS]); + } + #ifdef TEST_MENU personalize.addItem(MENU_MAIN, new CMenuForwarderNonLocalized("Test menu", true, NULL, new CTestMenu()), NULL, false, CPersonalizeGui::PERSONALIZE_SHOW_NO); #endif @@ -215,123 +238,169 @@ void CNeutrinoApp::InitMenuMain() void CNeutrinoApp::InitMenuSettings() { dprintf(DEBUG_DEBUG, "init settings menue...\n"); - + //CMenuWidget &menu = personalize.getWidget(MENU_SETTINGS)/**settings**/; - + // Dynamic renumbering personalize.setShortcut(); - + // back button, no personalized personalize.addIntroItems(MENU_SETTINGS); - + + static int show = CPersonalizeGui::PERSONALIZE_MODE_VISIBLE; //*************************************************************************************************** // save - int show = CPersonalizeGui::PERSONALIZE_MODE_VISIBLE; - personalize.addItem(MENU_SETTINGS, new CMenuForwarder(LOCALE_MAINSETTINGS_SAVESETTINGSNOW, true, NULL, this, "savesettings", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED), &show, false, CPersonalizeGui::PERSONALIZE_SHOW_NO); - + CMenuForwarder * mf = new CMenuForwarder(LOCALE_MAINSETTINGS_SAVESETTINGSNOW, true, NULL, this, "savesettings", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED); + mf->setHint(NEUTRINO_ICON_HINT_SAVE_SETTINGS, LOCALE_MENU_HINT_SAVE_SETTINGS); + personalize.addItem(MENU_SETTINGS, mf, &show, false, CPersonalizeGui::PERSONALIZE_SHOW_NO); + // settings manager - personalize.addItem(MENU_SETTINGS, new CMenuForwarder(LOCALE_MAINSETTINGS_MANAGE, true, NULL, new CSettingsManager(), NULL, CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN), &g_settings.personalize[SNeutrinoSettings::P_MSET_SETTINGS_MANAGER], false, CPersonalizeGui::PERSONALIZE_SHOW_AS_ACCESS_OPTION); - + mf = new CMenuForwarder(LOCALE_MAINSETTINGS_MANAGE, true, NULL, new CSettingsManager(), NULL, CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN); + mf->setHint(NEUTRINO_ICON_HINT_MANAGE_SETTINGS, LOCALE_MENU_HINT_MANAGE_SETTINGS); + personalize.addItem(MENU_SETTINGS, mf, &g_settings.personalize[SNeutrinoSettings::P_MSET_SETTINGS_MANAGER], false, CPersonalizeGui::PERSONALIZE_SHOW_AS_ACCESS_OPTION); + // personalize - personalize.addItem(MENU_SETTINGS, new CMenuForwarder(LOCALE_PERSONALIZE_HEAD, true, NULL, &personalize, NULL, CRCInput::RC_yellow , NEUTRINO_ICON_BUTTON_YELLOW, NEUTRINO_ICON_LOCK), &show, false, CPersonalizeGui::PERSONALIZE_SHOW_NO); - + mf = new CMenuForwarder(LOCALE_PERSONALIZE_HEAD, true, NULL, &personalize, NULL, CRCInput::RC_yellow , NEUTRINO_ICON_BUTTON_YELLOW, NEUTRINO_ICON_LOCK); + mf->setHint(NEUTRINO_ICON_HINT_PERSONALIZE, LOCALE_MENU_HINT_PERSONALIZE); + personalize.addItem(MENU_SETTINGS, mf, &show, false, CPersonalizeGui::PERSONALIZE_SHOW_NO); + // miscSettings - personalize.addItem(MENU_SETTINGS, new CMenuForwarder(LOCALE_MAINSETTINGS_MISC, true, NULL, new CMiscMenue() , NULL, CRCInput::RC_blue , NEUTRINO_ICON_BUTTON_BLUE), &g_settings.personalize[SNeutrinoSettings::P_MSET_MISC]); - + mf = new CMenuForwarder(LOCALE_MAINSETTINGS_MISC, true, NULL, new CMiscMenue() , NULL, CRCInput::RC_blue , NEUTRINO_ICON_BUTTON_BLUE); + mf->setHint(NEUTRINO_ICON_HINT_EXTENDED, LOCALE_MENU_HINT_EXTENDEED); + personalize.addItem(MENU_SETTINGS, mf, &g_settings.personalize[SNeutrinoSettings::P_MSET_MISC]); + //separator personalize.addSeparator(MENU_SETTINGS); - + //1st section*************************************************************************************************** - + //use only 10 shortcuts (1-9, 0), >9 means -> no shortcut - + // video. - personalize.addItem(MENU_SETTINGS, new CMenuForwarder(LOCALE_MAINSETTINGS_VIDEO, true, NULL, g_videoSettings), &g_settings.personalize[SNeutrinoSettings::P_MSET_VIDEO]); + mf = new CMenuForwarder(LOCALE_MAINSETTINGS_VIDEO, true, NULL, g_videoSettings); + mf->setHint(NEUTRINO_ICON_HINT_VIDEO, LOCALE_MENU_HINT_VIDEO); + personalize.addItem(MENU_SETTINGS, mf, &g_settings.personalize[SNeutrinoSettings::P_MSET_VIDEO]); // audio - personalize.addItem(MENU_SETTINGS, new CMenuForwarder(LOCALE_MAINSETTINGS_AUDIO, true, NULL, new CAudioSetup()), &g_settings.personalize[SNeutrinoSettings::P_MSET_AUDIO]); - + mf = new CMenuForwarder(LOCALE_MAINSETTINGS_AUDIO, true, NULL, new CAudioSetup()); + mf->setHint(NEUTRINO_ICON_HINT_AUDIO, LOCALE_MENU_HINT_AUDIO); + personalize.addItem(MENU_SETTINGS, mf, &g_settings.personalize[SNeutrinoSettings::P_MSET_AUDIO]); + // parental lock - personalize.addItem(MENU_SETTINGS, new CMenuForwarder(LOCALE_PARENTALLOCK_PARENTALLOCK, true, NULL, new CParentalSetup()), &show, false, CPersonalizeGui::PERSONALIZE_SHOW_NO); + mf = new CMenuForwarder(LOCALE_PARENTALLOCK_PARENTALLOCK, true, NULL, new CParentalSetup()); + mf->setHint(NEUTRINO_ICON_HINT_PROTECTION, LOCALE_MENU_HINT_PROTECTION); + personalize.addItem(MENU_SETTINGS, mf, &show, false, CPersonalizeGui::PERSONALIZE_SHOW_NO); // network - personalize.addItem(MENU_SETTINGS, new CMenuForwarder(LOCALE_MAINSETTINGS_NETWORK, true, NULL, CNetworkSetup::getInstance()), &g_settings.personalize[SNeutrinoSettings::P_MSET_NETWORK]); + mf = new CMenuForwarder(LOCALE_MAINSETTINGS_NETWORK, true, NULL, CNetworkSetup::getInstance()); + mf->setHint(NEUTRINO_ICON_HINT_NETWORK, LOCALE_MENU_HINT_NETWORK); + personalize.addItem(MENU_SETTINGS, mf, &g_settings.personalize[SNeutrinoSettings::P_MSET_NETWORK]); // record settings - personalize.addItem(MENU_SETTINGS, new CMenuForwarder(LOCALE_MAINSETTINGS_RECORDING, true, NULL, new CRecordSetup()), &g_settings.personalize[SNeutrinoSettings::P_MSET_RECORDING]); + mf = new CMenuForwarder(LOCALE_MAINSETTINGS_RECORDING, true, NULL, new CRecordSetup()); + mf->setHint(NEUTRINO_ICON_HINT_RECORDING, LOCALE_MENU_HINT_RECORDING); + personalize.addItem(MENU_SETTINGS, mf, &g_settings.personalize[SNeutrinoSettings::P_MSET_RECORDING]); // osdlang - personalize.addItem(MENU_SETTINGS, new CMenuForwarder(LOCALE_MAINSETTINGS_LANGUAGE, true, NULL, new COsdLangSetup()), &g_settings.personalize[SNeutrinoSettings::P_MSET_OSDLANG]); - - // osd - personalize.addItem(MENU_SETTINGS, new CMenuForwarder(LOCALE_MAINSETTINGS_OSD, true, NULL, new COsdSetup()), &g_settings.personalize[SNeutrinoSettings::P_MSET_OSD]); - - // lcd - if (CVFD::getInstance()->has_lcd) - personalize.addItem(MENU_SETTINGS, new CMenuForwarder(LOCALE_MAINSETTINGS_LCD, true, NULL, new CVfdSetup()), &g_settings.personalize[SNeutrinoSettings::P_MSET_VFD]); - - // drive settings - personalize.addItem(MENU_SETTINGS, new CMenuForwarder(LOCALE_HDD_SETTINGS, true, NULL, new CHDDMenuHandler()), &g_settings.personalize[SNeutrinoSettings::P_MSET_DRIVES]); - - // cisettings - personalize.addItem(MENU_SETTINGS, new CMenuForwarder(LOCALE_CI_SETTINGS, true, NULL, g_CamHandler), &g_settings.personalize[SNeutrinoSettings::P_MSET_CISETTINGS]); - - // keybindings - personalize.addItem(MENU_SETTINGS, new CMenuForwarder(LOCALE_MAINSETTINGS_KEYBINDING, true, NULL, new CKeybindSetup()), &g_settings.personalize[SNeutrinoSettings::P_MSET_KEYBINDING]); - - // audioplayer/pictureviewer settings - personalize.addItem(MENU_SETTINGS, new CMenuForwarder(LOCALE_AUDIOPLAYERPICSETTINGS_GENERAL, true, NULL, new CMediaPlayerSetup()), &g_settings.personalize[SNeutrinoSettings::P_MSET_MEDIAPLAYER]); + mf = new CMenuForwarder(LOCALE_MAINSETTINGS_LANGUAGE, true, NULL, new COsdLangSetup()); + mf->setHint(NEUTRINO_ICON_HINT_LANGUAGE, LOCALE_MENU_HINT_LANGUAGE); + personalize.addItem(MENU_SETTINGS, mf, &g_settings.personalize[SNeutrinoSettings::P_MSET_OSDLANG]); + // osd + mf = new CMenuForwarder(LOCALE_MAINSETTINGS_OSD, true, NULL, new COsdSetup()); + mf->setHint(NEUTRINO_ICON_HINT_OSD, LOCALE_MENU_HINT_OSD); + personalize.addItem(MENU_SETTINGS, mf, &g_settings.personalize[SNeutrinoSettings::P_MSET_OSD]); + + // lcd + if (CVFD::getInstance()->has_lcd) { + mf = new CMenuForwarder(LOCALE_MAINSETTINGS_LCD, true, NULL, new CVfdSetup()); + mf->setHint(NEUTRINO_ICON_HINT_VFD, LOCALE_MENU_HINT_VFD); + personalize.addItem(MENU_SETTINGS, mf, &g_settings.personalize[SNeutrinoSettings::P_MSET_VFD]); + } + + // drive settings + mf = new CMenuForwarder(LOCALE_HDD_SETTINGS, true, NULL, new CHDDMenuHandler()); + mf->setHint(NEUTRINO_ICON_HINT_HDD, LOCALE_MENU_HINT_HDD); + personalize.addItem(MENU_SETTINGS, mf, &g_settings.personalize[SNeutrinoSettings::P_MSET_DRIVES]); + + // cisettings + mf = new CMenuForwarder(LOCALE_CI_SETTINGS, true, NULL, g_CamHandler); + mf->setHint(NEUTRINO_ICON_HINT_CI, LOCALE_MENU_HINT_CI); + personalize.addItem(MENU_SETTINGS, mf, &g_settings.personalize[SNeutrinoSettings::P_MSET_CISETTINGS]); + + // keybindings + mf = new CMenuForwarder(LOCALE_MAINSETTINGS_KEYBINDING, true, NULL, new CKeybindSetup()); + mf->setHint(NEUTRINO_ICON_HINT_KEYS, LOCALE_MENU_HINT_KEYS); + personalize.addItem(MENU_SETTINGS, mf, &g_settings.personalize[SNeutrinoSettings::P_MSET_KEYBINDING]); + + // audioplayer/pictureviewer settings + mf = new CMenuForwarder(LOCALE_AUDIOPLAYERPICSETTINGS_GENERAL, true, NULL, new CMediaPlayerSetup()); + mf->setHint(NEUTRINO_ICON_HINT_A_PIC, LOCALE_MENU_HINT_A_PIC); + personalize.addItem(MENU_SETTINGS, mf, &g_settings.personalize[SNeutrinoSettings::P_MSET_MEDIAPLAYER]); } - + /* service menu*/ void CNeutrinoApp::InitMenuService() { dprintf(DEBUG_DEBUG, "init service menu...\n"); - + //CMenuWidget &menu = personalize.getWidget(MENU_SERVICE)/**service**/; - + // Dynamic renumbering personalize.setShortcut(); // back button, no personalized personalize.addIntroItems(MENU_SERVICE); - + //1st section*************************************************************************************************** - + // channel scan - personalize.addItem(MENU_SERVICE, new CMenuForwarder(LOCALE_SERVICEMENU_SCANTS , true, NULL, CScanSetup::getInstance(), "", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED) , &g_settings.personalize[SNeutrinoSettings::P_MSER_SCANTS]); - + CMenuForwarder * mf = new CMenuForwarder(LOCALE_SERVICEMENU_SCANTS , true, NULL, CScanSetup::getInstance(), "", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED); + mf->setHint(NEUTRINO_ICON_HINT_SERVICE_SCAN, LOCALE_MENU_HINT_SERVICE_SCAN); + personalize.addItem(MENU_SERVICE, mf, &g_settings.personalize[SNeutrinoSettings::P_MSER_SCANTS]); + //reload channels - personalize.addItem(MENU_SERVICE, new CMenuForwarder(LOCALE_SERVICEMENU_RELOAD , true, NULL, CScanSetup::getInstance(), "reloadchannels", CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN) , &g_settings.personalize[SNeutrinoSettings::P_MSER_RELOAD_CHANNELS]); - + mf = new CMenuForwarder(LOCALE_SERVICEMENU_RELOAD , true, NULL, CScanSetup::getInstance(), "reloadchannels", CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN); + mf->setHint(NEUTRINO_ICON_HINT_RELOAD_CHANNELS, LOCALE_MENU_HINT_RELOAD_CHANNELS); + personalize.addItem(MENU_SERVICE, mf, &g_settings.personalize[SNeutrinoSettings::P_MSER_RELOAD_CHANNELS]); + //bouquet edit - personalize.addItem(MENU_SERVICE, new CMenuForwarder(LOCALE_BOUQUETEDITOR_NAME , true, NULL, new CBEBouquetWidget(), NULL, CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW) , &g_settings.personalize[SNeutrinoSettings::P_MSER_BOUQUET_EDIT]); - + mf = new CMenuForwarder(LOCALE_BOUQUETEDITOR_NAME , true, NULL, new CBEBouquetWidget(), NULL, CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW); + mf->setHint(NEUTRINO_ICON_HINT_BEDIT, LOCALE_MENU_HINT_BEDIT); + personalize.addItem(MENU_SERVICE, mf, &g_settings.personalize[SNeutrinoSettings::P_MSER_BOUQUET_EDIT]); + //channel reset CDataResetNotifier *resetNotifier = new CDataResetNotifier(); - personalize.addItem(MENU_SERVICE, new CMenuForwarder(LOCALE_RESET_CHANNELS , true, NULL, resetNotifier, "channels", CRCInput::RC_blue, NEUTRINO_ICON_BUTTON_BLUE) , &g_settings.personalize[SNeutrinoSettings::P_MSER_RESET_CHANNELS]); - + mf = new CMenuForwarder(LOCALE_RESET_CHANNELS , true, NULL, resetNotifier, "channels", CRCInput::RC_blue, NEUTRINO_ICON_BUTTON_BLUE); + mf->setHint(NEUTRINO_ICON_HINT_DELETE_CHANNELS, LOCALE_MENU_HINT_DELETE_CHANNELS); + personalize.addItem(MENU_SERVICE, mf, &g_settings.personalize[SNeutrinoSettings::P_MSER_RESET_CHANNELS]); + //separator personalize.addSeparator(MENU_SERVICE); - + //restart neutrino - personalize.addItem(MENU_SERVICE, new CMenuForwarder(LOCALE_SERVICEMENU_RESTART , true, NULL, this, "restart", CRCInput::RC_standby, NEUTRINO_ICON_BUTTON_POWER) , &g_settings.personalize[SNeutrinoSettings::P_MSER_RESTART]); - + mf = new CMenuForwarder(LOCALE_SERVICEMENU_RESTART , true, NULL, this, "restart", CRCInput::RC_standby, NEUTRINO_ICON_BUTTON_POWER); + mf->setHint(NEUTRINO_ICON_HINT_SOFT_RESTART, LOCALE_MENU_HINT_SOFT_RESTART); + personalize.addItem(MENU_SERVICE, mf, &g_settings.personalize[SNeutrinoSettings::P_MSER_RESTART]); + //reload plugins - personalize.addItem(MENU_SERVICE, new CMenuForwarder(LOCALE_SERVICEMENU_GETPLUGINS, true, NULL, this, "reloadplugins") , &g_settings.personalize[SNeutrinoSettings::P_MSER_RELOAD_PLUGINS]); - + mf = new CMenuForwarder(LOCALE_SERVICEMENU_GETPLUGINS, true, NULL, this, "reloadplugins"); + mf->setHint(NEUTRINO_ICON_HINT_RELOAD_CHANNELS, LOCALE_MENU_HINT_RELOAD_PLUGINS); + personalize.addItem(MENU_SERVICE, mf, &g_settings.personalize[SNeutrinoSettings::P_MSER_RELOAD_PLUGINS]); + //separator personalize.addSeparator(MENU_SERVICE); - - //2nd section*************************************************************************************************** - - //infomenu - personalize.addItem(MENU_SERVICE, new CMenuForwarder(LOCALE_MESSAGEBOX_INFO, true, NULL, new CInfoMenu(), NULL, CRCInput::RC_info, NEUTRINO_ICON_BUTTON_INFO_SMALL) , &g_settings.personalize[SNeutrinoSettings::P_MSER_SERVICE_INFOMENU]); - - //firmware update - personalize.addItem(MENU_SERVICE, new CMenuForwarder(LOCALE_SERVICEMENU_UPDATE, true, NULL, new CSoftwareUpdate()) , &g_settings.personalize[SNeutrinoSettings::P_MSER_SOFTUPDATE]); - -} + //2nd section*************************************************************************************************** + + //infomenu + mf = new CMenuForwarder(LOCALE_MESSAGEBOX_INFO, true, NULL, new CInfoMenu(), NULL, CRCInput::RC_info, NEUTRINO_ICON_BUTTON_INFO_SMALL); + mf->setHint(NEUTRINO_ICON_HINT_INFO, LOCALE_MENU_HINT_INFO); + personalize.addItem(MENU_SERVICE, mf, &g_settings.personalize[SNeutrinoSettings::P_MSER_SERVICE_INFOMENU]); + + //firmware update + mf = new CMenuForwarder(LOCALE_SERVICEMENU_UPDATE, true, NULL, new CSoftwareUpdate()); + mf->setHint(NEUTRINO_ICON_HINT_SW_UPDATE, LOCALE_MENU_HINT_SW_UPDATE); + personalize.addItem(MENU_SERVICE, mf, &g_settings.personalize[SNeutrinoSettings::P_MSER_SOFTUPDATE]); +} From ec1cccf5712521351918c5ebb40aacc18058a80d Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Sun, 8 Jul 2012 21:36:42 +0400 Subject: [PATCH 007/317] gui/miscsettings_menu.cpp: add menu hints --- src/gui/miscsettings_menu.cpp | 133 ++++++++++++++++++++++++++-------- 1 file changed, 102 insertions(+), 31 deletions(-) diff --git a/src/gui/miscsettings_menu.cpp b/src/gui/miscsettings_menu.cpp index 1e8dac339..501fefc32 100644 --- a/src/gui/miscsettings_menu.cpp +++ b/src/gui/miscsettings_menu.cpp @@ -66,7 +66,6 @@ CMiscMenue::~CMiscMenue() } - int CMiscMenue::exec(CMenuTarget* parent, const std::string &actionKey) { printf("init extended settings menu...\n"); @@ -169,40 +168,54 @@ int CMiscMenue::showMiscSettingsMenu() //general CMenuWidget misc_menue_general(LOCALE_MISCSETTINGS_HEAD, NEUTRINO_ICON_SETTINGS, width, MN_WIDGET_ID_MISCSETUP_GENERAL); showMiscSettingsMenuGeneral(&misc_menue_general); - misc_menue.addItem(new CMenuForwarder(LOCALE_MISCSETTINGS_GENERAL, true, NULL, &misc_menue_general, NULL, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED)); + CMenuForwarder * mf = new CMenuForwarder(LOCALE_MISCSETTINGS_GENERAL, true, NULL, &misc_menue_general, NULL, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED); + mf->setHint("", LOCALE_MENU_HINT_MISC_GENERAL); + misc_menue.addItem(mf); //energy, shutdown if(cs_get_revision() > 7) { CMenuWidget *misc_menue_energy = new CMenuWidget(LOCALE_MISCSETTINGS_HEAD, NEUTRINO_ICON_SETTINGS, width, MN_WIDGET_ID_MISCSETUP_ENERGY); showMiscSettingsMenuEnergy(misc_menue_energy); - misc_menue.addItem(new CMenuDForwarder(LOCALE_MISCSETTINGS_ENERGY, true, NULL, misc_menue_energy, NULL, CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN)); + mf = new CMenuDForwarder(LOCALE_MISCSETTINGS_ENERGY, true, NULL, misc_menue_energy, NULL, CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN); + mf->setHint("", LOCALE_MENU_HINT_MISC_ENERGY); + misc_menue.addItem(mf); } //epg CMenuWidget misc_menue_epg(LOCALE_MISCSETTINGS_HEAD, NEUTRINO_ICON_SETTINGS, width, MN_WIDGET_ID_MISCSETUP_EPG); showMiscSettingsMenuEpg(&misc_menue_epg); - misc_menue.addItem(new CMenuForwarder(LOCALE_MISCSETTINGS_EPG_HEAD, true, NULL, &misc_menue_epg, NULL, CRCInput::RC_yellow,NEUTRINO_ICON_BUTTON_YELLOW)); + mf = new CMenuForwarder(LOCALE_MISCSETTINGS_EPG_HEAD, true, NULL, &misc_menue_epg, NULL, CRCInput::RC_yellow,NEUTRINO_ICON_BUTTON_YELLOW); + mf->setHint("", LOCALE_MENU_HINT_MISC_EPG); + misc_menue.addItem(mf); //filebrowser settings CMenuWidget misc_menue_fbrowser(LOCALE_MISCSETTINGS_HEAD, NEUTRINO_ICON_SETTINGS, width, MN_WIDGET_ID_MISCSETUP_FILEBROWSER); showMiscSettingsMenuFBrowser(&misc_menue_fbrowser); - misc_menue.addItem( new CMenuForwarder(LOCALE_FILEBROWSER_HEAD, true, NULL, &misc_menue_fbrowser, NULL, CRCInput::RC_blue, NEUTRINO_ICON_BUTTON_BLUE)); + mf = new CMenuForwarder(LOCALE_FILEBROWSER_HEAD, true, NULL, &misc_menue_fbrowser, NULL, CRCInput::RC_blue, NEUTRINO_ICON_BUTTON_BLUE); + mf->setHint("", LOCALE_MENU_HINT_MISC_FILEBROWSER); + misc_menue.addItem(mf); misc_menue.addItem(GenericMenuSeparatorLine); //cec settings CCECSetup cecsetup; - misc_menue.addItem(new CMenuForwarder(LOCALE_VIDEOMENU_HDMI_CEC, true, NULL, &cecsetup, NULL, CRCInput::RC_1)); + mf = new CMenuForwarder(LOCALE_VIDEOMENU_HDMI_CEC, true, NULL, &cecsetup, NULL, CRCInput::RC_1); + mf->setHint("", LOCALE_MENU_HINT_MISC_CEC); + misc_menue.addItem(mf); //channellist CMenuWidget misc_menue_chanlist(LOCALE_MISCSETTINGS_HEAD, NEUTRINO_ICON_SETTINGS, width, MN_WIDGET_ID_MISCSETUP_CHANNELLIST); showMiscSettingsMenuChanlist(&misc_menue_chanlist); - misc_menue.addItem( new CMenuForwarder(LOCALE_MISCSETTINGS_CHANNELLIST, true, NULL, &misc_menue_chanlist, NULL, CRCInput::RC_2)); + mf = new CMenuForwarder(LOCALE_MISCSETTINGS_CHANNELLIST, true, NULL, &misc_menue_chanlist, NULL, CRCInput::RC_2); + mf->setHint("", LOCALE_MENU_HINT_MISC_CHANNELLIST); + misc_menue.addItem(mf); //start channels CZapitSetup zapitsetup; - misc_menue.addItem(new CMenuForwarder(LOCALE_ZAPITSETUP_HEAD, true, NULL, &zapitsetup, NULL, CRCInput::RC_3)); + mf = new CMenuForwarder(LOCALE_ZAPITSETUP_HEAD, true, NULL, &zapitsetup, NULL, CRCInput::RC_3); + mf->setHint("", LOCALE_MENU_HINT_MISC_ZAPIT); + misc_menue.addItem(mf); #ifdef CPU_FREQ //CPU @@ -224,22 +237,34 @@ void CMiscMenue::showMiscSettingsMenuGeneral(CMenuWidget *ms_general) ms_general->addIntroItems(LOCALE_MISCSETTINGS_GENERAL); //standby after boot - ms_general->addItem(new CMenuOptionChooser(LOCALE_EXTRA_START_TOSTANDBY, &g_settings.power_standby, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); - ms_general->addItem(new CMenuOptionChooser(LOCALE_EXTRA_CACHE_TXT, (int *)&g_settings.cacheTXT, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); + CMenuOptionChooser * mc = new CMenuOptionChooser(LOCALE_EXTRA_START_TOSTANDBY, &g_settings.power_standby, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_START_TOSTANDBY); + ms_general->addItem(mc); + + mc = new CMenuOptionChooser(LOCALE_EXTRA_CACHE_TXT, (int *)&g_settings.cacheTXT, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_CACHE_TXT); + ms_general->addItem(mc); //fan speed if (g_info.has_fan) { - ms_general->addItem(new CMenuOptionNumberChooser(LOCALE_FAN_SPEED, &g_settings.fan_speed, true, 1, 14, fanNotifier, 0, 0, LOCALE_OPTIONS_OFF) ); + CMenuOptionNumberChooser * mn = new CMenuOptionNumberChooser(LOCALE_FAN_SPEED, &g_settings.fan_speed, true, 1, 14, fanNotifier, 0, 0, LOCALE_OPTIONS_OFF); + mn->setHint("", LOCALE_MENU_HINT_FAN_SPEED); + ms_general->addItem(mn); fanNotifier->changeNotify(NONEXISTANT_LOCALE, (void*) &g_settings.fan_speed); } //rotor //don't show rotor settings on cable box - if (g_info.delivery_system == DVB_S) - ms_general->addItem(new CMenuOptionChooser(LOCALE_EXTRA_ROTOR_SWAP, &g_settings.rotor_swap, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); + if (g_info.delivery_system == DVB_S) { + mc = new CMenuOptionChooser(LOCALE_EXTRA_ROTOR_SWAP, &g_settings.rotor_swap, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_ROTOR_SWAP); + ms_general->addItem(mc); + } - ms_general->addItem(new CMenuForwarder(LOCALE_PLUGINS_HDD_DIR, true, g_settings.plugin_hdd_dir, this, "plugin_dir")); + CMenuForwarder * mf = new CMenuForwarder(LOCALE_PLUGINS_HDD_DIR, true, g_settings.plugin_hdd_dir, this, "plugin_dir"); + mf->setHint("", LOCALE_MENU_HINT_PLUGINS_HDD_DIR); + ms_general->addItem(mf); #ifdef ONE_KEY_PLUGIN ms_general->addItem(new CMenuForwarder(LOCALE_EXTRA_KEY_PLUGIN, true, g_settings.onekey_plugin,this,"onekeyplugin")); #endif /*ONE_KEY_PLUGIN*/ @@ -251,16 +276,24 @@ void CMiscMenue::showMiscSettingsMenuEnergy(CMenuWidget *ms_energy) ms_energy->addIntroItems(LOCALE_MISCSETTINGS_ENERGY); CMenuOptionChooser *m1 = new CMenuOptionChooser(LOCALE_MISCSETTINGS_SHUTDOWN_REAL_RCDELAY, &g_settings.shutdown_real_rcdelay, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, !g_settings.shutdown_real); + m1->setHint("", LOCALE_MENU_HINT_SHUTDOWN_REAL_RCDELAY); CStringInput * miscSettings_shutdown_count = new CStringInput(LOCALE_MISCSETTINGS_SHUTDOWN_COUNT, g_settings.shutdown_count, 3, LOCALE_MISCSETTINGS_SHUTDOWN_COUNT_HINT1, LOCALE_MISCSETTINGS_SHUTDOWN_COUNT_HINT2, "0123456789 "); CMenuForwarder *m2 = new CMenuDForwarder(LOCALE_MISCSETTINGS_SHUTDOWN_COUNT, !g_settings.shutdown_real, g_settings.shutdown_count, miscSettings_shutdown_count); + m2->setHint("", LOCALE_MENU_HINT_SHUTDOWN_COUNT); miscNotifier = new CMiscNotifier( m1, m2 ); - ms_energy->addItem(new CMenuOptionChooser(LOCALE_MISCSETTINGS_SHUTDOWN_REAL, &g_settings.shutdown_real, OPTIONS_OFF1_ON0_OPTIONS, OPTIONS_OFF1_ON0_OPTION_COUNT, true, miscNotifier)); + CMenuOptionChooser * mc = new CMenuOptionChooser(LOCALE_MISCSETTINGS_SHUTDOWN_REAL, &g_settings.shutdown_real, OPTIONS_OFF1_ON0_OPTIONS, OPTIONS_OFF1_ON0_OPTION_COUNT, true, miscNotifier); + mc->setHint("", LOCALE_MENU_HINT_SHUTDOWN_REAL); + + ms_energy->addItem(mc); ms_energy->addItem(m1); ms_energy->addItem(m2); - ms_energy->addItem(new CMenuDForwarder(LOCALE_MISCSETTINGS_SLEEPTIMER, true, g_settings.shutdown_min, new CSleepTimerWidget, "permanent")); + + m2 = new CMenuDForwarder(LOCALE_MISCSETTINGS_SLEEPTIMER, true, g_settings.shutdown_min, new CSleepTimerWidget, "permanent"); + m2->setHint("", LOCALE_MENU_HINT_INACT_TIMER); + ms_energy->addItem(m2); } //EPG settings @@ -268,21 +301,33 @@ void CMiscMenue::showMiscSettingsMenuEpg(CMenuWidget *ms_epg) { ms_epg->addIntroItems(LOCALE_MISCSETTINGS_EPG_HEAD); - ms_epg->addItem(new CMenuOptionChooser(LOCALE_MISCSETTINGS_EPG_SAVE, &g_settings.epg_save, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); + CMenuOptionChooser * mc = new CMenuOptionChooser(LOCALE_MISCSETTINGS_EPG_SAVE, &g_settings.epg_save, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_EPG_SAVE); + ms_epg->addItem(mc); CStringInput * miscSettings_epg_cache = new CStringInput(LOCALE_MISCSETTINGS_EPG_CACHE, &g_settings.epg_cache, 2,LOCALE_MISCSETTINGS_EPG_CACHE_HINT1, LOCALE_MISCSETTINGS_EPG_CACHE_HINT2 , "0123456789 ", sectionsdConfigNotifier); - ms_epg->addItem(new CMenuDForwarder(LOCALE_MISCSETTINGS_EPG_CACHE, true, g_settings.epg_cache, miscSettings_epg_cache)); + CMenuForwarder * mf = new CMenuDForwarder(LOCALE_MISCSETTINGS_EPG_CACHE, true, g_settings.epg_cache, miscSettings_epg_cache); + mf->setHint("", LOCALE_MENU_HINT_EPG_CACHE); + ms_epg->addItem(mf); CStringInput * miscSettings_epg_cache_e = new CStringInput(LOCALE_MISCSETTINGS_EPG_EXTENDEDCACHE, &g_settings.epg_extendedcache, 3,LOCALE_MISCSETTINGS_EPG_EXTENDEDCACHE_HINT1, LOCALE_MISCSETTINGS_EPG_EXTENDEDCACHE_HINT2 , "0123456789 ", sectionsdConfigNotifier); - ms_epg->addItem(new CMenuDForwarder(LOCALE_MISCSETTINGS_EPG_EXTENDEDCACHE, true, g_settings.epg_extendedcache, miscSettings_epg_cache_e)); + mf = new CMenuDForwarder(LOCALE_MISCSETTINGS_EPG_EXTENDEDCACHE, true, g_settings.epg_extendedcache, miscSettings_epg_cache_e); + mf->setHint("", LOCALE_MENU_HINT_EPG_EXTENDEDCACHE); + ms_epg->addItem(mf); CStringInput * miscSettings_epg_old_events = new CStringInput(LOCALE_MISCSETTINGS_EPG_OLD_EVENTS, &g_settings.epg_old_events, 3,LOCALE_MISCSETTINGS_EPG_OLD_EVENTS_HINT1, LOCALE_MISCSETTINGS_EPG_OLD_EVENTS_HINT2 , "0123456789 ", sectionsdConfigNotifier); - ms_epg->addItem(new CMenuDForwarder(LOCALE_MISCSETTINGS_EPG_OLD_EVENTS, true, g_settings.epg_old_events, miscSettings_epg_old_events)); + mf = new CMenuDForwarder(LOCALE_MISCSETTINGS_EPG_OLD_EVENTS, true, g_settings.epg_old_events, miscSettings_epg_old_events); + mf->setHint("", LOCALE_MENU_HINT_EPG_OLD_EVENTS); + ms_epg->addItem(mf); CStringInput * miscSettings_epg_max_events = new CStringInput(LOCALE_MISCSETTINGS_EPG_MAX_EVENTS, &g_settings.epg_max_events, 6,LOCALE_MISCSETTINGS_EPG_MAX_EVENTS_HINT1, LOCALE_MISCSETTINGS_EPG_MAX_EVENTS_HINT2 , "0123456789 ", sectionsdConfigNotifier); - ms_epg->addItem(new CMenuDForwarder(LOCALE_MISCSETTINGS_EPG_MAX_EVENTS, true, g_settings.epg_max_events, miscSettings_epg_max_events)); + mf = new CMenuDForwarder(LOCALE_MISCSETTINGS_EPG_MAX_EVENTS, true, g_settings.epg_max_events, miscSettings_epg_max_events); + mf->setHint("", LOCALE_MENU_HINT_EPG_MAX_EVENTS); + ms_epg->addItem(mf); - ms_epg->addItem(new CMenuForwarder(LOCALE_MISCSETTINGS_EPG_DIR, true, g_settings.epg_dir, this, "epgdir")); + mf = new CMenuForwarder(LOCALE_MISCSETTINGS_EPG_DIR, true, g_settings.epg_dir, this, "epgdir"); + mf->setHint("", LOCALE_MENU_HINT_EPG_DIR); + ms_epg->addItem(mf); } //filebrowser settings @@ -290,9 +335,17 @@ void CMiscMenue::showMiscSettingsMenuFBrowser(CMenuWidget *ms_fbrowser) { ms_fbrowser->addIntroItems(LOCALE_FILEBROWSER_HEAD); - ms_fbrowser->addItem(new CMenuOptionChooser(LOCALE_FILESYSTEM_IS_UTF8 , &g_settings.filesystem_is_utf8 , MISCSETTINGS_FILESYSTEM_IS_UTF8_OPTIONS, MISCSETTINGS_FILESYSTEM_IS_UTF8_OPTION_COUNT, true )); - ms_fbrowser->addItem(new CMenuOptionChooser(LOCALE_FILEBROWSER_SHOWRIGHTS , &g_settings.filebrowser_showrights , MESSAGEBOX_NO_YES_OPTIONS , MESSAGEBOX_NO_YES_OPTION_COUNT , true )); - ms_fbrowser->addItem(new CMenuOptionChooser(LOCALE_FILEBROWSER_DENYDIRECTORYLEAVE, &g_settings.filebrowser_denydirectoryleave, MESSAGEBOX_NO_YES_OPTIONS , MESSAGEBOX_NO_YES_OPTION_COUNT , true )); + CMenuOptionChooser * mc; + mc = new CMenuOptionChooser(LOCALE_FILESYSTEM_IS_UTF8 , &g_settings.filesystem_is_utf8 , MISCSETTINGS_FILESYSTEM_IS_UTF8_OPTIONS, MISCSETTINGS_FILESYSTEM_IS_UTF8_OPTION_COUNT, true ); + mc->setHint("", LOCALE_MENU_HINT_FILESYSTEM_IS_UTF8); + ms_fbrowser->addItem(mc); + + mc = new CMenuOptionChooser(LOCALE_FILEBROWSER_SHOWRIGHTS , &g_settings.filebrowser_showrights , MESSAGEBOX_NO_YES_OPTIONS , MESSAGEBOX_NO_YES_OPTION_COUNT , true ); + mc->setHint("", LOCALE_MENU_HINT_FILEBROWSER_SHOWRIGHTS); + ms_fbrowser->addItem(mc); + mc = new CMenuOptionChooser(LOCALE_FILEBROWSER_DENYDIRECTORYLEAVE, &g_settings.filebrowser_denydirectoryleave, MESSAGEBOX_NO_YES_OPTIONS , MESSAGEBOX_NO_YES_OPTION_COUNT , true ); + mc->setHint("", LOCALE_MENU_HINT_FILEBROWSER_DENYDIRECTORYLEAVE); + ms_fbrowser->addItem(mc); } //channellist @@ -300,12 +353,30 @@ void CMiscMenue::showMiscSettingsMenuChanlist(CMenuWidget *ms_chanlist) { ms_chanlist->addIntroItems(LOCALE_MISCSETTINGS_CHANNELLIST); - ms_chanlist->addItem(new CMenuOptionChooser(LOCALE_CHANNELLIST_MAKE_HDLIST , &g_settings.make_hd_list , OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); - ms_chanlist->addItem(new CMenuOptionChooser(LOCALE_CHANNELLIST_MAKE_NEWLIST, &g_settings.make_new_list , OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); - ms_chanlist->addItem(new CMenuOptionChooser(LOCALE_CHANNELLIST_MAKE_REMOVEDLIST, &g_settings.make_removed_list , OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); - ms_chanlist->addItem(new CMenuOptionChooser(LOCALE_CHANNELLIST_KEEP_NUMBERS, &g_settings.keep_channel_numbers , OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); - ms_chanlist->addItem(new CMenuOptionChooser(LOCALE_EXTRA_ZAP_CYCLE , &g_settings.zap_cycle , OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); - ms_chanlist->addItem(new CMenuOptionChooser(LOCALE_CHANNELLIST_NEW_ZAP_MODE, &g_settings.channellist_new_zap_mode, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true )); + CMenuOptionChooser * mc; + mc = new CMenuOptionChooser(LOCALE_CHANNELLIST_MAKE_HDLIST , &g_settings.make_hd_list , OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_MAKE_HDLIST); + ms_chanlist->addItem(mc); + + mc = new CMenuOptionChooser(LOCALE_CHANNELLIST_MAKE_NEWLIST, &g_settings.make_new_list , OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_MAKE_NEWLIST); + ms_chanlist->addItem(mc); + + mc = new CMenuOptionChooser(LOCALE_CHANNELLIST_MAKE_REMOVEDLIST, &g_settings.make_removed_list , OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_MAKE_REMOVEDLIST); + ms_chanlist->addItem(mc); + + mc = new CMenuOptionChooser(LOCALE_CHANNELLIST_KEEP_NUMBERS, &g_settings.keep_channel_numbers , OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_KEEP_NUMBERS); + ms_chanlist->addItem(mc); + + mc = new CMenuOptionChooser(LOCALE_EXTRA_ZAP_CYCLE , &g_settings.zap_cycle , OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_ZAP_CYCLE); + ms_chanlist->addItem(mc); + + mc = new CMenuOptionChooser(LOCALE_CHANNELLIST_NEW_ZAP_MODE, &g_settings.channellist_new_zap_mode, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true ); + mc->setHint("", LOCALE_MENU_HINT_NEW_ZAP_MODE); + ms_chanlist->addItem(mc); } #ifdef CPU_FREQ From c2908bec39622658d04e940201c157a34fadda4c Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Sun, 8 Jul 2012 21:37:08 +0400 Subject: [PATCH 008/317] gui/videosettings.cpp: add menu hints --- src/gui/videosettings.cpp | 45 +++++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 21 deletions(-) diff --git a/src/gui/videosettings.cpp b/src/gui/videosettings.cpp index 9b2827e6a..51f5f9763 100644 --- a/src/gui/videosettings.cpp +++ b/src/gui/videosettings.cpp @@ -60,17 +60,17 @@ extern CRemoteControl * g_RemoteControl; /* neutrino.cpp */ CVideoSettings::CVideoSettings(bool wizard_mode) { frameBuffer = CFrameBuffer::getInstance(); - + is_wizard = wizard_mode; - + SyncControlerForwarder = NULL; VcrVideoOutSignalOptionChooser = NULL; width = w_max (35, 20); selected = -1; - + prev_video_mode = g_settings.video_Mode; - + setupVideoSystem(false); } @@ -90,7 +90,7 @@ int CVideoSettings::exec(CMenuTarget* parent, const std::string &/*actionKey*/) } res = showVideoSetup(); - + return res; } @@ -133,7 +133,6 @@ const CMenuOptionChooser::keyval VIDEOMENU_VIDEOSIGNAL_HD1PLUS_SCART_OPTIONS[VID // { 0, LOCALE_VIDEOMENU_VCRSIGNAL_COMPOSITE } // }; - #define VIDEOMENU_VIDEOSIGNAL_HD1PLUS_CINCH_OPTION_COUNT 4 const CMenuOptionChooser::keyval VIDEOMENU_VIDEOSIGNAL_HD1PLUS_CINCH_OPTIONS[VIDEOMENU_VIDEOSIGNAL_HD1PLUS_CINCH_OPTION_COUNT] = { @@ -186,32 +185,40 @@ int CVideoSettings::showVideoSetup() //analog options unsigned int system_rev = cs_get_revision(); - CMenuOptionChooser * vs_analg_ch = NULL; + CMenuOptionChooser * vs_analg_ch = NULL; CMenuOptionChooser * vs_scart_ch = NULL; CMenuOptionChooser * vs_chinch_ch = NULL; - if (system_rev == 0x06) + if (system_rev == 0x06) { vs_analg_ch = new CMenuOptionChooser(LOCALE_VIDEOMENU_ANALOG_MODE, &g_settings.analog_mode1, VIDEOMENU_VIDEOSIGNAL_HD1_OPTIONS, VIDEOMENU_VIDEOSIGNAL_HD1_OPTION_COUNT, true, this); - } - else if (system_rev > 0x06) + vs_analg_ch->setHint("", LOCALE_MENU_HINT_VIDEO_ANALOG_MODE); + } + else if (system_rev > 0x06) { - if(system_rev != 10) + if(system_rev != 10) { vs_scart_ch = new CMenuOptionChooser(LOCALE_VIDEOMENU_SCART, &g_settings.analog_mode1, VIDEOMENU_VIDEOSIGNAL_HD1PLUS_SCART_OPTIONS, VIDEOMENU_VIDEOSIGNAL_HD1PLUS_SCART_OPTION_COUNT, true, this); + vs_scart_ch->setHint("", LOCALE_MENU_HINT_VIDEO_SCART_MODE); + } vs_chinch_ch = new CMenuOptionChooser(LOCALE_VIDEOMENU_CINCH, &g_settings.analog_mode2, VIDEOMENU_VIDEOSIGNAL_HD1PLUS_CINCH_OPTIONS, VIDEOMENU_VIDEOSIGNAL_HD1PLUS_CINCH_OPTION_COUNT, true, this); + vs_chinch_ch->setHint("", LOCALE_MENU_HINT_VIDEO_CINCH_MODE); } //4:3 mode CMenuOptionChooser * vs_43mode_ch = new CMenuOptionChooser(LOCALE_VIDEOMENU_43MODE, &g_settings.video_43mode, VIDEOMENU_43MODE_OPTIONS, VIDEOMENU_43MODE_OPTION_COUNT, true, this); + vs_43mode_ch->setHint("", LOCALE_MENU_HINT_VIDEO_43MODE); //display format CMenuOptionChooser * vs_dispformat_ch = new CMenuOptionChooser(LOCALE_VIDEOMENU_VIDEOFORMAT, &g_settings.video_Format, VIDEOMENU_VIDEOFORMAT_OPTIONS, VIDEOMENU_VIDEOFORMAT_OPTION_COUNT, true, this); + vs_dispformat_ch->setHint("", LOCALE_MENU_HINT_VIDEO_FORMAT); //video system CMenuOptionChooser * vs_videomodes_ch = new CMenuOptionChooser(LOCALE_VIDEOMENU_VIDEOMODE, &g_settings.video_Mode, VIDEOMENU_VIDEOMODE_OPTIONS, VIDEOMENU_VIDEOMODE_OPTION_COUNT, true, this, CRCInput::RC_nokey, "", true); + vs_videomodes_ch->setHint("", LOCALE_MENU_HINT_VIDEO_MODE); //dbdr options CMenuOptionChooser * vs_dbdropt_ch = new CMenuOptionChooser(LOCALE_VIDEOMENU_DBDR, &g_settings.video_dbdr, VIDEOMENU_DBDR_OPTIONS, VIDEOMENU_DBDR_OPTION_COUNT, true, this); + vs_dbdropt_ch->setHint("", LOCALE_MENU_HINT_VIDEO_DBDR); //video system modes submenue CMenuWidget videomodes(LOCALE_MAINSETTINGS_VIDEO, NEUTRINO_ICON_SETTINGS); @@ -223,6 +230,7 @@ int CVideoSettings::showVideoSetup() //anotify.changeNotify(NONEXISTANT_LOCALE, 0); CMenuForwarder * vs_videomodes_fw = new CMenuForwarder(LOCALE_VIDEOMENU_ENABLED_MODES, true, NULL, &videomodes, NULL, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED ); + vs_videomodes_fw->setHint("", LOCALE_MENU_HINT_VIDEO_MODES); //--------------------------------------- videosetup->addIntroItems(LOCALE_MAINSETTINGS_VIDEO, LOCALE_VIDEOMENU_TV_SCART); @@ -248,7 +256,6 @@ int CVideoSettings::showVideoSetup() return res; } - void CVideoSettings::setVideoSettings() { printf("[neutrino VideoSettings] %s init video settings...\n", __FUNCTION__); @@ -281,18 +288,18 @@ void CVideoSettings::setVideoSettings() void CVideoSettings::setupVideoSystem(bool do_ask) { printf("[neutrino VideoSettings] %s setup videosystem...\n", __FUNCTION__); - videoDecoder->SetVideoSystem(g_settings.video_Mode); //FIXME - + videoDecoder->SetVideoSystem(g_settings.video_Mode); //FIXME + if (do_ask) { - if (prev_video_mode != g_settings.video_Mode) + if (prev_video_mode != g_settings.video_Mode) { frameBuffer->paintBackground(); - if (ShowMsgUTF(LOCALE_MESSAGEBOX_INFO, g_Locale->getText(LOCALE_VIDEO_MODE_OK), CMessageBox::mbrNo, CMessageBox::mbYes | CMessageBox::mbNo, NEUTRINO_ICON_INFO) != CMessageBox::mbrYes) + if (ShowMsgUTF(LOCALE_MESSAGEBOX_INFO, g_Locale->getText(LOCALE_VIDEO_MODE_OK), CMessageBox::mbrNo, CMessageBox::mbYes | CMessageBox::mbNo, NEUTRINO_ICON_INFO) != CMessageBox::mbrYes) { g_settings.video_Mode = prev_video_mode; videoDecoder->SetVideoSystem(g_settings.video_Mode); - } + } } else prev_video_mode = g_settings.video_Mode; @@ -362,8 +369,6 @@ bool CVideoSettings::changeNotify(const neutrino_locale_t OptionName, void * /* return false; } - - void CVideoSettings::next43Mode(void) { printf("[neutrino VideoSettings] %s setting 43Mode...\n", __FUNCTION__); @@ -384,7 +389,6 @@ void CVideoSettings::next43Mode(void) g_settings.video_43mode = VIDEOMENU_43MODE_OPTIONS[curmode].key; videoDecoder->setAspectRatio(-1, g_settings.video_43mode); ShowHintUTF(LOCALE_VIDEOMENU_43MODE, g_Locale->getText(text), 450, 2); - } void CVideoSettings::SwitchFormat() @@ -472,4 +476,3 @@ void CVideoSettings::setWizardMode(bool mode) printf("[neutrino VideoSettings] %s set video settings menu to mode %d...\n", __FUNCTION__, mode); is_wizard = mode; } - From da1eced3e22261333c3b51cbc0d024ec25521ae5 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Sun, 8 Jul 2012 21:37:23 +0400 Subject: [PATCH 009/317] gui/audio_setup.cpp: add menu hints --- src/gui/audio_setup.cpp | 45 ++++++++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 19 deletions(-) diff --git a/src/gui/audio_setup.cpp b/src/gui/audio_setup.cpp index 0b51fdf13..e737ad34b 100644 --- a/src/gui/audio_setup.cpp +++ b/src/gui/audio_setup.cpp @@ -54,7 +54,7 @@ extern cAudio *audioDecoder; CAudioSetup::CAudioSetup(bool wizard_mode) { is_wizard = wizard_mode; - + width = w_max (40, 10); selected = -1; } @@ -68,18 +68,17 @@ int CAudioSetup::exec(CMenuTarget* parent, const std::string &/*actionKey*/) { dprintf(DEBUG_DEBUG, "init audio setup\n"); int res = menu_return::RETURN_REPAINT; - + if (parent) { parent->hide(); } res = showAudioSetup(); - + return res; } - #define AUDIOMENU_ANALOGOUT_OPTION_COUNT 3 const CMenuOptionChooser::keyval AUDIOMENU_ANALOGOUT_OPTIONS[AUDIOMENU_ANALOGOUT_OPTION_COUNT] = { @@ -128,21 +127,27 @@ int CAudioSetup::showAudioSetup() //analog modes (stereo, mono l/r...) CMenuOptionChooser * as_oj_analogmode = new CMenuOptionChooser(LOCALE_AUDIOMENU_ANALOG_MODE, &g_settings.audio_AnalogMode, AUDIOMENU_ANALOGOUT_OPTIONS, AUDIOMENU_ANALOGOUT_OPTION_COUNT, true, audioSetupNotifier); - + as_oj_analogmode->setHint("", LOCALE_MENU_HINT_AUDIO_ANALOG_MODE); + //dd subchannel auto on/off CMenuOptionChooser * as_oj_ddsubchn = new CMenuOptionChooser(LOCALE_AUDIOMENU_DOLBYDIGITAL, &g_settings.audio_DolbyDigital, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, audioSetupNotifier); - + as_oj_ddsubchn->setHint("", LOCALE_MENU_HINT_AUDIO_DOLBYDIGITAL); + //dd via hdmi CMenuOptionChooser * as_oj_dd_hdmi = new CMenuOptionChooser(LOCALE_AUDIOMENU_HDMI_DD, &g_settings.hdmi_dd, AUDIOMENU_HDMI_DD_OPTIONS, AUDIOMENU_HDMI_DD_OPTION_COUNT, true, audioSetupNotifier); - + as_oj_dd_hdmi->setHint("", LOCALE_MENU_HINT_AUDIO_HDMI_DD); + //dd via spdif CMenuOptionChooser * as_oj_dd_spdif = new CMenuOptionChooser(LOCALE_AUDIOMENU_SPDIF_DD, &g_settings.spdif_dd, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, audioSetupNotifier); - + as_oj_dd_spdif->setHint("", LOCALE_MENU_HINT_AUDIO_SPDIF_DD); + //av synch CMenuOptionChooser * as_oj_avsync = new CMenuOptionChooser(LOCALE_AUDIOMENU_AVSYNC, &g_settings.avsync, AUDIOMENU_AVSYNC_OPTIONS, AUDIOMENU_AVSYNC_OPTION_COUNT, true, audioSetupNotifier); - + as_oj_avsync->setHint("", LOCALE_MENU_HINT_AUDIO_AVSYNC); + //volume steps CMenuOptionNumberChooser * as_oj_vsteps = new CMenuOptionNumberChooser(LOCALE_AUDIOMENU_VOLUME_STEP, (int *)&g_settings.current_volume_step, true, 1, 25, NULL); + as_oj_vsteps->setHint("", LOCALE_MENU_HINT_AUDIO_VOLSTEP); //clock rec // CMenuOptionChooser * as_oj_clockrec new CMenuOptionChooser(LOCALE_AUDIOMENU_CLOCKREC, &g_settings.clockrec, AUDIOMENU_CLOCKREC_OPTIONS, AUDIOMENU_CLOCKREC_OPTION_COUNT, true, audioSetupNotifier); @@ -150,17 +155,21 @@ int CAudioSetup::showAudioSetup() //SRS //SRS algo CMenuOptionChooser * as_oj_algo = new CMenuOptionChooser(LOCALE_AUDIO_SRS_ALGO, &g_settings.srs_algo, AUDIOMENU_SRS_OPTIONS, AUDIOMENU_SRS_OPTION_COUNT, g_settings.srs_enable, audioSetupNotifier); - + as_oj_algo->setHint("", LOCALE_MENU_HINT_AUDIO_SRS_ALGO); + //SRS noise manage CMenuOptionChooser * as_oj_noise = new CMenuOptionChooser(LOCALE_AUDIO_SRS_NMGR, &g_settings.srs_nmgr_enable, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, g_settings.srs_enable, audioSetupNotifier); - + as_oj_noise->setHint("", LOCALE_MENU_HINT_AUDIO_SRS_NMGR); + //SRS reverence volume CMenuOptionNumberChooser * as_oj_volrev = new CMenuOptionNumberChooser(LOCALE_AUDIO_SRS_VOLUME, &g_settings.srs_ref_volume, g_settings.srs_enable, 1, 100, audioSetupNotifier); - + as_oj_volrev->setHint("", LOCALE_MENU_HINT_AUDIO_SRS_VOLUME); + //SRS on/off CTruVolumeNotifier truevolSetupNotifier(as_oj_algo, as_oj_noise, as_oj_volrev); CMenuOptionChooser * as_oj_srsonoff = new CMenuOptionChooser(LOCALE_AUDIO_SRS_IQ, &g_settings.srs_enable, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, &truevolSetupNotifier); - + as_oj_srsonoff->setHint("", LOCALE_MENU_HINT_AUDIO_SRS); + #if 0 CStringInput * audio_PCMOffset = new CStringInput(LOCALE_AUDIOMENU_PCMOFFSET, g_settings.audio_PCMOffset, 2, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, "0123456789 ", audioSetupNotifier); CMenuForwarder *mf = new CMenuForwarder(LOCALE_AUDIOMENU_PCMOFFSET, true, g_settings.audio_PCMOffset, audio_PCMOffset ); @@ -189,7 +198,7 @@ int CAudioSetup::showAudioSetup() #if 0 audioSettings->addItem(mf); #endif - + int res = audioSettings->exec(NULL, ""); selected = audioSettings->getSelected(); delete audioSettings; @@ -203,12 +212,11 @@ void CAudioSetup::setWizardMode(bool mode) is_wizard = mode; } - CTruVolumeNotifier::CTruVolumeNotifier(CMenuOptionChooser* o1, CMenuOptionChooser* o2, CMenuOptionNumberChooser *n1) { - toDisable_oj[0]=o1; - toDisable_oj[1]=o2; - toDisable_nj=n1; + toDisable_oj[0]=o1; + toDisable_oj[1]=o2; + toDisable_nj=n1; } bool CTruVolumeNotifier::changeNotify(const neutrino_locale_t, void * data) @@ -224,4 +232,3 @@ bool CTruVolumeNotifier::changeNotify(const neutrino_locale_t, void * data) return false; } - From 62448cd43cc38143681321ef36b13269e9f8f63f Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Sun, 8 Jul 2012 21:37:57 +0400 Subject: [PATCH 010/317] gui/info_menue.cpp: add menu hints --- src/gui/info_menue.cpp | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/gui/info_menue.cpp b/src/gui/info_menue.cpp index b5af0e710..ea5ffd0c7 100644 --- a/src/gui/info_menue.cpp +++ b/src/gui/info_menue.cpp @@ -48,8 +48,6 @@ CInfoMenu::CInfoMenu() CInfoMenu::~CInfoMenu() { - - } int CInfoMenu::exec(CMenuTarget* parent, const std::string &/*actionKey*/) @@ -73,12 +71,19 @@ int CInfoMenu::showMenu() CStreamInfo2 streaminfo; info->addIntroItems(); - info->addItem(new CMenuForwarder(LOCALE_SERVICEMENU_IMAGEINFO, true, NULL, &imageinfo, NULL, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED ), false); - info->addItem(new CMenuForwarder(LOCALE_EXTRA_DBOXINFO, true, NULL, &boxinfo, NULL, CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN)); - info->addItem(new CMenuForwarder(LOCALE_STREAMINFO_HEAD, true, NULL, &streaminfo, NULL, CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW)); + CMenuForwarder * mf = new CMenuForwarder(LOCALE_SERVICEMENU_IMAGEINFO, true, NULL, &imageinfo, NULL, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED ); + mf->setHint(NEUTRINO_ICON_HINT_IMAGEINFO, LOCALE_MENU_HINT_IMAGEINFO); + info->addItem(mf); + + mf = new CMenuForwarder(LOCALE_EXTRA_DBOXINFO, true, NULL, &boxinfo, NULL, CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN); + mf->setHint(NEUTRINO_ICON_HINT_DBOXINFO, LOCALE_MENU_HINT_DBOXINFO); + info->addItem(mf); + + mf = new CMenuForwarder(LOCALE_STREAMINFO_HEAD, true, NULL, &streaminfo, NULL, CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW); + mf->setHint(NEUTRINO_ICON_HINT_STREAMINFO, LOCALE_MENU_HINT_STREAMINFO); + info->addItem(mf); int res = info->exec(NULL, ""); delete info; return res; } - From 221e3f15887a5b6c70a958865ce1c6a75a3d6f07 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Sun, 8 Jul 2012 21:38:18 +0400 Subject: [PATCH 011/317] gui/mediaplayer.cpp: add menu hints --- src/gui/mediaplayer.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/gui/mediaplayer.cpp b/src/gui/mediaplayer.cpp index f6280805f..dd4422e0e 100644 --- a/src/gui/mediaplayer.cpp +++ b/src/gui/mediaplayer.cpp @@ -164,11 +164,13 @@ int CMediaPlayerMenu::initMenuMedia(CMenuWidget *m, CPersonalizeGui *p) neutrino_msg_t audio_rc = usage_mode == MODE_AUDIO ? CRCInput::RC_audio:CRCInput::RC_red; const char* audio_btn = usage_mode == MODE_AUDIO ? "" : NEUTRINO_ICON_BUTTON_RED; fw_audio = new CMenuForwarder(LOCALE_MAINMENU_AUDIOPLAYER, true, NULL, this, "audioplayer", audio_rc, audio_btn); + fw_audio->setHint(NEUTRINO_ICON_HINT_APLAY, LOCALE_MENU_HINT_APLAY); //internet player neutrino_msg_t inet_rc = usage_mode == MODE_AUDIO ? CRCInput::RC_www : CRCInput::RC_green; const char* inet_btn = usage_mode == MODE_AUDIO ? "" : NEUTRINO_ICON_BUTTON_GREEN; fw_inet = new CMenuForwarder(LOCALE_INETRADIO_NAME, true, NULL, this, "inetplayer", inet_rc, inet_btn); + fw_inet->setHint(NEUTRINO_ICON_HINT_INET_RADIO, LOCALE_MENU_HINT_INET_RADIO); } if (usage_mode == MODE_DEFAULT) @@ -177,9 +179,11 @@ int CMediaPlayerMenu::initMenuMedia(CMenuWidget *m, CPersonalizeGui *p) moviePlayer = new CMenuWidget(LOCALE_MAINMENU_MOVIEPLAYER, NEUTRINO_ICON_MULTIMEDIA, width, MN_WIDGET_ID_MEDIA_MOVIEPLAYER); personalize->addWidget(moviePlayer); fw_mp = new CMenuForwarder(LOCALE_MAINMENU_MOVIEPLAYER, true, NULL, moviePlayer, NULL, CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW); + fw_mp->setHint(NEUTRINO_ICON_HINT_MOVIE, LOCALE_MENU_HINT_MOVIE); //pictureviewer fw_pviewer = new CMenuForwarder(LOCALE_MAINMENU_PICTUREVIEWER, true, NULL, new CPictureViewerGui(), NULL, CRCInput::RC_blue, NEUTRINO_ICON_BUTTON_BLUE); + fw_pviewer->setHint(NEUTRINO_ICON_HINT_PICVIEW, LOCALE_MENU_HINT_PICVIEW); #if ENABLE_UPNP //upnp browser fw_upnp = new CMenuForwarder(LOCALE_UPNPBROWSER_HEAD, true, NULL, new CUpnpBrowserGui(), NULL, CRCInput::RC_0, NEUTRINO_ICON_BUTTON_0); @@ -240,7 +244,9 @@ int CMediaPlayerMenu::initMenuMedia(CMenuWidget *m, CPersonalizeGui *p) void CMediaPlayerMenu::showMoviePlayer(CMenuWidget *moviePlayer, CPersonalizeGui *p) { CMenuForwarder *fw_mbrowser = new CMenuForwarder(LOCALE_MOVIEBROWSER_HEAD, true, NULL, this, "movieplayer", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED); + fw_mbrowser->setHint(NEUTRINO_ICON_HINT_MB, LOCALE_MENU_HINT_MB); CMenuForwarder *fw_file = new CMenuForwarder(LOCALE_MOVIEPLAYER_FILEPLAYBACK, true, NULL, &CMoviePlayerGui::getInstance(), "fileplayback", CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN); + fw_file->setHint(NEUTRINO_ICON_HINT_FILEPLAY, LOCALE_MENU_HINT_FILEPLAY); p->addIntroItems(moviePlayer); From 08e5b2ccb5a9b1e800d70849443f0a9cd64826be Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Sun, 8 Jul 2012 21:38:41 +0400 Subject: [PATCH 012/317] gui/settings_manager.cpp: add menu hints --- src/gui/settings_manager.cpp | 68 +++++++++++++++++++++++------------- 1 file changed, 44 insertions(+), 24 deletions(-) diff --git a/src/gui/settings_manager.cpp b/src/gui/settings_manager.cpp index bc30f6349..e1ac9e752 100644 --- a/src/gui/settings_manager.cpp +++ b/src/gui/settings_manager.cpp @@ -62,18 +62,18 @@ int CSettingsManager::exec(CMenuTarget* parent, const std::string &actionKey) { printf("[neutrino] CSettingsManager %s: init...\n",__FUNCTION__); int res = menu_return::RETURN_REPAINT; - + if (parent) parent->hide(); - + CFileBrowser fileBrowser; CFileFilter fileFilter; - - if(actionKey == "loadconfig") + + if(actionKey == "loadconfig") { fileFilter.addFilter("conf"); fileBrowser.Filter = &fileFilter; - if (fileBrowser.exec("/var/tuxbox/config") == true) + if (fileBrowser.exec("/var/tuxbox/config") == true) { CNeutrinoApp::getInstance()->loadSetup(fileBrowser.getSelectedFile()->Name.c_str()); CColorSetupNotifier *colorSetupNotifier = new CColorSetupNotifier; @@ -84,10 +84,10 @@ int CSettingsManager::exec(CMenuTarget* parent, const std::string &actionKey) } return res; } - else if(actionKey == "saveconfig") + else if(actionKey == "saveconfig") { fileBrowser.Dir_Mode = true; - if (fileBrowser.exec("/var/tuxbox") == true) + if (fileBrowser.exec("/var/tuxbox") == true) { char fname[256] = "neutrino.conf", sname[256]; CStringInputSMS * sms = new CStringInputSMS(LOCALE_EXTRA_SAVECONFIG, fname, 30, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, "abcdefghijklmnopqrstuvwxyz0123456789. "); @@ -99,33 +99,33 @@ int CSettingsManager::exec(CMenuTarget* parent, const std::string &actionKey) } return res; } - else if(actionKey == "backup") + else if(actionKey == "backup") { fileBrowser.Dir_Mode = true; - if (fileBrowser.exec("/media") == true) + if (fileBrowser.exec("/media") == true) { char fname[256]; struct statfs s; int ret = ::statfs(fileBrowser.getSelectedFile()->Name.c_str(), &s); if(ret == 0 && s.f_type != 0x72b6L) /*jffs2*/ - { + { sprintf(fname, "/bin/backup.sh %s", fileBrowser.getSelectedFile()->Name.c_str()); printf("backup: executing [%s]\n", fname); system(fname); - } + } else ShowMsgUTF(LOCALE_MESSAGEBOX_ERROR, g_Locale->getText(LOCALE_SETTINGS_BACKUP_FAILED),CMessageBox::mbrBack, CMessageBox::mbBack, NEUTRINO_ICON_ERROR); } return res; } - else if(actionKey == "restore") + else if(actionKey == "restore") { fileFilter.addFilter("tar"); fileBrowser.Filter = &fileFilter; - if (fileBrowser.exec("/media") == true) + if (fileBrowser.exec("/media") == true) { int result = ShowMsgUTF(LOCALE_SETTINGS_RESTORE, g_Locale->getText(LOCALE_SETTINGS_RESTORE_WARN), CMessageBox::mbrNo, CMessageBox::mbYes | CMessageBox::mbNo); - if(result == CMessageBox::mbrYes) + if(result == CMessageBox::mbrYes) { char fname[256]; sprintf(fname, "/bin/restore.sh %s", fileBrowser.getSelectedFile()->Name.c_str()); @@ -135,7 +135,7 @@ int CSettingsManager::exec(CMenuTarget* parent, const std::string &actionKey) } return res; } - + res = showMenu(); return res; @@ -147,19 +147,39 @@ int CSettingsManager::showMenu() CDataResetNotifier * resetNotifier = new CDataResetNotifier(); - CMenuWidget * mset = new CMenuWidget(LOCALE_MAINSETTINGS_MANAGE, NEUTRINO_ICON_SETTINGS, width, MN_WIDGET_ID_SETTINGS_MNGR); - mset->addIntroItems(); + CMenuWidget * mset = new CMenuWidget(LOCALE_MAINSETTINGS_HEAD, NEUTRINO_ICON_SETTINGS, width, MN_WIDGET_ID_SETTINGS_MNGR); + mset->addIntroItems(LOCALE_MAINSETTINGS_MANAGE); + + CMenuForwarder * mf = new CMenuForwarder(LOCALE_RESET_SETTINGS, true, NULL, resetNotifier, "settings", CRCInput::RC_recall); + mf->setHint(NEUTRINO_ICON_HINT_RESET, LOCALE_MENU_HINT_RESET); // FIXME: RC-button RECALL is broken + mset->addItem(mf); - mset->addItem(new CMenuForwarder(LOCALE_RESET_SETTINGS, true, NULL, resetNotifier, "settings", CRCInput::RC_recall));// FIXME: RC-button RECALL is broken mset->addItem(GenericMenuSeparatorLine); - mset->addItem(new CMenuForwarder(LOCALE_EXTRA_SAVECONFIG, true, NULL, this, "saveconfig", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED)); - mset->addItem(new CMenuForwarder(LOCALE_EXTRA_LOADCONFIG, true, NULL, this, "loadconfig", CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN)); + + mf = new CMenuForwarder(LOCALE_EXTRA_SAVECONFIG, true, NULL, this, "saveconfig", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED); + mf->setHint(NEUTRINO_ICON_HINT_SAVEAS, LOCALE_MENU_HINT_SAVEAS); + mset->addItem(mf); + + mf = new CMenuForwarder(LOCALE_EXTRA_LOADCONFIG, true, NULL, this, "loadconfig", CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN); + mf->setHint(NEUTRINO_ICON_HINT_LOAD, LOCALE_MENU_HINT_LOAD); + mset->addItem(mf); + mset->addItem(GenericMenuSeparatorLine); - mset->addItem(new CMenuForwarder(LOCALE_SETTINGS_BACKUP, true, NULL, this, "backup", CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW)); - mset->addItem(new CMenuForwarder(LOCALE_SETTINGS_RESTORE, true, NULL, this, "restore", CRCInput::RC_blue, NEUTRINO_ICON_BUTTON_BLUE)); + + mf = new CMenuForwarder(LOCALE_SETTINGS_BACKUP, true, NULL, this, "backup", CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW); + mf->setHint(NEUTRINO_ICON_HINT_BACKUP, LOCALE_MENU_HINT_BACKUP); + mset->addItem(mf); + + mf = new CMenuForwarder(LOCALE_SETTINGS_RESTORE, true, NULL, this, "restore", CRCInput::RC_blue, NEUTRINO_ICON_BUTTON_BLUE); + mf->setHint(NEUTRINO_ICON_HINT_RESTORE, LOCALE_MENU_HINT_RESTORE); + mset->addItem(mf); + mset->addItem(GenericMenuSeparatorLine); - mset->addItem(new CMenuForwarder(LOCALE_RESET_ALL, true, NULL, resetNotifier, "all", CRCInput::RC_standby, NEUTRINO_ICON_BUTTON_POWER)); - + + mf = new CMenuForwarder(LOCALE_RESET_ALL, true, NULL, resetNotifier, "all", CRCInput::RC_standby, NEUTRINO_ICON_BUTTON_POWER); + mf->setHint(NEUTRINO_ICON_HINT_FACTORY, LOCALE_MENU_HINT_FACTORY); + mset->addItem(mf); + int res = mset->exec(NULL, ""); delete resetNotifier; delete mset; From 8e79f096e07a777cf6c988f28c43f2fb620fb67f Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Sun, 8 Jul 2012 21:38:57 +0400 Subject: [PATCH 013/317] gui/cec_setup.cpp: add menu hints --- src/gui/cec_setup.cpp | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/gui/cec_setup.cpp b/src/gui/cec_setup.cpp index fad8a9e43..605fa262b 100644 --- a/src/gui/cec_setup.cpp +++ b/src/gui/cec_setup.cpp @@ -66,9 +66,9 @@ int CCECSetup::exec(CMenuTarget* parent, const std::string &/*actionKey*/) if (parent) parent->hide(); - + res = showMenu(); - + return res; } @@ -86,26 +86,29 @@ int CCECSetup::showMenu() //menue init CMenuWidget *cec = new CMenuWidget(LOCALE_MAINMENU_SETTINGS, NEUTRINO_ICON_SETTINGS, width, MN_WIDGET_ID_CEC); cec->addIntroItems(LOCALE_VIDEOMENU_HDMI_CEC); - + //cec CMenuOptionChooser *cec_ch = new CMenuOptionChooser(LOCALE_VIDEOMENU_HDMI_CEC_MODE, &g_settings.hdmi_cec_mode, VIDEOMENU_HDMI_CEC_MODE_OPTIONS, VIDEOMENU_HDMI_CEC_MODE_OPTION_COUNT, true, this); + cec_ch->setHint("", LOCALE_MENU_HINT_CEC_MODE); cec1 = new CMenuOptionChooser(LOCALE_VIDEOMENU_HDMI_CEC_VIEW_ON, &g_settings.hdmi_cec_view_on, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, g_settings.hdmi_cec_mode != VIDEO_HDMI_CEC_MODE_OFF, this); + cec1->setHint("", LOCALE_MENU_HINT_CEC_VIEW_ON); cec2 = new CMenuOptionChooser(LOCALE_VIDEOMENU_HDMI_CEC_STANDBY, &g_settings.hdmi_cec_standby, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, g_settings.hdmi_cec_mode != VIDEO_HDMI_CEC_MODE_OFF, this); - + cec2->setHint("", LOCALE_MENU_HINT_CEC_STANDBY); + cec->addItem(cec_ch); cec->addItem(GenericMenuSeparatorLine); //------------------------------------------------------- cec->addItem(cec1); cec->addItem(cec2); - + int res = cec->exec(NULL, ""); delete cec; - + return res; } -void CCECSetup::setCECSettings() -{ +void CCECSetup::setCECSettings() +{ printf("[neutrino CEC Settings] %s init CEC settings...\n", __FUNCTION__); videoDecoder->SetCECAutoStandby(g_settings.hdmi_cec_standby == 1); videoDecoder->SetCECAutoView(g_settings.hdmi_cec_view_on == 1); From d4a73f654b48b5cd3238f76dbdfeae90d0f76962 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Sun, 8 Jul 2012 21:39:15 +0400 Subject: [PATCH 014/317] gui/network_setup.cpp: add menu hints --- src/gui/network_setup.cpp | 127 ++++++++++++++++++++++++-------------- 1 file changed, 82 insertions(+), 45 deletions(-) diff --git a/src/gui/network_setup.cpp b/src/gui/network_setup.cpp index 60bfcc11d..97e5c879b 100644 --- a/src/gui/network_setup.cpp +++ b/src/gui/network_setup.cpp @@ -104,11 +104,11 @@ int CNetworkSetup::exec(CMenuTarget* parent, const std::string &actionKey) { printf("[network setup] doing network test...\n"); #if 0 - testNetworkSettings( networkConfig->address.c_str(), - networkConfig->netmask.c_str(), - networkConfig->broadcast.c_str(), - networkConfig->gateway.c_str(), - networkConfig->nameserver.c_str(), + testNetworkSettings( networkConfig->address.c_str(), + networkConfig->netmask.c_str(), + networkConfig->broadcast.c_str(), + networkConfig->gateway.c_str(), + networkConfig->nameserver.c_str(), networkConfig->inet_static); #endif testNetworkSettings(); @@ -122,10 +122,10 @@ int CNetworkSetup::exec(CMenuTarget* parent, const std::string &actionKey) } else if(actionKey=="restore") { - int result = ShowMsgUTF(LOCALE_MAINSETTINGS_NETWORK, g_Locale->getText(LOCALE_NETWORKMENU_RESET_SETTINGS_NOW), CMessageBox::mbrNo, - CMessageBox::mbYes | - CMessageBox::mbNo , - NEUTRINO_ICON_QUESTION, + int result = ShowMsgUTF(LOCALE_MAINSETTINGS_NETWORK, g_Locale->getText(LOCALE_NETWORKMENU_RESET_SETTINGS_NOW), CMessageBox::mbrNo, + CMessageBox::mbYes | + CMessageBox::mbNo , + NEUTRINO_ICON_QUESTION, width); if (result == CMessageBox::mbrYes) { @@ -136,7 +136,7 @@ int CNetworkSetup::exec(CMenuTarget* parent, const std::string &actionKey) printf("[neutrino] init network setup...\n"); res = showNetworkSetup(); - + return res; } @@ -144,7 +144,7 @@ void CNetworkSetup::readNetworkSettings() { network_automatic_start = networkConfig->automatic_start; network_dhcp = networkConfig->inet_static ? NETWORK_DHCP_OFF : NETWORK_DHCP_ON; - + network_address = networkConfig->address; network_netmask = networkConfig->netmask; network_broadcast = networkConfig->broadcast; @@ -198,6 +198,7 @@ int CNetworkSetup::showNetworkSetup() int ifcount = scandir("/sys/class/net", &namelist, my_filter, alphasort); CMenuOptionStringChooser * ifSelect = new CMenuOptionStringChooser(LOCALE_NETWORKMENU_SELECT_IF, g_settings.ifname, ifcount > 1, this, CRCInput::RC_nokey, "", true); + ifSelect->setHint("", LOCALE_MENU_HINT_NET_IF); bool found = false; @@ -224,6 +225,7 @@ int CNetworkSetup::showNetworkSetup() //apply button CMenuForwarder *m0 = new CMenuForwarder(LOCALE_NETWORKMENU_SETUPNOW, true, NULL, this, "networkapply", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED); + m0->setHint("", LOCALE_MENU_HINT_NET_SETUPNOW); //eth id CMenuForwarder *mac = new CMenuForwarderNonLocalized("MAC", false, mac_addr); @@ -234,12 +236,13 @@ int CNetworkSetup::showNetworkSetup() CIPInput networkSettings_Broadcast(LOCALE_NETWORKMENU_BROADCAST , network_broadcast , LOCALE_IPSETUP_HINT_1, LOCALE_IPSETUP_HINT_2); CIPInput networkSettings_Gateway (LOCALE_NETWORKMENU_GATEWAY , network_gateway , LOCALE_IPSETUP_HINT_1, LOCALE_IPSETUP_HINT_2); CIPInput networkSettings_NameServer(LOCALE_NETWORKMENU_NAMESERVER, network_nameserver, LOCALE_IPSETUP_HINT_1, LOCALE_IPSETUP_HINT_2); - + //hostname CStringInputSMS networkSettings_Hostname(LOCALE_NETWORKMENU_HOSTNAME, &network_hostname, 30, LOCALE_NETWORKMENU_NTPSERVER_HINT1, LOCALE_NETWORKMENU_NTPSERVER_HINT2, "abcdefghijklmnopqrstuvwxyz0123456789-. "); //auto start CMenuOptionChooser* o1 = new CMenuOptionChooser(LOCALE_NETWORKMENU_SETUPONSTARTUP, &network_automatic_start, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); + o1->setHint("", LOCALE_MENU_HINT_NET_SETUPONSTARTUP); //dhcp network_dhcp = networkConfig->inet_static ? NETWORK_DHCP_OFF : NETWORK_DHCP_ON; @@ -251,6 +254,13 @@ int CNetworkSetup::showNetworkSetup() CMenuForwarder *m5 = new CMenuForwarder(LOCALE_NETWORKMENU_NAMESERVER, networkConfig->inet_static, network_nameserver, &networkSettings_NameServer); CMenuForwarder *m8 = new CMenuForwarder(LOCALE_NETWORKMENU_HOSTNAME , true , network_hostname , &networkSettings_Hostname ); + m1->setHint("", LOCALE_MENU_HINT_NET_IPADDRESS); + m2->setHint("", LOCALE_MENU_HINT_NET_NETMASK); + m3->setHint("", LOCALE_MENU_HINT_NET_BROADCAST); + m4->setHint("", LOCALE_MENU_HINT_NET_GATEWAY); + m5->setHint("", LOCALE_MENU_HINT_NET_NAMESERVER); + m8->setHint("", LOCALE_MENU_HINT_NET_HOSTNAME); + dhcpDisable[0] = m1; dhcpDisable[1] = m2; dhcpDisable[2] = m3; @@ -258,13 +268,20 @@ int CNetworkSetup::showNetworkSetup() dhcpDisable[4] = m5; CMenuOptionChooser* o2 = new CMenuOptionChooser(LOCALE_NETWORKMENU_DHCP, &network_dhcp, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, this); + o2->setHint("", LOCALE_MENU_HINT_NET_DHCP); //paint menu items networkSettings->addIntroItems(LOCALE_MAINSETTINGS_NETWORK); //intros //------------------------------------------------- networkSettings->addItem( m0 ); //apply - networkSettings->addItem(new CMenuForwarder(LOCALE_NETWORKMENU_TEST, true, NULL, this, "networktest", CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN)); //test - networkSettings->addItem(new CMenuForwarder(LOCALE_NETWORKMENU_SHOW, true, NULL, this, "networkshow", CRCInput::RC_help, NEUTRINO_ICON_BUTTON_HELP)); //show settings + CMenuForwarder * mf = new CMenuForwarder(LOCALE_NETWORKMENU_TEST, true, NULL, this, "networktest", CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN); + mf->setHint("", LOCALE_MENU_HINT_NET_TEST); + networkSettings->addItem(mf); //test + + mf = new CMenuForwarder(LOCALE_NETWORKMENU_SHOW, true, NULL, this, "networkshow", CRCInput::RC_info, NEUTRINO_ICON_BUTTON_INFO); + mf->setHint("", LOCALE_MENU_HINT_NET_SHOW); + networkSettings->addItem(mf); //show settings + networkSettings->addItem(GenericMenuSeparatorLine); //------------------------------------------------ if(ifcount) @@ -300,6 +317,9 @@ int CNetworkSetup::showNetworkSetup() CMenuForwarder *m9 = new CMenuDForwarder(LOCALE_NETWORKMENU_SSID , networkConfig->wireless, network_ssid , networkSettings_ssid ); CMenuForwarder *m10 = new CMenuDForwarder(LOCALE_NETWORKMENU_PASSWORD , networkConfig->wireless, network_key , networkSettings_key ); + m9->setHint("", LOCALE_MENU_HINT_NET_SSID); + m10->setHint("", LOCALE_MENU_HINT_NET_PASS); + wlanEnable[0] = m9; wlanEnable[1] = m10; @@ -311,25 +331,34 @@ int CNetworkSetup::showNetworkSetup() //ntp submenu sectionsdConfigNotifier = new CSectionsdConfigNotifier; CMenuWidget ntp(LOCALE_MAINSETTINGS_NETWORK, NEUTRINO_ICON_SETTINGS, width, MN_WIDGET_ID_NETWORKSETUP_NTP); - networkSettings->addItem(new CMenuForwarder(LOCALE_NETWORKMENU_NTPTITLE, true, NULL, &ntp, NULL, CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW)); + mf = new CMenuForwarder(LOCALE_NETWORKMENU_NTPTITLE, true, NULL, &ntp, NULL, CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW); + mf->setHint("", LOCALE_MENU_HINT_NET_NTP); + networkSettings->addItem(mf); + showNetworkNTPSetup(&ntp); - + //nfs mount submenu CMenuWidget networkmounts(LOCALE_MAINSETTINGS_NETWORK, NEUTRINO_ICON_SETTINGS, width, MN_WIDGET_ID_NETWORKSETUP_MOUNTS); - networkSettings->addItem(new CMenuForwarder(LOCALE_NETWORKMENU_MOUNT, true, NULL, &networkmounts, NULL, CRCInput::RC_blue, NEUTRINO_ICON_BUTTON_BLUE)); + mf = new CMenuForwarder(LOCALE_NETWORKMENU_MOUNT, true, NULL, &networkmounts, NULL, CRCInput::RC_blue, NEUTRINO_ICON_BUTTON_BLUE); + mf->setHint("", LOCALE_MENU_HINT_NET_MOUNT); + networkSettings->addItem(mf); showNetworkNFSMounts(&networkmounts); //proxyserver submenu CProxySetup proxy(LOCALE_MAINSETTINGS_NETWORK); - networkSettings->addItem(new CMenuForwarder(LOCALE_FLASHUPDATE_PROXYSERVER_SEP, true, NULL, &proxy, NULL, CRCInput::RC_0, NEUTRINO_ICON_BUTTON_0)); + mf = new CMenuForwarder(LOCALE_FLASHUPDATE_PROXYSERVER_SEP, true, NULL, &proxy, NULL, CRCInput::RC_0, NEUTRINO_ICON_BUTTON_0); + mf->setHint("", LOCALE_MENU_HINT_NET_PROXY); + networkSettings->addItem(mf); //services CNetworkServiceSetup services; - networkSettings->addItem(new CMenuForwarder(LOCALE_NETWORKMENU_SERVICES, true, NULL, &services, NULL, CRCInput::RC_1, NEUTRINO_ICON_BUTTON_1)); + mf = new CMenuForwarder(LOCALE_NETWORKMENU_SERVICES, true, NULL, &services, NULL, CRCInput::RC_1, NEUTRINO_ICON_BUTTON_1); + mf->setHint("", LOCALE_MENU_HINT_NET_SERVICES); + networkSettings->addItem(mf); int ret = 0; while(true) { - int res = menu_return::RETURN_EXIT; + int res = menu_return::RETURN_EXIT; ret = networkSettings->exec(NULL, ""); if (settingsChanged()) @@ -337,7 +366,7 @@ int CNetworkSetup::showNetworkSetup() if(res == menu_return::RETURN_EXIT) break; } - + delete networkSettings; delete sectionsdConfigNotifier; return ret; @@ -353,7 +382,11 @@ void CNetworkSetup::showNetworkNTPSetup(CMenuWidget *menu_ntp) CMenuOptionChooser *ntp1 = new CMenuOptionChooser(LOCALE_NETWORKMENU_NTPENABLE, &g_settings.network_ntpenable, OPTIONS_NTPENABLE_OPTIONS, OPTIONS_NTPENABLE_OPTION_COUNT, true, sectionsdConfigNotifier); CMenuForwarder *ntp2 = new CMenuDForwarder( LOCALE_NETWORKMENU_NTPSERVER, true , g_settings.network_ntpserver, networkSettings_NtpServer ); CMenuForwarder *ntp3 = new CMenuDForwarder( LOCALE_NETWORKMENU_NTPREFRESH, true , g_settings.network_ntprefresh, networkSettings_NtpRefresh ); - + + ntp1->setHint("", LOCALE_MENU_HINT_NET_NTPENABLE); + ntp2->setHint("", LOCALE_MENU_HINT_NET_NTPSERVER); + ntp3->setHint("", LOCALE_MENU_HINT_NET_NTPREFRESH); + menu_ntp->addIntroItems(LOCALE_NETWORKMENU_NTPTITLE); menu_ntp->addItem( ntp1); menu_ntp->addItem( ntp2); @@ -363,8 +396,12 @@ void CNetworkSetup::showNetworkNTPSetup(CMenuWidget *menu_ntp) void CNetworkSetup::showNetworkNFSMounts(CMenuWidget *menu_nfs) { menu_nfs->addIntroItems(LOCALE_NETWORKMENU_MOUNT); - menu_nfs->addItem(new CMenuDForwarder(LOCALE_NFS_MOUNT , true, NULL, new CNFSMountGui(), NULL, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED)); - menu_nfs->addItem(new CMenuDForwarder(LOCALE_NFS_UMOUNT, true, NULL, new CNFSUmountGui(), NULL, CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN)); + CMenuForwarder * mf = new CMenuDForwarder(LOCALE_NFS_MOUNT , true, NULL, new CNFSMountGui(), NULL, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED); + mf->setHint("", LOCALE_MENU_HINT_NET_NFS_MOUNT); + menu_nfs->addItem(mf); + mf = new CMenuDForwarder(LOCALE_NFS_UMOUNT, true, NULL, new CNFSUmountGui(), NULL, CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN); + mf->setHint("", LOCALE_MENU_HINT_NET_NFS_UMOUNT); + menu_nfs->addItem(mf); } typedef struct n_isettings_t @@ -373,12 +410,12 @@ typedef struct n_isettings_t int network_setting; }n_isettings_struct_t; -//checks settings changes for int settings, returns true on changes +//checks settings changes for int settings, returns true on changes bool CNetworkSetup::checkIntSettings() { - n_isettings_t n_isettings[] = - { - {old_network_automatic_start, network_automatic_start}, + n_isettings_t n_isettings[] = + { + {old_network_automatic_start, network_automatic_start}, {old_network_dhcp, network_dhcp } }; for (uint i = 0; i < (sizeof(n_isettings) / sizeof(n_isettings[0])); i++) @@ -400,8 +437,8 @@ typedef struct n_ssettings_t //checks settings changes for int settings, returns true on changes bool CNetworkSetup::checkStringSettings() -{ - n_ssettings_t n_ssettings[] = +{ + n_ssettings_t n_ssettings[] = { {old_network_address, network_address }, {old_network_netmask, network_netmask }, @@ -426,12 +463,12 @@ bool CNetworkSetup::checkStringSettings() return false; } -//returns true, if any settings were changed +//returns true, if any settings were changed bool CNetworkSetup::settingsChanged() { if (networkConfig->modified_from_orig() || checkStringSettings() || checkIntSettings()) return true; - + return false; } @@ -470,26 +507,26 @@ bool CNetworkSetup::checkForIP() {LOCALE_NETWORKMENU_GATEWAY, network_gateway }, {LOCALE_NETWORKMENU_NAMESERVER, network_nameserver } }; - + if (!network_dhcp) { for (uint i = 0; i < (sizeof(n_settings) / sizeof(n_settings[0])); i++) { if (n_settings[i].network_settings.empty()) //no definied setting - { + { printf("[network setup] empty address %s\n", g_Locale->getText(n_settings[i].addr_name)); - char msg[64]; + char msg[64]; snprintf(msg, 64, g_Locale->getText(LOCALE_NETWORKMENU_ERROR_NO_ADDRESS), g_Locale->getText(n_settings[i].addr_name)); ShowMsgUTF(LOCALE_MAINSETTINGS_NETWORK, msg, CMessageBox::mbrOk, CMessageBox::mbOk, NEUTRINO_ICON_ERROR, width); return false; } } } - + return true; } -//saves settings without apply, reboot is required +//saves settings without apply, reboot is required void CNetworkSetup::saveNetworkSettings() { printf("[network setup] saving current network settings...\n"); @@ -502,13 +539,13 @@ void CNetworkSetup::saveNetworkSettings() void CNetworkSetup::applyNetworkSettings() { printf("[network setup] apply network settings...\n"); - + if (!checkForIP()) return; CHintBox * hintBox = new CHintBox(LOCALE_MESSAGEBOX_INFO, g_Locale->getText(LOCALE_NETWORKMENU_APPLY_SETTINGS)); // UTF-8 hintBox->paint(); - + networkConfig->stopNetwork(); saveNetworkSettings(); networkConfig->startNetwork(); @@ -523,10 +560,10 @@ void CNetworkSetup::applyNetworkSettings() int CNetworkSetup::saveChangesDialog() { // Save the settings after changes, if user wants to! - int result = ShowMsgUTF(LOCALE_MAINSETTINGS_NETWORK, g_Locale->getText(LOCALE_NETWORKMENU_APPLY_SETTINGS_NOW), CMessageBox::mbrYes, - CMessageBox::mbYes | - CMessageBox::mbNo , - NEUTRINO_ICON_QUESTION, + int result = ShowMsgUTF(LOCALE_MAINSETTINGS_NETWORK, g_Locale->getText(LOCALE_NETWORKMENU_APPLY_SETTINGS_NOW), CMessageBox::mbrYes, + CMessageBox::mbYes | + CMessageBox::mbNo , + NEUTRINO_ICON_QUESTION, width); switch(result) @@ -536,7 +573,7 @@ int CNetworkSetup::saveChangesDialog() return menu_return::RETURN_REPAINT; return exec(NULL, "networkapply"); break; - + case CMessageBox::mbrNo: //no return exec(NULL, "restore"); break; @@ -544,7 +581,7 @@ int CNetworkSetup::saveChangesDialog() return menu_return::RETURN_REPAINT; } -//restores settings +//restores settings void CNetworkSetup::restoreNetworkSettings() { snprintf(g_settings.ifname, sizeof(g_settings.ifname), "%s", old_ifname.c_str()); From f0c75cabade5275e8d75f81ce9ce2f3bd380d84d Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Sun, 8 Jul 2012 21:39:47 +0400 Subject: [PATCH 015/317] gui/network_service.cpp: add menu hints --- src/gui/network_service.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/gui/network_service.cpp b/src/gui/network_service.cpp index 7902d6018..a82be0fef 100644 --- a/src/gui/network_service.cpp +++ b/src/gui/network_service.cpp @@ -42,16 +42,18 @@ struct network_service std::string name; std::string cmd; std::string options; + neutrino_locale_t hint; + std::string icon; int enabled; }; #define SERVICE_COUNT 4 static struct network_service services[SERVICE_COUNT] = { - { "FTP", "vsftpd", "", 0 }, - { "Telnet", "telnetd", "-l/bin/login", 0 }, - { "DjMount", "djmount", "-o iocharset=utf8 /media/00upnp/", 0 }, - { "uShare", "ushare", "-D", 0 } + { "FTP", "vsftpd", "", LOCALE_MENU_HINT_NET_TELNET, "", 0 }, + { "Telnet", "telnetd", "-l/bin/login", LOCALE_MENU_HINT_NET_FTPD, "", 0 }, + { "DjMount", "djmount", "-o iocharset=utf8 /media/00upnp/", LOCALE_MENU_HINT_NET_DJMOUNT, "", 0 }, + { "uShare", "ushare", "-D", LOCALE_MENU_HINT_NET_USHARE, "", 0 } }; CNetworkService::CNetworkService(std::string cmd, std::string opts) @@ -142,7 +144,9 @@ int CNetworkServiceSetup::showNetworkServiceSetup() for(unsigned i = 0; i < SERVICE_COUNT; i++) { items[i] = new CNetworkService(services[i].cmd, services[i].options); services[i].enabled = items[i]->Enabled(); - setup->addItem(new CMenuOptionChooser(services[i].name.c_str(), &services[i].enabled, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, items[i], CRCInput::convertDigitToKey(shortcut++), "")); + CMenuOptionChooser * mc = new CMenuOptionChooser(services[i].name.c_str(), &services[i].enabled, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, items[i], CRCInput::convertDigitToKey(shortcut++), ""); + mc->setHint(services[i].icon, services[i].hint); + setup->addItem(mc); } int res = setup->exec (NULL, ""); From cfc377b76e425218f08b0f4881bb528ac3abe912 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Sun, 8 Jul 2012 21:40:18 +0400 Subject: [PATCH 016/317] gui/osdlang_setup.cpp: add menu hints --- src/gui/osdlang_setup.cpp | 89 ++++++++++++++++++++++----------------- 1 file changed, 51 insertions(+), 38 deletions(-) diff --git a/src/gui/osdlang_setup.cpp b/src/gui/osdlang_setup.cpp index 7561fc2b0..5e07e270c 100644 --- a/src/gui/osdlang_setup.cpp +++ b/src/gui/osdlang_setup.cpp @@ -56,7 +56,7 @@ COsdLangSetup::COsdLangSetup(bool wizard_mode) { is_wizard = wizard_mode; - + width = w_max (45, 10); } @@ -72,8 +72,8 @@ int COsdLangSetup::exec(CMenuTarget* parent, const std::string &/*actionKey*/) parent->hide(); int res = showLocalSetup(); - - return res; + + return res; } //show international settings menu @@ -82,28 +82,34 @@ int COsdLangSetup::showLocalSetup() //main local setup CMenuWidget *localSettings = new CMenuWidget(LOCALE_MAINSETTINGS_HEAD, NEUTRINO_ICON_LANGUAGE, width, MN_WIDGET_ID_LANGUAGESETUP); localSettings->setWizardMode(is_wizard); - + //add subhead and back button localSettings->addIntroItems(LOCALE_LANGUAGESETUP_HEAD); - + //language setup CMenuWidget osdl_setup(LOCALE_LANGUAGESETUP_OSD, NEUTRINO_ICON_LANGUAGE, width, MN_WIDGET_ID_LANGUAGESETUP_LOCALE); showLanguageSetup(&osdl_setup); - localSettings->addItem(new CMenuForwarder(LOCALE_LANGUAGESETUP_OSD, true, NULL, &osdl_setup, NULL, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED)); - + + CMenuForwarder * mf = new CMenuForwarder(LOCALE_LANGUAGESETUP_OSD, true, NULL, &osdl_setup, NULL, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED); + mf->setHint("", LOCALE_MENU_HINT_OSD_LANGUAGE); + localSettings->addItem(mf); + //timezone setup CMenuOptionStringChooser* tzSelect = getTzItems(); if (tzSelect != NULL) localSettings->addItem(tzSelect); - + //prefered audio language CLangSelectNotifier *langNotifier = new CLangSelectNotifier(); CMenuWidget prefMenu(LOCALE_AUDIOMENU_PREF_LANGUAGES, NEUTRINO_ICON_LANGUAGE, width, MN_WIDGET_ID_LANGUAGESETUP_PREFAUDIO_LANGUAGE); //call menue for prefered audio languages showPrefMenu(&prefMenu, langNotifier); - localSettings->addItem(new CMenuForwarder(LOCALE_AUDIOMENU_PREF_LANGUAGES, true, NULL, &prefMenu, NULL, CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW)); + + mf = new CMenuForwarder(LOCALE_AUDIOMENU_PREF_LANGUAGES, true, NULL, &prefMenu, NULL, CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW); + mf->setHint("", LOCALE_MENU_HINT_LANG_PREF); + localSettings->addItem(mf); //langNotifier->changeNotify(NONEXISTANT_LOCALE, NULL); - + int res = localSettings->exec(NULL, ""); delete localSettings; delete langNotifier; @@ -117,15 +123,16 @@ CMenuOptionStringChooser* COsdLangSetup::getTzItems() xmlDocPtr parser = parseXmlFile("/etc/timezone.xml"); CMenuOptionStringChooser* tzSelect = NULL; - if (parser != NULL) + if (parser != NULL) { tzSelect = new CMenuOptionStringChooser(LOCALE_MAINSETTINGS_TIMEZONE, g_settings.timezone, true, new CTZChangeNotifier(), CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN, true); + tzSelect->setHint("", LOCALE_MENU_HINT_TIMEZONE); xmlNodePtr search = xmlDocGetRootElement(parser)->xmlChildrenNode; bool found = false; - - while (search) + + while (search) { - if (!strcmp(xmlGetName(search), "zone")) + if (!strcmp(xmlGetName(search), "zone")) { std::string name = xmlGetAttribute(search, "name"); // std::string zone = xmlGetAttribute(search, "zone"); @@ -135,16 +142,16 @@ CMenuOptionStringChooser* COsdLangSetup::getTzItems() } search = search->xmlNextNode; } - + if (!found) - { + { delete tzSelect; tzSelect = NULL; } - + xmlFreeDoc(parser); } - + return tzSelect; } @@ -156,23 +163,23 @@ void COsdLangSetup::showLanguageSetup(CMenuWidget *osdl_setup) int n; // printf("scanning locale dir now....(perhaps)\n"); char *pfad[] = {(char *) DATADIR "/neutrino/locale",(char *) "/var/tuxbox/config/locale"}; - + osdl_setup->addIntroItems(); - for (int p = 0; p < 2; p++) + for (int p = 0; p < 2; p++) { n = scandir(pfad[p], &namelist, 0, alphasort); - if (n < 0) + if (n < 0) { perror("loading locales: scandir"); - } - else + } + else { - for (int count=0; countd_name; char * pos = strstr(locale, ".locale"); - if (pos != NULL) + if (pos != NULL) { *pos = '\0'; CMenuOptionLanguageChooser* oj = new CMenuOptionLanguageChooser((char*)locale, this, locale); @@ -192,27 +199,33 @@ void COsdLangSetup::showPrefMenu(CMenuWidget *prefMenu, CLangSelectNotifier *lan prefMenu->addItem(GenericMenuBack); prefMenu->addItem(new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_AUDIOMENU_PREF_LANG_HEAD)); - prefMenu->addItem(new CMenuOptionChooser(LOCALE_AUDIOMENU_AUTO_LANG, &g_settings.auto_lang, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, NULL)); - - for(int i = 0; i < 3; i++) + CMenuOptionChooser * mc = new CMenuOptionChooser(LOCALE_AUDIOMENU_AUTO_LANG, &g_settings.auto_lang, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, NULL); + mc->setHint("", LOCALE_MENU_HINT_AUTO_LANG); + prefMenu->addItem(mc); + + for(int i = 0; i < 3; i++) { CMenuOptionStringChooser * langSelect = new CMenuOptionStringChooser(LOCALE_AUDIOMENU_PREF_LANG, g_settings.pref_lang[i], true, langNotifier, CRCInput::convertDigitToKey(i+1), "", true); + langSelect->setHint("", LOCALE_MENU_HINT_PREF_LANG); langSelect->addOption("none"); std::map::const_iterator it; - for(it = iso639rev.begin(); it != iso639rev.end(); ++it) + for(it = iso639rev.begin(); it != iso639rev.end(); ++it) langSelect->addOption(it->first.c_str()); prefMenu->addItem(langSelect); } prefMenu->addItem(new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_AUDIOMENU_PREF_SUBS_HEAD)); - prefMenu->addItem(new CMenuOptionChooser(LOCALE_AUDIOMENU_AUTO_SUBS, &g_settings.auto_subs, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, NULL)); - for(int i = 0; i < 3; i++) + mc = new CMenuOptionChooser(LOCALE_AUDIOMENU_AUTO_SUBS, &g_settings.auto_subs, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, NULL); + mc->setHint("", LOCALE_MENU_HINT_AUTO_SUBS); + prefMenu->addItem(mc); + for(int i = 0; i < 3; i++) { CMenuOptionStringChooser * langSelect = new CMenuOptionStringChooser(LOCALE_AUDIOMENU_PREF_SUBS, g_settings.pref_subs[i], true, NULL, CRCInput::convertDigitToKey(i+4), "", true); + langSelect->setHint("", LOCALE_MENU_HINT_PREF_SUBS); std::map::const_iterator it; langSelect->addOption("none"); - for(it = iso639rev.begin(); it != iso639rev.end(); ++it) + for(it = iso639rev.begin(); it != iso639rev.end(); ++it) langSelect->addOption(it->first.c_str()); prefMenu->addItem(langSelect); @@ -236,16 +249,16 @@ bool CLangSelectNotifier::changeNotify(const neutrino_locale_t, void *) std::map::const_iterator it; //prefered audio languages - for(int i = 0; i < 3; i++) + for(int i = 0; i < 3; i++) { - if(strlen(g_settings.pref_lang[i]) && strcmp(g_settings.pref_lang[i], "none")) + if(strlen(g_settings.pref_lang[i]) && strcmp(g_settings.pref_lang[i], "none")) { printf("setLanguages: %d: %s\n", i, g_settings.pref_lang[i]); - + std::string temp(g_settings.pref_lang[i]); - for(it = iso639.begin(); it != iso639.end(); ++it) + for(it = iso639.begin(); it != iso639.end(); ++it) { - if(temp == it->second) + if(temp == it->second) { v_languages.push_back(it->first); printf("setLanguages: adding %s\n", it->first.c_str()); @@ -256,6 +269,6 @@ bool CLangSelectNotifier::changeNotify(const neutrino_locale_t, void *) } //if(found) sectionsd_set_languages(v_languages); - + return false; } From 1bec7c4a7b6a50a621f565451fb0138504f95dbd Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Sun, 8 Jul 2012 21:40:29 +0400 Subject: [PATCH 017/317] gui/parentallock_setup.cpp: add menu hints --- src/gui/parentallock_setup.cpp | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/gui/parentallock_setup.cpp b/src/gui/parentallock_setup.cpp index a4b6981c8..9d07acf78 100644 --- a/src/gui/parentallock_setup.cpp +++ b/src/gui/parentallock_setup.cpp @@ -56,10 +56,10 @@ int CParentalSetup::exec(CMenuTarget* parent, const std::string &/*actionKey*/) if (parent) parent->hide(); - + if (check()) showParentalSetup(); - + return res; } @@ -99,12 +99,19 @@ void CParentalSetup::showParentalSetup() // intros plock->addIntroItems(); - plock->addItem(new CMenuOptionChooser(LOCALE_PARENTALLOCK_PROMPT , &g_settings.parentallock_prompt , PARENTALLOCK_PROMPT_OPTIONS, PARENTALLOCK_PROMPT_OPTION_COUNT , !parentallocked)); + CMenuOptionChooser * mc; + mc = new CMenuOptionChooser(LOCALE_PARENTALLOCK_PROMPT , &g_settings.parentallock_prompt , PARENTALLOCK_PROMPT_OPTIONS, PARENTALLOCK_PROMPT_OPTION_COUNT , !parentallocked); + mc->setHint("", LOCALE_MENU_HINT_PARENTALLOCK_PROMPT); + plock->addItem(mc); - plock->addItem(new CMenuOptionChooser(LOCALE_PARENTALLOCK_LOCKAGE, &g_settings.parentallock_lockage, PARENTALLOCK_LOCKAGE_OPTIONS, PARENTALLOCK_LOCKAGE_OPTION_COUNT, !parentallocked)); + mc = new CMenuOptionChooser(LOCALE_PARENTALLOCK_LOCKAGE, &g_settings.parentallock_lockage, PARENTALLOCK_LOCKAGE_OPTIONS, PARENTALLOCK_LOCKAGE_OPTION_COUNT, !parentallocked); + mc->setHint("", LOCALE_MENU_HINT_PARENTALLOCK_LOCKAGE); + plock->addItem(mc); CPINChangeWidget pinChangeWidget(LOCALE_PARENTALLOCK_CHANGEPIN, g_settings.parentallock_pincode, 4, LOCALE_PARENTALLOCK_CHANGEPIN_HINT1); - plock->addItem( new CMenuForwarder(LOCALE_PARENTALLOCK_CHANGEPIN, true, g_settings.parentallock_pincode, &pinChangeWidget)); + CMenuForwarder * mf = new CMenuForwarder(LOCALE_PARENTALLOCK_CHANGEPIN, true, g_settings.parentallock_pincode, &pinChangeWidget); + mf->setHint("", LOCALE_MENU_HINT_PARENTALLOCK_CHANGEPIN); + plock->addItem(mf); plock->exec(NULL, ""); delete plock; From 1e411cdafd8d63710a874a8147976a5d2496797e Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Sun, 8 Jul 2012 21:40:49 +0400 Subject: [PATCH 018/317] gui/personalize.cpp: copy hint fields --- src/gui/personalize.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gui/personalize.cpp b/src/gui/personalize.cpp index 293deda61..b0a9e3729 100644 --- a/src/gui/personalize.cpp +++ b/src/gui/personalize.cpp @@ -807,7 +807,8 @@ void CPersonalizeGui::addPersonalizedItems() //convert item to locked forwarder and use generated pin mode for usage as ask parameter v_item[i].menuItem = new CLockedMenuForwarder(fw->getTextLocale(), g_settings.personalize_pincode, use_pin, fw->active, NULL, fw->getTarget(), fw->getActionKey().c_str(), d_key, fw->iconName.c_str(), lock_icon); - + v_item[i].menuItem->hintIcon = fw->hintIcon; + v_item[i].menuItem->hint = fw->hint; //add item if it's set to visible or pin protected and allow to add an forwarder as next if (v_item[i].menuItem->active && (p_mode != PERSONALIZE_MODE_NOTVISIBLE || i_mode == PERSONALIZE_SHOW_AS_ACCESS_OPTION)) { From 67097e440fe239ca234c792ae2513e32b28a17e6 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Sun, 8 Jul 2012 21:41:11 +0400 Subject: [PATCH 019/317] gui/zapit_setup.cpp: add menu hints --- src/gui/zapit_setup.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/gui/zapit_setup.cpp b/src/gui/zapit_setup.cpp index 117a70c03..12bb06ec4 100644 --- a/src/gui/zapit_setup.cpp +++ b/src/gui/zapit_setup.cpp @@ -67,12 +67,20 @@ void CZapitSetup::showMenu() zapit->addIntroItems(LOCALE_ZAPITSETUP_INFO); //zapit - zapit->addItem(new CMenuOptionChooser(LOCALE_ZAPITSETUP_LAST_USE, &g_settings.uselastchannel, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, this, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED)); + CMenuOptionChooser * mc = new CMenuOptionChooser(LOCALE_ZAPITSETUP_LAST_USE, &g_settings.uselastchannel, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, this, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED); + mc->setHint("", LOCALE_MENU_HINT_LAST_USE); + zapit->addItem(mc); CSelectChannelWidget select; zapit->addItem(GenericMenuSeparatorLine); - zapit->addItem(zapit1 = new CMenuForwarder(LOCALE_ZAPITSETUP_LAST_TV , !g_settings.uselastchannel, g_settings.StartChannelTV, &select, "tv", CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN )); - zapit->addItem(zapit2 = new CMenuForwarder(LOCALE_ZAPITSETUP_LAST_RADIO , !g_settings.uselastchannel, g_settings.StartChannelRadio, &select, "radio", CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW )); + + zapit1 = new CMenuForwarder(LOCALE_ZAPITSETUP_LAST_TV , !g_settings.uselastchannel, g_settings.StartChannelTV, &select, "tv", CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN ); + zapit1->setHint("", LOCALE_MENU_HINT_LAST_TV); + zapit->addItem(zapit1); + + zapit2 = new CMenuForwarder(LOCALE_ZAPITSETUP_LAST_RADIO , !g_settings.uselastchannel, g_settings.StartChannelRadio, &select, "radio", CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW ); + zapit2->setHint("", LOCALE_MENU_HINT_LAST_RADIO); + zapit->addItem(zapit2); zapit->exec(NULL, ""); delete zapit; From 642e523f1fd0fec600103d0abe84e6864abf46f6 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Sun, 8 Jul 2012 21:41:26 +0400 Subject: [PATCH 020/317] gui/record_setup.cpp: add menu hints --- src/gui/record_setup.cpp | 75 +++++++++++++++++++++++++++++----------- 1 file changed, 55 insertions(+), 20 deletions(-) diff --git a/src/gui/record_setup.cpp b/src/gui/record_setup.cpp index c294ec122..f9ba63afb 100644 --- a/src/gui/record_setup.cpp +++ b/src/gui/record_setup.cpp @@ -84,13 +84,13 @@ int CRecordSetup::exec(CMenuTarget* parent, const std::string &actionKey) ShowLocalizedMessage(LOCALE_SETTINGS_HELP, LOCALE_RECORDINGMENU_HELP, CMessageBox::mbrBack, CMessageBox::mbBack); return res; } - else if(actionKey == "recordingdir") + else if(actionKey == "recordingdir") { //parent->hide(); const char *action_str = "recordingdir"; if(chooserDir(g_settings.network_nfs_recordingdir, true, action_str, sizeof(g_settings.network_nfs_recordingdir)-1)){ printf("New recordingdir: %s (timeshift %s)\n", g_settings.network_nfs_recordingdir, g_settings.timeshiftdir); - if(strlen(g_settings.timeshiftdir) == 0) + if(strlen(g_settings.timeshiftdir) == 0) { sprintf(timeshiftDir, "%s/.timeshift", g_settings.network_nfs_recordingdir); safe_mkdir(timeshiftDir); @@ -100,27 +100,27 @@ int CRecordSetup::exec(CMenuTarget* parent, const std::string &actionKey) } return res; } - else if(actionKey == "timeshiftdir") + else if(actionKey == "timeshiftdir") { //parent->hide(); CFileBrowser b; b.Dir_Mode=true; - if (b.exec(g_settings.timeshiftdir)) + if (b.exec(g_settings.timeshiftdir)) { const char * newdir = b.getSelectedFile()->Name.c_str(); printf("New timeshift: selected %s\n", newdir); if(check_dir(newdir)) printf("Wrong/unsupported recording dir %s\n", newdir); - else + else { printf("New timeshift dir: old %s (record %s)\n", g_settings.timeshiftdir, g_settings.network_nfs_recordingdir); - if(strcmp(newdir, g_settings.network_nfs_recordingdir)) + if(strcmp(newdir, g_settings.network_nfs_recordingdir)) { printf("New timeshift != rec dir\n"); strncpy(g_settings.timeshiftdir, b.getSelectedFile()->Name.c_str(), sizeof(g_settings.timeshiftdir)-1); strcpy(timeshiftDir, g_settings.timeshiftdir); - } - else + } + else { sprintf(timeshiftDir, "%s/.timeshift", g_settings.network_nfs_recordingdir); strcpy(g_settings.timeshiftdir, newdir); @@ -169,26 +169,34 @@ const CMenuOptionChooser::keyval END_OF_RECORDING[END_OF_RECORDING_COUNT] = int CRecordSetup::showRecordSetup() { + CMenuForwarder * mf; //menue init - CMenuWidget* recordingSettings = new CMenuWidget(LOCALE_MAINSETTINGS_HEAD, NEUTRINO_ICON_SETTINGS, width, MN_WIDGET_ID_RECORDSETUP); //apply settings recordingSettings->addIntroItems(LOCALE_MAINSETTINGS_RECORDING); - recordingSettings->addItem(new CMenuForwarder(LOCALE_RECORDINGMENU_SETUPNOW, true, NULL, this, "recording", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED)); + mf = new CMenuForwarder(LOCALE_RECORDINGMENU_SETUPNOW, true, NULL, this, "recording", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED); + mf->setHint("", LOCALE_MENU_HINT_RECORD_APPLY); + recordingSettings->addItem(mf); recordingSettings->addItem(GenericMenuSeparatorLine); //record dir CMenuForwarder* fRecDir = new CMenuForwarder(LOCALE_RECORDINGMENU_DEFDIR, true, g_settings.network_nfs_recordingdir, this, "recordingdir"); + fRecDir->setHint("", LOCALE_MENU_HINT_RECORD_DIR); recordingSettings->addItem(fRecDir); + CMenuOptionChooser* channel_rec_dir = new CMenuOptionChooser(LOCALE_RECORDINGMENU_SAVE_IN_CHANNELDIR, &g_settings.recording_save_in_channeldir, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); + channel_rec_dir->setHint("", LOCALE_MENU_HINT_RECORD_CHANDIR); recordingSettings->addItem(channel_rec_dir); //rec hours - recordingSettings->addItem(new CMenuOptionNumberChooser(LOCALE_EXTRA_RECORD_TIME, &g_settings.record_hours, true, 1, 24, NULL) ); + CMenuOptionNumberChooser * mc = new CMenuOptionNumberChooser(LOCALE_EXTRA_RECORD_TIME, &g_settings.record_hours, true, 1, 24, NULL); + mc->setHint("", LOCALE_MENU_HINT_RECORD_TIME); + recordingSettings->addItem(mc); // end of recording CMenuOptionChooser* end_of_recording = new CMenuOptionChooser(LOCALE_RECORDINGMENU_END_OF_RECORDING_NAME, &g_settings.recording_epg_for_end, END_OF_RECORDING, END_OF_RECORDING_COUNT, true); + end_of_recording->setHint("", LOCALE_MENU_HINT_RECORD_END); recordingSettings->addItem(end_of_recording); //template @@ -199,17 +207,23 @@ int CRecordSetup::showRecordSetup() //timeshift CMenuWidget recordingTsSettings(LOCALE_MAINSETTINGS_RECORDING, NEUTRINO_ICON_SETTINGS, width, MN_WIDGET_ID_RECORDSETUP_TIMESHIFT); showRecordTimeShiftSetup(&recordingTsSettings); - recordingSettings->addItem(new CMenuForwarder(LOCALE_RECORDINGMENU_TIMESHIFT, true, NULL, &recordingTsSettings, NULL, CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN)); + mf = new CMenuForwarder(LOCALE_RECORDINGMENU_TIMESHIFT, true, NULL, &recordingTsSettings, NULL, CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN); + mf->setHint("", LOCALE_MENU_HINT_RECORD_TIMESHIFT); + recordingSettings->addItem(mf); //timersettings CMenuWidget recordingTimerSettings(LOCALE_MAINSETTINGS_RECORDING, NEUTRINO_ICON_SETTINGS, width, MN_WIDGET_ID_RECORDSETUP_TIMERSETTINGS); showRecordTimerSetup(&recordingTimerSettings); - recordingSettings->addItem(new CMenuForwarder(LOCALE_TIMERSETTINGS_SEPARATOR, true, NULL, &recordingTimerSettings, NULL, CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW)); + mf = new CMenuForwarder(LOCALE_TIMERSETTINGS_SEPARATOR, true, NULL, &recordingTimerSettings, NULL, CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW); + mf->setHint("", LOCALE_MENU_HINT_RECORD_TIMER); + recordingSettings->addItem(mf); //audiosettings CMenuWidget recordingaAudioSettings(LOCALE_MAINSETTINGS_RECORDING, NEUTRINO_ICON_SETTINGS, width, MN_WIDGET_ID_RECORDSETUP_AUDIOSETTINGS); showRecordAudioSetup(&recordingaAudioSettings); - recordingSettings->addItem(new CMenuForwarder(LOCALE_RECORDINGMENU_APIDS, true, NULL, &recordingaAudioSettings, NULL, CRCInput::RC_blue, NEUTRINO_ICON_BUTTON_BLUE)); + mf = new CMenuForwarder(LOCALE_RECORDINGMENU_APIDS, true, NULL, &recordingaAudioSettings, NULL, CRCInput::RC_blue, NEUTRINO_ICON_BUTTON_BLUE); + mf->setHint("", LOCALE_MENU_HINT_RECORD_APIDS); + recordingSettings->addItem(mf); int res = recordingSettings->exec(NULL, ""); delete recordingSettings; @@ -224,17 +238,22 @@ void CRecordSetup::showRecordTimerSetup(CMenuWidget *menu_timersettings) sprintf(g_settings.record_safety_time_before, "%02d", pre/60); sprintf(g_settings.record_safety_time_after, "%02d", post/60); - //start + //start CStringInput * timerBefore = new CStringInput(LOCALE_TIMERSETTINGS_RECORD_SAFETY_TIME_BEFORE, g_settings.record_safety_time_before, 2, LOCALE_TIMERSETTINGS_RECORD_SAFETY_TIME_BEFORE_HINT_1, LOCALE_TIMERSETTINGS_RECORD_SAFETY_TIME_BEFORE_HINT_2,"0123456789 ", this); CMenuForwarder *fTimerBefore = new CMenuDForwarder(LOCALE_TIMERSETTINGS_RECORD_SAFETY_TIME_BEFORE, true, g_settings.record_safety_time_before, timerBefore); + fTimerBefore->setHint("", LOCALE_MENU_HINT_RECORD_TIMEBEFORE); //end CStringInput * timerAfter = new CStringInput(LOCALE_TIMERSETTINGS_RECORD_SAFETY_TIME_AFTER, g_settings.record_safety_time_after, 2, LOCALE_TIMERSETTINGS_RECORD_SAFETY_TIME_AFTER_HINT_1, LOCALE_TIMERSETTINGS_RECORD_SAFETY_TIME_AFTER_HINT_2,"0123456789 ", this); CMenuForwarder *fTimerAfter = new CMenuDForwarder(LOCALE_TIMERSETTINGS_RECORD_SAFETY_TIME_AFTER, true, g_settings.record_safety_time_after, timerAfter); + fTimerAfter->setHint("", LOCALE_MENU_HINT_RECORD_TIMEAFTER); //announce CMenuOptionChooser* chzapAnnounce = new CMenuOptionChooser(LOCALE_RECORDINGMENU_ZAP_ON_ANNOUNCE, &g_settings.recording_zap_on_announce, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); + chzapAnnounce->setHint("", LOCALE_MENU_HINT_RECORD_ZAP); + CMenuOptionNumberChooser *chzapCorr = new CMenuOptionNumberChooser(LOCALE_MISCSETTINGS_ZAPTO_PRE_TIME, &g_settings.zapto_pre_time, true, 0, 10); + chzapCorr->setHint("", LOCALE_MENU_HINT_RECORD_ZAP_PRE_TIME); menu_timersettings->addIntroItems(LOCALE_TIMERSETTINGS_SEPARATOR); menu_timersettings->addItem(fTimerBefore); @@ -258,6 +277,10 @@ void CRecordSetup::showRecordAudioSetup(CMenuWidget *menu_audiosettings) CMenuOptionChooser* aoj2 = new CMenuOptionChooser(LOCALE_RECORDINGMENU_APIDS_ALT, &g_settings.recording_audio_pids_alt, MESSAGEBOX_NO_YES_OPTIONS, MESSAGEBOX_NO_YES_OPTION_COUNT, true, this); CMenuOptionChooser* aoj3 = new CMenuOptionChooser(LOCALE_RECORDINGMENU_APIDS_AC3, &g_settings.recording_audio_pids_ac3, MESSAGEBOX_NO_YES_OPTIONS, MESSAGEBOX_NO_YES_OPTION_COUNT, true, this); + aoj1->setHint("", LOCALE_MENU_HINT_RECORD_APID_STD); + aoj2->setHint("", LOCALE_MENU_HINT_RECORD_APID_ALT); + aoj3->setHint("", LOCALE_MENU_HINT_RECORD_APID_AC3); + menu_audiosettings->addIntroItems(LOCALE_RECORDINGMENU_APIDS); menu_audiosettings->addItem(aoj1); menu_audiosettings->addItem(aoj2); @@ -270,14 +293,26 @@ void CRecordSetup::showRecordTimeShiftSetup(CMenuWidget *menu_ts) //timeshift dir CMenuForwarder* fTsDir = new CMenuForwarder(LOCALE_RECORDINGMENU_TSDIR, true, g_settings.timeshiftdir, this, "timeshiftdir"); + fTsDir->setHint("", LOCALE_MENU_HINT_RECORD_TDIR); menu_ts->addItem(fTsDir); if (1) //has_hdd - { - menu_ts->addItem(new CMenuOptionChooser(LOCALE_EXTRA_TIMESHIFT_PAUSE, &g_settings.timeshift_pause, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); - menu_ts->addItem(new CMenuOptionNumberChooser(LOCALE_EXTRA_AUTO_TIMESHIFT, &g_settings.auto_timeshift, true, 0, 300, NULL)); - menu_ts->addItem(new CMenuOptionChooser(LOCALE_EXTRA_AUTO_DELETE, &g_settings.auto_delete, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); - menu_ts->addItem(new CMenuOptionChooser(LOCALE_EXTRA_TEMP_TIMESHIFT, &g_settings.temp_timeshift, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); + { + CMenuOptionChooser * mc = new CMenuOptionChooser(LOCALE_EXTRA_TIMESHIFT_PAUSE, &g_settings.timeshift_pause, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_RECORD_TIMESHIFT_PAUSE); + menu_ts->addItem(mc); + + CMenuOptionNumberChooser * mn = new CMenuOptionNumberChooser(LOCALE_EXTRA_AUTO_TIMESHIFT, &g_settings.auto_timeshift, true, 0, 300, NULL); + mn->setHint("", LOCALE_MENU_HINT_RECORD_TIMESHIFT_AUTO); + menu_ts->addItem(mn); + + mc = new CMenuOptionChooser(LOCALE_EXTRA_AUTO_DELETE, &g_settings.auto_delete, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_RECORD_TIMESHIFT_DELETE); + menu_ts->addItem(mc); + + mc = new CMenuOptionChooser(LOCALE_EXTRA_TEMP_TIMESHIFT, &g_settings.temp_timeshift, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_RECORD_TIMESHIFT_TEMP); + menu_ts->addItem(mc); } } From 3542d2d79d6ca9e888b6f50ae3daf1bd0ae01e76 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Sun, 8 Jul 2012 21:41:43 +0400 Subject: [PATCH 021/317] gui/proxyserver_setup.cpp: add menu hints --- src/gui/proxyserver_setup.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/gui/proxyserver_setup.cpp b/src/gui/proxyserver_setup.cpp index 55b98bb70..38c8990b3 100644 --- a/src/gui/proxyserver_setup.cpp +++ b/src/gui/proxyserver_setup.cpp @@ -81,13 +81,19 @@ int CProxySetup::showProxySetup() mn->addIntroItems(subtitle); CStringInputSMS softUpdate_proxy(LOCALE_FLASHUPDATE_PROXYSERVER, g_settings.softupdate_proxyserver, 23, LOCALE_FLASHUPDATE_PROXYSERVER_HINT1, LOCALE_FLASHUPDATE_PROXYSERVER_HINT2, "abcdefghijklmnopqrstuvwxyz0123456789-.: "); - mn->addItem(new CMenuForwarder(LOCALE_FLASHUPDATE_PROXYSERVER, true, g_settings.softupdate_proxyserver, &softUpdate_proxy, NULL, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED)); + CMenuForwarder * mf = new CMenuForwarder(LOCALE_FLASHUPDATE_PROXYSERVER, true, g_settings.softupdate_proxyserver, &softUpdate_proxy, NULL, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED); + mf->setHint("", LOCALE_MENU_HINT_NET_PROXYSERVER); + mn->addItem(mf); CStringInputSMS softUpdate_proxyuser(LOCALE_FLASHUPDATE_PROXYUSERNAME, g_settings.softupdate_proxyusername, 23, LOCALE_FLASHUPDATE_PROXYUSERNAME_HINT1, LOCALE_FLASHUPDATE_PROXYUSERNAME_HINT2, "abcdefghijklmnopqrstuvwxyz0123456789!""§$%&/()=?-. "); - mn->addItem(new CMenuForwarder(LOCALE_FLASHUPDATE_PROXYUSERNAME, true, g_settings.softupdate_proxyusername, &softUpdate_proxyuser, NULL, CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN)); + mf = new CMenuForwarder(LOCALE_FLASHUPDATE_PROXYUSERNAME, true, g_settings.softupdate_proxyusername, &softUpdate_proxyuser, NULL, CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN); + mf->setHint("", LOCALE_MENU_HINT_NET_PROXYUSER); + mn->addItem(mf); CStringInputSMS softUpdate_proxypass(LOCALE_FLASHUPDATE_PROXYPASSWORD, g_settings.softupdate_proxypassword, 20, LOCALE_FLASHUPDATE_PROXYPASSWORD_HINT1, LOCALE_FLASHUPDATE_PROXYPASSWORD_HINT2, "abcdefghijklmnopqrstuvwxyz0123456789!""§$%&/()=?-. "); - mn->addItem(new CMenuForwarder(LOCALE_FLASHUPDATE_PROXYPASSWORD, true, g_settings.softupdate_proxypassword, &softUpdate_proxypass, NULL, CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW)); + mf = new CMenuForwarder(LOCALE_FLASHUPDATE_PROXYPASSWORD, true, g_settings.softupdate_proxypassword, &softUpdate_proxypass, NULL, CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW); + mf->setHint("", LOCALE_MENU_HINT_NET_PROXYPASS); + mn->addItem(mf); int res = mn->exec(NULL, ""); delete mn; From 646ac551d0ffe2aaa8171bce2a96d0d47710f3f7 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Sun, 8 Jul 2012 21:48:22 +0400 Subject: [PATCH 022/317] gui/osd_setup.cpp: add menu hints, incomplete - work in progress --- src/gui/osd_setup.cpp | 66 ++++++++++++++++++++++++++++++++++--------- 1 file changed, 52 insertions(+), 14 deletions(-) diff --git a/src/gui/osd_setup.cpp b/src/gui/osd_setup.cpp index e58bd173a..b338a5cd1 100644 --- a/src/gui/osd_setup.cpp +++ b/src/gui/osd_setup.cpp @@ -393,12 +393,16 @@ int COsdSetup::showOsdSetup() //item menu colors showOsdMenueColorSetup(&osd_menu_colors); - osd_menu->addItem(new CMenuForwarder(LOCALE_COLORMENU_MENUCOLORS, true, NULL, &osd_menu_colors, NULL, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED)); + CMenuForwarder * mf = new CMenuForwarder(LOCALE_COLORMENU_MENUCOLORS, true, NULL, &osd_menu_colors, NULL, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED); + mf->setHint("", LOCALE_MENU_HINT_COLORS); + osd_menu->addItem(mf); //fonts CMenuWidget osd_menu_fonts(LOCALE_MAINMENU_SETTINGS, NEUTRINO_ICON_COLORS, width, MN_WIDGET_ID_OSDSETUP_FONT); showOsdFontSizeSetup(&osd_menu_fonts); - osd_menu->addItem(new CMenuForwarder(LOCALE_FONTMENU_HEAD, true, NULL, &osd_menu_fonts, NULL, CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN)); + mf = new CMenuForwarder(LOCALE_FONTMENU_HEAD, true, NULL, &osd_menu_fonts, NULL, CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN); + mf->setHint("", LOCALE_MENU_HINT_FONTS); + osd_menu->addItem(mf); //timeouts CMenuWidget osd_menu_timing(LOCALE_MAINMENU_SETTINGS, NEUTRINO_ICON_SETTINGS, width, MN_WIDGET_ID_OSDSETUP_TIMEOUT); @@ -452,7 +456,9 @@ void COsdSetup::showOsdMenueColorSetup(CMenuWidget *menu_colors) { menu_colors->addIntroItems(LOCALE_COLORMENU_MENUCOLORS); - menu_colors->addItem( new CMenuDForwarder(LOCALE_COLORMENU_THEMESELECT, true, NULL, new CThemes(), NULL, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED) ); + CMenuForwarder * mf = new CMenuDForwarder(LOCALE_COLORMENU_THEMESELECT, true, NULL, new CThemes(), NULL, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED); + mf->setHint("", LOCALE_MENU_HINT_THEME); + menu_colors->addItem(mf); CColorChooser* chHeadcolor = new CColorChooser(LOCALE_COLORMENU_BACKGROUND, &g_settings.menu_Head_red, &g_settings.menu_Head_green, &g_settings.menu_Head_blue, &g_settings.menu_Head_alpha, colorSetupNotifier); @@ -470,18 +476,43 @@ void COsdSetup::showOsdMenueColorSetup(CMenuWidget *menu_colors) &g_settings.menu_Content_inactive_alpha, colorSetupNotifier); CColorChooser* chContentInactiveTextcolor = new CColorChooser(LOCALE_COLORMENU_TEXTCOLOR, &g_settings.menu_Content_inactive_Text_red, &g_settings.menu_Content_inactive_Text_green, &g_settings.menu_Content_inactive_Text_blue, NULL, colorSetupNotifier); + menu_colors->addItem( new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_COLORMENUSETUP_MENUHEAD)); - menu_colors->addItem( new CMenuDForwarder(LOCALE_COLORMENU_BACKGROUND, true, NULL, chHeadcolor )); - menu_colors->addItem( new CMenuDForwarder(LOCALE_COLORMENU_TEXTCOLOR, true, NULL, chHeadTextcolor )); + + mf = new CMenuDForwarder(LOCALE_COLORMENU_BACKGROUND, true, NULL, chHeadcolor ); + mf->setHint("", LOCALE_MENU_HINT_HEAD_BACKGROUND); + menu_colors->addItem(mf); + + mf = new CMenuDForwarder(LOCALE_COLORMENU_TEXTCOLOR, true, NULL, chHeadTextcolor ); + mf->setHint("", LOCALE_MENU_HINT_HEAD_TEXTCOLOR); + menu_colors->addItem(mf); + menu_colors->addItem( new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_COLORMENUSETUP_MENUCONTENT)); - menu_colors->addItem( new CMenuDForwarder(LOCALE_COLORMENU_BACKGROUND, true, NULL, chContentcolor )); - menu_colors->addItem( new CMenuDForwarder(LOCALE_COLORMENU_TEXTCOLOR, true, NULL, chContentTextcolor )); + mf = new CMenuDForwarder(LOCALE_COLORMENU_BACKGROUND, true, NULL, chContentcolor ); + mf->setHint("", LOCALE_MENU_HINT_CONTENT_BACKGROUND); + menu_colors->addItem(mf); + + mf = new CMenuDForwarder(LOCALE_COLORMENU_TEXTCOLOR, true, NULL, chContentTextcolor ); + mf->setHint("", LOCALE_MENU_HINT_CONTENT_TEXTCOLOR); + menu_colors->addItem(mf); + menu_colors->addItem( new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_COLORMENUSETUP_MENUCONTENT_INACTIVE)); - menu_colors->addItem( new CMenuDForwarder(LOCALE_COLORMENU_BACKGROUND, true, NULL, chContentInactivecolor )); - menu_colors->addItem( new CMenuDForwarder(LOCALE_COLORMENU_TEXTCOLOR, true, NULL, chContentInactiveTextcolor)); + mf = new CMenuDForwarder(LOCALE_COLORMENU_BACKGROUND, true, NULL, chContentInactivecolor ); + mf->setHint("", LOCALE_MENU_HINT_INACTIVE_BACKGROUND); + menu_colors->addItem(mf); + + mf = new CMenuDForwarder(LOCALE_COLORMENU_TEXTCOLOR, true, NULL, chContentInactiveTextcolor); + mf->setHint("", LOCALE_MENU_HINT_INACTIVE_TEXTCOLOR); + menu_colors->addItem(mf); + menu_colors->addItem( new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_COLORMENUSETUP_MENUCONTENT_SELECTED)); - menu_colors->addItem( new CMenuDForwarder(LOCALE_COLORMENU_BACKGROUND, true, NULL, chContentSelectedcolor )); - menu_colors->addItem( new CMenuDForwarder(LOCALE_COLORMENU_TEXTCOLOR, true, NULL, chContentSelectedTextcolor )); + mf = new CMenuDForwarder(LOCALE_COLORMENU_BACKGROUND, true, NULL, chContentSelectedcolor ); + mf->setHint("", LOCALE_MENU_HINT_SELECTED_BACKGROUND); + menu_colors->addItem(mf); + + mf = new CMenuDForwarder(LOCALE_COLORMENU_TEXTCOLOR, true, NULL, chContentSelectedTextcolor ); + mf->setHint("", LOCALE_MENU_HINT_SELECTED_TEXTCOLOR); + menu_colors->addItem(mf); CColorChooser* chInfobarcolor = new CColorChooser(LOCALE_COLORMENU_BACKGROUND, &g_settings.infobar_red, &g_settings.infobar_green, &g_settings.infobar_blue, &g_settings.infobar_alpha, colorSetupNotifier); @@ -489,14 +520,21 @@ void COsdSetup::showOsdMenueColorSetup(CMenuWidget *menu_colors) &g_settings.infobar_Text_green, &g_settings.infobar_Text_blue, NULL, colorSetupNotifier); menu_colors->addItem( new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_COLORSTATUSBAR_TEXT)); - menu_colors->addItem( new CMenuDForwarder(LOCALE_COLORMENU_BACKGROUND, true, NULL, chInfobarcolor )); - menu_colors->addItem( new CMenuDForwarder(LOCALE_COLORMENU_TEXTCOLOR, true, NULL, chInfobarTextcolor )); + mf = new CMenuDForwarder(LOCALE_COLORMENU_BACKGROUND, true, NULL, chInfobarcolor ); + mf->setHint("", LOCALE_MENU_HINT_INFOBAR_BACKGROUND); + menu_colors->addItem(mf); + + mf = new CMenuDForwarder(LOCALE_COLORMENU_TEXTCOLOR, true, NULL, chInfobarTextcolor ); + mf->setHint("", LOCALE_MENU_HINT_INFOBAR_TEXTCOLOR); + menu_colors->addItem(mf); CColorChooser* chColored_Events = new CColorChooser(LOCALE_COLORMENU_TEXTCOLOR, &g_settings.colored_events_red, &g_settings.colored_events_green, &g_settings.colored_events_blue, NULL, colorSetupNotifier); menu_colors->addItem( new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_MISCSETTINGS_INFOBAR_COLORED_EVENTS)); - menu_colors->addItem( new CMenuDForwarder(LOCALE_COLORMENU_TEXTCOLOR, true, NULL, chColored_Events )); + mf = new CMenuDForwarder(LOCALE_COLORMENU_TEXTCOLOR, true, NULL, chColored_Events ); + mf->setHint("", LOCALE_MENU_HINT_EVENT_TEXTCOLOR); + menu_colors->addItem(mf); } /* for font size setup */ From c0087745fbb9116f81827dc1e8f57e11f10f055c Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Sun, 8 Jul 2012 21:53:36 +0400 Subject: [PATCH 023/317] Some GPL icons for menu hints, incomplete --- data/icons/hint_aplay.png | Bin 0 -> 3109 bytes data/icons/hint_audio.png | Bin 0 -> 4837 bytes data/icons/hint_back.png | Bin 0 -> 2168 bytes data/icons/hint_bedit.png | Bin 0 -> 4081 bytes data/icons/hint_ci.png | Bin 0 -> 3678 bytes data/icons/hint_dboxinfo.png | Bin 0 -> 4476 bytes data/icons/hint_delete.png | Bin 0 -> 5479 bytes data/icons/hint_extended.png | Bin 0 -> 6756 bytes data/icons/hint_fileplay.png | Bin 0 -> 6724 bytes data/icons/hint_games.png | Bin 0 -> 4227 bytes data/icons/hint_hdd.png | Bin 0 -> 3370 bytes data/icons/hint_imageinfo.png | Bin 0 -> 5581 bytes data/icons/hint_inetradio.png | Bin 0 -> 5370 bytes data/icons/hint_info.png | Bin 0 -> 4197 bytes data/icons/hint_keys.png | Bin 0 -> 4835 bytes data/icons/hint_language.png | Bin 0 -> 6845 bytes data/icons/hint_manage.png | Bin 0 -> 3203 bytes data/icons/hint_media.png | Bin 0 -> 4124 bytes data/icons/hint_movie.png | Bin 0 -> 3983 bytes data/icons/hint_network.png | Bin 0 -> 4320 bytes data/icons/hint_osd.png | Bin 0 -> 4603 bytes data/icons/hint_personalize.png | Bin 0 -> 4940 bytes data/icons/hint_picview.png | Bin 0 -> 3175 bytes data/icons/hint_protection.png | Bin 0 -> 3040 bytes data/icons/hint_radiomode.png | Bin 0 -> 5046 bytes data/icons/hint_reboot.png | Bin 0 -> 3507 bytes data/icons/hint_recording.png | Bin 0 -> 3387 bytes data/icons/hint_reload.png | Bin 0 -> 6103 bytes data/icons/hint_save.png | Bin 0 -> 5299 bytes data/icons/hint_scan.png | Bin 0 -> 5989 bytes data/icons/hint_scripts.png | Bin 0 -> 5362 bytes data/icons/hint_service.png | Bin 0 -> 4285 bytes data/icons/hint_settings.png | Bin 0 -> 5132 bytes data/icons/hint_shutdown.png | Bin 0 -> 4089 bytes data/icons/hint_sleeptimer.png | Bin 0 -> 5190 bytes data/icons/hint_streaminfo.png | Bin 0 -> 5411 bytes data/icons/hint_swupdate.png | Bin 0 -> 6975 bytes data/icons/hint_timers.png | Bin 0 -> 7806 bytes data/icons/hint_tvmode.png | Bin 0 -> 5476 bytes data/icons/hint_vfd.png | Bin 0 -> 2084 bytes data/icons/hint_video.png | Bin 0 -> 2269 bytes 41 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 data/icons/hint_aplay.png create mode 100644 data/icons/hint_audio.png create mode 100644 data/icons/hint_back.png create mode 100644 data/icons/hint_bedit.png create mode 100644 data/icons/hint_ci.png create mode 100644 data/icons/hint_dboxinfo.png create mode 100644 data/icons/hint_delete.png create mode 100644 data/icons/hint_extended.png create mode 100644 data/icons/hint_fileplay.png create mode 100644 data/icons/hint_games.png create mode 100644 data/icons/hint_hdd.png create mode 100644 data/icons/hint_imageinfo.png create mode 100644 data/icons/hint_inetradio.png create mode 100644 data/icons/hint_info.png create mode 100644 data/icons/hint_keys.png create mode 100644 data/icons/hint_language.png create mode 100644 data/icons/hint_manage.png create mode 100644 data/icons/hint_media.png create mode 100644 data/icons/hint_movie.png create mode 100644 data/icons/hint_network.png create mode 100644 data/icons/hint_osd.png create mode 100644 data/icons/hint_personalize.png create mode 100644 data/icons/hint_picview.png create mode 100644 data/icons/hint_protection.png create mode 100644 data/icons/hint_radiomode.png create mode 100644 data/icons/hint_reboot.png create mode 100644 data/icons/hint_recording.png create mode 100644 data/icons/hint_reload.png create mode 100644 data/icons/hint_save.png create mode 100644 data/icons/hint_scan.png create mode 100644 data/icons/hint_scripts.png create mode 100644 data/icons/hint_service.png create mode 100644 data/icons/hint_settings.png create mode 100644 data/icons/hint_shutdown.png create mode 100644 data/icons/hint_sleeptimer.png create mode 100644 data/icons/hint_streaminfo.png create mode 100644 data/icons/hint_swupdate.png create mode 100644 data/icons/hint_timers.png create mode 100644 data/icons/hint_tvmode.png create mode 100644 data/icons/hint_vfd.png create mode 100644 data/icons/hint_video.png diff --git a/data/icons/hint_aplay.png b/data/icons/hint_aplay.png new file mode 100644 index 0000000000000000000000000000000000000000..a194a34f5d46feaca2e93974bcaef5a077d9b36b GIT binary patch literal 3109 zcmZ9O2UJtb7KQ^NBB5OfQdElc&_W0;bOZsV1rWptp+$(a5FiP?t0;o>-a#QqwSd$h zDi;9(k=|9>r5KbVP2W-PeRsWg)|%Pt%-P@UfA;K|b>b|{3|X1^nL!{BtFe*3C17Dc z8xteY+tTmd0t}<`B}09{0?*$0=5WBA#2eZ90oLeOyU^{S^>dJj*L4HzFCO%EBimJ_o^s@f3W|U6yla5ebTRZ*`{sHp%$pfWtHWF zDlcI;)T$gz6#jlPleL%O4d|g##NLHrI^KCa`C4ca#%>59!Dbgpe7-P*8yy*WEnU+> z;3S{CeM~`z&R?hT%b&hivXYYiI9)2HvD<91=Re5}-Q5cTnS;QQ>U{1}@BHBe?pm1$ z4*DSk_&Y6MGq}8>LN~cI%8?+OS`+sDa8KjM;a7vS-k8ABmD1}ng>;rEFywUK#KhI_ zG<~oc-^~j{>pXAsGf(jHN5=ZiuX@yecu4yU#uupMWt^ejafs@0)Riu^lmfpE}6lQ*&BQ2bI^0p=s`*AS$6HLg6fp% zxlQuLVj&AQGJLMeSOzP7zsd+jv)Ox)wnEHi%TB8E<8I9T_~K^t3cLYaJ$utV=P1wcQqOXOWJ4WcsR%+RNeHwv4(3VRQzbxkX)MI)^fzN+g57l$50UPYq?3$(+vz^7y+1LORWd5^BtMGX$3 zuF3JFrKN%56B6LT#2}jjbrPEa>W<|FrVbhnrm3m9wY}}TwLEy2sym0Ko?xNV)#-a0 z@$~E2p!KJt0yPv0)O|lh#DkZSLYdf37M=G`FlTx=6xTT~3GLcXxKQ%)qpwGDxIxgm z3cO<7>{H2oki%3nNuHIJRV?yHn>xPetUZ%%XlN_1fPe!_Zl9#%{h5~xp9+rAUwJn$ zKwY0~kjPS2&)cZZKJZFYJHrO3z3Ehln}|^k2ndL)w5^fr<_`pi=pF}cG{8?~a2p6u zYQs&rjFZbL6g{Snv9U2xyx-DWgJjVQhK3S!TzYfcK@}AhP9u-(fXdM;;s|Rmz^le{ z&Ke^o_QL#>({c=4qw|Hg@r=ot zqmF|_jXz90^;mB5M(d*>ES-hL#Zj(sU}De7XZQFNuirNk1!XFEq}!hm>VXfsLrjP8 z&C?n*>alXlo5jAIz@}b%*_csz;UwO+T06yglP}c(>6fe?)unxO-@6Ay{UTW{d@gO zm%wbdI(LH8NXeK{&0H_1k#oa9!Arlux~%V~Jk-ZyE|D9G`| zu4r7ge?Y(=iCxCxDUZ+%K&=9)DW}|_P?&`A$UI=flIp2o)8-m3LzM z2M54@DR+6~>)rYVfV40% z(63EAy_=B0b{M9uPTF{qVckC450-DCCW#m>udgo*+hP{(%C}__{M5-bp$vJ9c$UdT z>Ue9g3ZTi_#^&Ahbf2MMCHBlgG})R?)Jqox{Dap!J~#78(K% z8yYfV!8{X}?AlzgQgfF~A0M!@vZB!Fo=Kl}QxA{TC$c&k0!uye?XE!fS=iXV7p7)W z&Qbw}{H0q$B9QXj=}o8*$@<6S++!>0Q{V*WwAiVoU^=bl@6|H*C)EmQkKOtS-)Qs2 zN6cwxiDzfkpKa1QwdLb%hAgR^&i28dxI)&(6!NEM{)`L{i&#ren)U{bc#n6~V;Gf_;P~~J5TUa`1(sN+%Thne$xYJAv^siI$^UpD# zYmuc~XdUGEvm#BOz*q70Ez#IAyP4%J?#vsUhR!F?)xF%!e`HlgDvQ9rUaM?xrrQqf zm{p2Jm_82mH67aE!{3EBRhv^`UdM|EB}p4ob?or6i0nHAD=A!LLqb`Sk?Tb;WGmLD z#^GMEq_wTB`LYE?(7HUdg7EtFYhd5>&;7BQCSD_-S{a|RbvB;-phdb*vB=}R!)Phb1BfddPN!6N#XTpS%EL<|!+;`AGX zwxOfd_9bOyv1ARi@NjLQG}mU^3yefxP^lmh5s~=#_<`|pV+{c}GC6a8-YG;&(B9rY zMo)Nue}9b(TqaOy>Bkv^Yp2x?uFDC=zKI~C(WfQM^JTJj_sG{|`n)olXV9~XZf`$* zOw?xl=5iCMCn$F7qeJSZ$_Geb^=K6v|H_GlI+MVtO&)^uRAoDVDV$u)r%~72kY!Fs zfJAIHd*0s4PYUJ^l!w5K+fPdJnT#`kI__k8oe%Hkyi-MMwb6lnN0wlV^HDm7CvJ3Q zw6zuMiUa?YV*UnK{9OoGCx5K0E6{;}gsI6YD9FN9tzn8tm?{zhmxZYyVX*#ZwXgmG zetIH*QvjdEt_S`XP*AXjsUZkUFUur~v@g-ST8f>sRY*kMy)Puk>mhYcz*n35A!=ecvn9`6ur5xGMkM4DeEO zy3&8{0}O7ZSONgFGrF2;cb#Vk3PQX%EW>arPJ!E}W##bGMU zqJ_H5;!XBH}j7GJubL|sVA-+AT3Zx*5$!Dx5+n@IG$!)YmTKI`z! z`&V$F46mvveM#7T3V~~s`a>ro!?L>dhoq3cr`hja-Q@vd#my2nZ0F_ia{Pi6OhQd; zl!CA%XJaSA+Z^tPI--{Vbt}p)asQSBK=Nh42Q2#>dSl3Aq&Jl>_Z-VwW}N-T-Js@` zIO$CjEeC|6F;RjmsAjK%RqNEMIMmH-Ju_JA8hIS8x;8x4lrw=K47W#bHB`{Q9Ho%2 zB3&W6aJ^o$*F$^Ue-N_m(zfuYc(VQ7prMR`u>~`>sVPRaJ^V&T0Ar<9-*7Z>l&pa& z6KzvHz~W%8;-1fhecFtcau%{CJYqKqh(z-A_Suh(TiCI};6iTNqo26p_6DpeuVE=V z9KPOO?f^EG->jdHx#o5<$nUrDwG&pwxo4CAYJgr9~ru5gSK-AGvbm|XV4TQ8@T)=H}s=Bmnq7`Y; zM$Sil8xi#Fhg-xlp`k)mL2@IlvOB9*go;$PshG&?EkFawynEs#N9WfTyntnlm=~`q zF{Q_3YwvuxX^!S@N5p~zyo!Eh6mq`0n8c0K?MI7q7s=g#hBIq~6P^mkaMM%pl0vIq zRtewf2CY4Z(uN%Z*f>Wa(nhDubLh?)kjG1@jnq&jV3wJ#)H zEjPPQ4?vRs9({#4YnA&@Uw@Kq>Mb-ALtBt-iXAFalqczypSiam8875|N-zh7MiB}$ z_g8MW(N#y*>Zc?w+ z>Oke=6x?DQ)`gMsSltX?TG!*So9?m_P()~{>C<;}#@Qaf<>xvPd51y@Ins@iP0mqo zSO2;2MWHBh_0^OB&Ikl6v_2Z)oUM7zEz32l|K`#VAePMHibdY0P0kD5!WNF#w|Xw! zs&aMb1=H|a$GQ|S_NxmP4txZGK=s86-_G;m6+y+D(ACPMx!*CDUkhK?BpC~K%rc}K zcAhn?zW)B5k$c3S!@3RS?Z(Q6A&IMENIgXn!sV1R4-`%l>e{NVDHY|$-(oV4`gC!>dA_#JC8`$hy|F4bAFDG=uD%|`vsXyO#>VDR;pu$T!%&Q> z^_!V0^ajVf$&t4=`a037(@|)54;V^H$-$?x8*WC7MaPgRm-3_rDH$qp3v!;(FkFA2 z%O`A136G+sj=E1;yiktCK123dLT=yw@@L5N1s0oRP$*|zuZ1V&HipyDuyJR%i$r&s z6BQH`Y{2#U&^uk_%4SU~*nr(*;wnOqCNR}mW^n8$lm!>RzV_ip@@yQtRf0)Vy0K`l zyV(3Z#ARiTz1ypmM^)4YGps5sNF6LR7QpzWbRddM_DA?-(b)L7vEaj>UswWb5S`c5 zpARpqGI#XBpGVLX{QO8fSwCYuVca&~G`{?^mh9mK86!LryDlSF4}tv{8t#U^SNW0| zYtVI0d#Eu+eqE0zKmNku#tZb0Wyl3{2T4MlDubQED9IB`U2&&OL#M{W*^r=%<5gBx z)}L|g7S>;2WE(zMv`G7CnI83o_r*#R!NRV9S-CT937Y5XTL$ihi`@4Az@BpajH8e3cx^+IE&TEBHwjOHYX_d|&t>3lFRZ`Kp60TL-Y;+(RCOT*8$ zuGEr?f72x<>kZ@8uy#3H{F2O&i$r@YoyvuK1y7>}_x2!d*f?jtNK;Co<>fcVFi#$8 zb8l?;LE6)t>5^JzT$Cnomj+3!+~XI4s|pwVbx|PCZ9hgH7QU~ zU`JgB!J(1Uy&!MGu5_q3PN3&R#sMGu!IFS!gPB~jsKw0B185a?P#zo zwEWVe5}!-3VAEEZZ{stRET3)kv0V^*p-=vDbXbOC9VW>C&OP42CwE~1VezJcqioEI zS>ZT}Vl-d{@DiIXeCLJaLrW7gGYz@CE@9^GWz$c!gtEoimXL$JA}*Lx$;Z*-4&NV; zbD3l|0>pqMzc_ABaG9MGNqBu@k0X5hyO7fH8jN*{z1V-CPZ`)f&7Gs_46AZog39GC z599Hjn{JukDlP4&512RsIPV_EKP5?Wvs+Iqk#*laLl2wh^g%S#bUX3+miILtJEl}s zO+e9SYc6=1G~H&eNtWuLvu#II%|^MtRRpL<0M&Hwi+)B%>+$e4HIJU#2Ix6GonNW* zEf2Cr`;39Zp=j_li5EBzgR!irtVDi}BC}~N%)*l@`BE`38QnF1`Qom|L`NJ*7_ykraQ|- zjt)+1kVq!i`R-R)Lw|qYi# z=l0OL)5vFf`;|HHG7Kh#3UshvRCjuE0{e3uDp13S&GLp_UdgN} zkAKO)uz3GaavlHCJ|I7rGPfR-YRC3pA)E4`;&DRDB-Yc(+vg3f(W_d)-=d4jYGw$Y6^9C=+G#`?#ywj?OM zvl%049Y#L-&C7rR=jUa>j;odQW#;Ee{aQfF@M6h9{8_2{eRh9;|D$ts$HER108JTt zGtMKuU|^>oWZThWy{X1bL)>C1uIX+EUL&RBYlIHC zEj!u>D|O7agx%xSu6YZVk{&2+el~xBjgCQ|@HPGx+LhMocgR(j(nG+Kb9#L)Iz$_Z zV;Ia?Pj_=)a%xYi7`=Kk0ftq05f!A>>xUjwO=|8Qo)aY3&vxfE#?$e7c}5GN-)G4o=ygv z+()6?pFML!m*?x{WO!6zf{3;^$4^&m$q2562dD6Xy?U0ZAO_)&(7{buVKXKcwb#^==qT?dOtH@(41Df^k~9U-Ii(?3}R1K5S2p4LFb7 z#jbD2dNr9Cvh>~t4k}k9oq8=UJih&XY)pxZE`cXI)n*EQo=Olhx=0$-C|{QtThh;e zBCX(vb9(hUu`bA5){M6kTDO`g0H0fobgPfZoQLDOm=|X;ad+((c zg^ly>*1J}r(2JWU0?GsKSJjl83F|t$e zGt2N&si@Cy^jU+p}>v*pCjH|pEX7*~)V_vp|rTR(8>QLfU%?3ws zkwxJa4|E6L-5FxTXFWx8NEEKk&IYR6Za6Ayek<*v{yA{jkGl9M*xJOX3tq{V*pLMr z;AY*+(&=L5Dz=+Ge3t9T6GrtjQXwL_-=HQuA=)GOT{?kgJ;!P#`Ezh$Eo&z^`g2#$ z65|JMDcbqF!h@h8Mv0W=Kc|t!LdzFEXM00^*G>%O#Ga_wj(rp7rcbnENe=x*u(b~= z`N;LdGBT{45D~nN2v5&KS;0kKYD>jYhStc;iG3~S5EY9VlfAX8W&>ps-Q>vMtSM6> z1$XN8#J}Clo(^Bwq%^>X;(LTHP8*#R0uS~CYsjl>Hc7D!i?N{Jr>sYc^<5#W6KMbQ zo1D*Vmpg~K^O!!3m+w|nVYmuJ8PQ~CjL=xi>C;HId6M>-p!n|z<#z4-(;r6mz(m08$W$f|#VFn567oNjVq<3X_o$ zgUG`mkbvAl?f(LQov?qYD?kz=29Xq#lD&K7mWIHjrT+zF4iIfdyq<3ChC7p{yz3dfT4eYryJspk?ilQ1DXFlur)W;|8L2Gfq~*K_MRSM pt}Y%<;#Y-Bc=>ofM%w%NN_hN(O9b40|F@9^(A6^3tWvj&`VZ|g?X>^^ literal 0 HcmV?d00001 diff --git a/data/icons/hint_back.png b/data/icons/hint_back.png new file mode 100644 index 0000000000000000000000000000000000000000..de287510586ec33bbf4963b12fe43427727dd7c7 GIT binary patch literal 2168 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 Opm*!8cD1J6)Bga#*M+(O literal 0 HcmV?d00001 diff --git a/data/icons/hint_ci.png b/data/icons/hint_ci.png new file mode 100644 index 0000000000000000000000000000000000000000..f63b477b9c2315f7a0247e5fc2800d18134aa11a GIT binary patch literal 3678 zcmV-k4x#ahP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyi6 z4jmPwh|Z1x01e(rL_t(&-tC!rbX0Yg$3MUKYE31TrLsT>n}&pth(rlXK!PG_Ko+&d zrDd3=73NnxpO;gi zmmR6U9-ywq`;-5xTqw|`#nk{52L)CzPkX96xUoh5BUAf7>(gnIO|O9tzCthCgMSg)3y{s2u^M%DJ4=O0bw?)iyaQf z(=o9@`aj$QQnn~YV>ke99&eeZi9te0(F68}FDXx0wug*BNPND)ztz^(7Dy=#rw8|W zBcSWe0Q_lfX?ptHzg52aR#vMJB90!TawhA4>jm*G2?QX}G%+MUx56zDV*!qo9zTCu zsIpV1e~`j|eqNCF@#g$}fo`wVBx2U(kxUqodJ5oo!Jq#53|R|6f-Wpp|SQ=B8$9YHF!(YNDq0TM6-9BBx&y z^wbMYlamVbE3?iyfp;IB$OFr_tt_b1=3A_G{ECW(f^INj4i3WW^YtaYlYtw$lio{n%JkQB&Ltyp}F($ceRrc6G}rv3;DiKvNmtU5oAIY0zKfv?+?({>cJlf z5ENuZ>JllCLI`0pDSsQ15_fk)eJg$99KTEpJ@v*GuDd+G&-{0Hm9=^`b8oFl=B#~1 z2u&m9(#x=iIq2nx;&_b>Du8xx-P$a{N=y1I39gvZH& zwXX{4_mh~ILT2U^MvoXtx$_8daecXG)_v5}xhW{Dz?`$4){rnv-ZmzUNoMLr!AMQg zDNN`HG-*K7jhI5BcrLq)tS@&8qgA{#IH~uf(h~O%z@L=|UR=4GM`olm@73%fJ4)R} zdS|z^dz>PF^E(LDz{t^8Fe!5id3kyGeH~cL!Q67o?Nn7CXWiOW42+1R?`0z}8zhn8 z(e&*Tg@Ryr?qNPU=%!mWV$vi+0d$Ebgfw+Eial@56Wh0xk})yim-PdW%t+^jk9UpV zURaawYwIM$oi7e<{Qy*zyJpRyqO6>z#ztI~6%6Pf&(x`ta8|i!syj|&OBClM%U=#k*_U)eN! z#jdh#s^&8URqZ8z=W6tT#_W3^BtI{QDO0DBoxPFaBStW4nBen zWymlhLhVGwM4qgsNCYN>N@a@|p%_UuxWHW^X(;B3q2YgiY0gd8zrE?}zl+cC_r6@c z`!JV8Dm=P0>ksSmj{h-C1W>B>P_#cAlf}xw0SUwp8cai74cS{ZGi}<9T$VPR=9UJU z+q)<@m`CQdnfQG^>>*a7qN2W)%qOh3Iqw*s9B`5mt&`K%oAlJsHqqu0Ly9nF?4TX|x^ zlf?GvOH)%jo|Z;xYa1DQ$uK}8I5>pZ*k0(m-lN2%L=mv^8z);2RWmLsKw*bfjz|d; z1EU5Ee0bXIriITg{a?ZVXb?a5{th0WIgU9mW-Z=-#Ql`j*Cktuwu*|9T+k(BugWAP zDG8I=!Y3;}X71bviS5&$)>aS4Ya1vm$Y)&oaO@#b*lZ@k!o%6Hego5{P6Z)Q6+u>R zCE0luq&d1N^#wCJC8l)I@2*Z0LbRSuW;`Rs$7hb?;lFHpW_NMjQ=w?`H);JvdxI0z zXk=JwDw8H&&FVFuu=cYRELpq+ha(10ODolNHI$T=aOJowv4uFWhg#^{w;zj_EWu{8 zareEmF&I?V9dNSsU(tdZaiv+OXf3u(iCVd9oRedot5SwB16r+f7ST3&Yb!Qd@J3?5&%5{`qAn z27y1|r>OWab+v9rk4z)TVj(mn7_-?#*19Y}vTofPQd5%2X%Or`T*-(SWO0X8WR4#A z(F4=R+_ovNOq+S-(4Qq|ly^Q{1%Ruz(Qw`T_uS5UZ-!YBpcwhfrd%||$d0eKF(^KP z=7vTxu9?h7AAAOiLQVB?T<#iFMKXHCa116Bc6%rhjwr&z!YC>#z#bOHtUK@EE2od$ zh2@NiGs+`vW-)!-fcGA}aop{>RZTK8HU4MoF#)jr^|vqiY+v2J&h|D-pD-Io0uBr( z)S%63;-Sn`Tt{*#c9xTL(I9%q_CqKt&hlcOSoj$89$vtuLode>89}(+eyX1h=o;>0 z6?}2DoujT=Qe#ZAR=0}rBl<47cgnb@&xMp14=q?Sc5iuLr^)U>mm1+p0Gm<6sYQSe z2n`TCICV7U&IWeu+`&chgXrq^F(hd)fq)mkFMuQ5L1<_g+KE(oGDEz#y^zvlZbtS} z<D$~HPs`8h9W=+$t!DjQLEdy z>E@e>it0tM)q*250;@Tc*qGjggoO5hKjBuRqVVSC9GsOdM)p=^Wv3#B4~d>XXZrY; z-rl(Pob}*pX;EHoLUMA8f*}*tC>46fl^vSG#g;Cb0w&NvQQ%;C4T@qUE>z)IwTn;* zo44=45gkKVSSa#@)lEhNudUxlYjXn$ktXR5Sj6DOn8y~(obbfbz`J zx7hgM(xqN+^)|K3BTR~rMj;U>)OVX08q|hC^&>SMMc3GxQ%p{^k4ux2DRsF34ZGD$ zU0p2#&?LOFZV&BEbtFcaWp%(TqN2qgpZs0s^Kb?C-Z0^uPC?W!H?0MrC}-chUu@fU znWx#4Xtvl;P|%RH2aF_ycxmbqpa&3A!(G=zqu;Nd z;v80*bhAiFjCpX;JvaWT=W$h>>vgIUZ{L4Fu6S+n)F7MwTuWm$swy!n3JN;4?Iw~V ze1w}%&M4xP=bIOv0duIrD#e?J{?#Ja5C} zGisqb=Pg=z?6_x1cz8dg44?>siXbLLQq>ME-JmE6MkMBtVD6ie!G{}mV!=yXqy=}k zkx}XKGw-}+><8z2`u)A8zPYWFP9>DrpIf-|>d8}cozAM;BElnj1h69T=_-*H4U<8k z(=U*K?(?&wpoG{UNo0sg`i((i=*X0-?z(1F*85xcuu~A^uSvmuV>b+llhl_ zefIYShpXPcxL<Pkyu~uJ?2i6>4SK`>Usa@>%w(ez6w|9f^=VQ>O@w~S9K zD5`BIIVSkmMF3#ov&&<14mwLCqhf7n3PMPHUJqYy`N;F#KdIhPn?w_6Pod{a;`I15TYXp<7CC`2YX_07*qoM6N<$f?i7pR{#J2 literal 0 HcmV?d00001 diff --git a/data/icons/hint_dboxinfo.png b/data/icons/hint_dboxinfo.png new file mode 100644 index 0000000000000000000000000000000000000000..c40590ee821218df844c33511182a44581e764d2 GIT binary patch literal 4476 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 IRL3FmKUZi#3;+NC literal 0 HcmV?d00001 diff --git a/data/icons/hint_delete.png b/data/icons/hint_delete.png new file mode 100644 index 0000000000000000000000000000000000000000..a7c164851223ba5a4dcd9c1b87be1ab6eaebc284 GIT binary patch literal 5479 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 WYT#2N;YlnwKVW5X!Mp+PmHI!KFhhs{ literal 0 HcmV?d00001 diff --git a/data/icons/hint_extended.png b/data/icons/hint_extended.png new file mode 100644 index 0000000000000000000000000000000000000000..5f550eb467e19be966a1e809c87e18752529a253 GIT binary patch literal 6756 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%0Dc0 z6u^hi>McOWc5ufsF?Cip92dfql1)udTd(6MORc*mtEF%hw}RfPNknBqgoWql*=Yk7 zts|BANOOuFFbbFec8-pYQZ7URP_FO=fGd32$`U9uisj)Th0^^!CJxljxo~5hucf8k z%F4i~Szh4*Vf|okE-ULv!F9+So(<~0uFW%IA8ff}DYEieH{+3DOlt|`0aZy}Gd+zH z(*@ufiZq$3!)G`mXJl%9Et^rSx6f_^a&x-ro!xo4UIauzMULIrSAOHcAuQ(a-@&1H zKEpD*pM2>w2x`#FMg<0xZxfgpIAe)gTUFTkt`uXJ1Bp#dfr5h05oj`w-0ZUs&kYLp z8nBpE3QGOR!YqkdEFVQxw{3ZdD=GJVtkwx`a9Cq%-^?{rNJL8Z9bLnt6e&G zg7))q+tY6TN(U`fTblC7BxbEP$<^i2K7MBKv&GcaTiwY8-O zCV){jzXYrhhI5@J1jTFtf0*l6fx0;$%@sh+qOK+3^u@;wOSsin$xDPTJ@~8)gz!^InR& ze|UIua(WY!pdJ~y^=-G2SZ1d6)qv;GUO9zK;`SDm7|NvKY((F-cd`;aQ(yPu_?V0= zG=!9l7~%uG;=ha846sztxqw#A{{qdKa zfSHLfy9`muLCpEtpWjrGi?4cLj15!viE$|-l`K7%`W;8Ud6ex~EQtzRz`EZjHx zv2(hTDl)hKZt>hVQsNObeqleuVr~NUSULU}-Q^?d@}_uMkw5R={|fn84xc zZ`3)W$w{hgUtYqAHlbK=-e(@@X5z>oNcFi$u`+EqfM*?BE8CvxSqmLAo(t)r;QVPM zxB(#K5erUb&doCFLCE=S-^d0WKA51350+nCd-;eiU-n!|KtRSU&$NcFjXX|6QxiPw zp(lTTk!~wUbA%J+6v<*1`|ng9=M{meLO1Mz z`$s;3a#jmn@3J*FrZ>Q=+gc_cN9;=@aUE^@2Px7ML)R%U^7rzxUyijN;FhsD1*>yi z=}&(gO5JcKS&@(aYj=cyTCVVSikZPzV@N(-Cn3eJoB#4V5fR57uPS-P{y-d+@L^diEY|31a|4H3kZdj~f{q8%f>H+-VI1 z4@~@TOH<=qp4&GK+-#LoFW<3CjkpxHWfiC-%PPx&m3r&O-BvZ}rd$|?CZgGJ$o^Y* zt=ENF1GRZV;L)>~tHXnZ8+gKoWl>CD4}|*23@?Gl6Yj3Mc7p4Zgru1&lg!MG4L7%$ z0>gnTDfTZ1h+d~GSD!#nrhIt9D_-aFS@T4M_0z$^4@#aTtc*%Lq9IWfdZYVgXlZ%D z%ua9xUuy!->w6$1BsDqCd^J=)x+(jK)2vQb6k+77_@Pn1K82h}L--AoiRMgE?r{&z z^5~Ud<>Pfb^RpLz66b7F=0~hP@-LYeJ8I*=KLqZ%DjK+2VGtIs2!3nu4Ga~q1cbmrbOpsFMIT6t{%3?7mt-YSK={HWb)*#ng+%~%uCC6KFc<ue+?91x)|;m z+6`lc0CX)-wrHrT6&eLqM_OVmFkZTS8$n+zh=2!^cS$fAQ09Ftb;4s z`5)W<(enI4%k%$e`PNzR6V&2&p#|%1D`{zgMew^}kbn)+5dlsQ=7e&Ep=~h;m@@|H z?gg_(TVY{HPyrT(c1EC{UwnM-_^(C$)(Cfm<9~kr#{d|pQrH<~3$p@mi!B<1L|{QZ o2pa?jfwDqi`LSMDSA-M4umISv#6|q#ZzDieQB$E%-aP1k0Pv*VWdHyG literal 0 HcmV?d00001 diff --git a/data/icons/hint_fileplay.png b/data/icons/hint_fileplay.png new file mode 100644 index 0000000000000000000000000000000000000000..b339f13117a35b59decb1b3e09f808c202ca69ef GIT binary patch literal 6724 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 CwJ@~+ literal 0 HcmV?d00001 diff --git a/data/icons/hint_games.png b/data/icons/hint_games.png new file mode 100644 index 0000000000000000000000000000000000000000..88e3f14f5bd52237c0b9f2e3c09089445f505370 GIT binary patch literal 4227 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 literal 0 HcmV?d00001 diff --git a/data/icons/hint_hdd.png b/data/icons/hint_hdd.png new file mode 100644 index 0000000000000000000000000000000000000000..6df9f1503ffd90400d9c0c309d8a1b760228c767 GIT binary patch literal 3370 zcma)8cT`i$w?3g60z#yDL^>#mKS}~znxTUbI-w{<5MwBY9zszOq(}!*E+|H-2+|ag zt`Oh~UJ-(#AVe-$u0dK*O2i1h!@cjVx88qm)|uIB&Ft^&J$q(oV#US9 z^R%i^Z;+@^%?DtH6jGCrJUQ5iv3`Sn#0E-dc2ip@(_o96zzQlEDqZRxy6{8*&~ZrN zaxY%md~?#e#g^t<7s@oz8nS1$Tl-xHRBE}~ucP`@70Oy@+({q|=2pfxzqq(KdRs4i zx7SC*Ptxk8ub&?g11e-GfkZku|J<}ieq=MQqKO=$%gmeS?)-)5nqwdL2xdyPP78<6 z^;(s(UV!WJW7~7UrC(^kjoDsyn7I4gfbnP&K8PFwA79u+6c;PIxu@0D8EUHd|M@AD z3%9q;d~-gR!)CioZNBem+SF%F8b&wP9rN+^J&OU8D3@p3S6IOAn+|h%fVUjxgRYJ) zB29{x+%t2LK#hnwxOyv|7D7%5N)Uw!wr=jZJD2mPL$0=mRur~Kt6quikxfNrRKjzx zD)?j_hnMZ@pVzwtBB<9IW7?>%c!qBJkk#?u)6@4wj5RY?8YU2m%Yjpw27&vGE|sSf z5DpV(v~JB$w+3cZ)+*xw`=jC#R#)`%6jL8^c#OW zxHTQPhGU~)}0t_a<=WVWAb^zaz;S`q<|uX5R;qRB9SVIKR^=kjIn}DJ~BLBbazg@;yXs$A_zm4FD!?1mhy{h`xxEf<%oQofJmds-M~+5`D-9e? zbX+q|Th2D(Gk$ZqZ=S8i07rDxIGunwd- zeI3WuI$0IHDr7VDW8SB}GgB<7nssGp2E4IBTD@t3K9Vr!RC2GtlSF_7=;+cN&(0B1+}y^n%?6$4G~@~8;ZloG-WA*~A3{R;`t z*B|RJDAbD=FG|z14{APQ#owRwdVFbH3~+Xr9QugGF_z$owwPEK#m|JlU8N5()*mug zoF({AR2}f`yX+7JXRN9Z^?&Z^;Zfzq%?i z^0%005ez6KxImfCy~t6=WmP((B@d(@%(ha!MZ1l96q>zxA@^%sh;|M4aCf>|H*+O# zl`a3;`kFAHP@PkWLY(e8Zj7{YQAx$zZ5$1t=!kvEH(w}^N~UuTZ$j+U-Gr6P$Cfb| z#>1i3hlsip^0lN&>p&b{QI5|{B^B;teYfzkt*b^Z#1*A1crqQaq)}IeO26jJ`i$3@ zT}Uv`po8LFS*n0=5@tw+MkxzhOOS{Bc9=M&z!EED#bpy$vC1it6!yf&cM%L3N%zljbRV8;jbS(V=k$Fl#;8{dn zRIaNCy3-1HK2ft{T6kwgG^HrmR2L?zg}}~v9))h60V^wYJwe_KSq_D=zD$f}JVnj@ z5}mbuDQqMhh;g&=QtcNtr#8?HtS5BduEao_Ikvj?1frSI7W=&6j~Zzo^gXcvXyBwy?wtlB_s%ASTFCyKM&Y&O2;7w8)(dr9_NexFrm%vfb$>lBz z0hO>1e~%PH$HC!npdwJa^h3`zBj^wx3`&4kI!~jz{(#c)dCM{*O%0AFeVVk8qMyOQ zs|&y0A4=KveK7TXn^hJW8F>ZAD7c3XXg!owNk7|c>RF^aLtA`Y%U?~y%80B0u{b%R z)~)g;GFh^C;4X+J(e4Gu@hRZ1pMv|339<=aAbP)Pe-so+2ZaSXdwWl~yT1+5J@sG; zqL|vcI%QxqF9#blT%%_9Zf>p$g$U{JUZQU}b|4f+1QqSCt3=8J`IV^mG%mykeY-#E zN9$PU%b^-O9U?GeQtt90LO-?eTkZ3^IH-b#7+K<5`rNI`zdZT)6@-G#C^Jb%4#bvR ze8wvlmV-}2cB2qbB12gOwLJL^p{9Gm&P7M0viVn6SC>;A(ERA?-;Cazh(Ok1y|()C8ZuaZu7v;s$p`>1*4ZR`&qy z_8CrouaeJS6XW&4(k}wEFGH#u>U3zoWaC@**X{+gtRO;foo>*UHtBe`JnLr;hqzh~ zYaB}5(gFY|G$y;>m17g=-!^u*oR}gfGEVN})|QmtrLSqTsrntyR2^aE)#KS-|51r1Z~EJeuQi z_ddH_!&Wp%;jm3CwD)724^iF~xVyKpXxcNjJaT9WKG^4VgI@0Haa`iAOnj*_UhI3X zXk%NhuA2aZwSMDwRMMF7pliJuuf~IZAQg{*nI-&IU-!Jk)cC{G-L0*y(9=`D))Erw zVC%6`$C@>qC{+6N^z=G=dRh|({Lczh7fOa0moXP!cK|Cfmlws-_Q4Jt3}mNNfY9m=e44-M^_$(OJ^q^H!ibU)GHyS&E;SPv3o9VULZ*3~8Q zz8z<(B*E$Oz&PJ`SBs~=$Zc`&K9%x1v>0Rf);JP&Ta)vi(?K@jwe}vaa zpWZ0vWP189ejVQcd+C5XUeF8tNVL_d=yU$jBtv2p2@-%728&V0XsK&q+_ba}wR8=& zwA3+rh8T>4IBEI+07Aph1qa0cHvp@S#kye(47D+aI@o^!$uIJMK!CtK3--Z8QW%8< z1Vu+j7;0+%V=Fj@L<|oN4G*JeghvHxhWx8S(L5WkPVv{&*1%{gghwg-e-QT8&i0yG z8dy#5d>j!nd1%k1Yj{9(tbY^eZa2o57ti2f0zJxjM&ang{I_`gcjC?W}Pii-~< zg(={PkTc6*(*m@t`oGJ5?gab)@qF)R;s0o>2k&YB<2qZfZUlk=cq>QCCi64N{{@8j B`EURL literal 0 HcmV?d00001 diff --git a/data/icons/hint_imageinfo.png b/data/icons/hint_imageinfo.png new file mode 100644 index 0000000000000000000000000000000000000000..d8daebc6f6a7e147a88da72cce54b9fed965e3e6 GIT binary patch literal 5581 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 Y`s@8qH})ja12_cGP|;DYRkDu!FXRq4TmS$7 literal 0 HcmV?d00001 diff --git a/data/icons/hint_inetradio.png b/data/icons/hint_inetradio.png new file mode 100644 index 0000000000000000000000000000000000000000..219e614308493546eafed0780dbd3265099ca13b GIT binary patch literal 5370 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 YUyQKhv3SQ6X8-^I07*qoM6N<$g02@}ApigX literal 0 HcmV?d00001 diff --git a/data/icons/hint_info.png b/data/icons/hint_info.png new file mode 100644 index 0000000000000000000000000000000000000000..dae934d0dd63528b1606956bcd995b6ae05a2685 GIT binary patch literal 4197 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 M)-X`7yzLP6KiBu__5c6? literal 0 HcmV?d00001 diff --git a/data/icons/hint_language.png b/data/icons/hint_language.png new file mode 100644 index 0000000000000000000000000000000000000000..88ffd2a3a8cb1a6fd0bd03e02118ab9ce1789385 GIT binary patch literal 6845 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%0AIudv43 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 literal 0 HcmV?d00001 diff --git a/data/icons/hint_manage.png b/data/icons/hint_manage.png new file mode 100644 index 0000000000000000000000000000000000000000..a2ffa8b05dcddcbc52ad012cd8170a2651a6ee11 GIT binary patch literal 3203 zcmai%XH*kP7RQr7Ad~<~m0qL-3`rn>i5LMP5V~|!kQRCg5V~OK1muYYl^#^&5fKza zSBg)nG*JXWN|Yy}Kme&O$VT0F_UxyfbME}l%)P()-}yE}wY4^d@=Edo001b#%-D{t z$e#h>V$aT?-AuM{`Wado0sytWdf@Cu_L|Gf!qk|p?6G^g^%7fnNM^2)Y&H88_`V?A z&&_C(p&wg+od+0Nx$F!8@Foz94ITVvmJ8zYL^efxPPMOKw!8! zelk8VG&HvVQf~UMp`lU_dR}%d{efS6{QdUX?Y8#q8CGtdU4%|iLEfn24#In}+g$7J)*1oC%maA~LnYot41)%R6y| zpA(-ykfAK-B5ZWYtoa!n6Kc{39Ol@e$oGaCezxS7$w%)$P+onJ3Z6Wb>~0{Zmn`m4 zWaU`qT3S-l9I+X=6x|BMNk|_zQm}QD7U0h0ESWtwm=hKRN+oAin5Gz`CK60shBL$EKkA-zQvg+BJ%qLKBD=jTJ(*aJTxvS9*~V zS-CkwdtJZQ!SZ{rqRa`h zEY&Ya&<&mc#9&kiN9~vEz^L0t5v;Zo%Zu2qh8IB;K18IaEPtdxQCuxi;pnW{K(@~c zu#O^zM0O$ukNETk_v}U%*1l^_j^p~W?j*n7v{lAKD|SskJ>w$ zyrv49HA;a$=Q=LKb>Rw{^5tAjfMeiM#q;7&?E14nbGjIbB9al9%-Nxv)%h4O@GD7$;8Dm#6%S+M``de^S+yJFo}e4`#?C(_Z)KmI`;r)4GM?{ z38p$D-%|Mg)Frs^Q{o-+j}!n55>7l_=k+0WWH+p@_iB>tO^4KgQLVgiy;qgY6_W00DJfG9U=coJx z1~Ua;JD$st$pYdEsq2-+}Sq?Zr^MTE-0d25jejg|F_4S zr=k($-VM$aEOpIE_hFG?cz|NeLUYsjSWlQAXVxJlnmCu8&578PsW1U`pTX4+7YsCH zQafJ7h3`czC~m#qglrE_b3#D=5U!3Z4UHpc>KkRf*}Uf;SOaraEh0lrZq194KOs*_`raQl?Mm?)&AMTG&(-m>;PWaz+Z6zrdIzRnK}6TSB^z2#KG@v#T?AQ6vw`U(@mnfz8|r<#XeLb{-|Gyz$YQrc9B%EO8&i(Trq zNcz~rh*vL281y>kq+$FyNgm{3Up~muqiK*(3ljv7h~BkNc<1O4^0e)WK6JF6}i+jN}%$kc)#x;{G#-x24KacIq$~Of5TQTAj3I{=;6m zDjdmZ0i`*huh42`&2u1aE41}`S!y4ZfH^+CP)Cqn$~1+D&0G#jHU0N8ib{3xY4Ku(bMvM9HK ztKA$bkgjE{d0taeIA-M@Caz%|)dM&PsU-=W>hZ4~CFg`~ZEb{f}G>JKgqVVAJa zJNr>4_aw&E^~jeG%2j4Cp7d@~vFP2&`E>bH^ObE6`EO|yFPs~&>0#xp4dFA_Jf)F2 zUne?)UrrZ{SNi%)->_akDpgMT14Q1Pd&Ub1ka*kxSjNr=*?tJEtavCCb_s=#f}?nL zy7@j_%V<@)4ZUso)MbcwN{Q#2u+uanw66EO$dxypW2#UPvvoLAUQgoAkR!n&K@(q! z;G`q77nJ)<&EpCVOFjaO7?o|124?3L&#e5by4l-w>I=2cwb8O8(7r>l6JD+c>B8x4 zhL~(L@uBEJD17&k$Q!t8iSHoBg)+Cz=^;>UVL3~;YfTY-89eiEdG<^>Y~Q(=djAV% zbhb%Bqi4d_ed`k60UwV^5!gEicWZ#KodY9aI7J=b9@ij|#S3NSM)MN$A(Y1*-jo0d z@9Jii5%bHqB(u|7j!HreB=j}p#&r4_TK6V*FY!>5)_M@gd9o%RbO3fK9UtQe zWIkoTNtMYaE@bZrq9>UM_hC-}EhG{HN1@;-9S4*y7I_?tM#GVMSR^v~=8)+>z|TtT zZ;B0|kZ`0HTnp)-rH$3n#iB63fzBe`&Hn*H!h8aJ(x7q)>6HK+~=WG4QPe=POUvi9R1QB596Xr#fCxm$V5$%YcK5^lFM16J<^mkEI zgf|gj9TgoG>{)H2v&K%K|C_krXlMCP%P}!AngQNnq41!9P(Mv};|NkjSRm1x9Ek}1 Wg(IR*GJbwD00a|j;~FE6lz#)tjFwga literal 0 HcmV?d00001 diff --git a/data/icons/hint_media.png b/data/icons/hint_media.png new file mode 100644 index 0000000000000000000000000000000000000000..c60eeb923a0381bfbd29ccbd50dcb9f15dd04bcf GIT binary patch literal 4124 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 DGSXGI literal 0 HcmV?d00001 diff --git a/data/icons/hint_network.png b/data/icons/hint_network.png new file mode 100644 index 0000000000000000000000000000000000000000..b267c23456c52333f7b6e9c71083e49d6a545fba GIT binary patch literal 4320 zcmai%XHe5iqsISqL_k15KuW+M0f~ejnn0+bNfjX!=`{rD2$2?)CQ1m1f(RVxO+rz6 zduc{Om5zcmMXGeAym-!>xpP0AAxG zOnTb$)sph)@ww1C>g#Bp>-jj+XpA_Q3%gYzFzNyPfObJV4$^ zvIGF;9i*nZx%=l@YY%Um@xap!>}Ee|rQi2asR8s2*sDr-ir54W83k=i4r&ONoR2nE)%Zqt5w+P6Gae7Uh0I*o_wk9KR_(DHkKNr5!| zF6?)VhMz8zM`nP;mMcGeGuyw#za=c4j;+ieyCBg@3;6N&@MZ0Y0}Xaon-TYE5n_1A z6EnRS)uRPfDyzzE!f+EL;da53-NL|5cUEe>_A>#r2sIK9>#0k$DE)=NgH^YbD<~Y-Ef_J)9y+C=6Ci2Ek-U@r{o5}m#oCt8FE;c zJ-uUVJFAPQp5qOVN&jil{*$Ih@bv(N8fj)`rqa;JsO7C4P>=^XGPs@yPfh{fr%G$G zJD`htd+gKokgPy_AueNq*~hB38Zkt%As`eKD~wsK0ynO59kfvV?7B@>pce#D=ebyY z_$363*cM)I+SrM?TDQD#qetjm+*8oo3wlzH`ka9Jf@nQ8%LWkgZ(p(;s?(E* z#>IEGRa?WEM82rdAeM7IUnXx@)(cn|8d|MF(B{`)`CaaT}|f^4hsH zQGu*Q16l+&b1{yl&|~VGyL%EmMxwSe3!(gvDlWxH(&~vO^FCmy5BJG7VhZ$|>&zWQ z$QIdBlMWj*EZJzY!Oy^~(V#N1Cz7;euDefeh3EhH(bWAzYF3frnHFY?CaTGSpE94i zm_V%{te)cq%rO=d=nT^Sh3`R09KTHuO&`n%Y;VA<4cBvIUjrcbKH<4qOk|GmfN_7SQt4mNI7f=~Qo#h8iR@%Z!CMt3b=_Qu zXk6a=km%>6rNrIEKxj`lanR9Zo|IYn@-rBDkBfE#?h80@2_-nP4BsVy_3%^Vv*TD=%!xb$9T#5+F=`m=<$5yo@@%re;dyYij=N6~dy>NU0$-HhQrx^S zH`Jqgk$jZr=IZKNGc?q3-Qv??aWN87V!AWIrf+7-P~d@Jr|~7HfcwOpR$gwSVY*xS z;^tI!Vv#-B@B}cDrAIOk!p7xfh0r}%?$1;eA^j9tUS6)_R|;apnSzl?V5FKS)deTU z#)Gx)C@MNo{P2^`(<$u1%LuGJyW-E{&bWmPKk_ui+ECz$+=vWjU?uZly&-hGUqwYF zp}^x_Qu}@H!+a)0G2ur~Dy)h9?u`ar3|p?|?|iuv z2}v+#%MZ)+GmIFVtUsDd@6SXjDJj+N*9FPQE`j3MlYg`kOIU;{Z24^6G1EAlFod&k zXl5oU@i{H)BZp4KDxy82GpY0W?9Gk&@G9L3o+zBKp@;Oz?@Kdhb3;!bF8-w{�Rh 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�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 literal 0 HcmV?d00001 diff --git a/data/icons/hint_picview.png b/data/icons/hint_picview.png new file mode 100644 index 0000000000000000000000000000000000000000..b46ccb940c1039c63f9248515afb761467fb961d GIT binary patch literal 3175 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 JDh%Bs{smfCs|o-B literal 0 HcmV?d00001 diff --git a/data/icons/hint_protection.png b/data/icons/hint_protection.png new file mode 100644 index 0000000000000000000000000000000000000000..85e625a1f983e78de4a40be0d3e1ccb22565501c GIT binary patch literal 3040 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 literal 0 HcmV?d00001 diff --git a/data/icons/hint_radiomode.png b/data/icons/hint_radiomode.png new file mode 100644 index 0000000000000000000000000000000000000000..a64afa10bfd4343f48b9f6ddf19bde5289844d1a GIT binary patch literal 5046 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 KN|lm%*na^T=#T6G literal 0 HcmV?d00001 diff --git a/data/icons/hint_reboot.png b/data/icons/hint_reboot.png new file mode 100644 index 0000000000000000000000000000000000000000..fac4012bec576ab780e2eac8e19aa32209cf4eb1 GIT binary patch literal 3507 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 literal 0 HcmV?d00001 diff --git a/data/icons/hint_recording.png b/data/icons/hint_recording.png new file mode 100644 index 0000000000000000000000000000000000000000..abf729a1ba2a594ab8916f8ed745166a768c0aa6 GIT binary patch literal 3387 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 literal 0 HcmV?d00001 diff --git a/data/icons/hint_reload.png b/data/icons/hint_reload.png new file mode 100644 index 0000000000000000000000000000000000000000..ef2ec068c62cb2f2958b315537b557f081b40e74 GIT binary patch literal 6103 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 literal 0 HcmV?d00001 diff --git a/data/icons/hint_save.png b/data/icons/hint_save.png new file mode 100644 index 0000000000000000000000000000000000000000..590213f6a0b412548d5b7568d02df0512c3cee8d GIT binary patch literal 5299 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 literal 0 HcmV?d00001 diff --git a/data/icons/hint_scan.png b/data/icons/hint_scan.png new file mode 100644 index 0000000000000000000000000000000000000000..f53467d80c11ff75354dc89df4ae7a6b2f886ee8 GIT binary patch literal 5989 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 literal 0 HcmV?d00001 diff --git a/data/icons/hint_scripts.png b/data/icons/hint_scripts.png new file mode 100644 index 0000000000000000000000000000000000000000..8914020305926b07f46f32f3d50189ac53db084b GIT binary patch literal 5362 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 Z3yASIQjU<8eg}YnjP%S9)jG}({tJP=3x@yz literal 0 HcmV?d00001 diff --git a/data/icons/hint_settings.png b/data/icons/hint_settings.png new file mode 100644 index 0000000000000000000000000000000000000000..7c4f7ce151bc8a1e4a7b41265d11c0e122a891ab GIT binary patch literal 5132 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 literal 0 HcmV?d00001 diff --git a/data/icons/hint_shutdown.png b/data/icons/hint_shutdown.png new file mode 100644 index 0000000000000000000000000000000000000000..e261e7a9b7e44c702b97e233adf34a5a52b6f640 GIT binary patch literal 4089 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 literal 0 HcmV?d00001 diff --git a/data/icons/hint_sleeptimer.png b/data/icons/hint_sleeptimer.png new file mode 100644 index 0000000000000000000000000000000000000000..e23e07c304829594449213217dd089d70e4b0a72 GIT binary patch literal 5190 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 literal 0 HcmV?d00001 diff --git a/data/icons/hint_video.png b/data/icons/hint_video.png new file mode 100644 index 0000000000000000000000000000000000000000..6c8f037b0b931f74d100b3f963f040b37cf76285 GIT binary patch literal 2269 zcma)-dpOf?AIHC2#+=GAr(zD3pUl47m}oK@8CqxyDQU9}VX`@2F_m%*(TNmFITWI$ zno|xXeuSvRFC8h&@i%_u^h{k{&-488T-S47*L}b5`?}w+@Av)r{BtL{koU;TXvzQp zAWw22x``EBn{Y|->JI&WRxFYrWo&noM;UqmM~M8;ajMq32$<)@xO(g|3WO4!S{O9kxB18=?KuE{(H=o{>El(jE{X zsGPm41i@sf(~~&D;hL1dYMh%dBmZlYeRqN|fi4ktRa5d{$N9sUo5h*WqZYzvc8wf& zw!3-L*6gE{+~`c_vz? zyy9&&|M_`VRNz5LRoM1r^>qUg=m|9nG1$MboM#gjG?54Dsbnt3~+CO_^>G>P;x zsLc!Pm3a+{nGdDkK*483kECQkQYv4bejNv(2?zx*(0LP#Qbk<<@l;&sT%h#l=jAN#5~OhWgKqa@@Q0mX4z*}wkugwokO%Kv9>m*HOHsl zu>ZtM|A5fT@^T=$r~sK4W%id8M|P7%=M4#CPko-G?5MH@wyT@i>ISGxE}xmE>xC32 z;5!OK0^CY`0yqCtzms*R?hsBHU^-Et8csR(<=b0J?RDK^LuE6GV@}^#l~P6ViSCc? zU*hNOivgtCo`(B6=7QsJjqBD#-iIEC z!STC?7nfrbn+i56DXL#;VczTojCo00d2=;8z?sj!hx&>o*!aj9*Xou}wN=L?ZPI9P zJKfXd+sc)DeG87d9+V=V7=hQ$L9vMX!04&nPA6##a<`||V>~hQmI^-EJ_zthc~RH~ zenw*cppX`aaLDq=bS#?AudQoJ)}o?n!a+qjC&OHXj#*h11Tp4_y9$q852X|)b1x?l zC4}KxI}fj8HeJyyxCZdEGYu}vRqw~UncjKm+9dgLvVhPgawv%Hvr9WA8Y+Aa$lBEH zSijWr!j=Z8+6AjDreNIn;uVhMjJu3}VF=MZM>qLk}Cra#W{b(7uPNAbyWY^PrF z6cSy9+OUA6Xq_0)J8YKFzokq-F8Xu(0iA(AkX(c!tk1)#go1ZcjFf7!?^I0X1#r)8 z(ay55*vfcx?XB%uCD%8Ooc#2^JY3>V7Ds)Q@T)b_d2KsPV$x#L?)5_EHFYQ3yOTV= zdd!C=#i+#OJxn;~Tajy~B4Mla3>wa;w=G8h`=hXuEG7Y$eHx%-g~Vq`uS^6{#lD_+u2%FpNUFU)bcALD9xXf)7K#w4W+-uh?Z!c&&6kvDk@dr8potE!S9`mX>zu z<@=~pz(APbz(6mb&rkP~O=)<+9L^maUpSUWUaYH&ZFnFUY>vIQn>y5i|1kTd!!Q|I z=e@x{r?AHlK~fqLM4)OfFGgKa?hD}8_TUHEoi8@9SfkOT^Gh>RM~1#{YV7{f48Ajk zTG{dvd*R%=stQOk5{b-P{Cea1iORp)|AnT>(;9gE41;b8jyKxhx#rp%>igngLe@7 z1YaN+gn`98ZOTGvz%4ROEiaPO03B$)uoCaDCj3-Sq?al~b1kJ-hTnRv>I{fqi@)AQ zLswyKGNPw*qdsd7;TEo)2bUhoILc)peZ>oa0YM8S8jVDoQPAd=AjT4Fh6KeMP$47X z)^A|VY59v1185KliUBkQw6Mg2mZsw48bBSv&;Az>#P;=PM*VNVKyaEY23Tv6oc-yH zU=9QD<8nhRQK+B)@(*Xw*+D_3I6@jKAXjM;AaW5^X_2gO+AkOHkYeoVX}sSnWPBps|*5Kby&oI2y_TA|fJ8 z{DY5i=tn~sYteEi@tR_j@-I_ZD4hZ9i;QA1f)OOTIQ@ir`B(AvwtrtAp}IN$E_Ll= c?4NF=|C;+}tyAWu9byC^*^!Cmwmv8S1>V8b8vp Date: Sun, 8 Jul 2012 20:15:20 +0200 Subject: [PATCH 024/317] menue.cpp:-fix OSD on corners switch (-fix hint mode) --- src/gui/widget/menue.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/widget/menue.cpp b/src/gui/widget/menue.cpp index 200afb42e..3fa88415f 100644 --- a/src/gui/widget/menue.cpp +++ b/src/gui/widget/menue.cpp @@ -874,7 +874,7 @@ void CMenuWidget::paint() if(g_settings.rounded_corners != corners){ corners = g_settings.rounded_corners; if(!g_settings.rounded_corners){ - frameBuffer->paintBackgroundBoxRel(x, y+full_height, full_width, CORNER_RADIUS_LARGE-2+SHADOW_OFFSET); + frameBuffer->paintBackgroundBoxRel(x, y+full_height-hint_height, full_width, CORNER_RADIUS_LARGE-2+SHADOW_OFFSET); } } From e3b52d9a2b915f1fd9b9f5c1c6ab570e73f4656a Mon Sep 17 00:00:00 2001 From: satbaby Date: Sun, 8 Jul 2012 21:06:12 +0200 Subject: [PATCH 025/317] menue.cpp:-fix OSD clear in hint+angular mode --- src/gui/widget/menue.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/widget/menue.cpp b/src/gui/widget/menue.cpp index 3fa88415f..b29de6481 100644 --- a/src/gui/widget/menue.cpp +++ b/src/gui/widget/menue.cpp @@ -1069,7 +1069,7 @@ void CMenuWidget::paintHint(int pos) if (hint_painted) { /* clear line box */ - frameBuffer->paintBackgroundBoxRel(xpos, y, ConnectLineBox_Width, height+hint_height+rad); + frameBuffer->paintBackgroundBoxRel(xpos, y+SHADOW_OFFSET, ConnectLineBox_Width, height+hint_height+rad); /* clear info box */ frameBuffer->paintBackgroundBoxRel(x, ypos2, iwidth, hint_height); From 149349384f849e6c45200c14aa844ba6d2235090 Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Fri, 11 May 2012 00:24:00 +0200 Subject: [PATCH 026/317] locale: use multiple term --- data/locale/deutsch.locale | 4 ++-- data/locale/english.locale | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index 4afdc021a..fa788bcbd 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -949,13 +949,13 @@ networkmenu.ntpserver NTP-URL (Zeitserver) networkmenu.ntpserver_hint1 NTP-URL Beispiel: ntp1.ptb.de networkmenu.ntpserver_hint2 braucht Reboot oder EPG-Reset networkmenu.ntptitle Zeitsynchronisation -networkmenu.password Passwort +networkmenu.password Passwort (PSK) networkmenu.reset_settings_now Sollen die vorherigen Einstellungen \nwieder hergestellt werden? networkmenu.select_if Schnittstelle networkmenu.setupnow Einstellungen jetzt zuweisen networkmenu.setuponstartup Beim Start Netzwerk setzen networkmenu.show Aktive Einstellungen zeigen -networkmenu.ssid Netzwerkname +networkmenu.ssid Netzwerkname (SSID) networkmenu.test Netzwerk testen neutrino_starting Neutrino-HD wird gestartet... nfs.alreadymounted Verzeichnis bereits gemountet. diff --git a/data/locale/english.locale b/data/locale/english.locale index 342c113ad..b8bb2145f 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -1151,14 +1151,14 @@ networkmenu.ntpserver NTP-Server networkmenu.ntpserver_hint1 NTP-Server example: ntp1.ptb.de networkmenu.ntpserver_hint2 need reboot or epg-reset networkmenu.ntptitle Time-Syncronisation -networkmenu.password Key +networkmenu.password Pre-Shared Key (PSK) networkmenu.reset_settings_now Do you want restore the previous settings? networkmenu.select_if Interface networkmenu.services Network services networkmenu.setupnow Apply network settings now networkmenu.setuponstartup Setup network on startup networkmenu.show Show active Network settings -networkmenu.ssid Network name +networkmenu.ssid Network name (SSID) networkmenu.test Test network now neutrino_starting Neutrino-HD starting... nfs.alreadymounted directory already mounted From cc8a1c6a7c1112197b022fd51b94ced9058e4946 Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Thu, 17 May 2012 13:18:58 +0200 Subject: [PATCH 027/317] clean up: sort sourcefiles in makefiles --- src/driver/Makefile.am | 26 +++++++++++++------------- src/driver/audiodec/Makefile.am | 8 ++++---- src/driver/pictureviewer/Makefile.am | 7 +++++-- src/eitd/Makefile.am | 12 ++++++++++-- src/zapit/src/Makefile.am | 19 ++++++++++++++++--- 5 files changed, 48 insertions(+), 24 deletions(-) diff --git a/src/driver/Makefile.am b/src/driver/Makefile.am index 430651655..617c4be36 100644 --- a/src/driver/Makefile.am +++ b/src/driver/Makefile.am @@ -18,24 +18,24 @@ noinst_LIBRARIES = libneutrino_driver.a libneutrino_driver_netfile.a libneutrino_driver_a_SOURCES = \ abstime.c \ + audiofile.cpp \ + audiometadata.cpp \ + audioplay.cpp \ + fade.cpp \ + fb_window.cpp \ + file.cpp \ fontrenderer.cpp \ framebuffer.cpp \ - fb_window.cpp \ + genpsi.c \ + radiotext.cpp \ + radiotools.cpp \ rcinput.cpp \ record.cpp \ - audioplay.cpp \ - screen_max.cpp \ - file.cpp \ - audiometadata.cpp \ - audiofile.cpp \ - shutdown_count.cpp \ - genpsi.c \ - streamts.cpp \ - radiotools.cpp \ - radiotext.cpp \ - fade.cpp \ - screenshot.cpp \ ringbuffer.c \ + screen_max.cpp \ + screenshot.cpp \ + shutdown_count.cpp \ + streamts.cpp \ volume.cpp if BOXTYPE_COOL diff --git a/src/driver/audiodec/Makefile.am b/src/driver/audiodec/Makefile.am index 7e73469a1..c21b2c4d0 100644 --- a/src/driver/audiodec/Makefile.am +++ b/src/driver/audiodec/Makefile.am @@ -27,10 +27,10 @@ endif libneutrino_driver_audiodec_a_SOURCES = \ basedec.cpp \ cdrdec.cpp \ + crc.c \ + $(FLACdec) \ mp3dec.cpp \ oggdec.cpp \ - wavdec.cpp \ - $(FLACdec) \ tag.c \ - crc.c \ - vis.cpp + vis.cpp \ + wavdec.cpp diff --git a/src/driver/pictureviewer/Makefile.am b/src/driver/pictureviewer/Makefile.am index 8c452bc78..c70fcf859 100644 --- a/src/driver/pictureviewer/Makefile.am +++ b/src/driver/pictureviewer/Makefile.am @@ -19,5 +19,8 @@ endif noinst_LIBRARIES = libneutrino_pictureviewer.a libneutrino_pictureviewer_a_SOURCES = \ - pictureviewer.cpp png.cpp bmp.cpp \ - jpeg.cpp gif.cpp crw.cpp + crw.cpp \ + gif.cpp \ + jpeg.cpp \ + pictureviewer.cpp \ + png.cpp bmp.cpp diff --git a/src/eitd/Makefile.am b/src/eitd/Makefile.am index e01b04bcd..c151cd6b2 100644 --- a/src/eitd/Makefile.am +++ b/src/eitd/Makefile.am @@ -20,5 +20,13 @@ endif AM_CPPFLAGS = -fno-rtti -fno-exceptions noinst_LIBRARIES = libsectionsd.a -libsectionsd_a_SOURCES = sectionsd.cpp debug.cpp dmx.cpp xmlutil.cpp \ - SIsections.cpp SIevents.cpp SIutils.cpp SIlanguage.cpp edvbstring.cpp +libsectionsd_a_SOURCES = \ + debug.cpp \ + dmx.cpp \ + edvbstring.cpp \ + sectionsd.cpp \ + SIevents.cpp \ + SIlanguage.cpp \ + SIsections.cpp \ + SIutils.cpp \ + xmlutil.cpp diff --git a/src/zapit/src/Makefile.am b/src/zapit/src/Makefile.am index 6e225eb3d..b63a0641f 100644 --- a/src/zapit/src/Makefile.am +++ b/src/zapit/src/Makefile.am @@ -21,9 +21,22 @@ endif noinst_LIBRARIES = libzapit.a libzapit_a_SOURCES = \ - bouquets.cpp channel.cpp dvbstring.cpp getservices.cpp \ - transponder.cpp scan.cpp zapit.cpp capmt.cpp frontend.cpp femanager.cpp \ - pat.cpp scanpmt.cpp fastscan.cpp scansdt.cpp scannit.cpp scanbat.cpp + bouquets.cpp \ + capmt.cpp \ + channel.cpp \ + dvbstring.cpp \ + fastscan.cpp \ + femanager.cpp \ + frontend.cpp \ + getservices.cpp \ + pat.cpp \ + scanbat.cpp \ + scan.cpp \ + scannit.cpp \ + scanpmt.cpp \ + scansdt.cpp \ + transponder.cpp \ + zapit.cpp bin_PROGRAMS = pzapit sbin_PROGRAMS = udpstreampes From e132da818364e73b5cefbdabeac59b7b78754368 Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Thu, 17 May 2012 22:41:38 +0200 Subject: [PATCH 028/317] neutrino: remove dub code lines --- src/neutrino.cpp | 30 +++++++++++------------------- 1 file changed, 11 insertions(+), 19 deletions(-) diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 49fc9a765..35c1abf93 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -2039,32 +2039,24 @@ void CNeutrinoApp::RealRun(CMenuWidget &mainMenu) else if( msg == (neutrino_msg_t) g_settings.key_tvradio_mode ) { switchTvRadioMode(); //used with defined rc key TODO: do we really need this, because we already have a specified key on the remote control } - else if( msg == (neutrino_msg_t) g_settings.key_subchannel_up ) { + else if( msg == (neutrino_msg_t) g_settings.key_subchannel_up || msg == (neutrino_msg_t) g_settings.key_subchannel_down) { if( !g_RemoteControl->subChannels.empty() ) { StopSubtitles(); - g_RemoteControl->subChannelUp(); + if( msg == (neutrino_msg_t) g_settings.key_subchannel_up ) + g_RemoteControl->subChannelUp(); + else if( msg == (neutrino_msg_t) g_settings.key_subchannel_down ) + g_RemoteControl->subChannelDown(); g_InfoViewer->showSubchan(); - } else if (g_settings.mode_left_right_key_tv == SNeutrinoSettings::VOLUME) { + } + else if (g_settings.mode_left_right_key_tv == SNeutrinoSettings::VOLUME) { g_volume->setVolume(msg, true); - } else if((g_settings.mode_left_right_key_tv == SNeutrinoSettings::VZAP) || (g_settings.mode_left_right_key_tv == SNeutrinoSettings::INFOBAR)) { + } + else if((g_settings.mode_left_right_key_tv == SNeutrinoSettings::VZAP) || (g_settings.mode_left_right_key_tv == SNeutrinoSettings::INFOBAR)) { if(channelList->getSize()) { showInfo(); } - } else - quickZap( msg ); - } - else if( msg == (neutrino_msg_t) g_settings.key_subchannel_down ) { - if( !g_RemoteControl->subChannels.empty() ) { - StopSubtitles(); - g_RemoteControl->subChannelDown(); - g_InfoViewer->showSubchan(); - } else if(g_settings.mode_left_right_key_tv == SNeutrinoSettings::VOLUME) { - g_volume->setVolume(msg, true); - } else if((g_settings.mode_left_right_key_tv == SNeutrinoSettings::VZAP) || (g_settings.mode_left_right_key_tv == SNeutrinoSettings::INFOBAR)) { - if(channelList->getSize()) { - showInfo(); - } - } else + } + else quickZap( msg ); } /* in case key_subchannel_up/down redefined */ From 0a147da5352ac6aa9d7c9f7a6c8079487d7430f6 Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Sun, 3 Jun 2012 13:10:36 +0200 Subject: [PATCH 029/317] menu: move class CNonLocalizedMenuSeparator from update.cpp into gui/menu.h --- src/gui/update.cpp | 16 ---------------- src/gui/widget/menue.h | 16 ++++++++++++++++ 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/gui/update.cpp b/src/gui/update.cpp index 1addca84d..2f82659ba 100644 --- a/src/gui/update.cpp +++ b/src/gui/update.cpp @@ -114,22 +114,6 @@ public: } }; - -class CNonLocalizedMenuSeparator : public CMenuSeparator -{ - const char * the_text; - -public: - CNonLocalizedMenuSeparator(const char * ptext, const neutrino_locale_t Text1) : CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, Text1) - { - the_text = ptext; - } - - virtual const char * getString(void) - { - return the_text; - } -}; //#define DEBUG bool CFlashUpdate::selectHttpImage(void) { diff --git a/src/gui/widget/menue.h b/src/gui/widget/menue.h index 3a353444d..edadc4408 100644 --- a/src/gui/widget/menue.h +++ b/src/gui/widget/menue.h @@ -175,6 +175,22 @@ class CMenuSeparator : public CMenuItem void setString(const std::string& text); }; +class CNonLocalizedMenuSeparator : public CMenuSeparator +{ + const char * the_text; + +public: + CNonLocalizedMenuSeparator(const char * ptext, const neutrino_locale_t Text1) : CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, Text1) + { + the_text = ptext; + } + + virtual const char * getString(void) + { + return the_text; + } +}; + class CMenuForwarder : public CMenuItem { const char * option; From ddab0fd73470e9eeb538d611c7be607cb11e298c Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Sun, 3 Jun 2012 14:03:30 +0200 Subject: [PATCH 030/317] update license text in some files TODO: many other files still need corrections --- src/gui/parentallock_setup.cpp | 5 +++-- src/gui/parentallock_setup.h | 5 +++-- src/gui/update.cpp | 5 +++-- src/gui/update.h | 5 +++-- src/gui/widget/menue.cpp | 5 +++-- src/gui/widget/menue.h | 5 +++-- 6 files changed, 18 insertions(+), 12 deletions(-) diff --git a/src/gui/parentallock_setup.cpp b/src/gui/parentallock_setup.cpp index 9d07acf78..8a7d867a1 100644 --- a/src/gui/parentallock_setup.cpp +++ b/src/gui/parentallock_setup.cpp @@ -23,8 +23,9 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + along with this program; if not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + Boston, MA 02110-1301, USA. */ diff --git a/src/gui/parentallock_setup.h b/src/gui/parentallock_setup.h index b2043f863..fde2310ed 100644 --- a/src/gui/parentallock_setup.h +++ b/src/gui/parentallock_setup.h @@ -23,8 +23,9 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + along with this program; if not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + Boston, MA 02110-1301, USA. */ diff --git a/src/gui/update.cpp b/src/gui/update.cpp index 2f82659ba..e6afd19ba 100644 --- a/src/gui/update.cpp +++ b/src/gui/update.cpp @@ -25,8 +25,9 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + along with this program; if not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/src/gui/update.h b/src/gui/update.h index f92d71bac..6f85b9342 100644 --- a/src/gui/update.h +++ b/src/gui/update.h @@ -25,8 +25,9 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + along with this program; if not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + Boston, MA 02110-1301, USA. */ diff --git a/src/gui/widget/menue.cpp b/src/gui/widget/menue.cpp index b29de6481..753022b74 100644 --- a/src/gui/widget/menue.cpp +++ b/src/gui/widget/menue.cpp @@ -19,8 +19,9 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + along with this program; if not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/src/gui/widget/menue.h b/src/gui/widget/menue.h index edadc4408..93a857fa6 100644 --- a/src/gui/widget/menue.h +++ b/src/gui/widget/menue.h @@ -27,8 +27,9 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + along with this program; if not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + Boston, MA 02110-1301, USA. */ From dd4a9ceeb1df7e7a7c4e7ca798776d33224c06b2 Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Tue, 5 Jun 2012 19:28:57 +0200 Subject: [PATCH 031/317] vfd_setup: remove semicolon --- src/gui/vfd_setup.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/vfd_setup.cpp b/src/gui/vfd_setup.cpp index 2e6a43147..3f768fcc3 100644 --- a/src/gui/vfd_setup.cpp +++ b/src/gui/vfd_setup.cpp @@ -76,7 +76,7 @@ int CVfdSetup::exec(CMenuTarget* parent, const std::string &actionKey) CVFD::getInstance()->setBrightness(brightness); CVFD::getInstance()->setBrightnessStandby(brightnessstandby); CVFD::getInstance()->setBrightnessDeepStandby(brightnessdeepstandby); - return menu_return::RETURN_REPAINT;; + return menu_return::RETURN_REPAINT; } int res = showSetup(); From 24dd74e471cec85bfa549dd7a3b612e625da8b4a Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Tue, 5 Jun 2012 21:46:40 +0200 Subject: [PATCH 032/317] personalize: changeNotify - no repaint menu after changed option values reduces the flicker effect on screen --- src/gui/personalize.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gui/personalize.cpp b/src/gui/personalize.cpp index b0a9e3729..2b089178a 100644 --- a/src/gui/personalize.cpp +++ b/src/gui/personalize.cpp @@ -577,7 +577,7 @@ bool CPersonalizeGui::changeNotify(const neutrino_locale_t locale, void *data) } } } - return true; + return false; } //shows a short help message @@ -912,7 +912,7 @@ bool CUserMenuNotifier::changeNotify(const neutrino_locale_t, void *) toDisable[0]->setActive(g_settings.personalize[SNeutrinoSettings::P_MAIN_RED_BUTTON]); toDisable[1]->setActive(g_settings.personalize[SNeutrinoSettings::P_MAIN_BLUE_BUTTON]); - return true; + return false; } //helper class to enable/disable pin setup From f836f3c3f3173fd19912a9bb46d38476b12e987d Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Tue, 5 Jun 2012 21:24:42 +0200 Subject: [PATCH 033/317] menu: add overloaded version for CMenuOptionStringChooser --- src/gui/widget/menue.cpp | 22 +++++++++++++++++++--- src/gui/widget/menue.h | 3 +++ 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/src/gui/widget/menue.cpp b/src/gui/widget/menue.cpp index 753022b74..ce3677394 100644 --- a/src/gui/widget/menue.cpp +++ b/src/gui/widget/menue.cpp @@ -1456,7 +1456,23 @@ int CMenuOptionChooser::getWidth(void) CMenuOptionStringChooser::CMenuOptionStringChooser(const neutrino_locale_t OptionName, char* OptionValue, bool Active, CChangeObserver* Observ, const neutrino_msg_t DirectKey, const std::string & IconName, bool Pulldown) { height = g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->getHeight(); - optionName = OptionName; + optionNameString = g_Locale->getText(OptionName); + optionName = OptionName; + active = Active; + optionValue = OptionValue; + observ = Observ; + + directKey = DirectKey; + iconName = IconName; + can_arrow = true; + pulldown = Pulldown; +} + +CMenuOptionStringChooser::CMenuOptionStringChooser(const char* OptionName, char* OptionValue, bool Active, CChangeObserver* Observ, const neutrino_msg_t DirectKey, const std::string & IconName, bool Pulldown) +{ + height = g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->getHeight(); + optionNameString = OptionName; + optionName = NONEXISTANT_LOCALE; active = Active; optionValue = OptionValue; observ = Observ; @@ -1495,7 +1511,7 @@ int CMenuOptionStringChooser::exec(CMenuTarget* parent) if (parent) parent->hide(); - CMenuWidget* menu = new CMenuWidget(optionName, NEUTRINO_ICON_SETTINGS); + CMenuWidget* menu = new CMenuWidget(optionNameString.c_str(), NEUTRINO_ICON_SETTINGS); menu->addIntroItems(NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, CMenuWidget::BTN_TYPE_CANCEL); //if(parent) menu->move(20, 0); CMenuSelectorTarget * selector = new CMenuSelectorTarget(&select); @@ -1544,7 +1560,7 @@ int CMenuOptionStringChooser::exec(CMenuTarget* parent) int CMenuOptionStringChooser::paint( bool selected ) { - const char * l_optionName = g_Locale->getText(optionName); + const char * l_optionName = optionNameString.c_str(); //paint item prepareItem(selected, height); diff --git a/src/gui/widget/menue.h b/src/gui/widget/menue.h index 93a857fa6..6b681b9be 100644 --- a/src/gui/widget/menue.h +++ b/src/gui/widget/menue.h @@ -355,6 +355,7 @@ class CMenuOptionChooser : public CAbstractMenuOptionChooser class CMenuOptionStringChooser : public CMenuItem { neutrino_locale_t optionName; + std::string optionNameString; int height; char * optionValue; std::vector options; @@ -363,6 +364,8 @@ class CMenuOptionStringChooser : public CMenuItem public: CMenuOptionStringChooser(const neutrino_locale_t OptionName, char* OptionValue, bool Active = false, CChangeObserver* Observ = NULL, const neutrino_msg_t DirectKey = CRCInput::RC_nokey, const std::string & IconName= "", bool Pulldown = false); + CMenuOptionStringChooser(const char* OptionName, char* OptionValue, bool Active = false, CChangeObserver* Observ = NULL, const neutrino_msg_t DirectKey = CRCInput::RC_nokey, const std::string & IconName= "", bool Pulldown = false); + ~CMenuOptionStringChooser(); void addOption(const char * value); From 179a9fc5ba189f95b47c3c23d440117b4f01d8ad Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Thu, 7 Jun 2012 21:07:27 +0200 Subject: [PATCH 034/317] yWeb: fix support links --- src/nhttpd/web/Y_Info_Help.yhtm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/nhttpd/web/Y_Info_Help.yhtm b/src/nhttpd/web/Y_Info_Help.yhtm index e6a1c46dd..7470308b2 100644 --- a/src/nhttpd/web/Y_Info_Help.yhtm +++ b/src/nhttpd/web/Y_Info_Help.yhtm @@ -8,10 +8,11 @@ From eda3740d8b7b0f3dda7da30201c9888e548f8d9f Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Thu, 7 Jun 2012 21:08:37 +0200 Subject: [PATCH 035/317] yWeb: change version 2.8.0.8 to 2.8.0.9 --- src/nhttpd/web/Y_Version.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/nhttpd/web/Y_Version.txt b/src/nhttpd/web/Y_Version.txt index 17bf39fdd..53882ef34 100644 --- a/src/nhttpd/web/Y_Version.txt +++ b/src/nhttpd/web/Y_Version.txt @@ -1,5 +1,5 @@ -version=2.8.0.8 -date=22.09.2010 +version=2.8.0.9 +date=07.06.2012 type=Release info=Port Coolstream From c213221b4c1e961b3c84496914311b857191bc9d Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Fri, 6 Jul 2012 21:14:41 +0200 Subject: [PATCH 036/317] channellist: update license text --- src/gui/channellist.cpp | 5 +++-- src/gui/channellist.h | 5 +++-- src/gui/eventlist.cpp | 5 +++-- src/gui/eventlist.h | 5 +++-- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/gui/channellist.cpp b/src/gui/channellist.cpp index 2fbfd78b5..5ca33ee3e 100644 --- a/src/gui/channellist.cpp +++ b/src/gui/channellist.cpp @@ -25,8 +25,9 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + along with this program; if not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/src/gui/channellist.h b/src/gui/channellist.h index 1159d6646..e3b360156 100644 --- a/src/gui/channellist.h +++ b/src/gui/channellist.h @@ -28,8 +28,9 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + along with this program; if not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + Boston, MA 02110-1301, USA. */ #include diff --git a/src/gui/eventlist.cpp b/src/gui/eventlist.cpp index db0901179..37c435865 100644 --- a/src/gui/eventlist.cpp +++ b/src/gui/eventlist.cpp @@ -25,8 +25,9 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + along with this program; if not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H diff --git a/src/gui/eventlist.h b/src/gui/eventlist.h index 4578b16da..f703702cc 100644 --- a/src/gui/eventlist.h +++ b/src/gui/eventlist.h @@ -25,8 +25,9 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + along with this program; if not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + Boston, MA 02110-1301, USA. */ From 0294319f1dbc1301e08495c2eddcecd6b5340107 Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Sun, 8 Jul 2012 21:51:06 +0200 Subject: [PATCH 037/317] neutrino makefile: keep sorting in makefile --- src/gui/Makefile.am | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gui/Makefile.am b/src/gui/Makefile.am index 4aa167cd2..629a488f2 100644 --- a/src/gui/Makefile.am +++ b/src/gui/Makefile.am @@ -63,6 +63,7 @@ libneutrino_gui_a_SOURCES = \ moviebrowser.cpp \ movieinfo.cpp \ movieplayer.cpp \ + network_service.cpp \ network_setup.cpp \ nfs.cpp \ osd_setup.cpp \ @@ -94,8 +95,7 @@ libneutrino_gui_a_SOURCES = \ user_menue_setup.cpp \ vfd_setup.cpp \ videosettings.cpp \ - zapit_setup.cpp \ - network_service.cpp + zapit_setup.cpp libneutrino_gui2_a_SOURCES = \ cam_menu.cpp \ From df2ab719785e1f22be8707e2ebe111f90ac96647 Mon Sep 17 00:00:00 2001 From: satbaby Date: Mon, 9 Jul 2012 09:26:37 +0200 Subject: [PATCH 038/317] fix gcc 4.7.x warnings --- lib/sectionsdclient/sectionsdclient.h | 1 + lib/timerdclient/timerdclient.h | 1 + src/gui/widget/stringinput_ext.h | 1 + src/zapit/include/zapit/capmt.h | 1 + src/zapit/include/zapit/client/zapitclient.h | 2 ++ 5 files changed, 6 insertions(+) diff --git a/lib/sectionsdclient/sectionsdclient.h b/lib/sectionsdclient/sectionsdclient.h index d42e99237..4065ffc2d 100644 --- a/lib/sectionsdclient/sectionsdclient.h +++ b/lib/sectionsdclient/sectionsdclient.h @@ -72,6 +72,7 @@ class CSectionsdClient : private CBasicClient char * parseExtendedEvents(char * dp, CEPGData * epgdata); public: + virtual ~CSectionsdClient() {}; enum SIlanguageMode_t { ALL, FIRST_FIRST, diff --git a/lib/timerdclient/timerdclient.h b/lib/timerdclient/timerdclient.h index 6b763c7c5..f9e66625b 100644 --- a/lib/timerdclient/timerdclient.h +++ b/lib/timerdclient/timerdclient.h @@ -41,6 +41,7 @@ class CTimerdClient:private CBasicClient virtual const char * getSocketName() const; public: + virtual ~CTimerdClient() {}; enum events { EVT_SHUTDOWN = 1, diff --git a/src/gui/widget/stringinput_ext.h b/src/gui/widget/stringinput_ext.h index eb49b14ad..a237cf6e0 100644 --- a/src/gui/widget/stringinput_ext.h +++ b/src/gui/widget/stringinput_ext.h @@ -99,6 +99,7 @@ class CExtendedInput_Item virtual bool isSelectable(){return true;}; virtual void keyPressed( int /*key*/ ){}; + virtual ~CExtendedInput_Item() {}; }; class CExtendedInput_Item_Spacer : public CExtendedInput_Item diff --git a/src/zapit/include/zapit/capmt.h b/src/zapit/include/zapit/capmt.h index c55b625bd..c24267c58 100644 --- a/src/zapit/include/zapit/capmt.h +++ b/src/zapit/include/zapit/capmt.h @@ -63,6 +63,7 @@ class CCam : public CBasicClient CAPMT_UPDATE = 0x05 }; CCam(); + virtual ~CCam() {}; bool sendMessage(const char * const data, const size_t length, bool update = false); bool makeCaPmt(CZapitChannel * channel, uint8_t list = CAPMT_ONLY, const CaIdVector &caids = CaIdVector()); bool setCaPmt(bool update = false); diff --git a/src/zapit/include/zapit/client/zapitclient.h b/src/zapit/include/zapit/client/zapitclient.h index 7dd62f0c8..4387ef43e 100644 --- a/src/zapit/include/zapit/client/zapitclient.h +++ b/src/zapit/include/zapit/client/zapitclient.h @@ -514,6 +514,8 @@ class CZapitClient:public CBasicClient ein beliebiges Event abmelden */ void unRegisterEvent(const unsigned int eventID, const unsigned int clientID); + + virtual ~CZapitClient() {}; }; #define PAL 0 From 3544901636eb2d3b69c82e523dd8bc1ae577945c Mon Sep 17 00:00:00 2001 From: satbaby Date: Mon, 9 Jul 2012 10:38:05 +0200 Subject: [PATCH 039/317] fix gcc 4.7.x warnings --- src/driver/record.h | 2 +- src/system/lastchannel.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/driver/record.h b/src/driver/record.h index a973d972c..c9ccf7716 100644 --- a/src/driver/record.h +++ b/src/driver/record.h @@ -71,7 +71,7 @@ class CRecordInstance { private: typedef struct { - unsigned short apid; + uint32_t apid; unsigned int index;//FIXME not used ? bool ac3; } APIDDesc; diff --git a/src/system/lastchannel.h b/src/system/lastchannel.h index 911e7bd5e..0c281b1c5 100644 --- a/src/system/lastchannel.h +++ b/src/system/lastchannel.h @@ -34,7 +34,7 @@ class CLastChannel { int channel; t_channel_id channel_id; - unsigned long timestamp; + long int timestamp; int channel_mode; }; From b9648c83595ab86c819a82378110e6060b475b6c Mon Sep 17 00:00:00 2001 From: satbaby Date: Mon, 9 Jul 2012 14:58:11 +0200 Subject: [PATCH 040/317] change mysytem char to const char --- src/gui/plugins.cpp | 4 ++-- src/system/configure_network.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gui/plugins.cpp b/src/gui/plugins.cpp index 13ec9c526..de8b7fbb0 100644 --- a/src/gui/plugins.cpp +++ b/src/gui/plugins.cpp @@ -345,7 +345,7 @@ void CPlugins::startScriptPlugin(int number) } } -int mysystem(char * cmd, char * arg1, char * arg2); +int mysystem(const char * cmd,const char * arg1,const char * arg2); void CPlugins::startPlugin(int number,int /*param*/) { // always delete old output @@ -592,7 +592,7 @@ void CPlugins::startPlugin(int number,int /*param*/) g_RCInput->stopInput(); //frameBuffer->setMode(720, 576, 8 * sizeof(fb_pixel_t)); printf("Starting %s\n", plugin_list[number].pluginfile.c_str()); - mysystem((char *) plugin_list[number].pluginfile.c_str(), NULL, NULL); + mysystem(plugin_list[number].pluginfile.c_str(), NULL, NULL); //frameBuffer->setMode(720, 576, 8 * sizeof(fb_pixel_t)); frameBuffer->paintBackground(); g_RCInput->restartInput(); diff --git a/src/system/configure_network.cpp b/src/system/configure_network.cpp index cc58d4b98..06f144b38 100644 --- a/src/system/configure_network.cpp +++ b/src/system/configure_network.cpp @@ -216,7 +216,7 @@ void CNetworkConfig::commitConfig(void) } } -int mysystem(char * cmd, char * arg1, char * arg2) +int mysystem(const char * cmd, const char * arg1, const char * arg2) { int i; pid_t pid; From 5420af701acd8a2b1f0b27015137c1dadc93f5b3 Mon Sep 17 00:00:00 2001 From: satbaby Date: Mon, 9 Jul 2012 15:00:08 +0200 Subject: [PATCH 041/317] menue.cpp:-fix OSD on corners switch (upper side) --- src/gui/widget/menue.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gui/widget/menue.cpp b/src/gui/widget/menue.cpp index ce3677394..7a523c184 100644 --- a/src/gui/widget/menue.cpp +++ b/src/gui/widget/menue.cpp @@ -876,6 +876,8 @@ void CMenuWidget::paint() corners = g_settings.rounded_corners; if(!g_settings.rounded_corners){ frameBuffer->paintBackgroundBoxRel(x, y+full_height-hint_height, full_width, CORNER_RADIUS_LARGE-2+SHADOW_OFFSET); + }else{ + frameBuffer->paintBackgroundBoxRel(x, y, full_width, CORNER_RADIUS_LARGE-2+SHADOW_OFFSET); } } From d74e9ae1432e14363f1ab74ad0c1632efaa31833 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Mon, 9 Jul 2012 17:29:24 +0400 Subject: [PATCH 042/317] gui/osd_setup.cpp: more hints, WIP --- data/locale/english.locale | 26 ++++++++ src/gui/osd_setup.cpp | 125 ++++++++++++++++++++++++++++--------- src/neutrino.h | 1 + src/system/locals.h | 26 ++++++++ src/system/locals_intern.h | 26 ++++++++ 5 files changed, 174 insertions(+), 30 deletions(-) diff --git a/data/locale/english.locale b/data/locale/english.locale index b8bb2145f..1251d1c0c 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -888,6 +888,32 @@ menu.hint_infobar_back Change infobar background color menu.hint_infobar_textcolor Change infobar text color menu.hint_event_textcolor Change event color for colored-event options\nin channel list and infobar menu.hint_fonts Configure GUI fonts and font sizes +menu.hint_font_gui Select font file to use for GUI +menu.hint_font_ttx Select font file to use for teletext +menu.hint_contrast_fonts Make fonts contrast (do not blend with background) +menu.hint_font_scaling Set global vertical and horizontal\nGUI font scaling +menu.hint_menu_fonts Change menu font sizes +menu.hint_channellist_fonts Change channel list font sizes +menu.hint_eventlist_fonts Change event list font sizes +menu.hint_epg_fonts Change EPG details window font sizes +menu.hint_infobar_fonts Change infobar font sizes +menu.hint_gamelist_fonts Change games and scripts list font sizes +menu.hint_timeouts Configure time to hide GUI windows\nin seconds +menu.hint_screen_setup Configure screen margins +menu.hint_infobar_setup Configure infobar options +menu.hint_channellist_setup Configure channe list GUI options +menu.hint_screenshot_setup Configure screenshots options +menu.hint_osd_preset Pre-configured screen margins for CRT and LCD TV +menu.hint_rounded_corners Draw round or rectangular windows corners +menu.hint_scrambled_message Show scrambled message, when channel cannot be decoded +menu.hint_subchannel_pos Select subchannels menu position +menu.hint_volume_pos Select volume indicator position +menu.hint_show_mute_icon Show mute icon, when volume set to 0 +menu.hint_menu_pos Select menu position +menu.hint_menu_hints Show this hints.i Also you can switch\nit any time using 'help' button +menu.hint_fade Fade GUI windows +menu.hint_bigwindows Always show big epg detail window\nelse 'info' button switch big font + window size +menu.hint_progressbar_color Show colored progress bars menu.next Next (press Menu to quit) messagebox.back Back diff --git a/src/gui/osd_setup.cpp b/src/gui/osd_setup.cpp index b338a5cd1..8f912101c 100644 --- a/src/gui/osd_setup.cpp +++ b/src/gui/osd_setup.cpp @@ -131,12 +131,12 @@ const SNeutrinoSettings::FONT_TYPES other_font_sizes[4] = font_sizes_groups font_sizes_groups[6] = { - {LOCALE_FONTMENU_MENU , 4, other_font_sizes , "fontsize.doth"}, - {LOCALE_FONTMENU_CHANNELLIST, 4, channellist_font_sizes, "fontsize.dcha"}, - {LOCALE_FONTMENU_EVENTLIST , 4, eventlist_font_sizes , "fontsize.deve"}, - {LOCALE_FONTMENU_EPG , 4, epg_font_sizes , "fontsize.depg"}, - {LOCALE_FONTMENU_INFOBAR , 4, infobar_font_sizes , "fontsize.dinf"}, - {LOCALE_FONTMENU_GAMELIST , 2, gamelist_font_sizes , "fontsize.dgam"} + {LOCALE_FONTMENU_MENU , 4, other_font_sizes , "fontsize.doth", LOCALE_MENU_HINT_MENU_FONTS }, + {LOCALE_FONTMENU_CHANNELLIST, 4, channellist_font_sizes, "fontsize.dcha", LOCALE_MENU_HINT_CHANNELLIST_FONTS }, + {LOCALE_FONTMENU_EVENTLIST , 4, eventlist_font_sizes , "fontsize.deve", LOCALE_MENU_HINT_EVENTLIST_FONTS }, + {LOCALE_FONTMENU_EPG , 4, epg_font_sizes , "fontsize.depg", LOCALE_MENU_HINT_EPG_FONTS }, + {LOCALE_FONTMENU_INFOBAR , 4, infobar_font_sizes , "fontsize.dinf", LOCALE_MENU_HINT_INFOBAR_FONTS }, + {LOCALE_FONTMENU_GAMELIST , 2, gamelist_font_sizes , "fontsize.dgam", LOCALE_MENU_HINT_GAMELIST_FONTS } }; #define FONT_STYLE_REGULAR 0 @@ -407,43 +407,93 @@ int COsdSetup::showOsdSetup() //timeouts CMenuWidget osd_menu_timing(LOCALE_MAINMENU_SETTINGS, NEUTRINO_ICON_SETTINGS, width, MN_WIDGET_ID_OSDSETUP_TIMEOUT); showOsdTimeoutSetup(&osd_menu_timing); - osd_menu->addItem(new CMenuForwarder(LOCALE_COLORMENU_TIMING, true, NULL, &osd_menu_timing, NULL, CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW)); + mf = new CMenuForwarder(LOCALE_COLORMENU_TIMING, true, NULL, &osd_menu_timing, NULL, CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW); + mf->setHint("", LOCALE_MENU_HINT_TIMEOUTS); + osd_menu->addItem(mf); //screen CScreenSetup screensetup; - osd_menu->addItem(new CMenuForwarder(LOCALE_VIDEOMENU_SCREENSETUP, true, NULL, &screensetup, NULL, CRCInput::RC_blue, NEUTRINO_ICON_BUTTON_BLUE)); + mf = new CMenuForwarder(LOCALE_VIDEOMENU_SCREENSETUP, true, NULL, &screensetup, NULL, CRCInput::RC_blue, NEUTRINO_ICON_BUTTON_BLUE); + mf->setHint("", LOCALE_MENU_HINT_SCREEN_SETUP); + osd_menu->addItem(mf); //infobar CMenuWidget osd_menu_infobar(LOCALE_MAINMENU_SETTINGS, NEUTRINO_ICON_SETTINGS, width, MN_WIDGET_ID_OSDSETUP_INFOBAR); showOsdInfobarSetup(&osd_menu_infobar); - osd_menu->addItem(new CMenuForwarder(LOCALE_MISCSETTINGS_INFOBAR, true, NULL, &osd_menu_infobar, NULL, CRCInput::RC_1)); + mf = new CMenuForwarder(LOCALE_MISCSETTINGS_INFOBAR, true, NULL, &osd_menu_infobar, NULL, CRCInput::RC_1); + mf->setHint("", LOCALE_MENU_HINT_INFOBAR_SETUP); + osd_menu->addItem(mf); //channellist CMenuWidget osd_menu_chanlist(LOCALE_MAINMENU_SETTINGS, NEUTRINO_ICON_SETTINGS, width, MN_WIDGET_ID_OSDSETUP_CHANNELLIST); showOsdChanlistSetup(&osd_menu_chanlist); - osd_menu->addItem( new CMenuForwarder(LOCALE_MISCSETTINGS_CHANNELLIST, true, NULL, &osd_menu_chanlist, NULL, CRCInput::RC_2)); + mf = new CMenuForwarder(LOCALE_MISCSETTINGS_CHANNELLIST, true, NULL, &osd_menu_chanlist, NULL, CRCInput::RC_2); + mf->setHint("", LOCALE_MENU_HINT_CHANNELLIST_SETUP); + osd_menu->addItem(mf); //screenshot CMenuWidget osd_menu_screenshot(LOCALE_MAINMENU_SETTINGS, NEUTRINO_ICON_SETTINGS, width, MN_WIDGET_ID_OSDSETUP_SCREENSHOT); showOsdScreenshottSetup(&osd_menu_screenshot); - osd_menu->addItem( new CMenuForwarder(LOCALE_SCREENSHOT_MENU, true, NULL, &osd_menu_screenshot, NULL, CRCInput::RC_3)); + mf = new CMenuForwarder(LOCALE_SCREENSHOT_MENU, true, NULL, &osd_menu_screenshot, NULL, CRCInput::RC_3); + mf->setHint("", LOCALE_MENU_HINT_SCREENSHOT_SETUP); + osd_menu->addItem(mf); //monitor - osd_menu->addItem(new CMenuOptionChooser(LOCALE_COLORMENU_OSD_PRESET, &g_settings.screen_preset, OSD_PRESET_OPTIONS, OSD_PRESET_OPTIONS_COUNT, true, this)); + CMenuOptionChooser * mc = new CMenuOptionChooser(LOCALE_COLORMENU_OSD_PRESET, &g_settings.screen_preset, OSD_PRESET_OPTIONS, OSD_PRESET_OPTIONS_COUNT, true, this); + mc->setHint("", LOCALE_MENU_HINT_OSD_PRESET); + osd_menu->addItem(mc); osd_menu->addItem(GenericMenuSeparatorLine); - //options - osd_menu->addItem(new CMenuOptionChooser(LOCALE_EXTRA_ROUNDED_CORNERS, &g_settings.rounded_corners, MENU_CORNERSETTINGS_TYPE_OPTIONS, MENU_CORNERSETTINGS_TYPE_OPTION_COUNT, true, this)); - osd_menu->addItem(new CMenuOptionChooser(LOCALE_EXTRA_SCRAMBLED_MESSAGE, &g_settings.scrambled_message, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); - osd_menu->addItem(new CMenuOptionChooser(LOCALE_INFOVIEWER_SUBCHAN_DISP_POS, &g_settings.infobar_subchan_disp_pos, INFOBAR_SUBCHAN_DISP_POS_OPTIONS, INFOBAR_SUBCHAN_DISP_POS_OPTIONS_COUNT, true)); - osd_menu->addItem(new CMenuOptionChooser(LOCALE_EXTRA_VOLUME_POS, &g_settings.volume_pos, VOLUMEBAR_DISP_POS_OPTIONS, VOLUMEBAR_DISP_POS_OPTIONS_COUNT, true, this)); - osd_menu->addItem(new CMenuOptionChooser(LOCALE_EXTRA_SHOW_MUTE_ICON, &g_settings.show_mute_icon, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); - osd_menu->addItem(new CMenuOptionChooser(LOCALE_SETTINGS_MENU_POS, &g_settings.menu_pos, MENU_DISP_POS_OPTIONS, MENU_DISP_POS_OPTIONS_COUNT, true, this)); + // corners + mc = new CMenuOptionChooser(LOCALE_EXTRA_ROUNDED_CORNERS, &g_settings.rounded_corners, MENU_CORNERSETTINGS_TYPE_OPTIONS, MENU_CORNERSETTINGS_TYPE_OPTION_COUNT, true, this); + mc->setHint("", LOCALE_MENU_HINT_ROUNDED_CORNERS); + osd_menu->addItem(mc); + + // scrambled + mc = new CMenuOptionChooser(LOCALE_EXTRA_SCRAMBLED_MESSAGE, &g_settings.scrambled_message, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_SCRAMBLED_MESSAGE); + osd_menu->addItem(mc); + + // subchannel menu position + mc = new CMenuOptionChooser(LOCALE_INFOVIEWER_SUBCHAN_DISP_POS, &g_settings.infobar_subchan_disp_pos, INFOBAR_SUBCHAN_DISP_POS_OPTIONS, INFOBAR_SUBCHAN_DISP_POS_OPTIONS_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_SUBCHAN_POS); + osd_menu->addItem(mc); + + // volume position + mc = new CMenuOptionChooser(LOCALE_EXTRA_VOLUME_POS, &g_settings.volume_pos, VOLUMEBAR_DISP_POS_OPTIONS, VOLUMEBAR_DISP_POS_OPTIONS_COUNT, true, this); + mc->setHint("", LOCALE_MENU_HINT_VOLUME_POS); + osd_menu->addItem(mc); + + // show mute at volume 0 + mc = new CMenuOptionChooser(LOCALE_EXTRA_SHOW_MUTE_ICON, &g_settings.show_mute_icon, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_SHOW_MUTE_ICON); + osd_menu->addItem(mc); + + // menu position + mc = new CMenuOptionChooser(LOCALE_SETTINGS_MENU_POS, &g_settings.menu_pos, MENU_DISP_POS_OPTIONS, MENU_DISP_POS_OPTIONS_COUNT, true, this); + mc->setHint("", LOCALE_MENU_HINT_MENU_POS); + osd_menu->addItem(mc); + + // menu hints int show_hints = g_settings.show_menu_hints; - osd_menu->addItem(new CMenuOptionChooser(LOCALE_SETTINGS_MENU_HINTS, &show_hints, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, this)); - osd_menu->addItem(new CMenuOptionChooser(LOCALE_COLORMENU_FADE, &g_settings.widget_fade, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true )); - osd_menu->addItem(new CMenuOptionChooser(LOCALE_EXTRA_BIGWINDOWS, &g_settings.big_windows, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); - osd_menu->addItem(new CMenuOptionChooser(LOCALE_PROGRESSBAR_COLOR, &g_settings.progressbar_color, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); + mc = new CMenuOptionChooser(LOCALE_SETTINGS_MENU_HINTS, &show_hints, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, this); + mc->setHint("", LOCALE_MENU_HINT_MENU_HINTS); + osd_menu->addItem(mc); + + // fade windows + mc = new CMenuOptionChooser(LOCALE_COLORMENU_FADE, &g_settings.widget_fade, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true ); + mc->setHint("", LOCALE_MENU_HINT_FADE); + osd_menu->addItem(mc); + + // big windows + mc = new CMenuOptionChooser(LOCALE_EXTRA_BIGWINDOWS, &g_settings.big_windows, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_BIGWINDOWS); + osd_menu->addItem(mc); + + // color progress bar + mc = new CMenuOptionChooser(LOCALE_PROGRESSBAR_COLOR, &g_settings.progressbar_color, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_PROGRESSBAR_COLOR); + osd_menu->addItem(mc); int res = osd_menu->exec(NULL, ""); @@ -586,17 +636,32 @@ void COsdSetup::AddFontSettingItem(CMenuWidget &font_Settings, const SNeutrinoSe void COsdSetup::showOsdFontSizeSetup(CMenuWidget *menu_fonts) { CMenuWidget *fontSettings = menu_fonts; + CMenuForwarder * mf; fontSettings->addIntroItems(LOCALE_FONTMENU_HEAD); - fontSettings->addItem( new CMenuForwarder(LOCALE_COLORMENU_FONT, true, NULL, this, "select_font", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED)); - fontSettings->addItem( new CMenuForwarder(LOCALE_COLORMENU_FONT_TTX, true, NULL, this, "ttx_font", CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN)); - fontSettings->addItem( new CMenuOptionChooser(LOCALE_COLORMENU_CONTRAST_FONTS, &g_settings.contrast_fonts, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, this, CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW)); + // select gui font file + mf = new CMenuForwarder(LOCALE_COLORMENU_FONT, true, NULL, this, "select_font", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED); + mf->setHint("", LOCALE_MENU_HINT_FONT_GUI); + fontSettings->addItem(mf); + + // select teletext font file + mf = new CMenuForwarder(LOCALE_COLORMENU_FONT_TTX, true, NULL, this, "ttx_font", CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN); + mf->setHint("", LOCALE_MENU_HINT_FONT_TTX); + fontSettings->addItem(mf); + + // contrast fonts + CMenuOptionChooser * mc = new CMenuOptionChooser(LOCALE_COLORMENU_CONTRAST_FONTS, &g_settings.contrast_fonts, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, this, CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW); + mc->setHint("", LOCALE_MENU_HINT_CONTRAST_FONTS); + fontSettings->addItem(mc); fontSettings->addItem(new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_FONTMENU_SIZES)); //submenu font scaling - fontSettings->addItem(new CMenuForwarder(LOCALE_FONTMENU_SCALING, true, NULL, this, "font_scaling", CRCInput::RC_blue, NEUTRINO_ICON_BUTTON_BLUE)); + mf = new CMenuForwarder(LOCALE_FONTMENU_SCALING, true, NULL, this, "font_scaling", CRCInput::RC_blue, NEUTRINO_ICON_BUTTON_BLUE); + mc->setHint("", LOCALE_MENU_HINT_FONT_SCALING); + fontSettings->addItem(mf); + //fontSettings->addItem( new CMenuForwarder(LOCALE_EPGPLUS_SELECT_FONT_NAME, true, NULL, this, "select_font")); mn_widget_id_t w_index = MN_WIDGET_ID_OSDSETUP_FONTSIZE_MENU; @@ -613,7 +678,9 @@ void COsdSetup::showOsdFontSizeSetup(CMenuWidget *menu_fonts) fontSettingsSubMenu->addItem(GenericMenuSeparatorLine); fontSettingsSubMenu->addItem(new CMenuForwarder(LOCALE_OPTIONS_DEFAULT, true, NULL, this, font_sizes_groups[i].actionkey)); - fontSettings->addItem(new CMenuDForwarder(font_sizes_groups[i].groupname, true, NULL, fontSettingsSubMenu, "", CRCInput::convertDigitToKey(i+1))); + mf = new CMenuDForwarder(font_sizes_groups[i].groupname, true, NULL, fontSettingsSubMenu, "", CRCInput::convertDigitToKey(i+1)); + mf->setHint("", font_sizes_groups[i].hint); + fontSettings->addItem(mf); w_index++; } } @@ -797,6 +864,4 @@ void COsdSetup::showOsdScreenshottSetup(CMenuWidget *menu_screenshot) menu_screenshot->addItem(new CMenuOptionChooser(LOCALE_SCREENSHOT_VIDEO, &g_settings.screenshot_video, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); menu_screenshot->addItem(new CMenuOptionChooser(LOCALE_SCREENSHOT_SCALE, &g_settings.screenshot_scale, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); menu_screenshot->addItem(new CMenuOptionChooser(LOCALE_SCREENSHOT_COVER, &g_settings.screenshot_cover, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); - - } diff --git a/src/neutrino.h b/src/neutrino.h index 34f29b33e..6cb1ce72b 100644 --- a/src/neutrino.h +++ b/src/neutrino.h @@ -80,6 +80,7 @@ typedef struct font_sizes_groups const unsigned int count; const SNeutrinoSettings::FONT_TYPES * const content; const char * const actionkey; + const neutrino_locale_t hint; } font_sizes_groups_struct; class CNeutrinoApp : public CMenuTarget, CChangeObserver diff --git a/src/system/locals.h b/src/system/locals.h index 1aed9e4df..411957639 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -916,6 +916,32 @@ typedef enum LOCALE_MENU_HINT_INFOBAR_TEXTCOLOR, LOCALE_MENU_HINT_EVENT_TEXTCOLOR, LOCALE_MENU_HINT_FONTS, + LOCALE_MENU_HINT_FONT_GUI, + LOCALE_MENU_HINT_FONT_TTX, + LOCALE_MENU_HINT_CONTRAST_FONTS, + LOCALE_MENU_HINT_FONT_SCALING, + LOCALE_MENU_HINT_MENU_FONTS, + LOCALE_MENU_HINT_CHANNELLIST_FONTS, + LOCALE_MENU_HINT_EVENTLIST_FONTS, + LOCALE_MENU_HINT_EPG_FONTS, + LOCALE_MENU_HINT_INFOBAR_FONTS, + LOCALE_MENU_HINT_GAMELIST_FONTS, + LOCALE_MENU_HINT_TIMEOUTS, + LOCALE_MENU_HINT_SCREEN_SETUP, + LOCALE_MENU_HINT_INFOBAR_SETUP, + LOCALE_MENU_HINT_CHANNELLIST_SETUP, + LOCALE_MENU_HINT_SCREENSHOT_SETUP, + LOCALE_MENU_HINT_OSD_PRESET, + LOCALE_MENU_HINT_ROUNDED_CORNERS, + LOCALE_MENU_HINT_SCRAMBLED_MESSAGE, + LOCALE_MENU_HINT_SUBCHAN_POS, + LOCALE_MENU_HINT_VOLUME_POS, + LOCALE_MENU_HINT_SHOW_MUTE_ICON, + LOCALE_MENU_HINT_MENU_POS, + LOCALE_MENU_HINT_MENU_HINTS, + LOCALE_MENU_HINT_FADE, + LOCALE_MENU_HINT_BIGWINDOWS, + LOCALE_MENU_HINT_PROGRESSBAR_COLOR, LOCALE_MENU_NEXT, LOCALE_MESSAGEBOX_BACK, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index ceb27c652..78e66cbb6 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -916,6 +916,32 @@ const char * locale_real_names[] = "menu.hint_infobar_textcolor", "menu.hint_event_textcolor", "menu.hint_fonts", + "menu.hint_font_gui", + "menu.hint_font_ttx", + "menu.hint_contrast_fonts", + "menu.hint_font_scaling", + "menu.hint_menu_fonts", + "menu.hint_channellist_fonts", + "menu.hint_eventlist_fonts", + "menu.hint_epg_fonts", + "menu.hint_infobar_fonts", + "menu.hint_gamelist_fonts", + "menu.hint_timeouts", + "menu.hint_screen_setup", + "menu.hint_infobar_setup", + "menu.hint_channellist_setup", + "menu.hint_screenshot_setup", + "menu.hint_osd_preset", + "menu.hint_rounded_corners", + "menu.hint_scrambled_message", + "menu.hint_subchannel_pos", + "menu.hint_volume_pos", + "menu.hint_show_mute_icon", + "menu.hint_menu_pos", + "menu.hint_menu_hints", + "menu.hint_fade", + "menu.hint_bigwindows", + "menu.hint_progressbar_color", "menu.next", "messagebox.back", From 7ab08766116cf997ebe401bdb3114199eeeaedb1 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Mon, 9 Jul 2012 17:37:34 +0400 Subject: [PATCH 043/317] gui/osd_setup.cpp: lets just hide menu and repaint on corners option change --- src/gui/osd_setup.cpp | 12 +++++++++--- src/gui/widget/menue.cpp | 3 ++- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/gui/osd_setup.cpp b/src/gui/osd_setup.cpp index 8f912101c..73860b8b0 100644 --- a/src/gui/osd_setup.cpp +++ b/src/gui/osd_setup.cpp @@ -445,7 +445,8 @@ int COsdSetup::showOsdSetup() osd_menu->addItem(GenericMenuSeparatorLine); // corners - mc = new CMenuOptionChooser(LOCALE_EXTRA_ROUNDED_CORNERS, &g_settings.rounded_corners, MENU_CORNERSETTINGS_TYPE_OPTIONS, MENU_CORNERSETTINGS_TYPE_OPTION_COUNT, true, this); + int rounded_corners = g_settings.rounded_corners; + mc = new CMenuOptionChooser(LOCALE_EXTRA_ROUNDED_CORNERS, &rounded_corners, MENU_CORNERSETTINGS_TYPE_OPTIONS, MENU_CORNERSETTINGS_TYPE_OPTION_COUNT, true, this); mc->setHint("", LOCALE_MENU_HINT_ROUNDED_CORNERS); osd_menu->addItem(mc); @@ -776,8 +777,13 @@ bool COsdSetup::changeNotify(const neutrino_locale_t OptionName, void * data) g_InfoViewer->changePB(); return true; } - else if ((ARE_LOCALES_EQUAL(OptionName, LOCALE_EXTRA_VOLUME_POS)) || - (ARE_LOCALES_EQUAL(OptionName, LOCALE_EXTRA_ROUNDED_CORNERS))) { + else if (ARE_LOCALES_EQUAL(OptionName, LOCALE_EXTRA_VOLUME_POS)) { + CVolume::getInstance()->Init(); + return false; + } + else if (ARE_LOCALES_EQUAL(OptionName, LOCALE_EXTRA_ROUNDED_CORNERS)) { + osd_menu->hide(); + g_settings.rounded_corners = * (int*) data; CVolume::getInstance()->Init(); return true; } diff --git a/src/gui/widget/menue.cpp b/src/gui/widget/menue.cpp index 7a523c184..01e3e3f2e 100644 --- a/src/gui/widget/menue.cpp +++ b/src/gui/widget/menue.cpp @@ -870,6 +870,7 @@ void CMenuWidget::paint() saveScreen(); #endif CVFD::getInstance()->setMode(CVFD::MODE_MENU_UTF8, nameString.c_str()); +#if 0 //clear backround on corners switch static bool corners = g_settings.rounded_corners; if(g_settings.rounded_corners != corners){ @@ -880,7 +881,7 @@ void CMenuWidget::paint() frameBuffer->paintBackgroundBoxRel(x, y, full_width, CORNER_RADIUS_LARGE-2+SHADOW_OFFSET); } } - +#endif //paint shadow and backround int rad = RADIUS_LARGE-2; frameBuffer->paintBoxRel(x+SHADOW_OFFSET ,y + SHADOW_OFFSET ,width + sb_width ,height + rad ,COL_MENUCONTENTDARK_PLUS_0 ,rad); From 40509697eccd5736a800edb6524a70875f6cf0d0 Mon Sep 17 00:00:00 2001 From: FlatTV Date: Tue, 10 Jul 2012 15:33:58 +0200 Subject: [PATCH 044/317] icon makefile --- data/icons/Makefile.am | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/data/icons/Makefile.am b/data/icons/Makefile.am index 5cdd35240..aaf0addbd 100644 --- a/data/icons/Makefile.am +++ b/data/icons/Makefile.am @@ -65,6 +65,47 @@ install_DATA = \ help.png \ help_small.png \ hidden.png \ + hint_aplay.png \ + hint_audio.png \ + hint_back.png \ + hint_bedit.png \ + hint_ci.png \ + hint_dboxinfo.png \ + hint_delete.png \ + hint_extended.png \ + hint_fileplay.png \ + hint_games.png \ + hint_hdd.png \ + hint_imageinfo.png \ + hint_inetradio.png \ + hint_info.png \ + hint_keys.png \ + hint_language.png \ + hint_manage.png \ + hint_media.png \ + hint_movie.png \ + hint_network.png \ + hint_osd.png \ + hint_personalize.png \ + hint_picview.png \ + hint_protection.png \ + hint_radiomode.png \ + hint_reboot.png \ + hint_recording.png \ + hint_reload.png \ + hint_save.png \ + hint_scan.png \ + hint_scripts.png \ + hint_service.png \ + hint_settings.png \ + hint_shutdown.png \ + hint_sleeptimer.png \ + hint_streaminfo.png \ + hint_swupdate.png \ + hint_timers.png \ + hint_tvmode.png \ + hint_vfd.png \ + hint_video.png \ home.png \ hungarian.png \ icon_green.png \ From f7fe36a8dc5519f9535e5775f8452346f8d65aeb Mon Sep 17 00:00:00 2001 From: satbaby Date: Wed, 11 Jul 2012 14:36:21 +0200 Subject: [PATCH 045/317] fix OSD --- src/gui/widget/menue.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/gui/widget/menue.cpp b/src/gui/widget/menue.cpp index 01e3e3f2e..aca8ac53b 100644 --- a/src/gui/widget/menue.cpp +++ b/src/gui/widget/menue.cpp @@ -1109,15 +1109,15 @@ printf("paintHint: icon %s text %s\n", item->hintIcon.c_str(), g_Locale->getText frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-4, ypos2+rad, 1 , markh, col2); /* vertical connect line [ */ - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a, 4, ypos2a-ypos1a, col1); - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a, 1, ypos2a-ypos1a+4, col2); + frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a+1, 4, ypos2a-ypos1a-1, col1); + frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a+1, 1, ypos2a-ypos1a+4-1, col2); /* vertical item line | */ - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a, 12, 4, col1); + frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-15, ypos1a, 11, 4, col1); frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a, 12, 1, col2); /* vertical info line | */ - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos2a, 12, 4, col1); + frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-15, ypos2a, 11, 4, col1); frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-12, ypos2a, 8, 1, col2); #if 0 /* box shadow */ From 1196a01818ecb9f1ae4d1bc338238f88e0c99351 Mon Sep 17 00:00:00 2001 From: satbaby Date: Wed, 11 Jul 2012 15:59:41 +0200 Subject: [PATCH 046/317] fix OSD --- src/gui/audioplayer.cpp | 8 ++++---- src/gui/bedit/bouqueteditor_channels.cpp | 8 ++++---- src/gui/channellist.cpp | 8 ++++---- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/gui/audioplayer.cpp b/src/gui/audioplayer.cpp index 1fb5be216..bc4042da3 100644 --- a/src/gui/audioplayer.cpp +++ b/src/gui/audioplayer.cpp @@ -1892,15 +1892,15 @@ void CAudioPlayerGui::paintItemID3DetailsLine (int pos) m_frameBuffer->paintBoxRel(xpos + ConnectLineBox_Width - 4, ypos2+RADIUS_MID, 4, fh /*m_info_height*/, col1); - m_frameBuffer->paintBoxRel(xpos + ConnectLineBox_Width - 16, ypos1a, 4, ypos2a - ypos1a, col1); + m_frameBuffer->paintBoxRel(xpos + ConnectLineBox_Width - 16, ypos1a+1, 4, ypos2a - ypos1a-1, col1); - m_frameBuffer->paintBoxRel(xpos + ConnectLineBox_Width - 16, ypos1a, 12, 4, col1); - m_frameBuffer->paintBoxRel(xpos + ConnectLineBox_Width - 16, ypos2a, 12, 4, col1); + m_frameBuffer->paintBoxRel(xpos + ConnectLineBox_Width - 15, ypos1a, 11, 4, col1); + m_frameBuffer->paintBoxRel(xpos + ConnectLineBox_Width - 15, ypos2a, 11, 4, col1); // 2. col small line m_frameBuffer->paintBoxRel(xpos + ConnectLineBox_Width - 4, ypos2+RADIUS_MID, 1, fh /*m_info_height*/, col2); - m_frameBuffer->paintBoxRel(xpos + ConnectLineBox_Width - 16, ypos1a, 1, ypos2a - ypos1a + 4, col2); + m_frameBuffer->paintBoxRel(xpos + ConnectLineBox_Width - 16, ypos1a+1, 1, ypos2a - ypos1a + 4-1, col2); m_frameBuffer->paintBoxRel(xpos + ConnectLineBox_Width - 16, ypos1a, 12, 1, col2); m_frameBuffer->paintBoxRel(xpos + ConnectLineBox_Width - 12, ypos2a, 8, 1, col2); diff --git a/src/gui/bedit/bouqueteditor_channels.cpp b/src/gui/bedit/bouqueteditor_channels.cpp index 83936c788..83331c92a 100644 --- a/src/gui/bedit/bouqueteditor_channels.cpp +++ b/src/gui/bedit/bouqueteditor_channels.cpp @@ -222,13 +222,13 @@ void CBEChannelWidget::paintItem2DetailsLine (int pos, int /*ch_index*/) frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-4, ypos2+7, 4,info_height-14, col1); frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-4, ypos2+7, 1,info_height-14, col2); - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a, 4,ypos2a-ypos1a, col1); - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a, 1,ypos2a-ypos1a+4, col2); + frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a+1, 4,ypos2a-ypos1a-1, col1); + frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a+1, 1,ypos2a-ypos1a+4-1, col2); - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a, 12,4, col1); + frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-15, ypos1a, 11,4, col1); frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a, 12,1, col2); - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos2a, 12,4, col1); + frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-15, ypos2a, 11,4, col1); frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-12, ypos2a, 8,1, col2); frameBuffer->paintBoxFrame(x, ypos2, width, info_height, 2, col1, RADIUS_LARGE); diff --git a/src/gui/channellist.cpp b/src/gui/channellist.cpp index 5ca33ee3e..1ea492bb0 100644 --- a/src/gui/channellist.cpp +++ b/src/gui/channellist.cpp @@ -1581,15 +1581,15 @@ void CChannelList::paintItem2DetailsLine (int pos, int /*ch_index*/) frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-4, ypos2+7, 1,info_height-14, col2); /* vertical connect line */ - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a, 4,ypos2a-ypos1a, col1); - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a, 1,ypos2a-ypos1a+4, col2); + frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a+1, 4,ypos2a-ypos1a-1, col1); + frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a+1, 1,ypos2a-ypos1a+4-1, col2); /* vertical item line */ - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a, 12,4, col1); + frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-15, ypos1a, 11,4, col1); frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a, 12,1, col2); /* vertical info line */ - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos2a, 12,4, col1); + frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-15, ypos2a, 11,4, col1); frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-12, ypos2a, 8,1, col2); // frameBuffer->paintBoxRel(x, ypos2, width, info_height, col1, RADIUS_LARGE); From c542cb33608e9f291fb2840bbf103da529125cd4 Mon Sep 17 00:00:00 2001 From: micha-bbg Date: Tue, 10 Jul 2012 18:40:06 +0200 Subject: [PATCH 047/317] * Menu hints: Update loclale - english.locale sorted - deutsch.locale sorted and translated some new entries (THX Tomworld) - locals.h/locals_intern.h rebuild - Corrected typo in the locale/source --- data/locale/deutsch.locale | 209 ++++++++++++++++++ data/locale/english.locale | 397 ++++++++++++++++----------------- src/gui/audio_setup.cpp | 2 +- src/gui/miscsettings_menu.cpp | 2 +- src/gui/osd_setup.cpp | 14 +- src/neutrino_menue.cpp | 3 +- src/system/locals.h | 382 +++++++++++++++----------------- src/system/locals_intern.h | 400 ++++++++++++++++------------------ 8 files changed, 777 insertions(+), 632 deletions(-) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index fa788bcbd..37603b677 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -687,6 +687,213 @@ mainsettings.timezone Zeitzone mainsettings.video Video menu.back Zurück menu.cancel Abbrechen +menu.hint_a_pic Konfigurieren Sie den Audio-Player und Bildbetrachter +menu.hint_aplay Audioplayer +menu.hint_audio Audio-Ausgang, DD\nSRS True Volume Optionen +menu.hint_audio_analog_mode Hier wird festgelegt, ob auf dem analogen Ausgang ein Stereo-,\nMono-Links- oder Mono-Rechts-Signal ausgegeben werden soll +menu.hint_audio_avsync Diese Funktion synchronisiert Bild und Ton +menu.hint_audio_dd Ist diese Option auf ein, wird automatisch auf Dolby Digital Ton\numgeschaltet, sobald dieser bei einem Sender verfügbar ist +menu.hint_audio_hdmi_dd Bei aktiver Option wird über den HDMI-Ausgang\nDolby-Digital-Ton ausgegeben +menu.hint_audio_spdif_dd Bei aktiver Option wird über den optischen Ausgang\n(S/PDIF) Dolby-Digital-Ton ausgegeben +menu.hint_audio_srs Hier wird SRS TruVolume an oder abgeschaltet\nbei inhaltlichen Änderungen +menu.hint_audio_srs_algo Mögliche Betriebsarten, einfach oder normal +menu.hint_audio_srs_nmgr Schaltet diese Option an oder aus +menu.hint_audio_srs_volume Hier kann die Referenzlautstärke festgelegt werden +menu.hint_audio_volstep Beim Betätigen der Lautstärketasten wird die Lautstärke\nimmer schrittweise nach diesen Wert geändert +menu.hint_auto_lang Auto-switch audio to preferred language +menu.hint_auto_subs Auto-start subtitles for preferred language +menu.hint_back Zurück zum vorherigen Menü\nDrücken der Menütaste schließt alle Menüs +menu.hint_backup Sichern der Konfigurationen und Kanäle in ein Verzeichnis +menu.hint_bedit Bearbeiten der Favoriten und der Bouquets +menu.hint_bigwindows Always show big epg detail window\nelse 'info' button switch big font + window size +menu.hint_cache_txt Startet das Zwischenspeichern des Teletext nach\nKanalwechsel +menu.hint_cec_mode CEC-Mode +menu.hint_cec_standby CEC-Standby +menu.hint_cec_view_on CEC view ON +menu.hint_channellist_fonts Change channel list font sizes +menu.hint_channellist_setup Configure channe list GUI options +menu.hint_ci Conditional-Access-Menü zum Einrichten\nIhres CI-CAM oder eingebetteten Conax-Karte +menu.hint_colors Configure GUI colors +menu.hint_content_back Change GUI window background color +menu.hint_content_textcolor Change GUI window text color +menu.hint_contrast_fonts Make fonts contrast (do not blend with background) +menu.hint_dboxinfo Informationen über CPU und Speicher der Box +menu.hint_delete_channels Löschen aller Kanale +menu.hint_epg_cache Maximum in Tagen zukünftiger EPG-Daten +menu.hint_epg_dir Speicherverzeichnis auf der Harddsk oder einen USB-Stick\nzum speichern von EPG-Daten +menu.hint_epg_extendedcache Maximum in Stunden, die die EPG-Daten zwischengespeichert\nwerden bzw. der Event-Beschreibungen +menu.hint_epg_fonts Change EPG details window font sizes +menu.hint_epg_max_events Maximum an Events im Zwischenspeicher. Nach Erreichen der\nGrenze werden EPG-Daten für zukünftige gelöscht +menu.hint_epg_old_events EPG im Speicher behalten in Stunden,\nauch wenn es veraltert ist +menu.hint_epg_save Speichert die EPG-Daten auf einer Harddisk oder USB-Stick\nund läd es nach einen Neustart +menu.hint_event_textcolor Change event color for colored-event options\nin channel list and infobar +menu.hint_eventlist_fonts Change event list font sizes +menu.hint_extended Energiespar-, EPG-Speicher- / Lade-Optionen\nHDMI-CEC, Startkanal, Zap-Optionen +menu.hint_factory Zurücksetzen der Box auf Werkseinstellungen\nBox wird nach einem Reset neu gestartet +menu.hint_fade Fade GUI windows +menu.hint_fan_speed Steuerung der Lüftergeschwindigkeit für den CPU +menu.hint_filebrowser_denydirectoryleave Startverzeichnes auf absolut setzen +menu.hint_filebrowser_showrights Anzeige der Dateirechte der Deiteinen im Filebrowser +menu.hint_fileplay Spielen Sie verschiedene Video-Dateien +menu.hint_filesystem_is_utf8 Kodierung für Unicode-Zeichen im Filebrowser +menu.hint_font_gui Select font file to use for GUI +menu.hint_font_scaling Set global vertical and horizontal\nGUI font scaling +menu.hint_font_ttx Select font file to use for teletext +menu.hint_fonts Configure GUI fonts and font sizes +menu.hint_gamelist_fonts Change games and scripts list font sizes +menu.hint_games Zeige Liste der installierten Spiele +menu.hint_hdd Formatierung / Festplatte überprüfen +menu.hint_head_back Change GUI title background color +menu.hint_head_textcolor Change GUI window title text color +menu.hint_imageinfo Informationen über die installierte Software +menu.hint_inact_timer Ausschalten der Box nach Inaktivität in Minuten,\ndie Box geht automatisch in den Deep-Standby +menu.hint_inactive_back Change inactive item background color +menu.hint_inactive_textcolor Change inactive item text color +menu.hint_inet_radio Internetradio +menu.hint_info Informationen über Image, CPU und Speicher,\nStream-Information +menu.hint_infobar_back Change infobar background color +menu.hint_infobar_fonts Change infobar font sizes +menu.hint_infobar_setup Configure infobar options +menu.hint_infobar_textcolor Change infobar text color +menu.hint_keep_numbers Mit der Aktivierung werden den Sendern feste/dauerhafte\nKanalnummern zugewiesen +menu.hint_keys Fernbedienungs Wiederholrate\nTastenbelegungen bearbeiten +menu.hint_lang_pref Configure preferred audio, EPG\nand subtitle languages +menu.hint_language OSD Sprache, Zeitzone\nbevorzugte Audio und Untertitel Sprachen +menu.hint_last_radio In dieser Menüzeile muss der gewünschte\nStart-Radio-Sender eingestellt werden +menu.hint_last_tv In dieser Menüzeile muss der gewünschte\nStart-TV-Sender eingestellt werden +menu.hint_last_use Speichert den aktuellen Kanal beim herunterfahren der Box +menu.hint_load Laden der Neutrino-HD-Einstellungen aus einer Datei +menu.hint_make_hdlist Bei aktiver Option wird ein Bouquet namens "HD" erzeugt\nin dem alle HD Sender zusammengefasst sind +menu.hint_make_newlist Nach einer Kanalsuche wird ein Bouquet namens\n"neue Kanäle" erzeugt +menu.hint_make_removedlist Nach einer Kanalsuche wird ein Bouquet namens\n"gelöschte Kanäle" erzeugt +menu.hint_manage_settings sichern, wiederherstellen, zurück auf die \nStandardwerte, Auslieferungszustand herstellen +menu.hint_mb Ihre Aufnahmen +menu.hint_media Abspielen von Filmen, Audiodateien\nbetrachten Sie Bilder +menu.hint_menu_fonts Change menu font sizes +menu.hint_menu_hints Show this hints.i Also you can switch\nit any time using 'help' button +menu.hint_menu_pos Select menu position +menu.hint_misc_cec HDMI-CEC Optionen +menu.hint_misc_channellist Erweiterte Einstellungen für die Kanallisten\nZappingeinstellungen +menu.hint_misc_energy Energie- und Softstandby-Optionen, verzögertes Ausschalten\nsetzen bzw. ändern des Inaktivitätstimers +menu.hint_misc_epg EPG Sicherrungs- und Ladenoptionen, EPG-Einstellungen\nSicherungsverzeichnis für EPG-Daten +menu.hint_misc_filebrowser Dateisystem, Dateirechte anzeigen im Dateibrowser\nStartverzeichnisoptionen +menu.hint_misc_general Standby-, Teletext-, Rotor-Einstellungen\nPluginverzeichnis auf der HDD +menu.hint_misc_zapit Behandlung der Start-TV/Start-Radio Kanäle +menu.hint_movie Wiedergabe von Filmen +menu.hint_net_broadcast Enter broadcast address\nif unsure, use IP address with last .255 +menu.hint_net_dhcp Use DHCP server to auto-configure +menu.hint_net_djmount mount uPnp devices as filesystem\nunder /media/00upnp +menu.hint_net_ftpd Enable file transfer using FTP +menu.hint_net_gateway Enter gateway/router IP address +menu.hint_net_hostname Change your box hostname +menu.hint_net_if Select interface to config +menu.hint_net_ipaddress Enter your box IP address +menu.hint_net_mount Configure, mount and un-mount network shares\nNFS and CIFS supported +menu.hint_net_nameserver Enter name server (DNS) IP address +menu.hint_net_netmask Enter network mask\nif unsure, use 255.255.255.0 +menu.hint_net_nfs_mount Configure and mount network shares +menu.hint_net_nfs_umount Un-mount mounted shares +menu.hint_net_ntp Configure time sync +menu.hint_net_ntpenable Enable time sync using NTP protocol\nIf NTP sync not successfull, DVB will be used +menu.hint_net_ntprefresh Time sync interval +menu.hint_net_ntpserver Enter NTP server name +menu.hint_net_pass Enter passkey (WPA-PSK) +menu.hint_net_proxy If you use proxy to access internet\nconfigure it here for online software update +menu.hint_net_proxypass Proxy user password\nif authorization required +menu.hint_net_proxyserver Proxy server name +menu.hint_net_proxyuser Proxy user name\nif authorization required +menu.hint_net_services Configure network services:\nTelnet, ftp, uPnp +menu.hint_net_setupnow Apply current settings +menu.hint_net_setuponstartup Start network at boot time +menu.hint_net_show Show current network settings +menu.hint_net_ssid Enter SSID of wireless network\nyou want to connect to +menu.hint_net_telnet Enable telnet login to your box +menu.hint_net_test Test network connection: ping gateway,\n name server and external IP +menu.hint_net_ushare Share connected HDD over uPnp +menu.hint_network IP-Adresse, Gateway, DNS-, Time-Sync\nNetzwerk-Freigaben und Dienste +menu.hint_new_zap_mode Aktiviert Quickzap in der Kanalliste. Nach Betätigen der Mute-\nTaste wird mit den Hoch/Runter Tasten der Sender umgeschaltet +menu.hint_osd Farben, Schriftarten, Anzeigegröße\nGUI Ansichtsoptionen +menu.hint_osd_language Select OSD language +menu.hint_osd_preset Pre-configured screen margins for CRT and LCD TV +menu.hint_parentallock_changepin Change PIN code +menu.hint_parentallock_lockage Select age allowed to watch +menu.hint_parentallock_prompt Configure when Neutrino-HD will ask you\nfor PIN code +menu.hint_personalize aktivieren, deaktivieren, schützen von Menüpunkten\nkonfigurieren der Farb-Tasten in den Benutzermenüs +menu.hint_picview Bilder anzeigen +menu.hint_plugins_hdd_dir Auswahl des Verzeichnisses zum laden von Plugins\n auf der HDD +menu.hint_pref_lang Select preferred audio and EPG language\nselect 'none' to disable +menu.hint_pref_subs Select preferred subtitle language\nselect 'none' to disable +menu.hint_progressbar_color Show colored progress bars +menu.hint_protection Schützen Sie Inhalte per PIN-Code\nStandard-PIN ist 0000 +menu.hint_radiomode schaltet zum Radio-Modus +menu.hint_reboot Rebootet die Box\nohne Bestätigung +menu.hint_record_apid_ac3 Record AC3 audio pids +menu.hint_record_apid_alt Record alternative non-AC3 audio pids +menu.hint_record_apid_std Record first audio pid +menu.hint_record_apids Configure audio pids to record +menu.hint_record_apply Apply record options +menu.hint_record_chandir Create directory with name of channel\nto store recording +menu.hint_record_dir Select directory to store recordings +menu.hint_record_end Stop direct record after max. time\nor after current event end time +menu.hint_record_tdir Select directory to save timeshift recordings\nin temporary timeshift mode +menu.hint_record_time Record time before stop when\nusing direct record with record button +menu.hint_record_timeafter Stop record after event end\nin minutes +menu.hint_record_timebefore Start record before event start\nin minutes +menu.hint_record_timer Configure record by timer options +menu.hint_record_timeshift Configure timeshift options +menu.hint_record_timeshift_auto Auto start timeshift after channel switch, in seconds +menu.hint_record_timeshift_delete Delete timeshift files after timeshift stop +menu.hint_record_timeshift_pause Start timeshift playback in paused mode +menu.hint_record_timeshift_temp If off, timeshift started as\nany direct record +menu.hint_record_zap Switch to channel to be recorded\nat record announce +menu.hint_record_zap_pre_time For ZapTo timers, switch channel\nbefore event start, in minutes +menu.hint_recording Aufnahme- und Timeshift-Optionen\nTimer Optionen, Audio-PIDs Optionen +menu.hint_reload_channels Kanallisten neu laden\nKanallisten aktualisieren +menu.hint_reload_plugins Plugins neu laden\nPlugin-Liste aktualisieren +menu.hint_reset Zurücksetzen von Neutrino-HD-Einstellungen auf Standardwerte\nTuner Einstellungen und Kanäle bleiben erhalten +menu.hint_restore Wiederherstellen von Dateien aus ausgewählten Verzeichnis +menu.hint_rotor_swap Tauschen der Rotordrehrichtung Ost/West\nim Motorsetup +menu.hint_rounded_corners Draw round or rectangular windows corners +menu.hint_save_settings Speichern Sie alle Einstellungen im Image +menu.hint_saveas Speichern der Neutrino-HD-Einstellungen in eine Datei +menu.hint_scrambled_message Show scrambled message, when channel cannot be decoded +menu.hint_screen_setup Configure screen margins +menu.hint_screenshot_setup Configure screenshots options +menu.hint_scripts Skripts ausführen +menu.hint_selected_back Change selected item background color +menu.hint_selected_text Change selected item text color +menu.hint_service Kanalsuche, Senderscan,\nBouquet-Verwaltung, Software-Aktualisierung +menu.hint_service_scan Tuner-Einstellungen, Service-Scan +menu.hint_settings konfigurieren von Neutrino-HD\nNetzwerk, Video, Audio, OSD und mehr +menu.hint_show_mute_icon Show mute icon, when volume set to 0 +menu.hint_shutdown Setzen Sie Ihre Box in den Standby-Modus\noder schaltet die Box komplett aus +menu.hint_shutdown_count Die Zeit zum Deep-Standby,\nwenn die Box im Soft-Standby-Mode ist +menu.hint_shutdown_rcdelay Aktiviert den Deep-Standby, wenn der Powerknopf\nlänger als 1 Sekunde betätigt wird +menu.hint_shutdown_real Aktivieren des Soft-Standby-Modus, wenn diese Option\ndeaktiviert ist, geht die Box in den Deep-Standby +menu.hint_sleeptimer Zeitschaltuhr auf Ihrer Box aktivieren\ndie Box geht dann in den Standby-Modus +menu.hint_soft_restart Neustarten von Neutrino-HD ohne zu Rebooten +menu.hint_start_tostandby Aktiviert den Standby-Modus nach dem Booten +menu.hint_streaminfo aktuelle Sender-Informationen: PIDs, SNR-Verhältnis\nBitrate grafisch +menu.hint_subchannel_pos Select subchannels menu position +menu.hint_sw_update Neutrino-HD auf Software-Update überprüfen\nImage sichern und wiederherstellen +menu.hint_theme Select Select pre-defined color theme\nSave or load theme from files +menu.hint_timeouts Configure time to hide GUI windows\nin seconds +menu.hint_timers Hinzufügen / Entfernen / Bearbeiten geplanter\nAufnahme, Meldungen etc. +menu.hint_timezone Select your timezone +menu.hint_tvmode Schaltet zum TV-Modus +menu.hint_tvradio_switch Schaltet zwischen TV- und Radio-Modus um +menu.hint_vfd Frontpanel LED's, VFD Optionen +menu.hint_video Video-Ausgang, Auflösung, Format\nSeitenverhältnise, Modus-Schalter Optionen +menu.hint_video_43mode Anzeigemodus für 4:3-Inhalte auf 16:9 TV's +menu.hint_video_analog_mode Wählen Sie den Analogausgang Modus\nfür den SCART und CINCH Anschluss +menu.hint_video_cinch_mode Wählen Sie den Analogausgang Modus\nfür den Composite Video Ausgang +menu.hint_video_dbdr Verwendeter MPEG2 Filter +menu.hint_video_format Diese Option aktiviert das "Bildschirmformat"\nauf das Format Deines Fernsehgerätes +menu.hint_video_mode Definiert in welchen Videoformat das Bild über den\nHDMI-Ausgang ausgegeben wird +menu.hint_video_modes Definiert welche Videosysteme mit der VF-Taste\nder Fernbedienung ausgewählt werden können +menu.hint_video_scart_mode Wählen Sie den Analogausgang Modus\nfür den SCART Ausgang +menu.hint_volume_pos Select volume indicator position +menu.hint_zap_cycle Dadurch wird nur innerhalb des aktiven Bouquets gezappt menu.next Weiter (Menü zum Beenden) messagebox.back Zurück messagebox.cancel Abbruch @@ -952,6 +1159,7 @@ networkmenu.ntptitle Zeitsynchronisation networkmenu.password Passwort (PSK) networkmenu.reset_settings_now Sollen die vorherigen Einstellungen \nwieder hergestellt werden? networkmenu.select_if Schnittstelle +networkmenu.services Netzwerkservice networkmenu.setupnow Einstellungen jetzt zuweisen networkmenu.setuponstartup Beim Start Netzwerk setzen networkmenu.show Aktive Einstellungen zeigen @@ -1234,6 +1442,7 @@ servicemenu.update Software-Aktualisierung settings.backup Image-Einstellungen: Sichern settings.backup_failed Sicherung fehlgeschlagen! settings.help Hilfe +settings.menu_hints Menühinweise anzeigen settings.menu_pos Menüposition settings.missingoptionsconffile Die Neutrino-HD Einstellungen wurden erweitert.\nDie neuen Werte werden auf Standard gesetzt. settings.noconffile Die Neutrino-HD Einstellungen wurden nicht\ngefunden. Es werden Standardwerte benutzt. diff --git a/data/locale/english.locale b/data/locale/english.locale index 1251d1c0c..1a54d47c9 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -687,234 +687,213 @@ mainsettings.timezone Timezone mainsettings.video Video menu.back Back menu.cancel Cancel - -menu.hint_back Return to previous menu\nPress menu key to close all menus -menu.hint_tvmode Switch box to TV mode -menu.hint_radiomode Switch box to radio mode -menu.hint_timers Add/Remove/Edit scheduled\nrecording, reminders etc. -menu.hint_media Play movies, audio files\nWatch pictures -menu.hint_games Show list of installed games -menu.hint_scripts Run scripts -menu.hint_settings Configure Neutrino-HD\nNetwork, audio, video, OSD and more -menu.hint_service Tuner setup, service scan,\nbouquet editor, software upgrade -menu.hint_sleeptimer Set timer to put your box\nin sleep mode -menu.hint_reboot Reboot box\nNo confirmation -menu.hint_shutdown Put your box in deep standby mode\nNo confirmation -menu.hint_info Information about image, box cpu and storage,\nstream information -menu.hint_ci Conditional access menu\nto setup your CI CAM or embeded Conax card - -menu.hint_aplay Audio player -menu.hint_inet_radio Internet radio -menu.hint_movie Play movies -menu.hint_picview View pictures -menu.hint_mb Your recordings -menu.hint_fileplay Play various video files - -menu.hint_save_settings Save all settings to flash -menu.hint_manage_settings Backup, restore, revert to defaults\nFactory box reset -menu.hint_personalize Enable, disable or Protect menu items\nConfigure color-buttons user menus -menu.hint_extended Power saving, EPG save/load options\nHDMI-CEC, Start channel, zap options -menu.hint_video Video output, resolution, format\nAspect ratio, fast mode switch options -menu.hint_audio Audio output, DD\nSRS True volume options -menu.hint_protection Protect content by PIN code\nDefault PIN 0000 -menu.hint_network IP address, gateway, DNS, Time sync\nNetwork shares and services -menu.hint_recording Recording and timeshift options\nTimers safety, audio pids options -menu.hint_language OSD language, timezone\nPreffered audio and subtitles languages -menu.hint_osd Colors, fonts, screen size\nGUI look and feel options -menu.hint_vfd Frontpanel LEDS, VFD options -menu.hint_hdd Format / check hard disk drive -menu.hint_keys Remote control repeat rate\nEdit key bindings menu.hint_a_pic Configure audio player and picture viewer - -menu.hint_service_scan Tuner setup, service scan -menu.hint_reload_channels Reload channels from flash -menu.hint_bedit Edit favorites and bouquets -menu.hint_delete_channels Remove all channels -menu.hint_soft_restart Restart Neutrino-HD without reboot -menu.hint_reload_plugins Reload plugins from flash -menu.hint_sw_update Update software - -menu.hint_imageinfo Information about installed software -menu.hint_dboxinfo Information about box cpu and storage -menu.hint_streaminfo Current channel info: pids, signal and noise ratio\nBitrate graphs - -menu.hint_reset Reset Neutrino-HD GUI settings to defaults\nTuner config and channels not affected -menu.hint_saveas Save Neutrino-HD GUI settings to file -menu.hint_load Load Neutrino-HD GUI settings from file -menu.hint_backup Backup configs and channels to selected dir -menu.hint_restore Restore files from selected backup -menu.hint_factory Reset box to factory state\nBox will reboot after reset - -menu.hint_misc_general Start to standby, cache teletext, swp rotor\nplugin hdd dir -menu.hint_misc_energy Enable soft-standby, delayed shutdown\ninactivity timers -menu.hint_misc_epg Save/load EPG options, EPG cache options\nEPG save directory -menu.hint_misc_filebrowser Filesystem encoding, file rights\ndeny directory leave -menu.hint_misc_cec HDMI-CEC Options -menu.hint_misc_channellist HD/New/Removed channel lists\nZap cycle -menu.hint_misc_zapit Initial TV/Radio channels - -menu.hint_start_tostandby Enter standby mode after boot -menu.hint_cache_txt Start teletext caching after channel switch -menu.hint_fan_speed Control fan speed -menu.hint_rotor_swap Swap rotor east/west directions\nin motor control -menu.hint_plugins_hdd_dir Select directory to load\nplugins from - -menu.hint_shutdown_real Enable soft-standby mode\nIf disabled, power button put box to deep-standby -menu.hint_shutdown_rcdelay Enable deep-standby, if power button\npressed more than 1 second -menu.hint_shutdown_count Time to put box in deep-standby\nfrom soft-standby mode -menu.hint_inact_timer Shutdown box after inactivity - -menu.hint_epg_save Save cached EPG to harddisk or usb flash\nand load it after boot -menu.hint_epg_cache Maximum days to cache for future events -menu.hint_epg_extendedcache Maximum hours to cache extended\nevents descriptions -menu.hint_epg_old_events Hours after event end time to consider\nevent old and remove it from cache -menu.hint_epg_max_events Maximum events to cache. After reaching limit\nEPG cache will remove future events -menu.hint_epg_dir Select directory on harddisk or usb flash\nto save EPG. - -menu.hint_filesystem_is_utf8 Filebrowser filesystem encoding -menu.hint_filebrowser_showrights Show file permissions in file browser -menu.hint_filebrowser_denydirectoryleave Deny filebrowser to leave initial directory - -menu.hint_make_hdlist Auto-create HD channel list based on\nchannel type and name -menu.hint_make_newlist Create list of recently added channels -menu.hint_make_removedlist Create list of recently removed channels -menu.hint_keep_numbers Keep channel numbers over next scans\nand bouquets editing -menu.hint_zap_cycle When swithing channels, stay in current bouquet -menu.hint_new_zap_mode Allow channel switch while browsing\n(toggle mode with 'mute' in channel list) - -menu.hint_cec_mode CEC mode -menu.hint_cec_view_on CEC view ON -menu.hint_cec_standby CEC standby - -menu.hint_last_use Start box on last used channel -menu.hint_last_tv Start box on selected channel\nif last mode is TV -menu.hint_last_radio Start box on selected channel\nif last mode is Radio - -menu.hint_video_analog_mode Select analog output mode\nfor SCART and CINCH connectors -menu.hint_video_scart_mode Select analog output mode for SCART connectors -menu.hint_video_cinch_mode Select analog output mode for\ncomposite video out -menu.hint_video_43mode Display mode for 4:3 content\non 16:9 TV -menu.hint_video_format TV aspect ratio -menu.hint_video_mode HDMI output video mode -menu.hint_video_dbdr MPEG2 enhancement filters -menu.hint_video_modes VF key will cycle between enabled modes - +menu.hint_aplay Audio player +menu.hint_audio Audio output, DD\nSRS True volume options menu.hint_audio_analog_mode Select audio channel to use\nstereo, mono-left, mono-right +menu.hint_audio_avsync A/V sync menu.hint_audio_dd Auto-switch to DolbyDigital audio pid,\nif available menu.hint_audio_hdmi_dd DolbyDigital over HDMI: off - decoded\nauto if supported by device, force menu.hint_audio_spdif_dd DolbyDigital over optical output -menu.hint_audio_avsync A/V sync -menu.hint_audio_volstep Volume +/- keys increase/decrease step menu.hint_audio_srs SRS TruVolume control volume jumps\nat content changes menu.hint_audio_srs_algo Amount of control, light or normal menu.hint_audio_srs_nmgr Noise manager menu.hint_audio_srs_volume Reference level to maintain - -menu.hint_parentallock_promt Configure when Neutrino-HD will ask you\nfor PIN code -menu.hint_parentallock_lockage Select age allowed to watch -menu.hint_parentallock_changepin Change PIN code - -menu.hint_net_setupnow Apply current settings -menu.hint_net_test Test network connection: ping gateway,\n name server and external IP -menu.hint_net_show Show current network settings -menu.hint_net_if Select interface to config -menu.hint_net_setuponstartup Start network at boot time -menu.hint_net_dhcp Use DHCP server to auto-configure -menu.hint_net_hostname Change your box hostname -menu.hint_net_ipaddress Enter your box IP address -menu.hint_net_netmask Enter network mask\nif unsure, use 255.255.255.0 -menu.hint_net_broadcast Enter broadcast address\nif unsure, use IP address with last .255 -menu.hint_net_gateway Enter gateway/router IP address -menu.hint_net_nameserver Enter name server (DNS) IP address -menu.hint_net_ssid Enter SSID of wireless network\nyou want to connect to -menu.hint_net_pass Enter passkey (WPA-PSK) -menu.hint_net_ntp Configure time sync -menu.hint_net_mount Configure, mount and un-mount network shares\nNFS and CIFS supported -menu.hint_net_nfs_mount Configure and mount network shares -menu.hint_net_nfs_umount Un-mount mounted shares -menu.hint_net_ntpenable Enable time sync using NTP protocol\nIf NTP sync not successfull, DVB will be used -menu.hint_net_ntpserver Enter NTP server name -menu.hint_net_ntprefresh Time sync interval -menu.hint_net_proxy If you use proxy to access internet\nconfigure it here for online software update -menu.hint_net_proxyserver Proxy server name -menu.hint_net_proxyuser Proxy user name\nif authorization required -menu.hint_net_proxypass Proxy user password\nif authorization required -menu.hint_net_services Configure network services:\nTelnet, ftp, uPnp -menu.hint_net_telnet Enable telnet login to your box -menu.hint_net_ftpd Enable file transfer using FTP -menu.hint_net_djmount mount uPnp devices as filesystem\nunder /media/00upnp -menu.hint_net_ushare Share connected HDD over uPnp - -menu.hint_record_apply Apply record options -menu.hint_record_dir Select directory to store recordings -menu.hint_record_chandir Create directory with name of channel\nto store recording -menu.hint_record_time Record time before stop when\nusing direct record with record button -menu.hint_record_end Stop direct record after max. time\nor after current event end time -menu.hint_record_timeshift Configure timeshift options -menu.hint_record_timer Configure record by timer options -menu.hint_record_apids Configure audio pids to record -menu.hint_record_timebefore Start record before event start\nin minutes -menu.hint_record_timeafter Stop record after event end\nin minutes -menu.hint_record_zap Switch to channel to be recorded\nat record announce -menu.hint_record_zap_pre_time For ZapTo timers, switch channel\nbefore event start, in minutes -menu.hint_record_apid_std Record first audio pid -menu.hint_record_apid_alt Record alternative non-AC3 audio pids -menu.hint_record_apid_ac3 Record AC3 audio pids -menu.hint_record_tdir Select directory to save timeshift recordings\nin temporary timeshift mode -menu.hint_record_timeshift_pause Start timeshift playback in paused mode -menu.hint_record_timeshift_auto Auto start timeshift after channel switch, in seconds -menu.hint_record_timeshift_delete Delete timeshift files after timeshift stop -menu.hint_record_timeshift_temp If off, timeshift started as\nany direct record - -menu.hint_osd_language Select OSD language -menu.hint_timezone Select your timezone -menu.hint_lang_pref Configure preferred audio, EPG\nand subtitle languages +menu.hint_audio_volstep Volume +/- keys increase/decrease step menu.hint_auto_lang Auto-switch audio to preferred language -menu.hint_pref_lang Select preferred audio and EPG language\nselect 'none' to disable menu.hint_auto_subs Auto-start subtitles for preferred language -menu.hint_pref_subs Select preferred subtitle language\nselect 'none' to disable - +menu.hint_back Return to previous menu\nPress menu key to close all menus +menu.hint_backup Backup configs and channels to selected dir +menu.hint_bedit Edit favorites and bouquets +menu.hint_bigwindows Always show big epg detail window\nelse 'info' button switch big font + window size +menu.hint_cache_txt Start teletext caching after channel switch +menu.hint_cec_mode CEC mode +menu.hint_cec_standby CEC standby +menu.hint_cec_view_on CEC view ON +menu.hint_channellist_fonts Change channel list font sizes +menu.hint_channellist_setup Configure channe list GUI options +menu.hint_ci Conditional access menu\nto setup your CI CAM or embeded Conax card menu.hint_colors Configure GUI colors -menu.hint_theme Select Select pre-defined color theme\nSave or load theme from files -menu.hint_head_back Change GUI title background color -menu.hint_head_textcolor Change GUI window title text color menu.hint_content_back Change GUI window background color menu.hint_content_textcolor Change GUI window text color +menu.hint_contrast_fonts Make fonts contrast (do not blend with background) +menu.hint_dboxinfo Information about box cpu and storage +menu.hint_delete_channels Remove all channels +menu.hint_epg_cache Maximum days to cache for future events +menu.hint_epg_dir Select directory on harddisk or usb flash\nto save EPG. +menu.hint_epg_extendedcache Maximum hours to cache extended\nevents descriptions +menu.hint_epg_fonts Change EPG details window font sizes +menu.hint_epg_max_events Maximum events to cache. After reaching limit\nEPG cache will remove future events +menu.hint_epg_old_events Hours after event end time to consider\nevent old and remove it from cache +menu.hint_epg_save Save cached EPG to harddisk or usb flash\nand load it after boot +menu.hint_event_textcolor Change event color for colored-event options\nin channel list and infobar +menu.hint_eventlist_fonts Change event list font sizes +menu.hint_extended Power saving, EPG save/load options\nHDMI-CEC, Start channel, zap options +menu.hint_factory Reset box to factory state\nBox will reboot after reset +menu.hint_fade Fade GUI windows +menu.hint_fan_speed Control fan speed +menu.hint_filebrowser_denydirectoryleave Deny filebrowser to leave initial directory +menu.hint_filebrowser_showrights Show file permissions in file browser +menu.hint_fileplay Play various video files +menu.hint_filesystem_is_utf8 Filebrowser filesystem encoding +menu.hint_font_gui Select font file to use for GUI +menu.hint_font_scaling Set global vertical and horizontal\nGUI font scaling +menu.hint_font_ttx Select font file to use for teletext +menu.hint_fonts Configure GUI fonts and font sizes +menu.hint_gamelist_fonts Change games and scripts list font sizes +menu.hint_games Show list of installed games +menu.hint_hdd Format / check hard disk drive +menu.hint_head_back Change GUI title background color +menu.hint_head_textcolor Change GUI window title text color +menu.hint_imageinfo Information about installed software +menu.hint_inact_timer Shutdown box after inactivity menu.hint_inactive_back Change inactive item background color menu.hint_inactive_textcolor Change inactive item text color +menu.hint_inet_radio Internet radio +menu.hint_info Information about image, box cpu and storage,\nstream information +menu.hint_infobar_back Change infobar background color +menu.hint_infobar_fonts Change infobar font sizes +menu.hint_infobar_setup Configure infobar options +menu.hint_infobar_textcolor Change infobar text color +menu.hint_keep_numbers Keep channel numbers over next scans\nand bouquets editing +menu.hint_keys Remote control repeat rate\nEdit key bindings +menu.hint_lang_pref Configure preferred audio, EPG\nand subtitle languages +menu.hint_language OSD language, timezone\nPreffered audio and subtitles languages +menu.hint_last_radio Start box on selected channel\nif last mode is Radio +menu.hint_last_tv Start box on selected channel\nif last mode is TV +menu.hint_last_use Start box on last used channel +menu.hint_load Load Neutrino-HD GUI settings from file +menu.hint_make_hdlist Auto-create HD channel list based on\nchannel type and name +menu.hint_make_newlist Create list of recently added channels +menu.hint_make_removedlist Create list of recently removed channels +menu.hint_manage_settings Backup, restore, revert to defaults\nFactory box reset +menu.hint_mb Your recordings +menu.hint_media Play movies, audio files\nWatch pictures +menu.hint_menu_fonts Change menu font sizes +menu.hint_menu_hints Show this hints.i Also you can switch\nit any time using 'help' button +menu.hint_menu_pos Select menu position +menu.hint_misc_cec HDMI-CEC Options +menu.hint_misc_channellist HD/New/Removed channel lists\nZap cycle +menu.hint_misc_energy Enable soft-standby, delayed shutdown\ninactivity timers +menu.hint_misc_epg Save/load EPG options, EPG cache options\nEPG save directory +menu.hint_misc_filebrowser Filesystem encoding, file rights\ndeny directory leave +menu.hint_misc_general Start to standby, cache teletext, swp rotor\nplugin hdd dir +menu.hint_misc_zapit Initial TV/Radio channels +menu.hint_movie Play movies +menu.hint_net_broadcast Enter broadcast address\nif unsure, use IP address with last .255 +menu.hint_net_dhcp Use DHCP server to auto-configure +menu.hint_net_djmount mount uPnp devices as filesystem\nunder /media/00upnp +menu.hint_net_ftpd Enable file transfer using FTP +menu.hint_net_gateway Enter gateway/router IP address +menu.hint_net_hostname Change your box hostname +menu.hint_net_if Select interface to config +menu.hint_net_ipaddress Enter your box IP address +menu.hint_net_mount Configure, mount and un-mount network shares\nNFS and CIFS supported +menu.hint_net_nameserver Enter name server (DNS) IP address +menu.hint_net_netmask Enter network mask\nif unsure, use 255.255.255.0 +menu.hint_net_nfs_mount Configure and mount network shares +menu.hint_net_nfs_umount Un-mount mounted shares +menu.hint_net_ntp Configure time sync +menu.hint_net_ntpenable Enable time sync using NTP protocol\nIf NTP sync not successfull, DVB will be used +menu.hint_net_ntprefresh Time sync interval +menu.hint_net_ntpserver Enter NTP server name +menu.hint_net_pass Enter passkey (WPA-PSK) +menu.hint_net_proxy If you use proxy to access internet\nconfigure it here for online software update +menu.hint_net_proxypass Proxy user password\nif authorization required +menu.hint_net_proxyserver Proxy server name +menu.hint_net_proxyuser Proxy user name\nif authorization required +menu.hint_net_services Configure network services:\nTelnet, ftp, uPnp +menu.hint_net_setupnow Apply current settings +menu.hint_net_setuponstartup Start network at boot time +menu.hint_net_show Show current network settings +menu.hint_net_ssid Enter SSID of wireless network\nyou want to connect to +menu.hint_net_telnet Enable telnet login to your box +menu.hint_net_test Test network connection: ping gateway,\n name server and external IP +menu.hint_net_ushare Share connected HDD over uPnp +menu.hint_network IP address, gateway, DNS, Time sync\nNetwork shares and services +menu.hint_new_zap_mode Allow channel switch while browsing\n(toggle mode with 'mute' in channel list) +menu.hint_osd Colors, fonts, screen size\nGUI look and feel options +menu.hint_osd_language Select OSD language +menu.hint_osd_preset Pre-configured screen margins for CRT and LCD TV +menu.hint_parentallock_changepin Change PIN code +menu.hint_parentallock_lockage Select age allowed to watch +menu.hint_parentallock_prompt Configure when Neutrino-HD will ask you\nfor PIN code +menu.hint_personalize Enable, disable or Protect menu items\nConfigure color-buttons user menus +menu.hint_picview View pictures +menu.hint_plugins_hdd_dir Select directory to load\nplugins from +menu.hint_pref_lang Select preferred audio and EPG language\nselect 'none' to disable +menu.hint_pref_subs Select preferred subtitle language\nselect 'none' to disable +menu.hint_progressbar_color Show colored progress bars +menu.hint_protection Protect content by PIN code\nDefault PIN 0000 +menu.hint_radiomode Switch box to radio mode +menu.hint_reboot Reboot box\nNo confirmation +menu.hint_record_apid_ac3 Record AC3 audio pids +menu.hint_record_apid_alt Record alternative non-AC3 audio pids +menu.hint_record_apid_std Record first audio pid +menu.hint_record_apids Configure audio pids to record +menu.hint_record_apply Apply record options +menu.hint_record_chandir Create directory with name of channel\nto store recording +menu.hint_record_dir Select directory to store recordings +menu.hint_record_end Stop direct record after max. time\nor after current event end time +menu.hint_record_tdir Select directory to save timeshift recordings\nin temporary timeshift mode +menu.hint_record_time Record time before stop when\nusing direct record with record button +menu.hint_record_timeafter Stop record after event end\nin minutes +menu.hint_record_timebefore Start record before event start\nin minutes +menu.hint_record_timer Configure record by timer options +menu.hint_record_timeshift Configure timeshift options +menu.hint_record_timeshift_auto Auto start timeshift after channel switch, in seconds +menu.hint_record_timeshift_delete Delete timeshift files after timeshift stop +menu.hint_record_timeshift_pause Start timeshift playback in paused mode +menu.hint_record_timeshift_temp If off, timeshift started as\nany direct record +menu.hint_record_zap Switch to channel to be recorded\nat record announce +menu.hint_record_zap_pre_time For ZapTo timers, switch channel\nbefore event start, in minutes +menu.hint_recording Recording and timeshift options\nTimers safety, audio pids options +menu.hint_reload_channels Reload channels from flash +menu.hint_reload_plugins Reload plugins from flash +menu.hint_reset Reset Neutrino-HD GUI settings to defaults\nTuner config and channels not affected +menu.hint_restore Restore files from selected backup +menu.hint_rotor_swap Swap rotor east/west directions\nin motor control +menu.hint_rounded_corners Draw round or rectangular windows corners +menu.hint_save_settings Save all settings to flash +menu.hint_saveas Save Neutrino-HD GUI settings to file +menu.hint_scrambled_message Show scrambled message, when channel cannot be decoded +menu.hint_screen_setup Configure screen margins +menu.hint_screenshot_setup Configure screenshots options +menu.hint_scripts Run scripts menu.hint_selected_back Change selected item background color menu.hint_selected_text Change selected item text color -menu.hint_infobar_back Change infobar background color -menu.hint_infobar_textcolor Change infobar text color -menu.hint_event_textcolor Change event color for colored-event options\nin channel list and infobar -menu.hint_fonts Configure GUI fonts and font sizes -menu.hint_font_gui Select font file to use for GUI -menu.hint_font_ttx Select font file to use for teletext -menu.hint_contrast_fonts Make fonts contrast (do not blend with background) -menu.hint_font_scaling Set global vertical and horizontal\nGUI font scaling -menu.hint_menu_fonts Change menu font sizes -menu.hint_channellist_fonts Change channel list font sizes -menu.hint_eventlist_fonts Change event list font sizes -menu.hint_epg_fonts Change EPG details window font sizes -menu.hint_infobar_fonts Change infobar font sizes -menu.hint_gamelist_fonts Change games and scripts list font sizes -menu.hint_timeouts Configure time to hide GUI windows\nin seconds -menu.hint_screen_setup Configure screen margins -menu.hint_infobar_setup Configure infobar options -menu.hint_channellist_setup Configure channe list GUI options -menu.hint_screenshot_setup Configure screenshots options -menu.hint_osd_preset Pre-configured screen margins for CRT and LCD TV -menu.hint_rounded_corners Draw round or rectangular windows corners -menu.hint_scrambled_message Show scrambled message, when channel cannot be decoded -menu.hint_subchannel_pos Select subchannels menu position -menu.hint_volume_pos Select volume indicator position +menu.hint_service Tuner setup, service scan,\nbouquet editor, software upgrade +menu.hint_service_scan Tuner setup, service scan +menu.hint_settings Configure Neutrino-HD\nNetwork, audio, video, OSD and more menu.hint_show_mute_icon Show mute icon, when volume set to 0 -menu.hint_menu_pos Select menu position -menu.hint_menu_hints Show this hints.i Also you can switch\nit any time using 'help' button -menu.hint_fade Fade GUI windows -menu.hint_bigwindows Always show big epg detail window\nelse 'info' button switch big font + window size -menu.hint_progressbar_color Show colored progress bars - +menu.hint_shutdown Put your box in deep standby mode\nNo confirmation +menu.hint_shutdown_count Time to put box in deep-standby\nfrom soft-standby mode +menu.hint_shutdown_rcdelay Enable deep-standby, if power button\npressed more than 1 second +menu.hint_shutdown_real Enable soft-standby mode\nIf disabled, power button put box to deep-standby +menu.hint_sleeptimer Set timer to put your box\nin sleep mode +menu.hint_soft_restart Restart Neutrino-HD without reboot +menu.hint_start_tostandby Enter standby mode after boot +menu.hint_streaminfo Current channel info: pids, signal and noise ratio\nBitrate graphs +menu.hint_subchannel_pos Select subchannels menu position +menu.hint_sw_update Update software +menu.hint_theme Select Select pre-defined color theme\nSave or load theme from files +menu.hint_timeouts Configure time to hide GUI windows\nin seconds +menu.hint_timers Add/Remove/Edit scheduled\nrecording, reminders etc. +menu.hint_timezone Select your timezone +menu.hint_tvmode Switch box to TV mode +menu.hint_tvradio_switch Switches between TV and Radio mode +menu.hint_vfd Frontpanel LEDS, VFD options +menu.hint_video Video output, resolution, format\nAspect ratio, fast mode switch options +menu.hint_video_43mode Display mode for 4:3 content\non 16:9 TV +menu.hint_video_analog_mode Select analog output mode\nfor SCART and CINCH connectors +menu.hint_video_cinch_mode Select analog output mode for\ncomposite video out +menu.hint_video_dbdr MPEG2 enhancement filters +menu.hint_video_format TV aspect ratio +menu.hint_video_mode HDMI output video mode +menu.hint_video_modes VF key will cycle between enabled modes +menu.hint_video_scart_mode Select analog output mode for SCART connectors +menu.hint_volume_pos Select volume indicator position +menu.hint_zap_cycle When swithing channels, stay in current bouquet menu.next Next (press Menu to quit) messagebox.back Back messagebox.cancel Cancel diff --git a/src/gui/audio_setup.cpp b/src/gui/audio_setup.cpp index e737ad34b..4cf8ee6a5 100644 --- a/src/gui/audio_setup.cpp +++ b/src/gui/audio_setup.cpp @@ -131,7 +131,7 @@ int CAudioSetup::showAudioSetup() //dd subchannel auto on/off CMenuOptionChooser * as_oj_ddsubchn = new CMenuOptionChooser(LOCALE_AUDIOMENU_DOLBYDIGITAL, &g_settings.audio_DolbyDigital, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, audioSetupNotifier); - as_oj_ddsubchn->setHint("", LOCALE_MENU_HINT_AUDIO_DOLBYDIGITAL); + as_oj_ddsubchn->setHint("", LOCALE_MENU_HINT_AUDIO_DD); //dd via hdmi CMenuOptionChooser * as_oj_dd_hdmi = new CMenuOptionChooser(LOCALE_AUDIOMENU_HDMI_DD, &g_settings.hdmi_dd, AUDIOMENU_HDMI_DD_OPTIONS, AUDIOMENU_HDMI_DD_OPTION_COUNT, true, audioSetupNotifier); diff --git a/src/gui/miscsettings_menu.cpp b/src/gui/miscsettings_menu.cpp index 501fefc32..01ec9cfb6 100644 --- a/src/gui/miscsettings_menu.cpp +++ b/src/gui/miscsettings_menu.cpp @@ -276,7 +276,7 @@ void CMiscMenue::showMiscSettingsMenuEnergy(CMenuWidget *ms_energy) ms_energy->addIntroItems(LOCALE_MISCSETTINGS_ENERGY); CMenuOptionChooser *m1 = new CMenuOptionChooser(LOCALE_MISCSETTINGS_SHUTDOWN_REAL_RCDELAY, &g_settings.shutdown_real_rcdelay, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, !g_settings.shutdown_real); - m1->setHint("", LOCALE_MENU_HINT_SHUTDOWN_REAL_RCDELAY); + m1->setHint("", LOCALE_MENU_HINT_SHUTDOWN_RCDELAY); CStringInput * miscSettings_shutdown_count = new CStringInput(LOCALE_MISCSETTINGS_SHUTDOWN_COUNT, g_settings.shutdown_count, 3, LOCALE_MISCSETTINGS_SHUTDOWN_COUNT_HINT1, LOCALE_MISCSETTINGS_SHUTDOWN_COUNT_HINT2, "0123456789 "); CMenuForwarder *m2 = new CMenuDForwarder(LOCALE_MISCSETTINGS_SHUTDOWN_COUNT, !g_settings.shutdown_real, g_settings.shutdown_count, miscSettings_shutdown_count); diff --git a/src/gui/osd_setup.cpp b/src/gui/osd_setup.cpp index 73860b8b0..a4986e0a7 100644 --- a/src/gui/osd_setup.cpp +++ b/src/gui/osd_setup.cpp @@ -457,7 +457,7 @@ int COsdSetup::showOsdSetup() // subchannel menu position mc = new CMenuOptionChooser(LOCALE_INFOVIEWER_SUBCHAN_DISP_POS, &g_settings.infobar_subchan_disp_pos, INFOBAR_SUBCHAN_DISP_POS_OPTIONS, INFOBAR_SUBCHAN_DISP_POS_OPTIONS_COUNT, true); - mc->setHint("", LOCALE_MENU_HINT_SUBCHAN_POS); + mc->setHint("", LOCALE_MENU_HINT_SUBCHANNEL_POS); osd_menu->addItem(mc); // volume position @@ -531,7 +531,7 @@ void COsdSetup::showOsdMenueColorSetup(CMenuWidget *menu_colors) menu_colors->addItem( new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_COLORMENUSETUP_MENUHEAD)); mf = new CMenuDForwarder(LOCALE_COLORMENU_BACKGROUND, true, NULL, chHeadcolor ); - mf->setHint("", LOCALE_MENU_HINT_HEAD_BACKGROUND); + mf->setHint("", LOCALE_MENU_HINT_HEAD_BACK); menu_colors->addItem(mf); mf = new CMenuDForwarder(LOCALE_COLORMENU_TEXTCOLOR, true, NULL, chHeadTextcolor ); @@ -540,7 +540,7 @@ void COsdSetup::showOsdMenueColorSetup(CMenuWidget *menu_colors) menu_colors->addItem( new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_COLORMENUSETUP_MENUCONTENT)); mf = new CMenuDForwarder(LOCALE_COLORMENU_BACKGROUND, true, NULL, chContentcolor ); - mf->setHint("", LOCALE_MENU_HINT_CONTENT_BACKGROUND); + mf->setHint("", LOCALE_MENU_HINT_CONTENT_BACK); menu_colors->addItem(mf); mf = new CMenuDForwarder(LOCALE_COLORMENU_TEXTCOLOR, true, NULL, chContentTextcolor ); @@ -549,7 +549,7 @@ void COsdSetup::showOsdMenueColorSetup(CMenuWidget *menu_colors) menu_colors->addItem( new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_COLORMENUSETUP_MENUCONTENT_INACTIVE)); mf = new CMenuDForwarder(LOCALE_COLORMENU_BACKGROUND, true, NULL, chContentInactivecolor ); - mf->setHint("", LOCALE_MENU_HINT_INACTIVE_BACKGROUND); + mf->setHint("", LOCALE_MENU_HINT_INACTIVE_BACK); menu_colors->addItem(mf); mf = new CMenuDForwarder(LOCALE_COLORMENU_TEXTCOLOR, true, NULL, chContentInactiveTextcolor); @@ -558,11 +558,11 @@ void COsdSetup::showOsdMenueColorSetup(CMenuWidget *menu_colors) menu_colors->addItem( new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_COLORMENUSETUP_MENUCONTENT_SELECTED)); mf = new CMenuDForwarder(LOCALE_COLORMENU_BACKGROUND, true, NULL, chContentSelectedcolor ); - mf->setHint("", LOCALE_MENU_HINT_SELECTED_BACKGROUND); + mf->setHint("", LOCALE_MENU_HINT_SELECTED_BACK); menu_colors->addItem(mf); mf = new CMenuDForwarder(LOCALE_COLORMENU_TEXTCOLOR, true, NULL, chContentSelectedTextcolor ); - mf->setHint("", LOCALE_MENU_HINT_SELECTED_TEXTCOLOR); + mf->setHint("", LOCALE_MENU_HINT_SELECTED_TEXT); menu_colors->addItem(mf); CColorChooser* chInfobarcolor = new CColorChooser(LOCALE_COLORMENU_BACKGROUND, &g_settings.infobar_red, @@ -572,7 +572,7 @@ void COsdSetup::showOsdMenueColorSetup(CMenuWidget *menu_colors) menu_colors->addItem( new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_COLORSTATUSBAR_TEXT)); mf = new CMenuDForwarder(LOCALE_COLORMENU_BACKGROUND, true, NULL, chInfobarcolor ); - mf->setHint("", LOCALE_MENU_HINT_INFOBAR_BACKGROUND); + mf->setHint("", LOCALE_MENU_HINT_INFOBAR_BACK); menu_colors->addItem(mf); mf = new CMenuDForwarder(LOCALE_COLORMENU_TEXTCOLOR, true, NULL, chInfobarTextcolor ); diff --git a/src/neutrino_menue.cpp b/src/neutrino_menue.cpp index 259b63336..856511738 100644 --- a/src/neutrino_menue.cpp +++ b/src/neutrino_menue.cpp @@ -140,6 +140,7 @@ void CNeutrinoApp::InitMenuMain() //tv <-> radio toggle CMenuForwarder *tvradio_switch = new CMenuForwarder(LOCALE_MAINMENU_TVRADIO_SWITCH, true, NULL, this, "tv_radio_switch", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED); + tvradio_switch->setHint("", LOCALE_MENU_HINT_TVRADIO_SWITCH); personalize.addItem(MENU_MAIN, tvradio_switch, &g_settings.personalize[SNeutrinoSettings::P_MAIN_TV_RADIO_MODE]); //tv-mode @@ -266,7 +267,7 @@ void CNeutrinoApp::InitMenuSettings() // miscSettings mf = new CMenuForwarder(LOCALE_MAINSETTINGS_MISC, true, NULL, new CMiscMenue() , NULL, CRCInput::RC_blue , NEUTRINO_ICON_BUTTON_BLUE); - mf->setHint(NEUTRINO_ICON_HINT_EXTENDED, LOCALE_MENU_HINT_EXTENDEED); + mf->setHint(NEUTRINO_ICON_HINT_EXTENDED, LOCALE_MENU_HINT_EXTENDED); personalize.addItem(MENU_SETTINGS, mf, &g_settings.personalize[SNeutrinoSettings::P_MSET_MISC]); //separator diff --git a/src/system/locals.h b/src/system/locals.h index 411957639..626bc1def 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -714,235 +714,213 @@ typedef enum LOCALE_MAINSETTINGS_VIDEO, LOCALE_MENU_BACK, LOCALE_MENU_CANCEL, - - LOCALE_MENU_HINT_BACK, - LOCALE_MENU_HINT_TVMODE, - LOCALE_MENU_HINT_RADIOMODE, - LOCALE_MENU_HINT_TIMERS, - LOCALE_MENU_HINT_MEDIA, - LOCALE_MENU_HINT_GAMES, - LOCALE_MENU_HINT_SCRIPTS, - LOCALE_MENU_HINT_SETTINGS, - LOCALE_MENU_HINT_SERVICE, - LOCALE_MENU_HINT_SLEEPTIMER, - LOCALE_MENU_HINT_REBOOT, - LOCALE_MENU_HINT_SHUTDOWN, - LOCALE_MENU_HINT_INFO, - LOCALE_MENU_HINT_CI, - - LOCALE_MENU_HINT_APLAY, - LOCALE_MENU_HINT_INET_RADIO, - LOCALE_MENU_HINT_MOVIE, - LOCALE_MENU_HINT_PICVIEW, - - LOCALE_MENU_HINT_MB, - LOCALE_MENU_HINT_FILEPLAY, - - LOCALE_MENU_HINT_SAVE_SETTINGS, - LOCALE_MENU_HINT_MANAGE_SETTINGS, - LOCALE_MENU_HINT_PERSONALIZE, - LOCALE_MENU_HINT_EXTENDEED, - LOCALE_MENU_HINT_VIDEO, - LOCALE_MENU_HINT_AUDIO, - LOCALE_MENU_HINT_PROTECTION, - LOCALE_MENU_HINT_NETWORK, - LOCALE_MENU_HINT_RECORDING, - LOCALE_MENU_HINT_LANGUAGE, - LOCALE_MENU_HINT_OSD, - LOCALE_MENU_HINT_VFD, - LOCALE_MENU_HINT_HDD, - LOCALE_MENU_HINT_KEYS, LOCALE_MENU_HINT_A_PIC, - - LOCALE_MENU_HINT_SERVICE_SCAN, - LOCALE_MENU_HINT_RELOAD_CHANNELS, - LOCALE_MENU_HINT_BEDIT, - LOCALE_MENU_HINT_DELETE_CHANNELS, - LOCALE_MENU_HINT_SOFT_RESTART, - LOCALE_MENU_HINT_RELOAD_PLUGINS, - LOCALE_MENU_HINT_SW_UPDATE, - - LOCALE_MENU_HINT_IMAGEINFO, - LOCALE_MENU_HINT_DBOXINFO, - LOCALE_MENU_HINT_STREAMINFO, - - LOCALE_MENU_HINT_RESET, - LOCALE_MENU_HINT_SAVEAS, - LOCALE_MENU_HINT_LOAD, - LOCALE_MENU_HINT_BACKUP, - LOCALE_MENU_HINT_RESTORE, - LOCALE_MENU_HINT_FACTORY, - - LOCALE_MENU_HINT_MISC_GENERAL, - LOCALE_MENU_HINT_MISC_ENERGY, - LOCALE_MENU_HINT_MISC_EPG, - LOCALE_MENU_HINT_MISC_FILEBROWSER, - LOCALE_MENU_HINT_MISC_CEC, - LOCALE_MENU_HINT_MISC_CHANNELLIST, - LOCALE_MENU_HINT_MISC_ZAPIT, - - LOCALE_MENU_HINT_START_TOSTANDBY, - LOCALE_MENU_HINT_CACHE_TXT, - LOCALE_MENU_HINT_FAN_SPEED, - LOCALE_MENU_HINT_ROTOR_SWAP, - LOCALE_MENU_HINT_PLUGINS_HDD_DIR, - - LOCALE_MENU_HINT_SHUTDOWN_REAL, - LOCALE_MENU_HINT_SHUTDOWN_REAL_RCDELAY, - LOCALE_MENU_HINT_SHUTDOWN_COUNT, - LOCALE_MENU_HINT_INACT_TIMER, - - LOCALE_MENU_HINT_EPG_SAVE, - LOCALE_MENU_HINT_EPG_CACHE, - LOCALE_MENU_HINT_EPG_EXTENDEDCACHE, - LOCALE_MENU_HINT_EPG_OLD_EVENTS, - LOCALE_MENU_HINT_EPG_MAX_EVENTS, - LOCALE_MENU_HINT_EPG_DIR, - - LOCALE_MENU_HINT_FILESYSTEM_IS_UTF8, - LOCALE_MENU_HINT_FILEBROWSER_SHOWRIGHTS, - LOCALE_MENU_HINT_FILEBROWSER_DENYDIRECTORYLEAVE, - - LOCALE_MENU_HINT_MAKE_HDLIST, - LOCALE_MENU_HINT_MAKE_NEWLIST, - LOCALE_MENU_HINT_MAKE_REMOVEDLIST, - LOCALE_MENU_HINT_KEEP_NUMBERS, - LOCALE_MENU_HINT_ZAP_CYCLE, - LOCALE_MENU_HINT_NEW_ZAP_MODE, - - LOCALE_MENU_HINT_CEC_MODE, - LOCALE_MENU_HINT_CEC_VIEW_ON, - LOCALE_MENU_HINT_CEC_STANDBY, - - LOCALE_MENU_HINT_LAST_USE, - LOCALE_MENU_HINT_LAST_TV, - LOCALE_MENU_HINT_LAST_RADIO, - - LOCALE_MENU_HINT_VIDEO_ANALOG_MODE, - LOCALE_MENU_HINT_VIDEO_SCART_MODE, - LOCALE_MENU_HINT_VIDEO_CINCH_MODE, - LOCALE_MENU_HINT_VIDEO_43MODE, - LOCALE_MENU_HINT_VIDEO_FORMAT, - LOCALE_MENU_HINT_VIDEO_MODE, - LOCALE_MENU_HINT_VIDEO_DBDR, - LOCALE_MENU_HINT_VIDEO_MODES, - + LOCALE_MENU_HINT_APLAY, + LOCALE_MENU_HINT_AUDIO, LOCALE_MENU_HINT_AUDIO_ANALOG_MODE, - LOCALE_MENU_HINT_AUDIO_DOLBYDIGITAL, + LOCALE_MENU_HINT_AUDIO_AVSYNC, + LOCALE_MENU_HINT_AUDIO_DD, LOCALE_MENU_HINT_AUDIO_HDMI_DD, LOCALE_MENU_HINT_AUDIO_SPDIF_DD, - LOCALE_MENU_HINT_AUDIO_AVSYNC, - LOCALE_MENU_HINT_AUDIO_VOLSTEP, LOCALE_MENU_HINT_AUDIO_SRS, LOCALE_MENU_HINT_AUDIO_SRS_ALGO, LOCALE_MENU_HINT_AUDIO_SRS_NMGR, LOCALE_MENU_HINT_AUDIO_SRS_VOLUME, - - LOCALE_MENU_HINT_PARENTALLOCK_PROMPT, - LOCALE_MENU_HINT_PARENTALLOCK_LOCKAGE, - LOCALE_MENU_HINT_PARENTALLOCK_CHANGEPIN, - - LOCALE_MENU_HINT_NET_SETUPNOW, - LOCALE_MENU_HINT_NET_TEST, - LOCALE_MENU_HINT_NET_SHOW, - LOCALE_MENU_HINT_NET_IF, - LOCALE_MENU_HINT_NET_SETUPONSTARTUP, - LOCALE_MENU_HINT_NET_DHCP, - LOCALE_MENU_HINT_NET_HOSTNAME, - LOCALE_MENU_HINT_NET_IPADDRESS, - LOCALE_MENU_HINT_NET_NETMASK, + LOCALE_MENU_HINT_AUDIO_VOLSTEP, + LOCALE_MENU_HINT_AUTO_LANG, + LOCALE_MENU_HINT_AUTO_SUBS, + LOCALE_MENU_HINT_BACK, + LOCALE_MENU_HINT_BACKUP, + LOCALE_MENU_HINT_BEDIT, + LOCALE_MENU_HINT_BIGWINDOWS, + LOCALE_MENU_HINT_CACHE_TXT, + LOCALE_MENU_HINT_CEC_MODE, + LOCALE_MENU_HINT_CEC_STANDBY, + LOCALE_MENU_HINT_CEC_VIEW_ON, + LOCALE_MENU_HINT_CHANNELLIST_FONTS, + LOCALE_MENU_HINT_CHANNELLIST_SETUP, + LOCALE_MENU_HINT_CI, + LOCALE_MENU_HINT_COLORS, + LOCALE_MENU_HINT_CONTENT_BACK, + LOCALE_MENU_HINT_CONTENT_TEXTCOLOR, + LOCALE_MENU_HINT_CONTRAST_FONTS, + LOCALE_MENU_HINT_DBOXINFO, + LOCALE_MENU_HINT_DELETE_CHANNELS, + LOCALE_MENU_HINT_EPG_CACHE, + LOCALE_MENU_HINT_EPG_DIR, + LOCALE_MENU_HINT_EPG_EXTENDEDCACHE, + LOCALE_MENU_HINT_EPG_FONTS, + LOCALE_MENU_HINT_EPG_MAX_EVENTS, + LOCALE_MENU_HINT_EPG_OLD_EVENTS, + LOCALE_MENU_HINT_EPG_SAVE, + LOCALE_MENU_HINT_EVENT_TEXTCOLOR, + LOCALE_MENU_HINT_EVENTLIST_FONTS, + LOCALE_MENU_HINT_EXTENDED, + LOCALE_MENU_HINT_FACTORY, + LOCALE_MENU_HINT_FADE, + LOCALE_MENU_HINT_FAN_SPEED, + LOCALE_MENU_HINT_FILEBROWSER_DENYDIRECTORYLEAVE, + LOCALE_MENU_HINT_FILEBROWSER_SHOWRIGHTS, + LOCALE_MENU_HINT_FILEPLAY, + LOCALE_MENU_HINT_FILESYSTEM_IS_UTF8, + LOCALE_MENU_HINT_FONT_GUI, + LOCALE_MENU_HINT_FONT_SCALING, + LOCALE_MENU_HINT_FONT_TTX, + LOCALE_MENU_HINT_FONTS, + LOCALE_MENU_HINT_GAMELIST_FONTS, + LOCALE_MENU_HINT_GAMES, + LOCALE_MENU_HINT_HDD, + LOCALE_MENU_HINT_HEAD_BACK, + LOCALE_MENU_HINT_HEAD_TEXTCOLOR, + LOCALE_MENU_HINT_IMAGEINFO, + LOCALE_MENU_HINT_INACT_TIMER, + LOCALE_MENU_HINT_INACTIVE_BACK, + LOCALE_MENU_HINT_INACTIVE_TEXTCOLOR, + LOCALE_MENU_HINT_INET_RADIO, + LOCALE_MENU_HINT_INFO, + LOCALE_MENU_HINT_INFOBAR_BACK, + LOCALE_MENU_HINT_INFOBAR_FONTS, + LOCALE_MENU_HINT_INFOBAR_SETUP, + LOCALE_MENU_HINT_INFOBAR_TEXTCOLOR, + LOCALE_MENU_HINT_KEEP_NUMBERS, + LOCALE_MENU_HINT_KEYS, + LOCALE_MENU_HINT_LANG_PREF, + LOCALE_MENU_HINT_LANGUAGE, + LOCALE_MENU_HINT_LAST_RADIO, + LOCALE_MENU_HINT_LAST_TV, + LOCALE_MENU_HINT_LAST_USE, + LOCALE_MENU_HINT_LOAD, + LOCALE_MENU_HINT_MAKE_HDLIST, + LOCALE_MENU_HINT_MAKE_NEWLIST, + LOCALE_MENU_HINT_MAKE_REMOVEDLIST, + LOCALE_MENU_HINT_MANAGE_SETTINGS, + LOCALE_MENU_HINT_MB, + LOCALE_MENU_HINT_MEDIA, + LOCALE_MENU_HINT_MENU_FONTS, + LOCALE_MENU_HINT_MENU_HINTS, + LOCALE_MENU_HINT_MENU_POS, + LOCALE_MENU_HINT_MISC_CEC, + LOCALE_MENU_HINT_MISC_CHANNELLIST, + LOCALE_MENU_HINT_MISC_ENERGY, + LOCALE_MENU_HINT_MISC_EPG, + LOCALE_MENU_HINT_MISC_FILEBROWSER, + LOCALE_MENU_HINT_MISC_GENERAL, + LOCALE_MENU_HINT_MISC_ZAPIT, + LOCALE_MENU_HINT_MOVIE, LOCALE_MENU_HINT_NET_BROADCAST, + LOCALE_MENU_HINT_NET_DHCP, + LOCALE_MENU_HINT_NET_DJMOUNT, + LOCALE_MENU_HINT_NET_FTPD, LOCALE_MENU_HINT_NET_GATEWAY, - LOCALE_MENU_HINT_NET_NAMESERVER, - LOCALE_MENU_HINT_NET_SSID, - LOCALE_MENU_HINT_NET_PASS, - LOCALE_MENU_HINT_NET_NTP, - LOCALE_MENU_HINT_NET_NTPENABLE, - LOCALE_MENU_HINT_NET_NTPSERVER, - LOCALE_MENU_HINT_NET_NTPREFRESH, + LOCALE_MENU_HINT_NET_HOSTNAME, + LOCALE_MENU_HINT_NET_IF, + LOCALE_MENU_HINT_NET_IPADDRESS, LOCALE_MENU_HINT_NET_MOUNT, + LOCALE_MENU_HINT_NET_NAMESERVER, + LOCALE_MENU_HINT_NET_NETMASK, LOCALE_MENU_HINT_NET_NFS_MOUNT, LOCALE_MENU_HINT_NET_NFS_UMOUNT, + LOCALE_MENU_HINT_NET_NTP, + LOCALE_MENU_HINT_NET_NTPENABLE, + LOCALE_MENU_HINT_NET_NTPREFRESH, + LOCALE_MENU_HINT_NET_NTPSERVER, + LOCALE_MENU_HINT_NET_PASS, LOCALE_MENU_HINT_NET_PROXY, + LOCALE_MENU_HINT_NET_PROXYPASS, LOCALE_MENU_HINT_NET_PROXYSERVER, LOCALE_MENU_HINT_NET_PROXYUSER, - LOCALE_MENU_HINT_NET_PROXYPASS, LOCALE_MENU_HINT_NET_SERVICES, + LOCALE_MENU_HINT_NET_SETUPNOW, + LOCALE_MENU_HINT_NET_SETUPONSTARTUP, + LOCALE_MENU_HINT_NET_SHOW, + LOCALE_MENU_HINT_NET_SSID, LOCALE_MENU_HINT_NET_TELNET, - LOCALE_MENU_HINT_NET_FTPD, - LOCALE_MENU_HINT_NET_DJMOUNT, + LOCALE_MENU_HINT_NET_TEST, LOCALE_MENU_HINT_NET_USHARE, - - LOCALE_MENU_HINT_RECORD_APPLY, - LOCALE_MENU_HINT_RECORD_DIR, - LOCALE_MENU_HINT_RECORD_CHANDIR, - LOCALE_MENU_HINT_RECORD_TIME, - LOCALE_MENU_HINT_RECORD_END, - LOCALE_MENU_HINT_RECORD_TIMESHIFT, - LOCALE_MENU_HINT_RECORD_TIMER, - LOCALE_MENU_HINT_RECORD_APIDS, - LOCALE_MENU_HINT_RECORD_TIMEBEFORE, - LOCALE_MENU_HINT_RECORD_TIMEAFTER, - LOCALE_MENU_HINT_RECORD_ZAP, - LOCALE_MENU_HINT_RECORD_ZAP_PRE_TIME, - LOCALE_MENU_HINT_RECORD_APID_STD, - LOCALE_MENU_HINT_RECORD_APID_ALT, + LOCALE_MENU_HINT_NETWORK, + LOCALE_MENU_HINT_NEW_ZAP_MODE, + LOCALE_MENU_HINT_OSD, + LOCALE_MENU_HINT_OSD_LANGUAGE, + LOCALE_MENU_HINT_OSD_PRESET, + LOCALE_MENU_HINT_PARENTALLOCK_CHANGEPIN, + LOCALE_MENU_HINT_PARENTALLOCK_LOCKAGE, + LOCALE_MENU_HINT_PARENTALLOCK_PROMPT, + LOCALE_MENU_HINT_PERSONALIZE, + LOCALE_MENU_HINT_PICVIEW, + LOCALE_MENU_HINT_PLUGINS_HDD_DIR, + LOCALE_MENU_HINT_PREF_LANG, + LOCALE_MENU_HINT_PREF_SUBS, + LOCALE_MENU_HINT_PROGRESSBAR_COLOR, + LOCALE_MENU_HINT_PROTECTION, + LOCALE_MENU_HINT_RADIOMODE, + LOCALE_MENU_HINT_REBOOT, LOCALE_MENU_HINT_RECORD_APID_AC3, + LOCALE_MENU_HINT_RECORD_APID_ALT, + LOCALE_MENU_HINT_RECORD_APID_STD, + LOCALE_MENU_HINT_RECORD_APIDS, + LOCALE_MENU_HINT_RECORD_APPLY, + LOCALE_MENU_HINT_RECORD_CHANDIR, + LOCALE_MENU_HINT_RECORD_DIR, + LOCALE_MENU_HINT_RECORD_END, LOCALE_MENU_HINT_RECORD_TDIR, - LOCALE_MENU_HINT_RECORD_TIMESHIFT_PAUSE, + LOCALE_MENU_HINT_RECORD_TIME, + LOCALE_MENU_HINT_RECORD_TIMEAFTER, + LOCALE_MENU_HINT_RECORD_TIMEBEFORE, + LOCALE_MENU_HINT_RECORD_TIMER, + LOCALE_MENU_HINT_RECORD_TIMESHIFT, LOCALE_MENU_HINT_RECORD_TIMESHIFT_AUTO, LOCALE_MENU_HINT_RECORD_TIMESHIFT_DELETE, + LOCALE_MENU_HINT_RECORD_TIMESHIFT_PAUSE, LOCALE_MENU_HINT_RECORD_TIMESHIFT_TEMP, - - LOCALE_MENU_HINT_OSD_LANGUAGE, - LOCALE_MENU_HINT_TIMEZONE, - LOCALE_MENU_HINT_LANG_PREF, - LOCALE_MENU_HINT_AUTO_LANG, - LOCALE_MENU_HINT_PREF_LANG, - LOCALE_MENU_HINT_AUTO_SUBS, - LOCALE_MENU_HINT_PREF_SUBS, - - LOCALE_MENU_HINT_COLORS, - LOCALE_MENU_HINT_THEME, - LOCALE_MENU_HINT_HEAD_BACKGROUND, - LOCALE_MENU_HINT_HEAD_TEXTCOLOR, - LOCALE_MENU_HINT_CONTENT_BACKGROUND, - LOCALE_MENU_HINT_CONTENT_TEXTCOLOR, - LOCALE_MENU_HINT_INACTIVE_BACKGROUND, - LOCALE_MENU_HINT_INACTIVE_TEXTCOLOR, - LOCALE_MENU_HINT_SELECTED_BACKGROUND, - LOCALE_MENU_HINT_SELECTED_TEXTCOLOR, - LOCALE_MENU_HINT_INFOBAR_BACKGROUND, - LOCALE_MENU_HINT_INFOBAR_TEXTCOLOR, - LOCALE_MENU_HINT_EVENT_TEXTCOLOR, - LOCALE_MENU_HINT_FONTS, - LOCALE_MENU_HINT_FONT_GUI, - LOCALE_MENU_HINT_FONT_TTX, - LOCALE_MENU_HINT_CONTRAST_FONTS, - LOCALE_MENU_HINT_FONT_SCALING, - LOCALE_MENU_HINT_MENU_FONTS, - LOCALE_MENU_HINT_CHANNELLIST_FONTS, - LOCALE_MENU_HINT_EVENTLIST_FONTS, - LOCALE_MENU_HINT_EPG_FONTS, - LOCALE_MENU_HINT_INFOBAR_FONTS, - LOCALE_MENU_HINT_GAMELIST_FONTS, - LOCALE_MENU_HINT_TIMEOUTS, - LOCALE_MENU_HINT_SCREEN_SETUP, - LOCALE_MENU_HINT_INFOBAR_SETUP, - LOCALE_MENU_HINT_CHANNELLIST_SETUP, - LOCALE_MENU_HINT_SCREENSHOT_SETUP, - LOCALE_MENU_HINT_OSD_PRESET, + LOCALE_MENU_HINT_RECORD_ZAP, + LOCALE_MENU_HINT_RECORD_ZAP_PRE_TIME, + LOCALE_MENU_HINT_RECORDING, + LOCALE_MENU_HINT_RELOAD_CHANNELS, + LOCALE_MENU_HINT_RELOAD_PLUGINS, + LOCALE_MENU_HINT_RESET, + LOCALE_MENU_HINT_RESTORE, + LOCALE_MENU_HINT_ROTOR_SWAP, LOCALE_MENU_HINT_ROUNDED_CORNERS, + LOCALE_MENU_HINT_SAVE_SETTINGS, + LOCALE_MENU_HINT_SAVEAS, LOCALE_MENU_HINT_SCRAMBLED_MESSAGE, - LOCALE_MENU_HINT_SUBCHAN_POS, - LOCALE_MENU_HINT_VOLUME_POS, + LOCALE_MENU_HINT_SCREEN_SETUP, + LOCALE_MENU_HINT_SCREENSHOT_SETUP, + LOCALE_MENU_HINT_SCRIPTS, + LOCALE_MENU_HINT_SELECTED_BACK, + LOCALE_MENU_HINT_SELECTED_TEXT, + LOCALE_MENU_HINT_SERVICE, + LOCALE_MENU_HINT_SERVICE_SCAN, + LOCALE_MENU_HINT_SETTINGS, LOCALE_MENU_HINT_SHOW_MUTE_ICON, - LOCALE_MENU_HINT_MENU_POS, - LOCALE_MENU_HINT_MENU_HINTS, - LOCALE_MENU_HINT_FADE, - LOCALE_MENU_HINT_BIGWINDOWS, - LOCALE_MENU_HINT_PROGRESSBAR_COLOR, - + LOCALE_MENU_HINT_SHUTDOWN, + LOCALE_MENU_HINT_SHUTDOWN_COUNT, + LOCALE_MENU_HINT_SHUTDOWN_RCDELAY, + LOCALE_MENU_HINT_SHUTDOWN_REAL, + LOCALE_MENU_HINT_SLEEPTIMER, + LOCALE_MENU_HINT_SOFT_RESTART, + LOCALE_MENU_HINT_START_TOSTANDBY, + LOCALE_MENU_HINT_STREAMINFO, + LOCALE_MENU_HINT_SUBCHANNEL_POS, + LOCALE_MENU_HINT_SW_UPDATE, + LOCALE_MENU_HINT_THEME, + LOCALE_MENU_HINT_TIMEOUTS, + LOCALE_MENU_HINT_TIMERS, + LOCALE_MENU_HINT_TIMEZONE, + LOCALE_MENU_HINT_TVMODE, + LOCALE_MENU_HINT_TVRADIO_SWITCH, + LOCALE_MENU_HINT_VFD, + LOCALE_MENU_HINT_VIDEO, + LOCALE_MENU_HINT_VIDEO_43MODE, + LOCALE_MENU_HINT_VIDEO_ANALOG_MODE, + LOCALE_MENU_HINT_VIDEO_CINCH_MODE, + LOCALE_MENU_HINT_VIDEO_DBDR, + LOCALE_MENU_HINT_VIDEO_FORMAT, + LOCALE_MENU_HINT_VIDEO_MODE, + LOCALE_MENU_HINT_VIDEO_MODES, + LOCALE_MENU_HINT_VIDEO_SCART_MODE, + LOCALE_MENU_HINT_VOLUME_POS, + LOCALE_MENU_HINT_ZAP_CYCLE, LOCALE_MENU_NEXT, LOCALE_MESSAGEBOX_BACK, LOCALE_MESSAGEBOX_CANCEL, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index 78e66cbb6..0cb0a8541 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -714,235 +714,213 @@ const char * locale_real_names[] = "mainsettings.video", "menu.back", "menu.cancel", - - "menu.hint_back", - "menu.hint_tvmode", - "menu.hint_radiomode", - "menu.hint_timers", - "menu.hint_media", - "menu.hint_games", - "menu.hint_scripts", - "menu.hint_settings", - "menu.hint_service", - "menu.hint_sleeptimer", - "menu.hint_reboot", - "menu.hint_shutdown", - "menu.hint_info", - "menu.hint_ci", - - "menu.hint_aplay", - "menu.hint_inet_radio", - "menu.hint_movie", - "menu.hint_picview", - - "menu.hint_mb", - "menu.hint_fileplay", - - "menu.hint_save_settings", - "menu.hint_manage_settings", - "menu.hint_personalize", - "menu.hint_extended", - "menu.hint_video", - "menu.hint_audio", - "menu.hint_protection", - "menu.hint_network", - "menu.hint_recording", - "menu.hint_language", - "menu.hint_osd", - "menu.hint_vfd", - "menu.hint_hdd", - "menu.hint_keys", "menu.hint_a_pic", - - "menu.hint_service_scan", - "menu.hint_reload_channels", - "menu.hint_bedit", - "menu.hint_delete_channels", - "menu.hint_soft_restart", - "menu.hint_reload_plugins", - "menu.hint_sw_update", - - "menu.hint_imageinfo", - "menu.hint_dboxinfo", - "menu.hint_streaminfo", - - "menu.hint_reset", - "menu.hint_saveas", - "menu.hint_load", - "menu.hint_backup", - "menu.hint_restore", - "menu.hint_factory", - - "menu.hint_misc_general", - "menu.hint_misc_energy", - "menu.hint_misc_epg", - "menu.hint_misc_filebrowser", - "menu.hint_misc_cec", - "menu.hint_misc_channellist", - "menu.hint_misc_zapit", - - "menu.hint_start_tostandby", - "menu.hint_cache_txt", - "menu.hint_fan_speed", - "menu.hint_rotor_swap", - "menu.hint_plugins_hdd_dir", - - "menu.hint_shutdown_real", - "menu.hint_shutdown_rcdelay", - "menu.hint_shutdown_count", - "menu.hint_inact_timer", - - "menu.hint_epg_save", - "menu.hint_epg_cache", - "menu.hint_epg_extendedcache", - "menu.hint_epg_old_events", - "menu.hint_epg_max_events", - "menu.hint_epg_dir", - - "menu.hint_filesystem_is_utf8", - "menu.hint_filebrowser_showrights", - "menu.hint_filebrowser_denydirectoryleave", - - "menu.hint_make_hdlist", - "menu.hint_make_newlist", - "menu.hint_make_removedlist", - "menu.hint_keep_numbers", - "menu.hint_zap_cycle", - "menu.hint_new_zap_mode", - - "menu.hint_cec_mode", - "menu.hint_cec_view_on", - "menu.hint_cec_standby", - - "menu.hint_last_use", - "menu.hint_last_tv", - "menu.hint_last_radio", - - "menu.hint_video_analog_mode", - "menu.hint_video_scart_mode", - "menu.hint_video_cinch_mode", - "menu.hint_video_43mode", - "menu.hint_video_format", - "menu.hint_video_mode", - "menu.hint_video_dbdr", - "menu.hint_video_modes", - + "menu.hint_aplay", + "menu.hint_audio", "menu.hint_audio_analog_mode", + "menu.hint_audio_avsync", "menu.hint_audio_dd", "menu.hint_audio_hdmi_dd", "menu.hint_audio_spdif_dd", - "menu.hint_audio_avsync", - "menu.hint_audio_volstep", "menu.hint_audio_srs", "menu.hint_audio_srs_algo", "menu.hint_audio_srs_nmgr", "menu.hint_audio_srs_volume", - - "menu.hint_parentallock_promt", - "menu.hint_parentallock_lockage", - "menu.hint_parentallock_changepin", - - "menu.hint_net_setupnow", - "menu.hint_net_test", - "menu.hint_net_show", - "menu.hint_net_if", - "menu.hint_net_setuponstartup", - "menu.hint_net_dhcp", - "menu.hint_net_hostname", - "menu.hint_net_ipaddress", - "menu.hint_net_netmask", - "menu.hint_net_broadcast", - "menu.hint_net_gateway", - "menu.hint_net_nameserver", - "menu.hint_net_ssid", - "menu.hint_net_pass", - "menu.hint_net_ntp", - "menu.hint_net_ntpenable", - "menu.hint_net_ntpserver", - "menu.hint_net_ntprefresh", - "menu.hint_net_mount", - "menu.hint_net_nfs_mount", - "menu.hint_net_nfs_umount", - "menu.hint_net_proxy", - "menu.hint_net_proxyserver", - "menu.hint_net_proxyuser", - "menu.hint_net_proxypass", - "menu.hint_net_services", - "menu.hint_net_telnet", - "menu.hint_net_ftpd", - "menu.hint_net_djmount", - "menu.hint_net_ushare", - - "menu.hint_record_apply", - "menu.hint_record_dir", - "menu.hint_record_chandir", - "menu.hint_record_time", - "menu.hint_record_end", - "menu.hint_record_timeshift", - "menu.hint_record_timer", - "menu.hint_record_apids", - "menu.hint_record_timebefore", - "menu.hint_record_timeafter", - "menu.hint_record_zap", - "menu.hint_record_zap_pre_time", - "menu.hint_record_apid_std", - "menu.hint_record_apid_alt", - "menu.hint_record_apid_ac3", - "menu.hint_record_tdir", - "menu.hint_record_timeshift_pause", - "menu.hint_record_timeshift_auto", - "menu.hint_record_timeshift_delete", - "menu.hint_record_timeshift_temp", - - "menu.hint_osd_language", - "menu.hint_timezone", - "menu.hint_lang_pref", + "menu.hint_audio_volstep", "menu.hint_auto_lang", - "menu.hint_pref_lang", "menu.hint_auto_subs", - "menu.hint_pref_subs", - + "menu.hint_back", + "menu.hint_backup", + "menu.hint_bedit", + "menu.hint_bigwindows", + "menu.hint_cache_txt", + "menu.hint_cec_mode", + "menu.hint_cec_standby", + "menu.hint_cec_view_on", + "menu.hint_channellist_fonts", + "menu.hint_channellist_setup", + "menu.hint_ci", "menu.hint_colors", - "menu.hint_theme", - "menu.hint_head_back", - "menu.hint_head_textcolor", "menu.hint_content_back", "menu.hint_content_textcolor", + "menu.hint_contrast_fonts", + "menu.hint_dboxinfo", + "menu.hint_delete_channels", + "menu.hint_epg_cache", + "menu.hint_epg_dir", + "menu.hint_epg_extendedcache", + "menu.hint_epg_fonts", + "menu.hint_epg_max_events", + "menu.hint_epg_old_events", + "menu.hint_epg_save", + "menu.hint_event_textcolor", + "menu.hint_eventlist_fonts", + "menu.hint_extended", + "menu.hint_factory", + "menu.hint_fade", + "menu.hint_fan_speed", + "menu.hint_filebrowser_denydirectoryleave", + "menu.hint_filebrowser_showrights", + "menu.hint_fileplay", + "menu.hint_filesystem_is_utf8", + "menu.hint_font_gui", + "menu.hint_font_scaling", + "menu.hint_font_ttx", + "menu.hint_fonts", + "menu.hint_gamelist_fonts", + "menu.hint_games", + "menu.hint_hdd", + "menu.hint_head_back", + "menu.hint_head_textcolor", + "menu.hint_imageinfo", + "menu.hint_inact_timer", "menu.hint_inactive_back", "menu.hint_inactive_textcolor", + "menu.hint_inet_radio", + "menu.hint_info", + "menu.hint_infobar_back", + "menu.hint_infobar_fonts", + "menu.hint_infobar_setup", + "menu.hint_infobar_textcolor", + "menu.hint_keep_numbers", + "menu.hint_keys", + "menu.hint_lang_pref", + "menu.hint_language", + "menu.hint_last_radio", + "menu.hint_last_tv", + "menu.hint_last_use", + "menu.hint_load", + "menu.hint_make_hdlist", + "menu.hint_make_newlist", + "menu.hint_make_removedlist", + "menu.hint_manage_settings", + "menu.hint_mb", + "menu.hint_media", + "menu.hint_menu_fonts", + "menu.hint_menu_hints", + "menu.hint_menu_pos", + "menu.hint_misc_cec", + "menu.hint_misc_channellist", + "menu.hint_misc_energy", + "menu.hint_misc_epg", + "menu.hint_misc_filebrowser", + "menu.hint_misc_general", + "menu.hint_misc_zapit", + "menu.hint_movie", + "menu.hint_net_broadcast", + "menu.hint_net_dhcp", + "menu.hint_net_djmount", + "menu.hint_net_ftpd", + "menu.hint_net_gateway", + "menu.hint_net_hostname", + "menu.hint_net_if", + "menu.hint_net_ipaddress", + "menu.hint_net_mount", + "menu.hint_net_nameserver", + "menu.hint_net_netmask", + "menu.hint_net_nfs_mount", + "menu.hint_net_nfs_umount", + "menu.hint_net_ntp", + "menu.hint_net_ntpenable", + "menu.hint_net_ntprefresh", + "menu.hint_net_ntpserver", + "menu.hint_net_pass", + "menu.hint_net_proxy", + "menu.hint_net_proxypass", + "menu.hint_net_proxyserver", + "menu.hint_net_proxyuser", + "menu.hint_net_services", + "menu.hint_net_setupnow", + "menu.hint_net_setuponstartup", + "menu.hint_net_show", + "menu.hint_net_ssid", + "menu.hint_net_telnet", + "menu.hint_net_test", + "menu.hint_net_ushare", + "menu.hint_network", + "menu.hint_new_zap_mode", + "menu.hint_osd", + "menu.hint_osd_language", + "menu.hint_osd_preset", + "menu.hint_parentallock_changepin", + "menu.hint_parentallock_lockage", + "menu.hint_parentallock_prompt", + "menu.hint_personalize", + "menu.hint_picview", + "menu.hint_plugins_hdd_dir", + "menu.hint_pref_lang", + "menu.hint_pref_subs", + "menu.hint_progressbar_color", + "menu.hint_protection", + "menu.hint_radiomode", + "menu.hint_reboot", + "menu.hint_record_apid_ac3", + "menu.hint_record_apid_alt", + "menu.hint_record_apid_std", + "menu.hint_record_apids", + "menu.hint_record_apply", + "menu.hint_record_chandir", + "menu.hint_record_dir", + "menu.hint_record_end", + "menu.hint_record_tdir", + "menu.hint_record_time", + "menu.hint_record_timeafter", + "menu.hint_record_timebefore", + "menu.hint_record_timer", + "menu.hint_record_timeshift", + "menu.hint_record_timeshift_auto", + "menu.hint_record_timeshift_delete", + "menu.hint_record_timeshift_pause", + "menu.hint_record_timeshift_temp", + "menu.hint_record_zap", + "menu.hint_record_zap_pre_time", + "menu.hint_recording", + "menu.hint_reload_channels", + "menu.hint_reload_plugins", + "menu.hint_reset", + "menu.hint_restore", + "menu.hint_rotor_swap", + "menu.hint_rounded_corners", + "menu.hint_save_settings", + "menu.hint_saveas", + "menu.hint_scrambled_message", + "menu.hint_screen_setup", + "menu.hint_screenshot_setup", + "menu.hint_scripts", "menu.hint_selected_back", "menu.hint_selected_text", - "menu.hint_infobar_back", - "menu.hint_infobar_textcolor", - "menu.hint_event_textcolor", - "menu.hint_fonts", - "menu.hint_font_gui", - "menu.hint_font_ttx", - "menu.hint_contrast_fonts", - "menu.hint_font_scaling", - "menu.hint_menu_fonts", - "menu.hint_channellist_fonts", - "menu.hint_eventlist_fonts", - "menu.hint_epg_fonts", - "menu.hint_infobar_fonts", - "menu.hint_gamelist_fonts", - "menu.hint_timeouts", - "menu.hint_screen_setup", - "menu.hint_infobar_setup", - "menu.hint_channellist_setup", - "menu.hint_screenshot_setup", - "menu.hint_osd_preset", - "menu.hint_rounded_corners", - "menu.hint_scrambled_message", - "menu.hint_subchannel_pos", - "menu.hint_volume_pos", + "menu.hint_service", + "menu.hint_service_scan", + "menu.hint_settings", "menu.hint_show_mute_icon", - "menu.hint_menu_pos", - "menu.hint_menu_hints", - "menu.hint_fade", - "menu.hint_bigwindows", - "menu.hint_progressbar_color", - + "menu.hint_shutdown", + "menu.hint_shutdown_count", + "menu.hint_shutdown_rcdelay", + "menu.hint_shutdown_real", + "menu.hint_sleeptimer", + "menu.hint_soft_restart", + "menu.hint_start_tostandby", + "menu.hint_streaminfo", + "menu.hint_subchannel_pos", + "menu.hint_sw_update", + "menu.hint_theme", + "menu.hint_timeouts", + "menu.hint_timers", + "menu.hint_timezone", + "menu.hint_tvmode", + "menu.hint_tvradio_switch", + "menu.hint_vfd", + "menu.hint_video", + "menu.hint_video_43mode", + "menu.hint_video_analog_mode", + "menu.hint_video_cinch_mode", + "menu.hint_video_dbdr", + "menu.hint_video_format", + "menu.hint_video_mode", + "menu.hint_video_modes", + "menu.hint_video_scart_mode", + "menu.hint_volume_pos", + "menu.hint_zap_cycle", "menu.next", "messagebox.back", "messagebox.cancel", @@ -1686,6 +1664,6 @@ const char * locale_real_names[] = "zapitsetup.last_radio", "zapitsetup.last_tv", "zapitsetup.last_use", - "zaptotimer.announce", + "zaptotimer.announce" }; #endif From f732fe749e2bdda8ba160878e733546e62f9e85f Mon Sep 17 00:00:00 2001 From: micha-bbg Date: Wed, 11 Jul 2012 10:23:38 +0200 Subject: [PATCH 048/317] * Menu hints: Optimize presentation --- src/gui/widget/menue.cpp | 63 +++++++++++++++++++++++++++++++++++----- 1 file changed, 56 insertions(+), 7 deletions(-) diff --git a/src/gui/widget/menue.cpp b/src/gui/widget/menue.cpp index aca8ac53b..aaf63ced7 100644 --- a/src/gui/widget/menue.cpp +++ b/src/gui/widget/menue.cpp @@ -1142,7 +1142,8 @@ printf("paintHint: icon %s text %s\n", item->hintIcon.c_str(), g_Locale->getText if (item->hint == NONEXISTANT_LOCALE) return; - int fheight = g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->getHeight(); + int HintFont = SNeutrinoSettings::FONT_TYPE_MENU_INFO; + int fheight = g_Font[HintFont]->getHeight(); std::string str1, str2; std::string str = g_Locale->getText(item->hint); @@ -1150,13 +1151,61 @@ printf("paintHint: icon %s text %s\n", item->hintIcon.c_str(), g_Locale->getText if (spos != std::string::npos) { str1 = str.substr(0, spos); str2 = str.substr(spos+1); - } else { - str1 = str; } - if (!str1.empty()) - g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->RenderString(x+offset, ypos2+5+fheight, iwidth-4-offset, str1, COL_MENUCONTENT, 0, true); // UTF-8 - if (!str2.empty()) - g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->RenderString(x+offset, ypos2+5+fheight*2, iwidth-4-offset, str2, COL_MENUCONTENT, 0, true); // UTF-8 + else + str1 = str; + + if ((!str1.empty()) || (!str1.empty())) { + int wBox = iwidth - 6 - offset; + int wStr1 = 0, wStr2 = 0; + if (!str1.empty()) + wStr1 = g_Font[HintFont]->getRenderWidth(str1); + if (!str2.empty()) + wStr2 = g_Font[HintFont]->getRenderWidth(str2); + if ((wStr1 > wBox) || (wStr2 > wBox)) { + str = g_Locale->getText(item->hint); + // replace "\n" with " " + spos = str.find_first_of("\n"); + if (spos != std::string::npos) + str.replace(spos, 1, " "); + spos = str.length(); + if (spos >= 1) { + std::string BreakChars = "+-/"; + str1 = str; + wStr1 = g_Font[HintFont]->getRenderWidth(str1); + int count = 0; + std::string bChar; + while (wStr1 > wBox) { + spos = str1.find_last_of(BreakChars + " "); + if (spos != std::string::npos) { + str1 = str1.substr(0, spos+1); + // Last delimiter remember if it's not a whitespace + size_t len = str1.length(); + size_t spos2 = str1.find_last_of(BreakChars); + if (len == spos2+1) + bChar = str1.substr(spos2, spos2+1); + else + bChar = ""; + // Remove last delimiter + str1 = str1.substr(0, spos); + } + // Width of string with delimiter + wStr1 = g_Font[HintFont]->getRenderWidth(str1 + bChar); + count++; + if (count > 20) + break; + } + // Last delimiter append again + str1 += bChar; + str2 = str.substr(spos+1); + } + } + ypos2 += (hint_height-fheight*2)/2; + if (!str1.empty()) + g_Font[HintFont]->RenderString(x+offset, ypos2+fheight, wBox, str1, COL_MENUCONTENT, 0, true); // UTF-8 + if (!str2.empty()) + g_Font[HintFont]->RenderString(x+offset, ypos2+fheight*2, wBox, str2, COL_MENUCONTENT, 0, true); // UTF-8 + } } //------------------------------------------------------------------------------------------------------------------------------- From 108b8d9523d03c845b55c6969d56a23a62ab83d7 Mon Sep 17 00:00:00 2001 From: micha-bbg Date: Wed, 11 Jul 2012 21:59:59 +0200 Subject: [PATCH 049/317] * Menu hints: Shadow for hint box enabled --- src/gui/widget/menue.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/gui/widget/menue.cpp b/src/gui/widget/menue.cpp index aaf63ced7..c6738b6f4 100644 --- a/src/gui/widget/menue.cpp +++ b/src/gui/widget/menue.cpp @@ -1069,13 +1069,13 @@ void CMenuWidget::paintHint(int pos) int xpos = x - ConnectLineBox_Width; int ypos2 = y + height + rad + SHADOW_OFFSET; - int iwidth = width+sb_width+SHADOW_OFFSET; + int iwidth = width+sb_width; if (hint_painted) { /* clear line box */ frameBuffer->paintBackgroundBoxRel(xpos, y+SHADOW_OFFSET, ConnectLineBox_Width, height+hint_height+rad); /* clear info box */ - frameBuffer->paintBackgroundBoxRel(x, ypos2, iwidth, hint_height); + frameBuffer->paintBackgroundBoxRel(x, ypos2, iwidth+SHADOW_OFFSET, hint_height+SHADOW_OFFSET); hint_painted = false; } @@ -1119,10 +1119,9 @@ printf("paintHint: icon %s text %s\n", item->hintIcon.c_str(), g_Locale->getText /* vertical info line | */ frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-15, ypos2a, 11, 4, col1); frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-12, ypos2a, 8, 1, col2); -#if 0 + /* box shadow */ frameBuffer->paintBoxRel(x+SHADOW_OFFSET, ypos2+SHADOW_OFFSET, width + sb_width, hint_height, COL_MENUCONTENTDARK_PLUS_0, rad); -#endif /* box frame and fill */ frameBuffer->paintBoxFrame(x, ypos2, iwidth, hint_height, 2, col1, rad); /* box frame and fill */ From ee781bd880969313de2a2d5b091210997fd3cae9 Mon Sep 17 00:00:00 2001 From: micha-bbg Date: Thu, 12 Jul 2012 00:26:52 +0200 Subject: [PATCH 050/317] * Menu hints: Extra font added - Font size set by Menu/Settings/Font settings/Menu/Menu hints --- data/locale/deutsch.locale | 1 + data/locale/english.locale | 1 + src/gui/osd_setup.cpp | 8 +++++--- src/gui/widget/menue.cpp | 2 +- src/system/locals.h | 1 + src/system/locals_intern.h | 1 + src/system/settings.h | 5 +++-- 7 files changed, 13 insertions(+), 6 deletions(-) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index 37603b677..2a995d183 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -521,6 +521,7 @@ fontsize.infobar_info Info fontsize.infobar_number Nummer fontsize.infobar_small Klein fontsize.menu Menütext +fontsize.menu_hint Menühinweise fontsize.menu_info Menüinfo fontsize.menu_title Menütitel hdd_10min 10 min. diff --git a/data/locale/english.locale b/data/locale/english.locale index 1a54d47c9..3d2bac75b 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -521,6 +521,7 @@ fontsize.infobar_info info fontsize.infobar_number Number fontsize.infobar_small Small fontsize.menu Menutext +fontsize.menu_hint Menu hints fontsize.menu_info Menu Info fontsize.menu_title Menu Title hdd_10min 10 min. diff --git a/src/gui/osd_setup.cpp b/src/gui/osd_setup.cpp index a4986e0a7..256d8a401 100644 --- a/src/gui/osd_setup.cpp +++ b/src/gui/osd_setup.cpp @@ -121,17 +121,18 @@ const SNeutrinoSettings::FONT_TYPES gamelist_font_sizes[2] = SNeutrinoSettings::FONT_TYPE_GAMELIST_ITEMSMALL }; -const SNeutrinoSettings::FONT_TYPES other_font_sizes[4] = +const SNeutrinoSettings::FONT_TYPES other_font_sizes[5] = { SNeutrinoSettings::FONT_TYPE_MENU_TITLE, SNeutrinoSettings::FONT_TYPE_MENU, SNeutrinoSettings::FONT_TYPE_MENU_INFO, + SNeutrinoSettings::FONT_TYPE_MENU_HINT, SNeutrinoSettings::FONT_TYPE_FILEBROWSER_ITEM }; font_sizes_groups font_sizes_groups[6] = { - {LOCALE_FONTMENU_MENU , 4, other_font_sizes , "fontsize.doth", LOCALE_MENU_HINT_MENU_FONTS }, + {LOCALE_FONTMENU_MENU , 5, other_font_sizes , "fontsize.doth", LOCALE_MENU_HINT_MENU_FONTS }, {LOCALE_FONTMENU_CHANNELLIST, 4, channellist_font_sizes, "fontsize.dcha", LOCALE_MENU_HINT_CHANNELLIST_FONTS }, {LOCALE_FONTMENU_EVENTLIST , 4, eventlist_font_sizes , "fontsize.deve", LOCALE_MENU_HINT_EVENTLIST_FONTS }, {LOCALE_FONTMENU_EPG , 4, epg_font_sizes , "fontsize.depg", LOCALE_MENU_HINT_EPG_FONTS }, @@ -166,7 +167,8 @@ font_sizes_struct neutrino_font[FONT_TYPE_COUNT] = {LOCALE_FONTSIZE_INFOBAR_CHANNAME , 30, FONT_STYLE_BOLD , 0}, {LOCALE_FONTSIZE_INFOBAR_INFO , 20, FONT_STYLE_REGULAR, 1}, {LOCALE_FONTSIZE_INFOBAR_SMALL , 14, FONT_STYLE_REGULAR, 1}, - {LOCALE_FONTSIZE_FILEBROWSER_ITEM , 16, FONT_STYLE_BOLD , 1} + {LOCALE_FONTSIZE_FILEBROWSER_ITEM , 16, FONT_STYLE_BOLD , 1}, + {LOCALE_FONTSIZE_MENU_HINT , 16, FONT_STYLE_REGULAR, 0} }; int COsdSetup::exec(CMenuTarget* parent, const std::string &actionKey) diff --git a/src/gui/widget/menue.cpp b/src/gui/widget/menue.cpp index c6738b6f4..f4553c99e 100644 --- a/src/gui/widget/menue.cpp +++ b/src/gui/widget/menue.cpp @@ -1141,7 +1141,7 @@ printf("paintHint: icon %s text %s\n", item->hintIcon.c_str(), g_Locale->getText if (item->hint == NONEXISTANT_LOCALE) return; - int HintFont = SNeutrinoSettings::FONT_TYPE_MENU_INFO; + int HintFont = SNeutrinoSettings::FONT_TYPE_MENU_HINT; int fheight = g_Font[HintFont]->getHeight(); std::string str1, str2; diff --git a/src/system/locals.h b/src/system/locals.h index 626bc1def..d2379c635 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -548,6 +548,7 @@ typedef enum LOCALE_FONTSIZE_INFOBAR_NUMBER, LOCALE_FONTSIZE_INFOBAR_SMALL, LOCALE_FONTSIZE_MENU, + LOCALE_FONTSIZE_MENU_HINT, LOCALE_FONTSIZE_MENU_INFO, LOCALE_FONTSIZE_MENU_TITLE, LOCALE_HDD_10MIN, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index 0cb0a8541..61a12cda1 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -548,6 +548,7 @@ const char * locale_real_names[] = "fontsize.infobar_number", "fontsize.infobar_small", "fontsize.menu", + "fontsize.menu_hint", "fontsize.menu_info", "fontsize.menu_title", "hdd_10min", diff --git a/src/system/settings.h b/src/system/settings.h index 7296ba0b0..345ca26a6 100644 --- a/src/system/settings.h +++ b/src/system/settings.h @@ -456,7 +456,7 @@ struct SNeutrinoSettings // Font sizes -#define FONT_TYPE_COUNT 22 +#define FONT_TYPE_COUNT 23 enum FONT_TYPES { FONT_TYPE_MENU = 0, FONT_TYPE_MENU_TITLE = 1, @@ -479,7 +479,8 @@ struct SNeutrinoSettings FONT_TYPE_INFOBAR_CHANNAME = 18, FONT_TYPE_INFOBAR_INFO = 19, FONT_TYPE_INFOBAR_SMALL = 20, - FONT_TYPE_FILEBROWSER_ITEM = 21 + FONT_TYPE_FILEBROWSER_ITEM = 21, + FONT_TYPE_MENU_HINT = 22 }; // lcdd From e69c99813c2bb3f9c0b4d1392188751eb945a12c Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Thu, 12 Jul 2012 10:31:48 +0400 Subject: [PATCH 051/317] gui/osd_setup.cpp: more hints --- src/gui/osd_setup.cpp | 148 ++++++++++++++++++++++++++++++++---------- 1 file changed, 115 insertions(+), 33 deletions(-) diff --git a/src/gui/osd_setup.cpp b/src/gui/osd_setup.cpp index 73860b8b0..8ca5ce205 100644 --- a/src/gui/osd_setup.cpp +++ b/src/gui/osd_setup.cpp @@ -177,13 +177,13 @@ int COsdSetup::exec(CMenuTarget* parent, const std::string &actionKey) if(parent != NULL) parent->hide(); - if(actionKey == "select_font") + if(actionKey == "select_font") { CFileBrowser fileBrowser; CFileFilter fileFilter; fileFilter.addFilter("ttf"); fileBrowser.Filter = &fileFilter; - if (fileBrowser.exec(FONTDIR) == true) + if (fileBrowser.exec(FONTDIR) == true) { strcpy(g_settings.font_file, fileBrowser.getSelectedFile()->Name.c_str()); printf("[neutrino] new font file %s\n", fileBrowser.getSelectedFile()->Name.c_str()); @@ -191,13 +191,13 @@ int COsdSetup::exec(CMenuTarget* parent, const std::string &actionKey) } return menu_return::RETURN_REPAINT; } - else if(actionKey == "ttx_font") + else if(actionKey == "ttx_font") { CFileBrowser fileBrowser; CFileFilter fileFilter; fileFilter.addFilter("ttf"); fileBrowser.Filter = &fileFilter; - if (fileBrowser.exec(FONTDIR) == true) + if (fileBrowser.exec(FONTDIR) == true) { strcpy(g_settings.ttx_font_file, fileBrowser.getSelectedFile()->Name.c_str()); ttx_font_file = fileBrowser.getSelectedFile()->Name; @@ -565,9 +565,9 @@ void COsdSetup::showOsdMenueColorSetup(CMenuWidget *menu_colors) mf->setHint("", LOCALE_MENU_HINT_SELECTED_TEXTCOLOR); menu_colors->addItem(mf); - CColorChooser* chInfobarcolor = new CColorChooser(LOCALE_COLORMENU_BACKGROUND, &g_settings.infobar_red, + CColorChooser* chInfobarcolor = new CColorChooser(LOCALE_COLORMENU_BACKGROUND, &g_settings.infobar_red, &g_settings.infobar_green, &g_settings.infobar_blue, &g_settings.infobar_alpha, colorSetupNotifier); - CColorChooser* chInfobarTextcolor = new CColorChooser(LOCALE_COLORMENU_TEXTCOLOR, &g_settings.infobar_Text_red, + CColorChooser* chInfobarTextcolor = new CColorChooser(LOCALE_COLORMENU_TEXTCOLOR, &g_settings.infobar_Text_red, &g_settings.infobar_Text_green, &g_settings.infobar_Text_blue, NULL, colorSetupNotifier); menu_colors->addItem( new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_COLORSTATUSBAR_TEXT)); @@ -660,11 +660,11 @@ void COsdSetup::showOsdFontSizeSetup(CMenuWidget *menu_fonts) //submenu font scaling mf = new CMenuForwarder(LOCALE_FONTMENU_SCALING, true, NULL, this, "font_scaling", CRCInput::RC_blue, NEUTRINO_ICON_BUTTON_BLUE); - mc->setHint("", LOCALE_MENU_HINT_FONT_SCALING); + mf->setHint("", LOCALE_MENU_HINT_FONT_SCALING); fontSettings->addItem(mf); //fontSettings->addItem( new CMenuForwarder(LOCALE_EPGPLUS_SELECT_FONT_NAME, true, NULL, this, "select_font")); - + mn_widget_id_t w_index = MN_WIDGET_ID_OSDSETUP_FONTSIZE_MENU; for (int i = 0; i < 6; i++) { @@ -718,28 +718,89 @@ void COsdSetup::showOsdInfobarSetup(CMenuWidget *menu_infobar) { menu_infobar->addIntroItems(LOCALE_MISCSETTINGS_INFOBAR); - menu_infobar->addItem(new CMenuOptionChooser(LOCALE_MISCSETTINGS_INFOBAR_CASYSTEM_DISPLAY, &g_settings.casystem_display, INFOBAR_CASYSTEM_MODE_OPTIONS, INFOBAR_CASYSTEM_MODE_OPTION_COUNT, true, this)); - menu_infobar->addItem(new CMenuOptionChooser(LOCALE_MISCSETTINGS_INFOBAR_DISP_LOG, &g_settings.infobar_show_channellogo, LOCALE_MISCSETTINGS_INFOBAR_DISP_OPTIONS, LOCALE_MISCSETTINGS_INFOBAR_DISP_OPTIONS_COUNT, true)); - menu_infobar->addItem(new CMenuForwarder(LOCALE_MISCSETTINGS_INFOBAR_LOGO_HDD_DIR, true, g_settings.logo_hdd_dir, this, "logo_dir")); - menu_infobar->addItem(new CMenuOptionChooser(LOCALE_MISCSETTINGS_INFOBAR_SAT_DISPLAY, &g_settings.infobar_sat_display, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); - menu_infobar->addItem(new CMenuOptionChooser(LOCALE_MISCSETTINGS_INFOBAR_SHOW_SYSFS_HDD, &g_settings.infobar_show_sysfs_hdd, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); - menu_infobar->addItem(new CMenuOptionChooser(LOCALE_MISCSETTINGS_INFOBAR_SHOW_RES, &g_settings.infobar_show_res, INFOBAR_SHOW_RES_MODE_OPTIONS, INFOBAR_SHOW_RES_MODE_OPTION_COUNT, true)); - menu_infobar->addItem(new CMenuOptionChooser(LOCALE_MISCSETTINGS_INFOBAR_SHOW_DD_AVAILABLE, &g_settings.infobar_show_dd_available, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); - menu_infobar->addItem(new CMenuOptionChooser(LOCALE_MISCSETTINGS_INFOBAR_SHOW_TUNER, &g_settings.infobar_show_tuner, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); - menu_infobar->addItem(new CMenuOptionChooser(LOCALE_MISCSETTINGS_INFOBAR_SHOW, &g_settings.infobar_show, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); - menu_infobar->addItem(new CMenuOptionChooser(LOCALE_MISCSETTINGS_INFOBAR_COLORED_EVENTS, &g_settings.colored_events_infobar, OPTIONS_COLORED_EVENTS_OPTIONS, OPTIONS_COLORED_EVENTS_OPTION_COUNT, true)); - menu_infobar->addItem(new CMenuOptionChooser(LOCALE_MISCSETTINGS_RADIOTEXT, &g_settings.radiotext_enable, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, this)); + CMenuOptionChooser * mc; + + // CA system + mc = new CMenuOptionChooser(LOCALE_MISCSETTINGS_INFOBAR_CASYSTEM_DISPLAY, &g_settings.casystem_display, INFOBAR_CASYSTEM_MODE_OPTIONS, INFOBAR_CASYSTEM_MODE_OPTION_COUNT, true, this); + mc->setHint("", LOCALE_MENU_HINT_INFOBAR_CASYS); + menu_infobar->addItem(mc); + + // logo + mc = new CMenuOptionChooser(LOCALE_MISCSETTINGS_INFOBAR_DISP_LOG, &g_settings.infobar_show_channellogo, LOCALE_MISCSETTINGS_INFOBAR_DISP_OPTIONS, LOCALE_MISCSETTINGS_INFOBAR_DISP_OPTIONS_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_INFOBAR_LOGO); + menu_infobar->addItem(mc); + + // logo directory + CMenuForwarder * mf = new CMenuForwarder(LOCALE_MISCSETTINGS_INFOBAR_LOGO_HDD_DIR, true, g_settings.logo_hdd_dir, this, "logo_dir"); + mf->setHint("", LOCALE_MENU_HINT_INFOBAR_LOGO_DIR); + menu_infobar->addItem(mf); + + // satellite + mc = new CMenuOptionChooser(LOCALE_MISCSETTINGS_INFOBAR_SAT_DISPLAY, &g_settings.infobar_sat_display, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_INFOBAR_SAT); + menu_infobar->addItem(mc); + + // flash/hdd progress + mc = new CMenuOptionChooser(LOCALE_MISCSETTINGS_INFOBAR_SHOW_SYSFS_HDD, &g_settings.infobar_show_sysfs_hdd, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_INFOBAR_FILESYS); + menu_infobar->addItem(mc); + + // resolution + mc = new CMenuOptionChooser(LOCALE_MISCSETTINGS_INFOBAR_SHOW_RES, &g_settings.infobar_show_res, INFOBAR_SHOW_RES_MODE_OPTIONS, INFOBAR_SHOW_RES_MODE_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_INFOBAR_RES); + menu_infobar->addItem(mc); + + // DD icon + mc = new CMenuOptionChooser(LOCALE_MISCSETTINGS_INFOBAR_SHOW_DD_AVAILABLE, &g_settings.infobar_show_dd_available, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_INFOBAR_DD); + menu_infobar->addItem(mc); + + // tuner icon + mc = new CMenuOptionChooser(LOCALE_MISCSETTINGS_INFOBAR_SHOW_TUNER, &g_settings.infobar_show_tuner, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_INFOBAR_TUNER); + menu_infobar->addItem(mc); + + // show on epg change + mc = new CMenuOptionChooser(LOCALE_MISCSETTINGS_INFOBAR_SHOW, &g_settings.infobar_show, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_INFOBAR_ON_EPG); + menu_infobar->addItem(mc); + + // colored event + mc = new CMenuOptionChooser(LOCALE_MISCSETTINGS_INFOBAR_COLORED_EVENTS, &g_settings.colored_events_infobar, OPTIONS_COLORED_EVENTS_OPTIONS, OPTIONS_COLORED_EVENTS_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_INFOBAR_COLORED_EVENT); + menu_infobar->addItem(mc); + + // radiotext + mc = new CMenuOptionChooser(LOCALE_MISCSETTINGS_RADIOTEXT, &g_settings.radiotext_enable, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, this); + mc->setHint("", LOCALE_MENU_HINT_INFOBAR_RADIOTEXT); + menu_infobar->addItem(mc); } //channellist void COsdSetup::showOsdChanlistSetup(CMenuWidget *menu_chanlist) { - menu_chanlist->addIntroItems(LOCALE_MISCSETTINGS_CHANNELLIST); + CMenuOptionChooser * mc; - menu_chanlist->addItem(new CMenuOptionChooser(LOCALE_MISCSETTINGS_CHANNELLIST_EPGTEXT_ALIGN, &g_settings.channellist_epgtext_align_right, CHANNELLIST_EPGTEXT_ALIGN_RIGHT_OPTIONS, CHANNELLIST_EPGTEXT_ALIGN_RIGHT_OPTIONS_COUNT, true)); - menu_chanlist->addItem(new CMenuOptionChooser(LOCALE_CHANNELLIST_EXTENDED, &g_settings.channellist_extended, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); - menu_chanlist->addItem(new CMenuOptionChooser(LOCALE_CHANNELLIST_FOOT, &g_settings.channellist_foot, CHANNELLIST_FOOT_OPTIONS, CHANNELLIST_FOOT_OPTIONS_COUNT, true)); - menu_chanlist->addItem(new CMenuOptionChooser(LOCALE_MISCSETTINGS_CHANNELLIST_COLORED_EVENTS, &g_settings.colored_events_channellist, OPTIONS_COLORED_EVENTS_OPTIONS, OPTIONS_COLORED_EVENTS_OPTION_COUNT, true)); + menu_chanlist->addIntroItems(LOCALE_MISCSETTINGS_CHANNELLIST); + // epg align + mc = new CMenuOptionChooser(LOCALE_MISCSETTINGS_CHANNELLIST_EPGTEXT_ALIGN, &g_settings.channellist_epgtext_align_right, CHANNELLIST_EPGTEXT_ALIGN_RIGHT_OPTIONS, CHANNELLIST_EPGTEXT_ALIGN_RIGHT_OPTIONS_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_CHANNELLIST_EPG_ALIGN); + menu_chanlist->addItem(mc); + + // extended channel list + mc = new CMenuOptionChooser(LOCALE_CHANNELLIST_EXTENDED, &g_settings.channellist_extended, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_CHANNELLIST_EXTENDED); + menu_chanlist->addItem(mc); + + // foot + mc = new CMenuOptionChooser(LOCALE_CHANNELLIST_FOOT, &g_settings.channellist_foot, CHANNELLIST_FOOT_OPTIONS, CHANNELLIST_FOOT_OPTIONS_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_CHANNELLIST_FOOT); + menu_chanlist->addItem(mc); + + // colored event + mc = new CMenuOptionChooser(LOCALE_MISCSETTINGS_CHANNELLIST_COLORED_EVENTS, &g_settings.colored_events_channellist, OPTIONS_COLORED_EVENTS_OPTIONS, OPTIONS_COLORED_EVENTS_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_CHANNELLIST_COLORED); + menu_chanlist->addItem(mc); } bool COsdSetup::changeNotify(const neutrino_locale_t OptionName, void * data) @@ -811,7 +872,7 @@ int COsdSetup::showContextChanlistMenu() menu_chanlist->enableSaveScreen(true); menu_chanlist->setSelected(cselected); - menu_chanlist->addIntroItems(LOCALE_MISCSETTINGS_CHANNELLIST); + menu_chanlist->addIntroItems(LOCALE_MISCSETTINGS_CHANNELLIST, NONEXISTANT_LOCALE, CMenuWidget::BTN_TYPE_CANCEL); menu_chanlist->addItem(new CMenuOptionChooser(LOCALE_MISCSETTINGS_CHANNELLIST_EPGTEXT_ALIGN, &g_settings.channellist_epgtext_align_right, CHANNELLIST_EPGTEXT_ALIGN_RIGHT_OPTIONS, CHANNELLIST_EPGTEXT_ALIGN_RIGHT_OPTIONS_COUNT, true)); menu_chanlist->addItem(new CMenuOptionChooser(LOCALE_CHANNELLIST_EXTENDED, &g_settings.channellist_extended, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); @@ -819,7 +880,7 @@ int COsdSetup::showContextChanlistMenu() menu_chanlist->addItem(new CMenuOptionChooser(LOCALE_MISCSETTINGS_CHANNELLIST_COLORED_EVENTS, &g_settings.colored_events_channellist, OPTIONS_COLORED_EVENTS_OPTIONS, OPTIONS_COLORED_EVENTS_OPTION_COUNT, true)); /* TODO ? problems: - * 1. channel list not re-calc sizes after menu; + * 1. channel list not re-calc sizes after menu; * 2. font menu smaller and make hole in channel list */ #if 1 CMenuWidget *fontSettingsSubMenu = new CMenuWidget(LOCALE_FONTMENU_HEAD, NEUTRINO_ICON_KEYBINDING); @@ -863,11 +924,32 @@ void COsdSetup::showOsdScreenshottSetup(CMenuWidget *menu_screenshot) menu_screenshot->addIntroItems(LOCALE_SCREENSHOT_MENU); if((uint)g_settings.key_screenshot == CRCInput::RC_nokey) menu_screenshot->addItem( new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_SCREENSHOT_INFO)); - menu_screenshot->addItem(new CMenuOptionNumberChooser(LOCALE_SCREENSHOT_COUNT, &g_settings.screenshot_count, true, 1, 5, NULL)); - menu_screenshot->addItem(new CMenuOptionChooser(LOCALE_SCREENSHOT_FORMAT, &g_settings.screenshot_format, SCREENSHOT_FMT_OPTIONS, SCREENSHOT_FMT_OPTION_COUNT, true)); - menu_screenshot->addItem(new CMenuForwarder(LOCALE_SCREENSHOT_DEFDIR, true, g_settings.screenshot_dir, this, "screenshot_dir")); - menu_screenshot->addItem(new CMenuOptionChooser(LOCALE_SCREENSHOT_RES, &g_settings.screenshot_mode, SCREENSHOT_OPTIONS, SCREENSHOT_OPTION_COUNT, true)); - menu_screenshot->addItem(new CMenuOptionChooser(LOCALE_SCREENSHOT_VIDEO, &g_settings.screenshot_video, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); - menu_screenshot->addItem(new CMenuOptionChooser(LOCALE_SCREENSHOT_SCALE, &g_settings.screenshot_scale, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); - menu_screenshot->addItem(new CMenuOptionChooser(LOCALE_SCREENSHOT_COVER, &g_settings.screenshot_cover, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); + + CMenuOptionNumberChooser * nc = new CMenuOptionNumberChooser(LOCALE_SCREENSHOT_COUNT, &g_settings.screenshot_count, true, 1, 5, NULL); + nc->setHint("", LOCALE_MENU_HINT_SCREENSHOT_COUNT); + menu_screenshot->addItem(nc); + + CMenuOptionChooser * mc = new CMenuOptionChooser(LOCALE_SCREENSHOT_FORMAT, &g_settings.screenshot_format, SCREENSHOT_FMT_OPTIONS, SCREENSHOT_FMT_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_SCREENSHOT_FORMAT); + menu_screenshot->addItem(mc); + + CMenuForwarder * mf = new CMenuForwarder(LOCALE_SCREENSHOT_DEFDIR, true, g_settings.screenshot_dir, this, "screenshot_dir"); + mf->setHint("", LOCALE_MENU_HINT_SCREENSHOT_DIR); + menu_screenshot->addItem(mf); + + mc = new CMenuOptionChooser(LOCALE_SCREENSHOT_RES, &g_settings.screenshot_mode, SCREENSHOT_OPTIONS, SCREENSHOT_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_SCREENSHOT_RES); + menu_screenshot->addItem(mc); + + mc = new CMenuOptionChooser(LOCALE_SCREENSHOT_VIDEO, &g_settings.screenshot_video, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_SCREENSHOT_VIDEO); + menu_screenshot->addItem(mc); + + mc = new CMenuOptionChooser(LOCALE_SCREENSHOT_SCALE, &g_settings.screenshot_scale, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_SCREENSHOT_SCALE); + menu_screenshot->addItem(mc); + + mc = new CMenuOptionChooser(LOCALE_SCREENSHOT_COVER, &g_settings.screenshot_cover, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_SCREENSHOT_COVER); + menu_screenshot->addItem(mc); } From a562a8ee7b4f98db1e2097fe803d044d8f335ae3 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Thu, 12 Jul 2012 10:32:01 +0400 Subject: [PATCH 052/317] gui/vfd_setup.cpp: add hints --- src/gui/vfd_setup.cpp | 86 ++++++++++++++++++++++++++++++++----------- 1 file changed, 64 insertions(+), 22 deletions(-) diff --git a/src/gui/vfd_setup.cpp b/src/gui/vfd_setup.cpp index 3f768fcc3..1e6791250 100644 --- a/src/gui/vfd_setup.cpp +++ b/src/gui/vfd_setup.cpp @@ -53,7 +53,7 @@ CVfdSetup::CVfdSetup() { width = w_max (40, 10); dim_time = NULL; - vfd_enabled = (cs_get_revision() != 10); + vfd_enabled = true; //(cs_get_revision() != 10); } CVfdSetup::~CVfdSetup() @@ -80,8 +80,8 @@ int CVfdSetup::exec(CMenuTarget* parent, const std::string &actionKey) } int res = showSetup(); - - return res; + + return res; } #define LCDMENU_STATUSLINE_OPTION_COUNT 2 @@ -116,24 +116,30 @@ int CVfdSetup::showSetup() //vfd brightness menu CMenuWidget lcd_sliders(LOCALE_LCDMENU_HEAD, NEUTRINO_ICON_LCD,width, MN_WIDGET_ID_VFDSETUP_LCD_SLIDERS); showBrightnessSetup(&lcd_sliders); - vfds->addItem(new CMenuForwarder(LOCALE_LCDMENU_LCDCONTROLER, vfd_enabled, NULL, &lcd_sliders, NULL, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED)); - + CMenuForwarder * mf = new CMenuForwarder(LOCALE_LCDMENU_LCDCONTROLER, vfd_enabled, NULL, &lcd_sliders, NULL, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED); + mf->setHint("", LOCALE_MENU_HINT_VFD_BRIGHTNESS_SETUP); + vfds->addItem(mf); + //led menu - if(cs_get_revision() > 7) + if(cs_get_revision() > 7) { CMenuWidget * ledMenu = new CMenuWidget(LOCALE_LCDMENU_HEAD, NEUTRINO_ICON_LCD, width, MN_WIDGET_ID_VFDSETUP_LED_SETUP); showLedSetup(ledMenu); - vfds->addItem(new CMenuDForwarder(LOCALE_LEDCONTROLER_MENU, true, NULL, ledMenu, NULL, CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN)); + mf = new CMenuDForwarder(LOCALE_LEDCONTROLER_MENU, true, NULL, ledMenu, NULL, CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN); + mf->setHint("", LOCALE_MENU_HINT_POWER_LEDS); + vfds->addItem(mf); } vfds->addItem(GenericMenuSeparatorLine); //status and info line options CMenuOptionChooser* oj = new CMenuOptionChooser(LOCALE_LCDMENU_STATUSLINE, &g_settings.lcd_setting[SNeutrinoSettings::LCD_SHOW_VOLUME], LCDMENU_STATUSLINE_OPTIONS, LCDMENU_STATUSLINE_OPTION_COUNT, vfd_enabled); + oj->setHint("", LOCALE_MENU_HINT_VFD_STATUSLINE); CMenuOptionChooser* lcd_clock_channelname_menu = new CMenuOptionChooser(LOCALE_LCD_INFO_LINE, &g_settings.lcd_info_line, LCD_INFO_OPTIONS, LCD_INFO_OPTION_COUNT, vfd_enabled); + lcd_clock_channelname_menu->setHint("", LOCALE_MENU_HINT_VFD_INFOLINE); vfds->addItem(oj); vfds->addItem(lcd_clock_channelname_menu); - + int res = vfds->exec(NULL, ""); delete vfds; @@ -142,35 +148,71 @@ int CVfdSetup::showSetup() void CVfdSetup::showBrightnessSetup(CMenuWidget *mn_widget) { + CMenuOptionNumberChooser * nc; + CMenuForwarder * mf; + mn_widget->addIntroItems(LOCALE_LCDMENU_LCDCONTROLER); - + brightness = CVFD::getInstance()->getBrightness(); brightnessstandby = CVFD::getInstance()->getBrightnessStandby(); brightnessdeepstandby = CVFD::getInstance()->getBrightnessDeepStandby(); - mn_widget->addItem(new CMenuOptionNumberChooser(LOCALE_LCDCONTROLER_BRIGHTNESS, &brightness, true, 0, 15, this, 0, 0, NONEXISTANT_LOCALE, NULL, true)); - mn_widget->addItem(new CMenuOptionNumberChooser(LOCALE_LCDCONTROLER_BRIGHTNESSSTANDBY, &brightnessstandby, true, 0, 15, this, 0, 0, NONEXISTANT_LOCALE, NULL, true)); - if(cs_get_revision() > 7) - mn_widget->addItem(new CMenuOptionNumberChooser(LOCALE_LCDCONTROLER_BRIGHTNESSDEEPSTANDBY, &brightnessdeepstandby, true, 0, 15, this, 0, 0, NONEXISTANT_LOCALE, NULL, true)); - mn_widget->addItem(new CMenuOptionNumberChooser(LOCALE_LCDMENU_DIM_BRIGHTNESS, &g_settings.lcd_setting_dim_brightness, vfd_enabled, -1, 15, NULL, 0, -1, LOCALE_OPTIONS_OFF, NULL, true)); + nc = new CMenuOptionNumberChooser(LOCALE_LCDCONTROLER_BRIGHTNESS, &brightness, true, 0, 15, this, 0, 0, NONEXISTANT_LOCALE, NULL, true); + nc->setHint("", LOCALE_MENU_HINT_VFD_BRIGHTNESS); + mn_widget->addItem(nc); + + nc = new CMenuOptionNumberChooser(LOCALE_LCDCONTROLER_BRIGHTNESSSTANDBY, &brightnessstandby, true, 0, 15, this, 0, 0, NONEXISTANT_LOCALE, NULL, true); + nc->setHint("", LOCALE_MENU_HINT_VFD_BRIGHTNESSSTANDBY); + mn_widget->addItem(nc); + + if(cs_get_revision() > 7) { + nc = new CMenuOptionNumberChooser(LOCALE_LCDCONTROLER_BRIGHTNESSDEEPSTANDBY, &brightnessdeepstandby, true, 0, 15, this, 0, 0, NONEXISTANT_LOCALE, NULL, true); + nc->setHint("", LOCALE_MENU_HINT_VFD_BRIGHTNESSDEEPSTANDBY); + mn_widget->addItem(nc); + } + nc = new CMenuOptionNumberChooser(LOCALE_LCDMENU_DIM_BRIGHTNESS, &g_settings.lcd_setting_dim_brightness, vfd_enabled, -1, 15, NULL, 0, -1, LOCALE_OPTIONS_OFF, NULL, true); + nc->setHint("", LOCALE_MENU_HINT_VFD_BRIGHTNESSDIM); + mn_widget->addItem(nc); + mn_widget->addItem(GenericMenuSeparatorLine); if (dim_time == NULL) dim_time = new CStringInput(LOCALE_LCDMENU_DIM_TIME, g_settings.lcd_setting_dim_time, 3, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE,"0123456789 "); - mn_widget->addItem(new CMenuForwarder(LOCALE_LCDMENU_DIM_TIME, vfd_enabled, g_settings.lcd_setting_dim_time,dim_time)); + + mf = new CMenuForwarder(LOCALE_LCDMENU_DIM_TIME, vfd_enabled, g_settings.lcd_setting_dim_time,dim_time); + mf->setHint("", LOCALE_MENU_HINT_VFD_DIMTIME); + mn_widget->addItem(mf); + mn_widget->addItem(GenericMenuSeparatorLine); - mn_widget->addItem(new CMenuForwarder(LOCALE_OPTIONS_DEFAULT, true, NULL, this, "def", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED)); + mf = new CMenuForwarder(LOCALE_OPTIONS_DEFAULT, true, NULL, this, "def", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED); + mf->setHint("", LOCALE_MENU_HINT_VFD_DEFAULTS); + mn_widget->addItem(mf); } void CVfdSetup::showLedSetup(CMenuWidget *mn_led_widget) { + CMenuOptionChooser * mc; mn_led_widget->addIntroItems(LOCALE_LEDCONTROLER_MENU); - mn_led_widget->addItem(new CMenuOptionChooser(LOCALE_LEDCONTROLER_MODE_TV, &g_settings.led_tv_mode, LEDMENU_OPTIONS, LEDMENU_OPTION_COUNT, true, this)); - mn_led_widget->addItem(new CMenuOptionChooser(LOCALE_LEDCONTROLER_MODE_STANDBY, &g_settings.led_standby_mode, LEDMENU_OPTIONS, LEDMENU_OPTION_COUNT, true)); - mn_led_widget->addItem(new CMenuOptionChooser(LOCALE_LEDCONTROLER_MODE_DEEPSTANDBY, &g_settings.led_deep_mode, LEDMENU_OPTIONS, LEDMENU_OPTION_COUNT, true)); - mn_led_widget->addItem(new CMenuOptionChooser(LOCALE_LEDCONTROLER_MODE_RECORD, &g_settings.led_rec_mode, LEDMENU_OPTIONS, LEDMENU_OPTION_COUNT, true)); - mn_led_widget->addItem(new CMenuOptionChooser(LOCALE_LEDCONTROLER_BLINK, &g_settings.led_blink, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); -} + mc = new CMenuOptionChooser(LOCALE_LEDCONTROLER_MODE_TV, &g_settings.led_tv_mode, LEDMENU_OPTIONS, LEDMENU_OPTION_COUNT, true, this); + mc->setHint("", LOCALE_MENU_HINT_LEDS_TV); + mn_led_widget->addItem(mc); + + mc = new CMenuOptionChooser(LOCALE_LEDCONTROLER_MODE_STANDBY, &g_settings.led_standby_mode, LEDMENU_OPTIONS, LEDMENU_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_LEDS_STANDBY); + mn_led_widget->addItem(mc); + + mc = new CMenuOptionChooser(LOCALE_LEDCONTROLER_MODE_DEEPSTANDBY, &g_settings.led_deep_mode, LEDMENU_OPTIONS, LEDMENU_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_LEDS_DEEPSTANDBY); + mn_led_widget->addItem(mc); + + mc = new CMenuOptionChooser(LOCALE_LEDCONTROLER_MODE_RECORD, &g_settings.led_rec_mode, LEDMENU_OPTIONS, LEDMENU_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_LEDS_RECORD); + mn_led_widget->addItem(mc); + + mc = new CMenuOptionChooser(LOCALE_LEDCONTROLER_BLINK, &g_settings.led_blink, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_LEDS_BLINK); + mn_led_widget->addItem(mc); +} bool CVfdSetup::changeNotify(const neutrino_locale_t OptionName, void */* data */) { From e96802a371cc16770db29902c200ab318b8b12a6 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Thu, 12 Jul 2012 10:32:19 +0400 Subject: [PATCH 053/317] gui/hdd_menu.cpp: add hints --- src/gui/hdd_menu.cpp | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/src/gui/hdd_menu.cpp b/src/gui/hdd_menu.cpp index b88bcda6a..178c56192 100644 --- a/src/gui/hdd_menu.cpp +++ b/src/gui/hdd_menu.cpp @@ -145,12 +145,19 @@ int CHDDMenuHandler::doMenu () CHDDChkExec chkexec; CHDDDestExec hddexec; - hddmenu->addItem(new CMenuForwarder(LOCALE_HDD_ACTIVATE, true, "", &hddexec, NULL, CRCInput::RC_red,NEUTRINO_ICON_BUTTON_RED)); + CMenuForwarder * mf = new CMenuForwarder(LOCALE_HDD_ACTIVATE, true, "", &hddexec, NULL, CRCInput::RC_red,NEUTRINO_ICON_BUTTON_RED); + mf->setHint("", LOCALE_MENU_HINT_HDD_APPLY); + hddmenu->addItem(mf); hddmenu->addItem(new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_HDD_EXTENDED_SETTINGS)); - hddmenu->addItem( new CMenuOptionChooser(LOCALE_HDD_SLEEP, &g_settings.hdd_sleep, HDD_SLEEP_OPTIONS, HDD_SLEEP_OPTION_COUNT, true)); - hddmenu->addItem( new CMenuOptionChooser(LOCALE_HDD_NOISE, &g_settings.hdd_noise, HDD_NOISE_OPTIONS, HDD_NOISE_OPTION_COUNT, true)); + CMenuOptionChooser * mc = new CMenuOptionChooser(LOCALE_HDD_SLEEP, &g_settings.hdd_sleep, HDD_SLEEP_OPTIONS, HDD_SLEEP_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_HDD_SLEEP); + hddmenu->addItem(mc); + + mc = new CMenuOptionChooser(LOCALE_HDD_NOISE, &g_settings.hdd_noise, HDD_NOISE_OPTIONS, HDD_NOISE_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_HDD_NOISE); + hddmenu->addItem(mc); //if(n > 0) hddmenu->addItem(new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_HDD_MANAGE)); @@ -226,11 +233,19 @@ int CHDDMenuHandler::doMenu () tempMenu[i] = new CMenuWidget(str, NEUTRINO_ICON_SETTINGS); tempMenu[i]->addIntroItems(); //tempMenu->addItem( new CMenuOptionChooser(LOCALE_HDD_FS, &g_settings.hdd_fs, HDD_FILESYS_OPTIONS, HDD_FILESYS_OPTION_COUNT, true)); - tempMenu[i]->addItem(new CMenuForwarder(LOCALE_HDD_FORMAT, true, "", &fmtexec, namelist[i]->d_name)); - tempMenu[i]->addItem(new CMenuForwarder(LOCALE_HDD_CHECK, true, "", &chkexec, namelist[i]->d_name)); + + mf = new CMenuForwarder(LOCALE_HDD_FORMAT, true, "", &fmtexec, namelist[i]->d_name); + mf->setHint("", LOCALE_MENU_HINT_HDD_FORMAT); + tempMenu[i]->addItem(mf); + + mf = new CMenuForwarder(LOCALE_HDD_CHECK, true, "", &chkexec, namelist[i]->d_name); + mf->setHint("", LOCALE_MENU_HINT_HDD_CHECK); + tempMenu[i]->addItem(mf); snprintf(sstr, sizeof(sstr), "%s (%s)", g_Locale->getText(LOCALE_HDD_REMOVABLE_DEVICE), namelist[i]->d_name); - hddmenu->addItem(new CMenuForwarderNonLocalized((removable ? sstr : namelist[i]->d_name), enabled /*(removable || isroot) ? false : true*/, tmp_str[i], tempMenu[i])); + mf = new CMenuForwarderNonLocalized((removable ? sstr : namelist[i]->d_name), enabled, tmp_str[i], tempMenu[i]); + mf->setHint("", LOCALE_MENU_HINT_HDD_TOOLS); + hddmenu->addItem(mf); hdd_found = 1; free(namelist[i]); From 799cb6d1625849a8c47fa9cd9c18ca55714f6feb Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Thu, 12 Jul 2012 10:32:42 +0400 Subject: [PATCH 054/317] locals: adding hints, WIP --- data/locale/english.locale | 65 +++++++++++++++++++++++++++++++++----- src/system/locals.h | 43 +++++++++++++++++++++++++ src/system/locals_intern.h | 43 +++++++++++++++++++++++++ 3 files changed, 143 insertions(+), 8 deletions(-) diff --git a/data/locale/english.locale b/data/locale/english.locale index 1251d1c0c..e2cc237f6 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -642,7 +642,7 @@ lcdmenu.statusline.both volume / playtime lcdmenu.statusline.playtime playtime lcdmenu.statusline.volume volume ledcontroler.blink Blink in deep standby, if timer set -ledcontroler.menu Power Button LED�s +ledcontroler.menu Power Button LEDs ledcontroler.mode.deepstandby Deep Standby ledcontroler.mode.record Blinke in Record ledcontroler.mode.standby Standby @@ -901,8 +901,33 @@ menu.hint_gamelist_fonts Change games and scripts list font sizes menu.hint_timeouts Configure time to hide GUI windows\nin seconds menu.hint_screen_setup Configure screen margins menu.hint_infobar_setup Configure infobar options +menu.hint_infobar_casys On: display all with colored active, mini: single\nlocked icon, descreet: all active ca-sys +menu.hint_infobar_logo Logo / signal options +menu.hint_infobar_logo_dir Select directory to search for channels logo +menu.hint_infobar_sat Show current satellite or cable provider +menu.hint_infobar_filesys Show flash and HDD used space levels +menu.hint_infobar_res Show channel resolution icons +menu.hint_infobar_dd Show DD icon +menu.hint_infobar_tuner Show active tuner number icon +menu.hint_infobar_onepg Show infobar on current EPG event change +menu.hint_infobar_colored_event Use different color for current or next event +menu.hint_infobar_radiotext Show radiotext window + menu.hint_channellist_setup Configure channe list GUI options +menu.hint_channellist_epg_align EPG event align +menu.hint_channellist_extended Show current event progress bar +menu.hint_channellist_foot Show additional information\nin bottom box +menu.hint_channellist_colored Use different color for current or next event + menu.hint_screenshot_setup Configure screenshots options +menu.hint_screenshot_count When no GUI on screen, you can save 1-5\nscreenshot serie +menu.hint_screenshot_format File format to save screenshot +menu.hint_screenshot_dir Select directory to save screenshots +menu.hint_screenshot_res Screenshot size: current channel's video size\nor OSD size (1280x720) +menu.hint_screenshot_video Include live video in screenshot +menu.hint_screenshot_scale For video+OSD screenshots, scale to video size +menu.hint_screenshot_cover ON: When playing record, overwrite single\nscreenshot to show inside MovieBrowser + menu.hint_osd_preset Pre-configured screen margins for CRT and LCD TV menu.hint_rounded_corners Draw round or rectangular windows corners menu.hint_scrambled_message Show scrambled message, when channel cannot be decoded @@ -910,11 +935,35 @@ menu.hint_subchannel_pos Select subchannels menu position menu.hint_volume_pos Select volume indicator position menu.hint_show_mute_icon Show mute icon, when volume set to 0 menu.hint_menu_pos Select menu position -menu.hint_menu_hints Show this hints.i Also you can switch\nit any time using 'help' button +menu.hint_menu_hints Show this hints. Also you can switch\nit any time using 'help' button menu.hint_fade Fade GUI windows menu.hint_bigwindows Always show big epg detail window\nelse 'info' button switch big font + window size menu.hint_progressbar_color Show colored progress bars +menu.hint_vfd_brightness_setup Configure frontpanel display brightness\nfor different modes +menu.hint_vfd_brightness Working brightness +menu.hint_vfd_brightnessstandby Brightness in soft-standby mode +menu.hint_vfd_brightnessdeepstandby Brightness in deep-standby mode +menu.hint_vfd_brightnessdim Auto-dim brightness +menu.hint_vfd_dimtime Auto-dim time, in seconds +menu.hint_vfd_defaults Restore default brightness values +menu.hint_vfd_statusline Choose what to display in short\nVFD status line +menu.hint_vfd_infoline Choose what to display in main VFD line +menu.hint_power_leds Configure power-button LEDs behavior +menu.hint_leds_tv Working LEDs state +menu.hint_leds_standby LEDs state in soft-standby mode +menu.hint_leds_deepstandby LEDs state in deeps-standby mode +menu.hint_leds_record LEDs state when box recording +menu.hint_leds_blink Blink LEDS in deep-standby + +menu.hint_hdd_apply Apply sleep/noise parameters +menu.hint_hdd_sleep Select time to stop hdd on inactivity +menu.hint_hdd_noise Set Automatic Acoustic Management\nnot all drives support this +menu.hint_hdd_tools Initialize HDD, check filesystem +menu.hint_hdd_format Create HDD partition and format it +menu.hint_hdd_check Check filesystem (fsck) +menu.hint_hdd_not_found No hdd found + menu.next Next (press Menu to quit) messagebox.back Back messagebox.cancel Cancel @@ -954,12 +1003,12 @@ miscsettings.infobar_casystem_mini mini miscsettings.infobar_casystem_mode discreet miscsettings.infobar_colored_events Program colored miscsettings.infobar_disp_0 without Logo -miscsettings.infobar_disp_1 Logo 1 -miscsettings.infobar_disp_2 Logo 2 -miscsettings.infobar_disp_3 Logo 3 -miscsettings.infobar_disp_4 Logo 4 -miscsettings.infobar_disp_5 Logo 5 -miscsettings.infobar_disp_6 Logo 6 +miscsettings.infobar_disp_1 Logo in number box +miscsettings.infobar_disp_2 Logo+channel number +miscsettings.infobar_disp_3 Logo+channel name+signal +miscsettings.infobar_disp_4 Logo+channel name/number +miscsettings.infobar_disp_5 Logo+signal +miscsettings.infobar_disp_6 Logo+channel number+signal miscsettings.infobar_disp_log Logo miscsettings.infobar_logo_hdd_dir Logo dir miscsettings.infobar_sat_display Satellite display on infobar diff --git a/src/system/locals.h b/src/system/locals.h index 411957639..85ed484fb 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -929,8 +929,30 @@ typedef enum LOCALE_MENU_HINT_TIMEOUTS, LOCALE_MENU_HINT_SCREEN_SETUP, LOCALE_MENU_HINT_INFOBAR_SETUP, + LOCALE_MENU_HINT_INFOBAR_CASYS, + LOCALE_MENU_HINT_INFOBAR_LOGO, + LOCALE_MENU_HINT_INFOBAR_LOGO_DIR, + LOCALE_MENU_HINT_INFOBAR_SAT, + LOCALE_MENU_HINT_INFOBAR_FILESYS, + LOCALE_MENU_HINT_INFOBAR_RES, + LOCALE_MENU_HINT_INFOBAR_DD, + LOCALE_MENU_HINT_INFOBAR_TUNER, + LOCALE_MENU_HINT_INFOBAR_ON_EPG, + LOCALE_MENU_HINT_INFOBAR_COLORED_EVENT, + LOCALE_MENU_HINT_INFOBAR_RADIOTEXT, LOCALE_MENU_HINT_CHANNELLIST_SETUP, + LOCALE_MENU_HINT_CHANNELLIST_EPG_ALIGN, + LOCALE_MENU_HINT_CHANNELLIST_EXTENDED, + LOCALE_MENU_HINT_CHANNELLIST_FOOT, + LOCALE_MENU_HINT_CHANNELLIST_COLORED, LOCALE_MENU_HINT_SCREENSHOT_SETUP, + LOCALE_MENU_HINT_SCREENSHOT_COUNT, + LOCALE_MENU_HINT_SCREENSHOT_FORMAT, + LOCALE_MENU_HINT_SCREENSHOT_DIR, + LOCALE_MENU_HINT_SCREENSHOT_RES, + LOCALE_MENU_HINT_SCREENSHOT_VIDEO, + LOCALE_MENU_HINT_SCREENSHOT_SCALE, + LOCALE_MENU_HINT_SCREENSHOT_COVER, LOCALE_MENU_HINT_OSD_PRESET, LOCALE_MENU_HINT_ROUNDED_CORNERS, LOCALE_MENU_HINT_SCRAMBLED_MESSAGE, @@ -942,6 +964,27 @@ typedef enum LOCALE_MENU_HINT_FADE, LOCALE_MENU_HINT_BIGWINDOWS, LOCALE_MENU_HINT_PROGRESSBAR_COLOR, + LOCALE_MENU_HINT_VFD_BRIGHTNESS_SETUP, + LOCALE_MENU_HINT_VFD_BRIGHTNESS, + LOCALE_MENU_HINT_VFD_BRIGHTNESSSTANDBY, + LOCALE_MENU_HINT_VFD_BRIGHTNESSDEEPSTANDBY, + LOCALE_MENU_HINT_VFD_BRIGHTNESSDIM, + LOCALE_MENU_HINT_VFD_DIMTIME, + LOCALE_MENU_HINT_VFD_DEFAULTS, + LOCALE_MENU_HINT_VFD_STATUSLINE, + LOCALE_MENU_HINT_VFD_INFOLINE, + LOCALE_MENU_HINT_POWER_LEDS, + LOCALE_MENU_HINT_LEDS_TV, + LOCALE_MENU_HINT_LEDS_STANDBY, + LOCALE_MENU_HINT_LEDS_DEEPSTANDBY, + LOCALE_MENU_HINT_LEDS_RECORD, + LOCALE_MENU_HINT_LEDS_BLINK, + LOCALE_MENU_HINT_HDD_APPLY, + LOCALE_MENU_HINT_HDD_SLEEP, + LOCALE_MENU_HINT_HDD_NOISE, + LOCALE_MENU_HINT_HDD_TOOLS, + LOCALE_MENU_HINT_HDD_FORMAT, + LOCALE_MENU_HINT_HDD_CHECK, LOCALE_MENU_NEXT, LOCALE_MESSAGEBOX_BACK, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index 78e66cbb6..c0f572a98 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -929,8 +929,30 @@ const char * locale_real_names[] = "menu.hint_timeouts", "menu.hint_screen_setup", "menu.hint_infobar_setup", + "menu.hint_infobar_casys", + "menu.hint_infobar_logo", + "menu.hint_infobar_logo_dir", + "menu.hint_infobar_sat", + "menu.hint_infobar_filesys", + "menu.hint_infobar_res", + "menu.hint_infobar_dd", + "menu.hint_infobar_tuner", + "menu.hint_infobar_onepg", + "menu.hint_infobar_colored_event", + "menu.hint_infobar_radiotext", "menu.hint_channellist_setup", + "menu.hint_channellist_epg_align", + "menu.hint_channellist_extended", + "menu.hint_channellist_foot", + "menu.hint_channellist_colored", "menu.hint_screenshot_setup", + "menu.hint_screenshot_count", + "menu.hint_screenshot_format", + "menu.hint_screenshot_dir", + "menu.hint_screenshot_res", + "menu.hint_screenshot_video", + "menu.hint_screenshot_scale", + "menu.hint_screenshot_cover", "menu.hint_osd_preset", "menu.hint_rounded_corners", "menu.hint_scrambled_message", @@ -942,6 +964,27 @@ const char * locale_real_names[] = "menu.hint_fade", "menu.hint_bigwindows", "menu.hint_progressbar_color", + "menu.hint_vfd_brightness_setup", + "menu.hint_vfd_brightness", + "menu.hint_vfd_brightnessstandby", + "menu.hint_vfd_brightnessdeepstandby", + "menu.hint_vfd_brightnessdim", + "menu.hint_vfd_dimtime", + "menu.hint_vfd_defaults", + "menu.hint_vfd_statusline", + "menu.hint_vfd_infoline", + "menu.hint_power_leds", + "menu.hint_leds_tv", + "menu.hint_leds_standby", + "menu.hint_leds_deepstandby", + "menu.hint_leds_record", + "menu.hint_leds_blink", + "menu.hint_hdd_apply", + "menu.hint_hdd_sleep", + "menu.hint_hdd_noise", + "menu.hint_hdd_tools", + "menu.hint_hdd_format", + "menu.hint_hdd_check", "menu.next", "messagebox.back", From a8ec81b53a1a9e9be4758104bc5922cb361af0af Mon Sep 17 00:00:00 2001 From: satbaby Date: Thu, 12 Jul 2012 15:35:37 +0200 Subject: [PATCH 055/317] vfd.cpp: add timer for show servicename time switch --- src/driver/vfd.cpp | 18 +++++++++++++++--- src/driver/vfd.h | 1 + 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/driver/vfd.cpp b/src/driver/vfd.cpp index e94d90fed..670f0a66f 100644 --- a/src/driver/vfd.cpp +++ b/src/driver/vfd.cpp @@ -68,6 +68,7 @@ CVFD::CVFD() text[0] = 0; clearClock = 0; mode = MODE_TVRADIO; + switch_name_time_cnt = 0; } CVFD::~CVFD() @@ -88,7 +89,7 @@ CVFD* CVFD::getInstance() void CVFD::count_down() { if (timeout_cnt > 0) { timeout_cnt--; - if (timeout_cnt == 0) { + if (timeout_cnt == 0 ) { if (g_settings.lcd_setting_dim_brightness > -1) { // save lcd brightness, setBrightness() changes global setting int b = g_settings.lcd_setting[SNeutrinoSettings::LCD_BRIGHTNESS]; @@ -99,6 +100,14 @@ void CVFD::count_down() { } } } + if (g_settings.lcd_info_line && switch_name_time_cnt > 0) { + switch_name_time_cnt--; + if (switch_name_time_cnt == 0) { + if (g_settings.lcd_setting_dim_brightness > -1) { + CVFD::getInstance()->showTime(true); + } + } + } } void CVFD::wake_up() { @@ -110,6 +119,9 @@ void CVFD::wake_up() { } else setPower(1); + if(g_settings.lcd_info_line){ + switch_name_time_cnt = g_settings.timing[SNeutrinoSettings::TIMING_INFOBAR] + 10; + } } void* CVFD::TimeThread(void *) @@ -288,7 +300,7 @@ void CVFD::showTime(bool force) ftime(&tm); t = localtime(&tm.time); - if(force || ((hour != t->tm_hour) || (minute != t->tm_min))) { + if(force || ( switch_name_time_cnt == 0 && ((hour != t->tm_hour) || (minute != t->tm_min))) ) { hour = t->tm_hour; minute = t->tm_min; strftime(timestr, 20, "%H:%M", t); @@ -495,7 +507,7 @@ void CVFD::setMode(const MODES m, const char * const title) showServicename(servicename); showclock = true; if(g_settings.lcd_info_line) - showTime(); /* "showclock = true;" implies that "showTime();" does a "displayUpdate();" */ + switch_name_time_cnt = g_settings.timing[SNeutrinoSettings::TIMING_INFOBAR] + 10; break; case MODE_AUDIO: { diff --git a/src/driver/vfd.h b/src/driver/vfd.h index 4bbe70e60..1519021d3 100644 --- a/src/driver/vfd.h +++ b/src/driver/vfd.h @@ -86,6 +86,7 @@ class CVFD int last_toggle_state_power; bool clearClock; unsigned int timeout_cnt; + unsigned int switch_name_time_cnt; int fd; int brightness; char text[256]; From 81e6854dc05b2ce08e5df6a42df232a4db75897b Mon Sep 17 00:00:00 2001 From: satbaby Date: Thu, 12 Jul 2012 15:36:26 +0200 Subject: [PATCH 056/317] channellist.cpp: fix CVFD with history zap --- src/gui/channellist.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/gui/channellist.cpp b/src/gui/channellist.cpp index 1ea492bb0..76964a117 100644 --- a/src/gui/channellist.cpp +++ b/src/gui/channellist.cpp @@ -845,10 +845,6 @@ int CChannelList::show() res = bouquetList->exec(true); printf("CChannelList:: bouquetList->exec res %d\n", res); } -#if 0 - /* FIXME call this somewhere after show */ - CVFD::getInstance()->setMode(CVFD::MODE_TVRADIO); -#endif this->new_mode_active = 0; if(NeutrinoMessages::mode_ts == CNeutrinoApp::getInstance()->getMode()) @@ -1187,6 +1183,7 @@ int CChannelList::numericZap(int key) channelList->adjustToChannelID(orgList->getActiveChannel_ChannelID(), false); this->frameBuffer->paintBackground(); res = channelList->exec(); + CVFD::getInstance()->setMode(CVFD::MODE_TVRADIO); } delete channelList; return res; @@ -1205,6 +1202,7 @@ int CChannelList::numericZap(int key) if (channelList->getSize() != 0) { this->frameBuffer->paintBackground(); res = channelList->exec(); + CVFD::getInstance()->setMode(CVFD::MODE_TVRADIO); } delete channelList; } From d2b948933aeb5e21100bd97dde874e49db665783 Mon Sep 17 00:00:00 2001 From: satbaby Date: Thu, 12 Jul 2012 17:58:32 +0200 Subject: [PATCH 057/317] fix tiny OSD shadow --- src/gui/audioplayer.cpp | 12 ++++++------ src/gui/bedit/bouqueteditor_channels.cpp | 12 ++++++------ src/gui/channellist.cpp | 12 ++++++------ src/gui/widget/menue.cpp | 14 +++++++------- 4 files changed, 25 insertions(+), 25 deletions(-) diff --git a/src/gui/audioplayer.cpp b/src/gui/audioplayer.cpp index bc4042da3..b502eaf4f 100644 --- a/src/gui/audioplayer.cpp +++ b/src/gui/audioplayer.cpp @@ -1892,18 +1892,18 @@ void CAudioPlayerGui::paintItemID3DetailsLine (int pos) m_frameBuffer->paintBoxRel(xpos + ConnectLineBox_Width - 4, ypos2+RADIUS_MID, 4, fh /*m_info_height*/, col1); - m_frameBuffer->paintBoxRel(xpos + ConnectLineBox_Width - 16, ypos1a+1, 4, ypos2a - ypos1a-1, col1); + m_frameBuffer->paintBoxRel(xpos + ConnectLineBox_Width - 16, ypos1a, 3, ypos2a - ypos1a+3, col1); - m_frameBuffer->paintBoxRel(xpos + ConnectLineBox_Width - 15, ypos1a, 11, 4, col1); - m_frameBuffer->paintBoxRel(xpos + ConnectLineBox_Width - 15, ypos2a, 11, 4, col1); + m_frameBuffer->paintBoxRel(xpos + ConnectLineBox_Width - 16, ypos1a, 12, 3, col1); + m_frameBuffer->paintBoxRel(xpos + ConnectLineBox_Width - 16, ypos2a, 12, 3, col1); // 2. col small line m_frameBuffer->paintBoxRel(xpos + ConnectLineBox_Width - 4, ypos2+RADIUS_MID, 1, fh /*m_info_height*/, col2); - m_frameBuffer->paintBoxRel(xpos + ConnectLineBox_Width - 16, ypos1a+1, 1, ypos2a - ypos1a + 4-1, col2); + m_frameBuffer->paintBoxRel(xpos + ConnectLineBox_Width - 16+3, ypos1a+3, 1, ypos2a - ypos1a-3, col2); - m_frameBuffer->paintBoxRel(xpos + ConnectLineBox_Width - 16, ypos1a, 12, 1, col2); - m_frameBuffer->paintBoxRel(xpos + ConnectLineBox_Width - 12, ypos2a, 8, 1, col2); + m_frameBuffer->paintBoxRel(xpos + ConnectLineBox_Width - 16+3, ypos1a+3, 12-3, 1, col2); + m_frameBuffer->paintBoxRel(xpos + ConnectLineBox_Width - 16, ypos2a+3, 12, 1, col2); // -- small Frame around infobox m_frameBuffer->paintBoxFrame(m_x, ypos2, m_width, m_info_height, 2, col1, RADIUS_MID); diff --git a/src/gui/bedit/bouqueteditor_channels.cpp b/src/gui/bedit/bouqueteditor_channels.cpp index 83331c92a..2f544f4b1 100644 --- a/src/gui/bedit/bouqueteditor_channels.cpp +++ b/src/gui/bedit/bouqueteditor_channels.cpp @@ -222,14 +222,14 @@ void CBEChannelWidget::paintItem2DetailsLine (int pos, int /*ch_index*/) frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-4, ypos2+7, 4,info_height-14, col1); frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-4, ypos2+7, 1,info_height-14, col2); - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a+1, 4,ypos2a-ypos1a-1, col1); - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a+1, 1,ypos2a-ypos1a+4-1, col2); + frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a, 3,ypos2a-ypos1a+3, col1); + frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16+3, ypos1a+3, 1,ypos2a-ypos1a-3, col2); - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-15, ypos1a, 11,4, col1); - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a, 12,1, col2); + frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a, 12,3, col1); + frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16+3, ypos1a+3, 12-3,1, col2); - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-15, ypos2a, 11,4, col1); - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-12, ypos2a, 8,1, col2); + frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos2a, 12,3, col1); + frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos2a+3, 12,1, col2); frameBuffer->paintBoxFrame(x, ypos2, width, info_height, 2, col1, RADIUS_LARGE); } diff --git a/src/gui/channellist.cpp b/src/gui/channellist.cpp index 76964a117..bdacdf5b6 100644 --- a/src/gui/channellist.cpp +++ b/src/gui/channellist.cpp @@ -1579,16 +1579,16 @@ void CChannelList::paintItem2DetailsLine (int pos, int /*ch_index*/) frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-4, ypos2+7, 1,info_height-14, col2); /* vertical connect line */ - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a+1, 4,ypos2a-ypos1a-1, col1); - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a+1, 1,ypos2a-ypos1a+4-1, col2); + frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a, 3,ypos2a-ypos1a+3, col1); + frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16+3, ypos1a+3, 1,ypos2a-ypos1a-3, col2); /* vertical item line */ - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-15, ypos1a, 11,4, col1); - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a, 12,1, col2); + frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a, 12,3, col1); + frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16+3, ypos1a+3, 12-3,1, col2); /* vertical info line */ - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-15, ypos2a, 11,4, col1); - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-12, ypos2a, 8,1, col2); + frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos2a, 12,3, col1); + frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos2a+3, 12,1, col2); // frameBuffer->paintBoxRel(x, ypos2, width, info_height, col1, RADIUS_LARGE); frameBuffer->paintBoxFrame(x, ypos2, width, info_height, 2, col1, RADIUS_LARGE); diff --git a/src/gui/widget/menue.cpp b/src/gui/widget/menue.cpp index f4553c99e..b259136d5 100644 --- a/src/gui/widget/menue.cpp +++ b/src/gui/widget/menue.cpp @@ -1097,7 +1097,7 @@ printf("paintHint: icon %s text %s\n", item->hintIcon.c_str(), g_Locale->getText int ypos2a = ypos2 + (hint_height/2)-2; int markh = hint_height > rad*2 ? hint_height - rad*2 : hint_height; - int imarkh = iheight/2; + int imarkh = iheight/2+1; int imarkoff = iheight/4; /* horizontal item mark - */ @@ -1109,16 +1109,16 @@ printf("paintHint: icon %s text %s\n", item->hintIcon.c_str(), g_Locale->getText frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-4, ypos2+rad, 1 , markh, col2); /* vertical connect line [ */ - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a+1, 4, ypos2a-ypos1a-1, col1); - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a+1, 1, ypos2a-ypos1a+4-1, col2); + frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a, 3, ypos2a-ypos1a+3, col1); + frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16+3, ypos1a+3, 1, ypos2a-ypos1a-3, col2); /* vertical item line | */ - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-15, ypos1a, 11, 4, col1); - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a, 12, 1, col2); + frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a, 12, 3, col1); + frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16+3, ypos1a+3, 12-3, 1, col2); /* vertical info line | */ - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-15, ypos2a, 11, 4, col1); - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-12, ypos2a, 8, 1, col2); + frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos2a, 12, 3, col1); + frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos2a+3, 12, 1, col2); /* box shadow */ frameBuffer->paintBoxRel(x+SHADOW_OFFSET, ypos2+SHADOW_OFFSET, width + sb_width, hint_height, COL_MENUCONTENTDARK_PLUS_0, rad); From df8dce2078355dec3760d9dd0aef141e09f22353 Mon Sep 17 00:00:00 2001 From: satbaby Date: Thu, 12 Jul 2012 19:07:02 +0200 Subject: [PATCH 058/317] network_service.cpp: acitve menu only if binary available (thx snafed) --- src/gui/network_service.cpp | 40 ++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/src/gui/network_service.cpp b/src/gui/network_service.cpp index d618528f3..ebd8a138f 100644 --- a/src/gui/network_service.cpp +++ b/src/gui/network_service.cpp @@ -142,10 +142,48 @@ int CNetworkServiceSetup::showNetworkServiceSetup() CNetworkService * items[SERVICE_COUNT]; + //telnetd used inetd + bool useinetd = false; + char line[256]; + + FILE* fd = fopen("/etc/inetd.conf", "r"); + if(fd) + { + while(!feof(fd)) + { + fgets(line, 255, fd); + { + if (strstr(line, "telnetd") != NULL) + { + useinetd = true; + break; + } + } + } + fclose(fd); + } + + //set active when found + int active; + for(unsigned i = 0; i < SERVICE_COUNT; i++) { items[i] = new CNetworkService(services[i].cmd, services[i].options); services[i].enabled = items[i]->Enabled(); - CMenuOptionChooser * mc = new CMenuOptionChooser(services[i].name.c_str(), &services[i].enabled, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, items[i], CRCInput::convertDigitToKey(shortcut++), ""); + + std::string execute1 = "/bin/" + services[i].cmd; + std::string execute2 = "/sbin/" + services[i].cmd; + + active = false; + if ( !(access(execute1.c_str(), F_OK)) || !(access(execute2.c_str(), F_OK)) ) + active = true; + + if ( (services[i].name == "Telnet") && useinetd) + active = false; + + CMenuOptionChooser * mc = new CMenuOptionChooser(services[i].name.c_str(), &services[i].enabled, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, active, items[i], CRCInput::convertDigitToKey(shortcut), ""); + if (active) + shortcut++; + mc->setHint(services[i].icon, services[i].hint); setup->addItem(mc); } From 0f68433d5ac33127ee1dd5d92686d1f87f5f8a44 Mon Sep 17 00:00:00 2001 From: satbaby Date: Thu, 12 Jul 2012 19:59:19 +0200 Subject: [PATCH 059/317] satellites.xml: update Hot Bird 6/8/9 (13.0E) --- data/satellites.xml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/data/satellites.xml b/data/satellites.xml index da0d9bc18..e7516d0ba 100755 --- a/data/satellites.xml +++ b/data/satellites.xml @@ -1368,19 +1368,19 @@ - + - + - + - + @@ -1425,7 +1425,7 @@ - + @@ -1433,13 +1433,13 @@ - + - + @@ -1452,7 +1452,7 @@ - + @@ -1465,7 +1465,7 @@ - + From 09c87468389e85f961b0befcd895559c2cf1600a Mon Sep 17 00:00:00 2001 From: micha-bbg Date: Thu, 12 Jul 2012 22:02:04 +0200 Subject: [PATCH 060/317] * Menu hints: Update deutsch.locale - German Translations Part 2 (THX Tomworld) --- data/locale/deutsch.locale | 119 ++++++------------------------------- 1 file changed, 19 insertions(+), 100 deletions(-) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index 2a995d183..9942d5109 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -701,64 +701,37 @@ menu.hint_audio_srs_algo Mögliche Betriebsarten, einfach oder normal menu.hint_audio_srs_nmgr Schaltet diese Option an oder aus menu.hint_audio_srs_volume Hier kann die Referenzlautstärke festgelegt werden menu.hint_audio_volstep Beim Betätigen der Lautstärketasten wird die Lautstärke\nimmer schrittweise nach diesen Wert geändert -menu.hint_auto_lang Auto-switch audio to preferred language -menu.hint_auto_subs Auto-start subtitles for preferred language menu.hint_back Zurück zum vorherigen Menü\nDrücken der Menütaste schließt alle Menüs menu.hint_backup Sichern der Konfigurationen und Kanäle in ein Verzeichnis menu.hint_bedit Bearbeiten der Favoriten und der Bouquets -menu.hint_bigwindows Always show big epg detail window\nelse 'info' button switch big font + window size menu.hint_cache_txt Startet das Zwischenspeichern des Teletext nach\nKanalwechsel menu.hint_cec_mode CEC-Mode menu.hint_cec_standby CEC-Standby menu.hint_cec_view_on CEC view ON -menu.hint_channellist_fonts Change channel list font sizes -menu.hint_channellist_setup Configure channe list GUI options menu.hint_ci Conditional-Access-Menü zum Einrichten\nIhres CI-CAM oder eingebetteten Conax-Karte -menu.hint_colors Configure GUI colors -menu.hint_content_back Change GUI window background color -menu.hint_content_textcolor Change GUI window text color -menu.hint_contrast_fonts Make fonts contrast (do not blend with background) menu.hint_dboxinfo Informationen über CPU und Speicher der Box menu.hint_delete_channels Löschen aller Kanale menu.hint_epg_cache Maximum in Tagen zukünftiger EPG-Daten menu.hint_epg_dir Speicherverzeichnis auf der Harddsk oder einen USB-Stick\nzum speichern von EPG-Daten menu.hint_epg_extendedcache Maximum in Stunden, die die EPG-Daten zwischengespeichert\nwerden bzw. der Event-Beschreibungen -menu.hint_epg_fonts Change EPG details window font sizes menu.hint_epg_max_events Maximum an Events im Zwischenspeicher. Nach Erreichen der\nGrenze werden EPG-Daten für zukünftige gelöscht menu.hint_epg_old_events EPG im Speicher behalten in Stunden,\nauch wenn es veraltert ist menu.hint_epg_save Speichert die EPG-Daten auf einer Harddisk oder USB-Stick\nund läd es nach einen Neustart -menu.hint_event_textcolor Change event color for colored-event options\nin channel list and infobar -menu.hint_eventlist_fonts Change event list font sizes menu.hint_extended Energiespar-, EPG-Speicher- / Lade-Optionen\nHDMI-CEC, Startkanal, Zap-Optionen menu.hint_factory Zurücksetzen der Box auf Werkseinstellungen\nBox wird nach einem Reset neu gestartet -menu.hint_fade Fade GUI windows menu.hint_fan_speed Steuerung der Lüftergeschwindigkeit für den CPU menu.hint_filebrowser_denydirectoryleave Startverzeichnes auf absolut setzen menu.hint_filebrowser_showrights Anzeige der Dateirechte der Deiteinen im Filebrowser menu.hint_fileplay Spielen Sie verschiedene Video-Dateien menu.hint_filesystem_is_utf8 Kodierung für Unicode-Zeichen im Filebrowser -menu.hint_font_gui Select font file to use for GUI -menu.hint_font_scaling Set global vertical and horizontal\nGUI font scaling -menu.hint_font_ttx Select font file to use for teletext -menu.hint_fonts Configure GUI fonts and font sizes -menu.hint_gamelist_fonts Change games and scripts list font sizes menu.hint_games Zeige Liste der installierten Spiele menu.hint_hdd Formatierung / Festplatte überprüfen -menu.hint_head_back Change GUI title background color -menu.hint_head_textcolor Change GUI window title text color menu.hint_imageinfo Informationen über die installierte Software menu.hint_inact_timer Ausschalten der Box nach Inaktivität in Minuten,\ndie Box geht automatisch in den Deep-Standby -menu.hint_inactive_back Change inactive item background color -menu.hint_inactive_textcolor Change inactive item text color menu.hint_inet_radio Internetradio menu.hint_info Informationen über Image, CPU und Speicher,\nStream-Information -menu.hint_infobar_back Change infobar background color -menu.hint_infobar_fonts Change infobar font sizes -menu.hint_infobar_setup Configure infobar options -menu.hint_infobar_textcolor Change infobar text color menu.hint_keep_numbers Mit der Aktivierung werden den Sendern feste/dauerhafte\nKanalnummern zugewiesen menu.hint_keys Fernbedienungs Wiederholrate\nTastenbelegungen bearbeiten -menu.hint_lang_pref Configure preferred audio, EPG\nand subtitle languages menu.hint_language OSD Sprache, Zeitzone\nbevorzugte Audio und Untertitel Sprachen menu.hint_last_radio In dieser Menüzeile muss der gewünschte\nStart-Radio-Sender eingestellt werden menu.hint_last_tv In dieser Menüzeile muss der gewünschte\nStart-TV-Sender eingestellt werden @@ -770,9 +743,6 @@ menu.hint_make_removedlist Nach einer Kanalsuche wird ein Bouquet namens\n"gelö menu.hint_manage_settings sichern, wiederherstellen, zurück auf die \nStandardwerte, Auslieferungszustand herstellen menu.hint_mb Ihre Aufnahmen menu.hint_media Abspielen von Filmen, Audiodateien\nbetrachten Sie Bilder -menu.hint_menu_fonts Change menu font sizes -menu.hint_menu_hints Show this hints.i Also you can switch\nit any time using 'help' button -menu.hint_menu_pos Select menu position menu.hint_misc_cec HDMI-CEC Optionen menu.hint_misc_channellist Erweiterte Einstellungen für die Kanallisten\nZappingeinstellungen menu.hint_misc_energy Energie- und Softstandby-Optionen, verzögertes Ausschalten\nsetzen bzw. ändern des Inaktivitätstimers @@ -781,92 +751,46 @@ menu.hint_misc_filebrowser Dateisystem, Dateirechte anzeigen im Dateibrowser\nSt menu.hint_misc_general Standby-, Teletext-, Rotor-Einstellungen\nPluginverzeichnis auf der HDD menu.hint_misc_zapit Behandlung der Start-TV/Start-Radio Kanäle menu.hint_movie Wiedergabe von Filmen -menu.hint_net_broadcast Enter broadcast address\nif unsure, use IP address with last .255 -menu.hint_net_dhcp Use DHCP server to auto-configure -menu.hint_net_djmount mount uPnp devices as filesystem\nunder /media/00upnp -menu.hint_net_ftpd Enable file transfer using FTP -menu.hint_net_gateway Enter gateway/router IP address -menu.hint_net_hostname Change your box hostname -menu.hint_net_if Select interface to config -menu.hint_net_ipaddress Enter your box IP address -menu.hint_net_mount Configure, mount and un-mount network shares\nNFS and CIFS supported -menu.hint_net_nameserver Enter name server (DNS) IP address -menu.hint_net_netmask Enter network mask\nif unsure, use 255.255.255.0 -menu.hint_net_nfs_mount Configure and mount network shares -menu.hint_net_nfs_umount Un-mount mounted shares -menu.hint_net_ntp Configure time sync -menu.hint_net_ntpenable Enable time sync using NTP protocol\nIf NTP sync not successfull, DVB will be used -menu.hint_net_ntprefresh Time sync interval -menu.hint_net_ntpserver Enter NTP server name -menu.hint_net_pass Enter passkey (WPA-PSK) -menu.hint_net_proxy If you use proxy to access internet\nconfigure it here for online software update -menu.hint_net_proxypass Proxy user password\nif authorization required -menu.hint_net_proxyserver Proxy server name -menu.hint_net_proxyuser Proxy user name\nif authorization required -menu.hint_net_services Configure network services:\nTelnet, ftp, uPnp -menu.hint_net_setupnow Apply current settings -menu.hint_net_setuponstartup Start network at boot time -menu.hint_net_show Show current network settings -menu.hint_net_ssid Enter SSID of wireless network\nyou want to connect to -menu.hint_net_telnet Enable telnet login to your box -menu.hint_net_test Test network connection: ping gateway,\n name server and external IP -menu.hint_net_ushare Share connected HDD over uPnp +menu.hint_net_broadcast Hier können Sie die Broadcast-Adresse ändern,\nwenn Sie unsicher sind, verwenden Sie zuletzt .255 +menu.hint_net_dhcp Verwenden Sie einen DHCP-Server für die automatische\nKonfiguration können Sie es hier einstellen +menu.hint_net_gateway Hier können Sie die Gateway-Adresse des Routers eingeben +menu.hint_net_hostname Hier kann man den Hostnamen der Box ändern +menu.hint_net_ipaddress Hier können Sie die IP-Adresse für die Box eingeben +menu.hint_net_mount Hier werden Netzwerkfreigaben bearbeitet\nNFS und CIFS werden supported +menu.hint_net_nameserver Hier können Sie die IP-Adresse des Routers\nbzw. eines DNS-Server eingeben +menu.hint_net_netmask Hier können Sie eine Netzwerkmaske eingeben\nStandart ist 255.255.255.0 +menu.hint_net_ntp Hier kann man den Zeitserver ändern,\ndies dient der Zeitsynchronisation +menu.hint_net_proxy Wenn Sie Proxy für den Zugriff auf das Internet benutzen\nkonfigurieren Sie es hier für den Online-Software-Update +menu.hint_net_services Konfigurieren Sie Netzwerkservices:\nTelnet, FTP, UPnP +menu.hint_net_setupnow Hier werden die aktuellen Einstellungen zugewiesen\nbzw. geänderte übernommen +menu.hint_net_setuponstartup Startet das Netzwerk automatisch beim Booten +menu.hint_net_show Zeigen Ihnen die aktuellen Netzwerkeinstellungen +menu.hint_net_test Testet die Netzwerkverbindung:\nPing auf Gateway, Name-Server und externe IP-Adressen menu.hint_network IP-Adresse, Gateway, DNS-, Time-Sync\nNetzwerk-Freigaben und Dienste menu.hint_new_zap_mode Aktiviert Quickzap in der Kanalliste. Nach Betätigen der Mute-\nTaste wird mit den Hoch/Runter Tasten der Sender umgeschaltet menu.hint_osd Farben, Schriftarten, Anzeigegröße\nGUI Ansichtsoptionen -menu.hint_osd_language Select OSD language -menu.hint_osd_preset Pre-configured screen margins for CRT and LCD TV -menu.hint_parentallock_changepin Change PIN code -menu.hint_parentallock_lockage Select age allowed to watch -menu.hint_parentallock_prompt Configure when Neutrino-HD will ask you\nfor PIN code +menu.hint_parentallock_changepin Hier wird der 4 stellige PIN Code eingeben,\nder dann ggf. abgefragt wird +menu.hint_parentallock_lockage Hier wird festgelegt, bei welcher Altersklasse\ndie PIN Abfrage kommt +menu.hint_parentallock_prompt Hier wird definiert, wann eine PIN Eingabe erfolgen soll menu.hint_personalize aktivieren, deaktivieren, schützen von Menüpunkten\nkonfigurieren der Farb-Tasten in den Benutzermenüs menu.hint_picview Bilder anzeigen menu.hint_plugins_hdd_dir Auswahl des Verzeichnisses zum laden von Plugins\n auf der HDD -menu.hint_pref_lang Select preferred audio and EPG language\nselect 'none' to disable -menu.hint_pref_subs Select preferred subtitle language\nselect 'none' to disable menu.hint_progressbar_color Show colored progress bars menu.hint_protection Schützen Sie Inhalte per PIN-Code\nStandard-PIN ist 0000 menu.hint_radiomode schaltet zum Radio-Modus menu.hint_reboot Rebootet die Box\nohne Bestätigung -menu.hint_record_apid_ac3 Record AC3 audio pids -menu.hint_record_apid_alt Record alternative non-AC3 audio pids -menu.hint_record_apid_std Record first audio pid -menu.hint_record_apids Configure audio pids to record -menu.hint_record_apply Apply record options -menu.hint_record_chandir Create directory with name of channel\nto store recording -menu.hint_record_dir Select directory to store recordings -menu.hint_record_end Stop direct record after max. time\nor after current event end time -menu.hint_record_tdir Select directory to save timeshift recordings\nin temporary timeshift mode -menu.hint_record_time Record time before stop when\nusing direct record with record button -menu.hint_record_timeafter Stop record after event end\nin minutes -menu.hint_record_timebefore Start record before event start\nin minutes -menu.hint_record_timer Configure record by timer options -menu.hint_record_timeshift Configure timeshift options -menu.hint_record_timeshift_auto Auto start timeshift after channel switch, in seconds -menu.hint_record_timeshift_delete Delete timeshift files after timeshift stop -menu.hint_record_timeshift_pause Start timeshift playback in paused mode -menu.hint_record_timeshift_temp If off, timeshift started as\nany direct record -menu.hint_record_zap Switch to channel to be recorded\nat record announce -menu.hint_record_zap_pre_time For ZapTo timers, switch channel\nbefore event start, in minutes menu.hint_recording Aufnahme- und Timeshift-Optionen\nTimer Optionen, Audio-PIDs Optionen menu.hint_reload_channels Kanallisten neu laden\nKanallisten aktualisieren menu.hint_reload_plugins Plugins neu laden\nPlugin-Liste aktualisieren menu.hint_reset Zurücksetzen von Neutrino-HD-Einstellungen auf Standardwerte\nTuner Einstellungen und Kanäle bleiben erhalten menu.hint_restore Wiederherstellen von Dateien aus ausgewählten Verzeichnis menu.hint_rotor_swap Tauschen der Rotordrehrichtung Ost/West\nim Motorsetup -menu.hint_rounded_corners Draw round or rectangular windows corners menu.hint_save_settings Speichern Sie alle Einstellungen im Image menu.hint_saveas Speichern der Neutrino-HD-Einstellungen in eine Datei -menu.hint_scrambled_message Show scrambled message, when channel cannot be decoded -menu.hint_screen_setup Configure screen margins -menu.hint_screenshot_setup Configure screenshots options menu.hint_scripts Skripts ausführen -menu.hint_selected_back Change selected item background color -menu.hint_selected_text Change selected item text color menu.hint_service Kanalsuche, Senderscan,\nBouquet-Verwaltung, Software-Aktualisierung menu.hint_service_scan Tuner-Einstellungen, Service-Scan menu.hint_settings konfigurieren von Neutrino-HD\nNetzwerk, Video, Audio, OSD und mehr -menu.hint_show_mute_icon Show mute icon, when volume set to 0 menu.hint_shutdown Setzen Sie Ihre Box in den Standby-Modus\noder schaltet die Box komplett aus menu.hint_shutdown_count Die Zeit zum Deep-Standby,\nwenn die Box im Soft-Standby-Mode ist menu.hint_shutdown_rcdelay Aktiviert den Deep-Standby, wenn der Powerknopf\nlänger als 1 Sekunde betätigt wird @@ -875,12 +799,8 @@ menu.hint_sleeptimer Zeitschaltuhr auf Ihrer Box aktivieren\ndie Box geht dann i menu.hint_soft_restart Neustarten von Neutrino-HD ohne zu Rebooten menu.hint_start_tostandby Aktiviert den Standby-Modus nach dem Booten menu.hint_streaminfo aktuelle Sender-Informationen: PIDs, SNR-Verhältnis\nBitrate grafisch -menu.hint_subchannel_pos Select subchannels menu position menu.hint_sw_update Neutrino-HD auf Software-Update überprüfen\nImage sichern und wiederherstellen -menu.hint_theme Select Select pre-defined color theme\nSave or load theme from files -menu.hint_timeouts Configure time to hide GUI windows\nin seconds menu.hint_timers Hinzufügen / Entfernen / Bearbeiten geplanter\nAufnahme, Meldungen etc. -menu.hint_timezone Select your timezone menu.hint_tvmode Schaltet zum TV-Modus menu.hint_tvradio_switch Schaltet zwischen TV- und Radio-Modus um menu.hint_vfd Frontpanel LED's, VFD Optionen @@ -893,7 +813,6 @@ menu.hint_video_format Diese Option aktiviert das "Bildschirmformat"\nauf das Fo menu.hint_video_mode Definiert in welchen Videoformat das Bild über den\nHDMI-Ausgang ausgegeben wird menu.hint_video_modes Definiert welche Videosysteme mit der VF-Taste\nder Fernbedienung ausgewählt werden können menu.hint_video_scart_mode Wählen Sie den Analogausgang Modus\nfür den SCART Ausgang -menu.hint_volume_pos Select volume indicator position menu.hint_zap_cycle Dadurch wird nur innerhalb des aktiven Bouquets gezappt menu.next Weiter (Menü zum Beenden) messagebox.back Zurück @@ -1626,7 +1545,7 @@ videomenu.videoformat_169 16:9 videomenu.videoformat_43 4:3 videomenu.videomode Videosystem wizard.welcome_head Willkommen zur Ersteinrichtung Ihres Receivers! -wizard.welcome_text Wir gratulieren Ihnen zum Kauf Ihrer Coolstream. In den nun folgenden\nSchritten begleiten wir Sie durch die Erstinstallation des Gerätes.\nWir wünschen Ihnen viel Freude mit dem wohl einzigartigsten Receiver!\nBeachten Sie: Ihre Coolstream Set-Top-Box lässt sich bequem per Webinterface\nsteuern, um zum Beispiel die Timer-Verwaltung zu nutzen oder Live-TV im Web-Browser zu schauen.\nZugriff erhalten Sie mit dem Benutzernamen: root und dem Passwort: coolstream\nAchten Sie darauf, dass Ihre Gerät nicht von aussen zugänglich ist, da sonst ein Zugriff über das Internet nicht ausgeschlossen werden kann!\nNächster Schritt? +wizard.welcome_text Wir gratulieren Ihnen zum Kauf Ihrer Coolstream. In den nun folgenden\nSchritten begleiten wir Sie durch die Erstinstallation des Gerätes.\nWir wünschen Ihnen viel Freude mit dem wohl einzigartigsten Receiver!\nBeachten Sie: Ihre Coolstream Set-Top-Box lässt sich bequem per Webinterface\nsteuern, um zum Beispiel die Timer-Verwaltung zu nutzen oder Live-TV im Web-Browser zu schauen.\nZugriff erhalten Sie mit dem Benutzernamen: root und dem Passwort: coolstream\nAchten Sie darauf, dass Ihre Gerät nicht von aussen zugänglich ist,\nda sonst ein Zugriff über das Internet nicht ausgeschlossen werden kann!\nNächster Schritt? word.from ab zapit.scantype Service-Auswahl zapit.scantype.all Alle Services From 74ff8a1fb0724b9e0fb365a15233bb6476355667 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Fri, 13 Jul 2012 11:44:02 +0400 Subject: [PATCH 061/317] locals: add hints for key setup menu --- data/locale/english.locale | 47 ++++++++++++++++++++++++++++++++++++++ src/system/locals.h | 47 ++++++++++++++++++++++++++++++++++++++ src/system/locals_intern.h | 47 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 141 insertions(+) diff --git a/data/locale/english.locale b/data/locale/english.locale index 41f40afcd..5287330f5 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -938,6 +938,53 @@ menu.hint_video_scart_mode Select analog output mode for SCART connectors menu.hint_video Video output, resolution, format\nAspect ratio, fast mode switch options menu.hint_volume_pos Select volume indicator position menu.hint_zap_cycle When swithing channels, stay in current bouquet + +menu.hint_key_binding Re-define keys used for common operations +menu.hint_key_load Load keybindings from file +menu.hint_key_save Save keybindings to file +menu.hint_key_hardware Change remote control type +menu.hint_key_repeatblock Delay after button press and before\nfirst key repeat +menu.hint_key_repeatblockgeneric Delay between key repeats\nwhile button pressed +menu.hint_key_modechange Change TV/Radio mode and standby keys +menu.hint_key_channellist Configure keybingdings for channel list +menu.hint_key_quickzap Configure keybingdings for quick\nchannel switch +menu.hint_key_movieplayer Configure keybingdings for movie player +menu.hint_key_left_exit Allow return to previous menu with 'left' key +menu.hint_key_audio On: 'audio' button start show audio-play menu\nOff: 'audio' button show Audio selection +menu.hint_key_right Select 'right' function in live TV/Radio mode +menu.hint_key_tvradiomode Assign button to switch TV <> Radio mode +menu.hint_key_poweroff Assign button to switch power state\n (standby/deepstandby <-> running) +menu.hint_key_pageup Assign button to show previous items page +menu.hint_key_pagedown Assign button to show next items page +menu.hint_key_list_start Assign button to go to list start +menu.hint_key_list_end Assign button to go do list end +menu.hint_key_cancel Assign button to close GUI window +menu.hint_key_sort Assign button to change channel list sort order +menu.hint_key_addrecord Assign button to add record timer\nfrom event list +menu.hint_key_addremind Assign button to add zap timer\nfrom event list +menu.hint_key_bouquetup Assign button to switch channel list\nto next bouquet +menu.hint_key_bouquetdown Assign button to switch channel list\nto previous bouquet +menu.hint_key_transponder Assign button to show channel list\nfor current transponder +menu.hint_key_channel_sms If enabled, numeric buttons in channel list\nused to search channel in SMS style +menu.hint_key_channelup Assign button for fast switch to next\nchannel in channel list +menu.hint_key_channeldown Assign button for fast switch to previous\nchannel in channel list +menu.hint_key_subchannelup Assign button for fast switch\n to next subchannel +menu.hint_key_subchanneldown Assign button for fast switch\n to previous subchannel +menu.hint_key_history Assign button to show channel\nchannel switch history +menu.hint_key_lastchannel Assign button for fast zap to\nprevious channel in history +menu.hint_key_mprewind Assign button to rewind record playback +menu.hint_key_mpforward Assign button to fast forward record playback +menu.hint_key_mppause Assign button to pause record/file playback +menu.hint_key_mpstop Assign button to stop record/file playback +menu.hint_key_mpplay Assign button to resume record/file playback +menu.hint_key_mpaudio Assign button to show audio selection\nin record/file playback mode +menu.hint_key_mptime Assign button to show play time\nleft time +menu.hint_key_mpbookmark Assign button to create bookmark\nwhile playing record +menu.hint_key_mptimeshift Assign button to start timeshift +menu.hint_key_plugin Assign button to start selected plugin\nwhile playing record/file +menu.hint_key_unlock Assign button to unlock box if locked\nTo unlock press 'red', then in next 5 seconds this key +menu.hint_key_screenshot Assign button to save GUI and/or TV screenshot + menu.next Next (press Menu to quit) messagebox.back Back messagebox.cancel Cancel diff --git a/src/system/locals.h b/src/system/locals.h index 13cbedf63..eb73aed41 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -965,6 +965,53 @@ typedef enum LOCALE_MENU_HINT_VIDEO_SCART_MODE, LOCALE_MENU_HINT_VOLUME_POS, LOCALE_MENU_HINT_ZAP_CYCLE, + + LOCALE_MENU_HINT_KEY_BINDING, + LOCALE_MENU_HINT_KEY_LOAD, + LOCALE_MENU_HINT_KEY_SAVE, + LOCALE_MENU_HINT_KEY_HARDWARE, + LOCALE_MENU_HINT_KEY_REPEATBLOCK, + LOCALE_MENU_HINT_KEY_REPEATBLOCKGENERIC, + LOCALE_MENU_HINT_KEY_MODECHANGE, + LOCALE_MENU_HINT_KEY_CHANNELLIST, + LOCALE_MENU_HINT_KEY_QUICKZAP, + LOCALE_MENU_HINT_KEY_MOVIEPLAYER, + LOCALE_MENU_HINT_KEY_LEFT_EXIT, + LOCALE_MENU_HINT_KEY_AUDIO, + LOCALE_MENU_HINT_KEY_RIGHT, + LOCALE_MENU_HINT_KEY_TVRADIOMODE, + LOCALE_MENU_HINT_KEY_POWEROFF, + LOCALE_MENU_HINT_KEY_PAGEUP, + LOCALE_MENU_HINT_KEY_PAGEDOWN, + LOCALE_MENU_HINT_KEY_LIST_START, + LOCALE_MENU_HINT_KEY_LIST_END, + LOCALE_MENU_HINT_KEY_CANCEL, + LOCALE_MENU_HINT_KEY_SORT, + LOCALE_MENU_HINT_KEY_ADDRECORD, + LOCALE_MENU_HINT_KEY_ADDREMIND, + LOCALE_MENU_HINT_KEY_BOUQUETUP, + LOCALE_MENU_HINT_KEY_BOUQUETDOWN, + LOCALE_MENU_HINT_KEY_TRANSPONDER, + LOCALE_MENU_HINT_KEY_CHANNEL_SMS, + LOCALE_MENU_HINT_KEY_CHANNELUP, + LOCALE_MENU_HINT_KEY_CHANNELDOWN, + LOCALE_MENU_HINT_KEY_SUBCHANNELUP, + LOCALE_MENU_HINT_KEY_SUBCHANNELDOWN, + LOCALE_MENU_HINT_KEY_HISTORY, + LOCALE_MENU_HINT_KEY_LASTCHANNEL, + LOCALE_MENU_HINT_KEY_MPREWIND, + LOCALE_MENU_HINT_KEY_MPFORWARD, + LOCALE_MENU_HINT_KEY_MPPAUSE, + LOCALE_MENU_HINT_KEY_MPSTOP, + LOCALE_MENU_HINT_KEY_MPPLAY, + LOCALE_MENU_HINT_KEY_MPAUDIO, + LOCALE_MENU_HINT_KEY_MPTIME, + LOCALE_MENU_HINT_KEY_MPBOOKMARK, + LOCALE_MENU_HINT_KEY_MPTIMESHIFT, + LOCALE_MENU_HINT_KEY_MPPLUGIN, + LOCALE_MENU_HINT_KEY_UNLOCK, + LOCALE_MENU_HINT_KEY_SCREENSHOT, + LOCALE_MENU_NEXT, LOCALE_MESSAGEBOX_BACK, LOCALE_MESSAGEBOX_CANCEL, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index 0e672d225..95630b1bd 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -965,6 +965,53 @@ const char * locale_real_names[] = "menu.hint_video_scart_mode", "menu.hint_volume_pos", "menu.hint_zap_cycle", + + "menu.hint_key_binding", + "menu.hint_key_load", + "menu.hint_key_save", + "menu.hint_key_hardware", + "menu.hint_key_repeatblock", + "menu.hint_key_repeatblockgeneric", + "menu.hint_key_modechange", + "menu.hint_key_channellist", + "menu.hint_key_quickzap", + "menu.hint_key_movieplayer", + "menu.hint_key_left_exit", + "menu.hint_key_audio", + "menu.hint_key_right", + "menu.hint_key_tvradiomode", + "menu.hint_key_poweroff", + "menu.hint_key_pageup", + "menu.hint_key_pagedown", + "menu.hint_key_list_start", + "menu.hint_key_list_end", + "menu.hint_key_cancel", + "menu.hint_key_sort", + "menu.hint_key_addrecord", + "menu.hint_key_addremind", + "menu.hint_key_bouquetup", + "menu.hint_key_bouquetdown", + "menu.hint_key_transponder", + "menu.hint_key_channel_sms", + "menu.hint_key_channelup", + "menu.hint_key_channeldown", + "menu.hint_key_subchannelup", + "menu.hint_key_subchanneldown", + "menu.hint_key_history", + "menu.hint_key_lastchannel", + "menu.hint_key_mprewind", + "menu.hint_key_mpforward", + "menu.hint_key_mppause", + "menu.hint_key_mpstop", + "menu.hint_key_mpplay", + "menu.hint_key_mpaudio", + "menu.hint_key_mptime", + "menu.hint_key_mpbookmark", + "menu.hint_key_mptimeshift", + "menu.hint_key_plugin", + "menu.hint_key_unlock", + "menu.hint_key_screenshot", + "menu.next", "messagebox.back", "messagebox.cancel", From d3c16cdef330500608dae282e25f20a01b535d84 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Fri, 13 Jul 2012 11:44:10 +0400 Subject: [PATCH 062/317] gui/keybind_setup.cpp: add hints --- src/gui/keybind_setup.cpp | 195 +++++++++++++++++++++++++------------- 1 file changed, 130 insertions(+), 65 deletions(-) diff --git a/src/gui/keybind_setup.cpp b/src/gui/keybind_setup.cpp index 21f8dce61..6d95c61df 100644 --- a/src/gui/keybind_setup.cpp +++ b/src/gui/keybind_setup.cpp @@ -86,7 +86,7 @@ int CKeybindSetup::exec(CMenuTarget* parent, const std::string &actionKey) { parent->hide(); } - + if(actionKey == "loadkeys") { CFileBrowser fileBrowser; CFileFilter fileFilter; @@ -148,43 +148,44 @@ typedef struct key_settings_t { const neutrino_locale_t keydescription; int * keyvalue_p; + const neutrino_locale_t hint; } key_settings_struct_t; const key_settings_struct_t key_settings[CKeybindSetup::KEYBINDS_COUNT] = -{ - {LOCALE_KEYBINDINGMENU_TVRADIOMODE, &g_settings.key_tvradio_mode, }, - {LOCALE_KEYBINDINGMENU_POWEROFF, &g_settings.key_power_off, }, - {LOCALE_KEYBINDINGMENU_PAGEUP, &g_settings.key_channelList_pageup, }, - {LOCALE_KEYBINDINGMENU_PAGEDOWN, &g_settings.key_channelList_pagedown, }, - {LOCALE_EXTRA_KEY_LIST_START, &g_settings.key_list_start, }, - {LOCALE_EXTRA_KEY_LIST_END, &g_settings.key_list_end, }, - {LOCALE_KEYBINDINGMENU_CANCEL, &g_settings.key_channelList_cancel, }, - {LOCALE_KEYBINDINGMENU_SORT, &g_settings.key_channelList_sort, }, - {LOCALE_KEYBINDINGMENU_ADDRECORD, &g_settings.key_channelList_addrecord, }, - {LOCALE_KEYBINDINGMENU_ADDREMIND, &g_settings.key_channelList_addremind, }, - {LOCALE_KEYBINDINGMENU_BOUQUETUP, &g_settings.key_bouquet_up, }, - {LOCALE_KEYBINDINGMENU_BOUQUETDOWN, &g_settings.key_bouquet_down, }, - {LOCALE_EXTRA_KEY_CURRENT_TRANSPONDER, &g_settings.key_current_transponder, }, - {LOCALE_KEYBINDINGMENU_CHANNELUP, &g_settings.key_quickzap_up, }, - {LOCALE_KEYBINDINGMENU_CHANNELDOWN, &g_settings.key_quickzap_down, }, - {LOCALE_KEYBINDINGMENU_SUBCHANNELUP, &g_settings.key_subchannel_up, }, - {LOCALE_KEYBINDINGMENU_SUBCHANNELDOWN, &g_settings.key_subchannel_down, }, - {LOCALE_KEYBINDINGMENU_ZAPHISTORY, &g_settings.key_zaphistory, }, - {LOCALE_KEYBINDINGMENU_LASTCHANNEL, &g_settings.key_lastchannel, }, - {LOCALE_MPKEY_REWIND, &g_settings.mpkey_rewind, }, - {LOCALE_MPKEY_FORWARD, &g_settings.mpkey_forward, }, - {LOCALE_MPKEY_PAUSE, &g_settings.mpkey_pause, }, - {LOCALE_MPKEY_STOP, &g_settings.mpkey_stop, }, - {LOCALE_MPKEY_PLAY, &g_settings.mpkey_play, }, - {LOCALE_MPKEY_AUDIO, &g_settings.mpkey_audio, }, - {LOCALE_MPKEY_TIME, &g_settings.mpkey_time, }, - {LOCALE_MPKEY_BOOKMARK, &g_settings.mpkey_bookmark, }, - {LOCALE_EXTRA_KEY_TIMESHIFT, &g_settings.key_timeshift, }, - {LOCALE_MPKEY_PLUGIN, &g_settings.mpkey_plugin, }, +{ + {LOCALE_KEYBINDINGMENU_TVRADIOMODE, &g_settings.key_tvradio_mode, LOCALE_MENU_HINT_KEY_TVRADIOMODE }, + {LOCALE_KEYBINDINGMENU_POWEROFF, &g_settings.key_power_off, LOCALE_MENU_HINT_KEY_POWEROFF }, + {LOCALE_KEYBINDINGMENU_PAGEUP, &g_settings.key_channelList_pageup, LOCALE_MENU_HINT_KEY_PAGEUP }, + {LOCALE_KEYBINDINGMENU_PAGEDOWN, &g_settings.key_channelList_pagedown, LOCALE_MENU_HINT_KEY_PAGEDOWN }, + {LOCALE_EXTRA_KEY_LIST_START, &g_settings.key_list_start, LOCALE_MENU_HINT_KEY_LIST_START }, + {LOCALE_EXTRA_KEY_LIST_END, &g_settings.key_list_end, LOCALE_MENU_HINT_KEY_LIST_END }, + {LOCALE_KEYBINDINGMENU_CANCEL, &g_settings.key_channelList_cancel, LOCALE_MENU_HINT_KEY_CANCEL }, + {LOCALE_KEYBINDINGMENU_SORT, &g_settings.key_channelList_sort, LOCALE_MENU_HINT_KEY_SORT }, + {LOCALE_KEYBINDINGMENU_ADDRECORD, &g_settings.key_channelList_addrecord, LOCALE_MENU_HINT_KEY_ADDRECORD }, + {LOCALE_KEYBINDINGMENU_ADDREMIND, &g_settings.key_channelList_addremind, LOCALE_MENU_HINT_KEY_ADDREMIND }, + {LOCALE_KEYBINDINGMENU_BOUQUETUP, &g_settings.key_bouquet_up, LOCALE_MENU_HINT_KEY_BOUQUETUP }, + {LOCALE_KEYBINDINGMENU_BOUQUETDOWN, &g_settings.key_bouquet_down, LOCALE_MENU_HINT_KEY_BOUQUETDOWN }, + {LOCALE_EXTRA_KEY_CURRENT_TRANSPONDER, &g_settings.key_current_transponder, LOCALE_MENU_HINT_KEY_TRANSPONDER }, + {LOCALE_KEYBINDINGMENU_CHANNELUP, &g_settings.key_quickzap_up, LOCALE_MENU_HINT_KEY_CHANNELUP }, + {LOCALE_KEYBINDINGMENU_CHANNELDOWN, &g_settings.key_quickzap_down, LOCALE_MENU_HINT_KEY_CHANNELDOWN }, + {LOCALE_KEYBINDINGMENU_SUBCHANNELUP, &g_settings.key_subchannel_up, LOCALE_MENU_HINT_KEY_SUBCHANNELUP }, + {LOCALE_KEYBINDINGMENU_SUBCHANNELDOWN, &g_settings.key_subchannel_down, LOCALE_MENU_HINT_KEY_SUBCHANNELDOWN }, + {LOCALE_KEYBINDINGMENU_ZAPHISTORY, &g_settings.key_zaphistory, LOCALE_MENU_HINT_KEY_HISTORY }, + {LOCALE_KEYBINDINGMENU_LASTCHANNEL, &g_settings.key_lastchannel, LOCALE_MENU_HINT_KEY_LASTCHANNEL }, + {LOCALE_MPKEY_REWIND, &g_settings.mpkey_rewind, LOCALE_MENU_HINT_KEY_MPREWIND }, + {LOCALE_MPKEY_FORWARD, &g_settings.mpkey_forward, LOCALE_MENU_HINT_KEY_MPFORWARD }, + {LOCALE_MPKEY_PAUSE, &g_settings.mpkey_pause, LOCALE_MENU_HINT_KEY_MPPAUSE }, + {LOCALE_MPKEY_STOP, &g_settings.mpkey_stop, LOCALE_MENU_HINT_KEY_MPSTOP }, + {LOCALE_MPKEY_PLAY, &g_settings.mpkey_play, LOCALE_MENU_HINT_KEY_MPPLAY }, + {LOCALE_MPKEY_AUDIO, &g_settings.mpkey_audio, LOCALE_MENU_HINT_KEY_MPAUDIO }, + {LOCALE_MPKEY_TIME, &g_settings.mpkey_time, LOCALE_MENU_HINT_KEY_MPTIME }, + {LOCALE_MPKEY_BOOKMARK, &g_settings.mpkey_bookmark, LOCALE_MENU_HINT_KEY_MPBOOKMARK }, + {LOCALE_EXTRA_KEY_TIMESHIFT, &g_settings.key_timeshift, LOCALE_MENU_HINT_KEY_MPTIMESHIFT }, + {LOCALE_MPKEY_PLUGIN, &g_settings.mpkey_plugin, LOCALE_MENU_HINT_KEY_MPPLUGIN }, /*{LOCALE_EXTRA_KEY_PLUGIN, &g_settings.key_plugin, },*/ - {LOCALE_EXTRA_KEY_UNLOCK, &g_settings.key_unlock, }, - {LOCALE_EXTRA_KEY_SCREENSHOT, &g_settings.key_screenshot, } + {LOCALE_EXTRA_KEY_UNLOCK, &g_settings.key_unlock, LOCALE_MENU_HINT_KEY_UNLOCK}, + {LOCALE_EXTRA_KEY_SCREENSHOT, &g_settings.key_screenshot, LOCALE_MENU_HINT_KEY_SCREENSHOT } }; @@ -203,27 +204,45 @@ int CKeybindSetup::showKeySetup() //keysetup menu CMenuWidget* keySettings = new CMenuWidget(LOCALE_MAINSETTINGS_HEAD, NEUTRINO_ICON_KEYBINDING, width, MN_WIDGET_ID_KEYSETUP); keySettings->addIntroItems(LOCALE_MAINSETTINGS_KEYBINDING); - + //keybindings menu CMenuWidget bindSettings(LOCALE_MAINSETTINGS_HEAD, NEUTRINO_ICON_KEYBINDING, width, MN_WIDGET_ID_KEYSETUP_KEYBINDING); - + //keybindings int shortcut = 1; showKeyBindSetup(&bindSettings); - keySettings->addItem(new CMenuForwarder(LOCALE_KEYBINDINGMENU_HEAD, true, NULL, &bindSettings, NULL, CRCInput::convertDigitToKey(shortcut++))); + CMenuForwarder * mf; + + mf = new CMenuForwarder(LOCALE_KEYBINDINGMENU_HEAD, true, NULL, &bindSettings, NULL, CRCInput::convertDigitToKey(shortcut++)); + mf->setHint("", LOCALE_MENU_HINT_KEY_BINDING); + keySettings->addItem(mf); keySettings->addItem(GenericMenuSeparator); - keySettings->addItem(new CMenuForwarder(LOCALE_EXTRA_LOADKEYS, true, NULL, this, "loadkeys", CRCInput::convertDigitToKey(shortcut++))); - keySettings->addItem(new CMenuForwarder(LOCALE_EXTRA_SAVEKEYS, true, NULL, this, "savekeys", CRCInput::convertDigitToKey(shortcut++))); + + mf = new CMenuForwarder(LOCALE_EXTRA_LOADKEYS, true, NULL, this, "loadkeys", CRCInput::convertDigitToKey(shortcut++)); + mf->setHint("", LOCALE_MENU_HINT_KEY_LOAD); + keySettings->addItem(mf); + + mf = new CMenuForwarder(LOCALE_EXTRA_SAVEKEYS, true, NULL, this, "savekeys", CRCInput::convertDigitToKey(shortcut++)); + mf->setHint("", LOCALE_MENU_HINT_KEY_SAVE); + keySettings->addItem(mf); //rc tuning CStringInput keySettings_repeat_genericblocker(LOCALE_KEYBINDINGMENU_REPEATBLOCKGENERIC, g_settings.repeat_genericblocker, 3, LOCALE_REPEATBLOCKER_HINT_1, LOCALE_REPEATBLOCKER_HINT_2, "0123456789 ", this); CStringInput keySettings_repeatBlocker(LOCALE_KEYBINDINGMENU_REPEATBLOCK, g_settings.repeat_blocker, 3, LOCALE_REPEATBLOCKER_HINT_1, LOCALE_REPEATBLOCKER_HINT_2, "0123456789 ", this); keySettings->addItem(new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_KEYBINDINGMENU_RC)); - if (RC_HW_SELECT) - keySettings->addItem(new CMenuOptionChooser(LOCALE_KEYBINDINGMENU_REMOTECONTROL_HARDWARE, &g_settings.remote_control_hardware, KEYBINDINGMENU_REMOTECONTROL_HARDWARE_OPTIONS, KEYBINDINGMENU_REMOTECONTROL_HARDWARE_OPTION_COUNT, true)); - keySettings->addItem(new CMenuForwarder(LOCALE_KEYBINDINGMENU_REPEATBLOCK, true, g_settings.repeat_blocker, &keySettings_repeatBlocker)); - keySettings->addItem(new CMenuForwarder(LOCALE_KEYBINDINGMENU_REPEATBLOCKGENERIC, true, g_settings.repeat_genericblocker, &keySettings_repeat_genericblocker)); + if (RC_HW_SELECT) { + CMenuOptionChooser * mc = new CMenuOptionChooser(LOCALE_KEYBINDINGMENU_REMOTECONTROL_HARDWARE, &g_settings.remote_control_hardware, KEYBINDINGMENU_REMOTECONTROL_HARDWARE_OPTIONS, KEYBINDINGMENU_REMOTECONTROL_HARDWARE_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_KEY_HARDWARE); + keySettings->addItem(mc); + } + mf = new CMenuForwarder(LOCALE_KEYBINDINGMENU_REPEATBLOCK, true, g_settings.repeat_blocker, &keySettings_repeatBlocker); + mf->setHint("", LOCALE_MENU_HINT_KEY_REPEATBLOCK); + keySettings->addItem(mf); + + mf = new CMenuForwarder(LOCALE_KEYBINDINGMENU_REPEATBLOCKGENERIC, true, g_settings.repeat_genericblocker, &keySettings_repeat_genericblocker); + mf->setHint("", LOCALE_MENU_HINT_KEY_REPEATBLOCKGENERIC); + keySettings->addItem(mf); int res = keySettings->exec(NULL, ""); @@ -238,7 +257,7 @@ int CKeybindSetup::showKeySetup() g_settings.remote_control_hardware = org_remote_control_hardware; g_RCInput->CRCInput::set_rc_hw(); } - } + } delete keySettings; return res; @@ -247,48 +266,83 @@ int CKeybindSetup::showKeySetup() void CKeybindSetup::showKeyBindSetup(CMenuWidget *bindSettings) { + CMenuForwarder * mf; + bindSettings->addIntroItems(LOCALE_KEYBINDINGMENU_HEAD); - + for (int i = 0; i < KEYBINDS_COUNT; i++) keychooser[i] = new CKeyChooser(key_settings[i].keyvalue_p, key_settings[i].keydescription/*as head caption*/, NEUTRINO_ICON_SETTINGS); - + //modes CMenuWidget* bindSettings_modes = new CMenuWidget(LOCALE_KEYBINDINGMENU_HEAD, NEUTRINO_ICON_KEYBINDING, width, MN_WIDGET_ID_KEYSETUP_KEYBINDING_MODES); showKeyBindModeSetup(bindSettings_modes); - bindSettings->addItem(new CMenuDForwarder(LOCALE_KEYBINDINGMENU_MODECHANGE, true, NULL, bindSettings_modes, NULL, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED)); + mf = new CMenuDForwarder(LOCALE_KEYBINDINGMENU_MODECHANGE, true, NULL, bindSettings_modes, NULL, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED); + mf->setHint("", LOCALE_MENU_HINT_KEY_MODECHANGE); + bindSettings->addItem(mf); // channellist keybindings CMenuWidget* bindSettings_chlist = new CMenuWidget(LOCALE_KEYBINDINGMENU_HEAD, NEUTRINO_ICON_KEYBINDING, width, MN_WIDGET_ID_KEYSETUP_KEYBINDING_CHANNELLIST); showKeyBindChannellistSetup(bindSettings_chlist); - bindSettings->addItem(new CMenuDForwarder(LOCALE_KEYBINDINGMENU_CHANNELLIST, true, NULL, bindSettings_chlist, NULL, CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN)); + mf = new CMenuDForwarder(LOCALE_KEYBINDINGMENU_CHANNELLIST, true, NULL, bindSettings_chlist, NULL, CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN); + mf->setHint("", LOCALE_MENU_HINT_KEY_CHANNELLIST); + bindSettings->addItem(mf); // Zapping keys quickzap CMenuWidget* bindSettings_qzap = new CMenuWidget(LOCALE_KEYBINDINGMENU_HEAD, NEUTRINO_ICON_KEYBINDING, width, MN_WIDGET_ID_KEYSETUP_KEYBINDING_QUICKZAP); showKeyBindQuickzapSetup(bindSettings_qzap); - bindSettings->addItem(new CMenuDForwarder(LOCALE_KEYBINDINGMENU_QUICKZAP, true, NULL, bindSettings_qzap, NULL, CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW)); + mf = new CMenuDForwarder(LOCALE_KEYBINDINGMENU_QUICKZAP, true, NULL, bindSettings_qzap, NULL, CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW); + mf->setHint("", LOCALE_MENU_HINT_KEY_QUICKZAP); + bindSettings->addItem(mf); //movieplayer CMenuWidget* bindSettings_mplayer = new CMenuWidget(LOCALE_KEYBINDINGMENU_HEAD, NEUTRINO_ICON_KEYBINDING, width, MN_WIDGET_ID_KEYSETUP_KEYBINDING_MOVIEPLAYER); showKeyBindMovieplayerSetup(bindSettings_mplayer); - bindSettings->addItem(new CMenuDForwarder(LOCALE_MAINMENU_MOVIEPLAYER, true, NULL, bindSettings_mplayer, NULL, CRCInput::RC_blue, NEUTRINO_ICON_BUTTON_BLUE)); + mf = new CMenuDForwarder(LOCALE_MAINMENU_MOVIEPLAYER, true, NULL, bindSettings_mplayer, NULL, CRCInput::RC_blue, NEUTRINO_ICON_BUTTON_BLUE); + mf->setHint("", LOCALE_MENU_HINT_KEY_MOVIEPLAYER); + bindSettings->addItem(mf); //misc bindSettings->addItem(new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_KEYBINDINGMENU_MISC)); //bindSettings->addItem(new CMenuDForwarder(keydescription[KEY_PLUGIN], true, NULL, keychooser[KEY_PLUGIN])); - bindSettings->addItem(new CMenuDForwarder(key_settings[KEY_UNLOCK].keydescription, true, keychooser[KEY_UNLOCK]->getKeyName(), keychooser[KEY_UNLOCK])); - bindSettings->addItem(new CMenuDForwarder(key_settings[KEY_SCREENSHOT].keydescription, true, keychooser[KEY_SCREENSHOT]->getKeyName(), keychooser[KEY_SCREENSHOT])); + // unlock + mf = new CMenuDForwarder(key_settings[KEY_UNLOCK].keydescription, true, keychooser[KEY_UNLOCK]->getKeyName(), keychooser[KEY_UNLOCK]); + mf->setHint("", key_settings[KEY_UNLOCK].hint); + bindSettings->addItem(mf); + // screenshot + mf = new CMenuDForwarder(key_settings[KEY_SCREENSHOT].keydescription, true, keychooser[KEY_SCREENSHOT]->getKeyName(), keychooser[KEY_SCREENSHOT]); + mf->setHint("", key_settings[KEY_SCREENSHOT].hint); + bindSettings->addItem(mf); + //bindSettings->addItem(new CMenuOptionChooser(LOCALE_EXTRA_ZAP_CYCLE, &g_settings.zap_cycle, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); - bindSettings->addItem(new CMenuOptionChooser(LOCALE_EXTRA_MENU_LEFT_EXIT, &g_settings.menu_left_exit, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); - bindSettings->addItem(new CMenuOptionChooser(LOCALE_EXTRA_AUDIO_RUN_PLAYER, &g_settings.audio_run_player, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); - bindSettings->addItem(new CMenuOptionChooser(LOCALE_KEYBINDINGMENU_MODE_LEFT_RIGHT_KEY_TV, &g_settings.mode_left_right_key_tv, KEYBINDINGMENU_MODE_LEFT_RIGHT_KEY_TV_OPTIONS, KEYBINDINGMENU_MODE_LEFT_RIGHT_KEY_TV_COUNT, true)); + // left-exit, FIXME is this option really change anything ?? + CMenuOptionChooser * mc = new CMenuOptionChooser(LOCALE_EXTRA_MENU_LEFT_EXIT, &g_settings.menu_left_exit, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_KEY_LEFT_EXIT); + bindSettings->addItem(mc); + + // audio for audio player + mc = new CMenuOptionChooser(LOCALE_EXTRA_AUDIO_RUN_PLAYER, &g_settings.audio_run_player, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_KEY_AUDIO); + bindSettings->addItem(mc); + + // right key + mc = new CMenuOptionChooser(LOCALE_KEYBINDINGMENU_MODE_LEFT_RIGHT_KEY_TV, &g_settings.mode_left_right_key_tv, KEYBINDINGMENU_MODE_LEFT_RIGHT_KEY_TV_OPTIONS, KEYBINDINGMENU_MODE_LEFT_RIGHT_KEY_TV_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_KEY_RIGHT); + bindSettings->addItem(mc); } void CKeybindSetup::showKeyBindModeSetup(CMenuWidget *bindSettings_modes) { + CMenuForwarder * mf; bindSettings_modes->addIntroItems(LOCALE_KEYBINDINGMENU_MODECHANGE); - - bindSettings_modes->addItem(new CMenuDForwarder(key_settings[KEY_TV_RADIO_MODE].keydescription, true, keychooser[KEY_TV_RADIO_MODE]->getKeyName(), keychooser[KEY_TV_RADIO_MODE], NULL, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED)); - bindSettings_modes->addItem(new CMenuDForwarder(key_settings[KEY_POWER_OFF].keydescription, true, keychooser[KEY_POWER_OFF]->getKeyName(), keychooser[KEY_POWER_OFF], NULL, CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN)); + + // tv/radio + mf = new CMenuDForwarder(key_settings[KEY_TV_RADIO_MODE].keydescription, true, keychooser[KEY_TV_RADIO_MODE]->getKeyName(), keychooser[KEY_TV_RADIO_MODE], NULL, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED); + mf->setHint("", key_settings[KEY_TV_RADIO_MODE].hint); + bindSettings_modes->addItem(mf); + + mf = new CMenuDForwarder(key_settings[KEY_POWER_OFF].keydescription, true, keychooser[KEY_POWER_OFF]->getKeyName(), keychooser[KEY_POWER_OFF], NULL, CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN); + mf->setHint("", key_settings[KEY_POWER_OFF].hint); + bindSettings_modes->addItem(mf); } void CKeybindSetup::showKeyBindChannellistSetup(CMenuWidget *bindSettings_chlist) @@ -297,26 +351,37 @@ void CKeybindSetup::showKeyBindChannellistSetup(CMenuWidget *bindSettings_chlist CMenuOptionChooser *oj = new CMenuOptionChooser(LOCALE_KEYBINDINGMENU_BOUQUETHANDLING, &g_settings.bouquetlist_mode, KEYBINDINGMENU_BOUQUETHANDLING_OPTIONS, KEYBINDINGMENU_BOUQUETHANDLING_OPTION_COUNT, true ); bindSettings_chlist->addItem(oj); - for (int i = KEY_PAGE_UP; i <= KEY_CURRENT_TRANSPONDER; i++) - bindSettings_chlist->addItem(new CMenuDForwarder(key_settings[i].keydescription, true, keychooser[i]->getKeyName(), keychooser[i])); + for (int i = KEY_PAGE_UP; i <= KEY_CURRENT_TRANSPONDER; i++) { + CMenuForwarder * mf = new CMenuDForwarder(key_settings[i].keydescription, true, keychooser[i]->getKeyName(), keychooser[i]); + mf->setHint("", key_settings[i].hint); + bindSettings_chlist->addItem(mf); + } - bindSettings_chlist->addItem(new CMenuOptionChooser(LOCALE_EXTRA_SMS_CHANNEL, &g_settings.sms_channel, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); + CMenuOptionChooser * mc = new CMenuOptionChooser(LOCALE_EXTRA_SMS_CHANNEL, &g_settings.sms_channel, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_KEY_CHANNEL_SMS); + bindSettings_chlist->addItem(mc); } void CKeybindSetup::showKeyBindQuickzapSetup(CMenuWidget *bindSettings_qzap) { bindSettings_qzap->addIntroItems(LOCALE_KEYBINDINGMENU_QUICKZAP); - for (int i = KEY_CHANNEL_UP; i <= KEY_LASTCHANNEL; i++) - bindSettings_qzap->addItem(new CMenuDForwarder(key_settings[i].keydescription, true, keychooser[i]->getKeyName(), keychooser[i])); + for (int i = KEY_CHANNEL_UP; i <= KEY_LASTCHANNEL; i++) { + CMenuForwarder * mf = new CMenuDForwarder(key_settings[i].keydescription, true, keychooser[i]->getKeyName(), keychooser[i]); + mf->setHint("", key_settings[i].hint); + bindSettings_qzap->addItem(mf); + } } void CKeybindSetup::showKeyBindMovieplayerSetup(CMenuWidget *bindSettings_mplayer) { bindSettings_mplayer->addIntroItems(LOCALE_MAINMENU_MOVIEPLAYER); - - for (int i = MPKEY_REWIND; i <= MPKEY_PLUGIN; i++) - bindSettings_mplayer->addItem(new CMenuDForwarder(key_settings[i].keydescription, true, keychooser[i]->getKeyName(), keychooser[i])); + + for (int i = MPKEY_REWIND; i <= MPKEY_PLUGIN; i++) { + CMenuForwarder * mf = new CMenuDForwarder(key_settings[i].keydescription, true, keychooser[i]->getKeyName(), keychooser[i]); + mf->setHint("", key_settings[i].hint); + bindSettings_mplayer->addItem(mf); + } } bool CKeybindSetup::changeNotify(const neutrino_locale_t OptionName, void * /* data */) From e442d73cd6f93e94ba70fab5dbf593b9271e968f Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Fri, 13 Jul 2012 11:48:14 +0400 Subject: [PATCH 063/317] gui/keybind_setup.cpp: comment unused bouquetlist mode and movieplayer plugin key --- src/gui/keybind_setup.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/gui/keybind_setup.cpp b/src/gui/keybind_setup.cpp index 6d95c61df..ae783f70e 100644 --- a/src/gui/keybind_setup.cpp +++ b/src/gui/keybind_setup.cpp @@ -348,9 +348,10 @@ void CKeybindSetup::showKeyBindModeSetup(CMenuWidget *bindSettings_modes) void CKeybindSetup::showKeyBindChannellistSetup(CMenuWidget *bindSettings_chlist) { bindSettings_chlist->addIntroItems(LOCALE_KEYBINDINGMENU_CHANNELLIST); +#if 0 CMenuOptionChooser *oj = new CMenuOptionChooser(LOCALE_KEYBINDINGMENU_BOUQUETHANDLING, &g_settings.bouquetlist_mode, KEYBINDINGMENU_BOUQUETHANDLING_OPTIONS, KEYBINDINGMENU_BOUQUETHANDLING_OPTION_COUNT, true ); bindSettings_chlist->addItem(oj); - +#endif for (int i = KEY_PAGE_UP; i <= KEY_CURRENT_TRANSPONDER; i++) { CMenuForwarder * mf = new CMenuDForwarder(key_settings[i].keydescription, true, keychooser[i]->getKeyName(), keychooser[i]); mf->setHint("", key_settings[i].hint); @@ -377,7 +378,7 @@ void CKeybindSetup::showKeyBindMovieplayerSetup(CMenuWidget *bindSettings_mplaye { bindSettings_mplayer->addIntroItems(LOCALE_MAINMENU_MOVIEPLAYER); - for (int i = MPKEY_REWIND; i <= MPKEY_PLUGIN; i++) { + for (int i = MPKEY_REWIND; i < MPKEY_PLUGIN; i++) { CMenuForwarder * mf = new CMenuDForwarder(key_settings[i].keydescription, true, keychooser[i]->getKeyName(), keychooser[i]); mf->setHint("", key_settings[i].hint); bindSettings_mplayer->addItem(mf); From fa395b6abcc1b7d9d7ca51f0b49e2d8c31222014 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Fri, 13 Jul 2012 13:23:00 +0400 Subject: [PATCH 064/317] locals: hints for audioplayer/picture viewer setup --- data/locale/english.locale | 14 ++++++++++++++ src/system/locals.h | 14 ++++++++++++++ src/system/locals_intern.h | 13 +++++++++++++ 3 files changed, 41 insertions(+) diff --git a/data/locale/english.locale b/data/locale/english.locale index 5287330f5..81aadf283 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -985,6 +985,20 @@ menu.hint_key_plugin Assign button to start selected plugin\nwhile playing recor menu.hint_key_unlock Assign button to unlock box if locked\nTo unlock press 'red', then in next 5 seconds this key menu.hint_key_screenshot Assign button to save GUI and/or TV screenshot +menu.hint_audioplayer_order Change playlist sort order +menu.hint_audioplayer_follow Move playlist selected pointer\nto current playing song +menu.hint_audioplayer_title Enable SMS-style title search in playlist +menu.hint_audioplayer_repeat Enable playlist repeat when end of list reached +menu.hint_audioplayer_playlist Show playlist items +menu.hint_audioplayer_screensaver Set screensaver timeout, in minutes +menu.hint_audioplayer_highprio Increase playback priority +menu.hint_audioplayer_defdir Default audioplayer directory +menu.hint_audioplayer_sc_metadata Enable streaming audio metadata parsing + +menu.hint_pictureviewer_scaling Picture scaling algorithm +menu.hint_pictureviewer_slide_time Slideshow interval, in seconds +menu.hint_pictureviewer_defdir Default picture viewer directory + menu.next Next (press Menu to quit) messagebox.back Back messagebox.cancel Cancel diff --git a/src/system/locals.h b/src/system/locals.h index eb73aed41..6687764be 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -1012,6 +1012,20 @@ typedef enum LOCALE_MENU_HINT_KEY_UNLOCK, LOCALE_MENU_HINT_KEY_SCREENSHOT, + LOCALE_MENU_HINT_AUDIOPLAYER_ORDER, + LOCALE_MENU_HINT_AUDIOPLAYER_FOLLOW, + LOCALE_MENU_HINT_AUDIOPLAYER_TITLE, + LOCALE_MENU_HINT_AUDIOPLAYER_REPEAT, + LOCALE_MENU_HINT_AUDIOPLAYER_PLAYLIST, + LOCALE_MENU_HINT_AUDIOPLAYER_SCREENSAVER, + LOCALE_MENU_HINT_AUDIOPLAYER_HIGHPRIO, + LOCALE_MENU_HINT_AUDIOPLAYER_DEFDIR, + LOCALE_MENU_HINT_AUDIOPLAYER_SC_METADATA, + + LOCALE_MENU_HINT_PICTUREVIEWER_SCALING, + LOCALE_MENU_HINT_PICTUREVIEWER_SLIDE_TIME, + LOCALE_MENU_HINT_PICTUREVIEWER_DEFDIR, + LOCALE_MENU_NEXT, LOCALE_MESSAGEBOX_BACK, LOCALE_MESSAGEBOX_CANCEL, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index 95630b1bd..37c28a6f7 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -1012,6 +1012,19 @@ const char * locale_real_names[] = "menu.hint_key_unlock", "menu.hint_key_screenshot", + "menu.hint_audioplayer_order", + "menu.hint_audioplayer_follow", + "menu.hint_audioplayer_title", + "menu.hint_audioplayer_repeat", + "menu.hint_audioplayer_playlist", + "menu.hint_audioplayer_screensaver", + "menu.hint_audioplayer_highprio", + "menu.hint_audioplayer_defdir", + "menu.hint_audioplayer_sc_metadata", + "menu.hint_pictureviewer_scaling", + "menu.hint_pictureviewer_slide_time", + "menu.hint_pictureviewer_defdir", + "menu.next", "messagebox.back", "messagebox.cancel", From 3d0b76ea22e303c363a7cf4208c6734c867d40e0 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Fri, 13 Jul 2012 13:23:11 +0400 Subject: [PATCH 065/317] gui/audioplayer_setup.cpp: add hints --- src/gui/audioplayer_setup.cpp | 47 +++++++++++++++++++++++++++-------- 1 file changed, 37 insertions(+), 10 deletions(-) diff --git a/src/gui/audioplayer_setup.cpp b/src/gui/audioplayer_setup.cpp index b193e6237..4dea21a80 100644 --- a/src/gui/audioplayer_setup.cpp +++ b/src/gui/audioplayer_setup.cpp @@ -82,7 +82,7 @@ int CAudioPlayerSetup::exec(CMenuTarget* parent, const std::string &actionKey) } res = showAudioPlayerSetup(); - + return res; } @@ -98,26 +98,53 @@ const CMenuOptionChooser::keyval AUDIOPLAYER_DISPLAY_ORDER_OPTIONS[AUDIOPLAYER_D /*shows the audio setup menue*/ int CAudioPlayerSetup::showAudioPlayerSetup() { + CMenuOptionChooser * mc; + CMenuForwarder * mf; + CMenuWidget* audioplayerSetup = new CMenuWidget(LOCALE_MAINMENU_SETTINGS, NEUTRINO_ICON_SETTINGS, width, MN_WIDGET_ID_AUDIOSETUP); audioplayerSetup->addIntroItems(LOCALE_AUDIOPLAYER_NAME); - audioplayerSetup->addItem(new CMenuOptionChooser(LOCALE_AUDIOPLAYER_DISPLAY_ORDER, &g_settings.audioplayer_display , AUDIOPLAYER_DISPLAY_ORDER_OPTIONS, AUDIOPLAYER_DISPLAY_ORDER_OPTION_COUNT, true )); - audioplayerSetup->addItem(new CMenuOptionChooser(LOCALE_AUDIOPLAYER_FOLLOW , &g_settings.audioplayer_follow , MESSAGEBOX_NO_YES_OPTIONS , MESSAGEBOX_NO_YES_OPTION_COUNT , true )); - audioplayerSetup->addItem(new CMenuOptionChooser(LOCALE_AUDIOPLAYER_SELECT_TITLE_BY_NAME , &g_settings.audioplayer_select_title_by_name , MESSAGEBOX_NO_YES_OPTIONS , MESSAGEBOX_NO_YES_OPTION_COUNT , true )); - audioplayerSetup->addItem(new CMenuOptionChooser(LOCALE_AUDIOPLAYER_REPEAT_ON , &g_settings.audioplayer_repeat_on , MESSAGEBOX_NO_YES_OPTIONS , MESSAGEBOX_NO_YES_OPTION_COUNT , true )); - audioplayerSetup->addItem(new CMenuOptionChooser(LOCALE_AUDIOPLAYER_SHOW_PLAYLIST, &g_settings.audioplayer_show_playlist, MESSAGEBOX_NO_YES_OPTIONS, MESSAGEBOX_NO_YES_OPTION_COUNT, true )); + // display order + mc = new CMenuOptionChooser(LOCALE_AUDIOPLAYER_DISPLAY_ORDER, &g_settings.audioplayer_display, AUDIOPLAYER_DISPLAY_ORDER_OPTIONS, AUDIOPLAYER_DISPLAY_ORDER_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_AUDIOPLAYER_ORDER); + audioplayerSetup->addItem(mc); + + mc = new CMenuOptionChooser(LOCALE_AUDIOPLAYER_FOLLOW, &g_settings.audioplayer_follow, MESSAGEBOX_NO_YES_OPTIONS, MESSAGEBOX_NO_YES_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_AUDIOPLAYER_FOLLOW); + audioplayerSetup->addItem(mc); + + mc = new CMenuOptionChooser(LOCALE_AUDIOPLAYER_SELECT_TITLE_BY_NAME, &g_settings.audioplayer_select_title_by_name, MESSAGEBOX_NO_YES_OPTIONS, MESSAGEBOX_NO_YES_OPTION_COUNT, true ); + mc->setHint("", LOCALE_MENU_HINT_AUDIOPLAYER_TITLE); + audioplayerSetup->addItem(mc); + + mc = new CMenuOptionChooser(LOCALE_AUDIOPLAYER_REPEAT_ON, &g_settings.audioplayer_repeat_on, MESSAGEBOX_NO_YES_OPTIONS, MESSAGEBOX_NO_YES_OPTION_COUNT, true ); + mc->setHint("", LOCALE_MENU_HINT_AUDIOPLAYER_REPEAT); + audioplayerSetup->addItem(mc); + + mc = new CMenuOptionChooser(LOCALE_AUDIOPLAYER_SHOW_PLAYLIST, &g_settings.audioplayer_show_playlist, MESSAGEBOX_NO_YES_OPTIONS, MESSAGEBOX_NO_YES_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_AUDIOPLAYER_PLAYLIST); + audioplayerSetup->addItem(mc); CStringInput audio_screensaver(LOCALE_AUDIOPLAYER_SCREENSAVER_TIMEOUT, g_settings.audioplayer_screensaver, 2, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, "0123456789 "); - audioplayerSetup->addItem(new CMenuForwarder(LOCALE_AUDIOPLAYER_SCREENSAVER_TIMEOUT, true, g_settings.audioplayer_screensaver, &audio_screensaver)); + mf = new CMenuForwarder(LOCALE_AUDIOPLAYER_SCREENSAVER_TIMEOUT, true, g_settings.audioplayer_screensaver, &audio_screensaver); + mf->setHint("", LOCALE_MENU_HINT_AUDIOPLAYER_SCREENSAVER); + audioplayerSetup->addItem(mf); - audioplayerSetup->addItem(new CMenuOptionChooser(LOCALE_AUDIOPLAYER_HIGHPRIO , &g_settings.audioplayer_highprio , MESSAGEBOX_NO_YES_OPTIONS , MESSAGEBOX_NO_YES_OPTION_COUNT , true )); + mc = new CMenuOptionChooser(LOCALE_AUDIOPLAYER_HIGHPRIO, &g_settings.audioplayer_highprio, MESSAGEBOX_NO_YES_OPTIONS, MESSAGEBOX_NO_YES_OPTION_COUNT, true ); + mc->setHint("", LOCALE_MENU_HINT_AUDIOPLAYER_HIGHPRIO); + audioplayerSetup->addItem(mc); #if 0 if (CVFD::getInstance()->has_lcd) //FIXME audioplayerSetup->addItem(new CMenuOptionChooser(LOCALE_AUDIOPLAYER_SPECTRUM , &g_settings.spectrum , MESSAGEBOX_NO_YES_OPTIONS , MESSAGEBOX_NO_YES_OPTION_COUNT , true )); #endif - audioplayerSetup->addItem(new CMenuForwarder(LOCALE_AUDIOPLAYER_DEFDIR, true, g_settings.network_nfs_audioplayerdir, this, "audioplayerdir")); - audioplayerSetup->addItem(new CMenuOptionChooser(LOCALE_AUDIOPLAYER_ENABLE_SC_METADATA, &g_settings.audioplayer_enable_sc_metadata, MESSAGEBOX_NO_YES_OPTIONS, MESSAGEBOX_NO_YES_OPTION_COUNT, true )); + mf = new CMenuForwarder(LOCALE_AUDIOPLAYER_DEFDIR, true, g_settings.network_nfs_audioplayerdir, this, "audioplayerdir"); + mf->setHint("", LOCALE_MENU_HINT_AUDIOPLAYER_DEFDIR); + audioplayerSetup->addItem(mf); + + mc = new CMenuOptionChooser(LOCALE_AUDIOPLAYER_ENABLE_SC_METADATA, &g_settings.audioplayer_enable_sc_metadata, MESSAGEBOX_NO_YES_OPTIONS, MESSAGEBOX_NO_YES_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_AUDIOPLAYER_SC_METADATA); + audioplayerSetup->addItem(mc); int res = audioplayerSetup->exec (NULL, ""); delete audioplayerSetup; From 7ea49b0d04dcc5fdc05a199ec07fd3afbf8579dc Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Fri, 13 Jul 2012 13:23:21 +0400 Subject: [PATCH 066/317] gui/pictureviewer_setup.cpp: add hints --- src/gui/pictureviewer_setup.cpp | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/gui/pictureviewer_setup.cpp b/src/gui/pictureviewer_setup.cpp index 63c68856c..601638c6b 100644 --- a/src/gui/pictureviewer_setup.cpp +++ b/src/gui/pictureviewer_setup.cpp @@ -33,7 +33,6 @@ #include #endif - #include "gui/pictureviewer_setup.h" #include @@ -82,11 +81,10 @@ int CPictureViewerSetup::exec(CMenuTarget* parent, const std::string &actionKey) } res = showPictureViewerSetup(); - + return res; } - #define PICTUREVIEWER_SCALING_OPTION_COUNT 3 const CMenuOptionChooser::keyval PICTUREVIEWER_SCALING_OPTIONS[PICTUREVIEWER_SCALING_OPTION_COUNT] = { @@ -95,21 +93,27 @@ const CMenuOptionChooser::keyval PICTUREVIEWER_SCALING_OPTIONS[PICTUREVIEWER_SCA { CPictureViewer::NONE , LOCALE_PICTUREVIEWER_RESIZE_NONE } }; - /*shows the picviewer setup menue*/ int CPictureViewerSetup::showPictureViewerSetup() { - CMenuWidget* picviewsetup = new CMenuWidget(LOCALE_MAINMENU_SETTINGS, NEUTRINO_ICON_SETTINGS, width, MN_WIDGET_ID_PVIEWERSETUP); // intros: back ande save picviewsetup->addIntroItems(LOCALE_PICTUREVIEWER_HEAD); - picviewsetup->addItem(new CMenuOptionChooser(LOCALE_PICTUREVIEWER_SCALING , &g_settings.picviewer_scaling , PICTUREVIEWER_SCALING_OPTIONS , PICTUREVIEWER_SCALING_OPTION_COUNT , true )); + CMenuOptionChooser * mc = new CMenuOptionChooser(LOCALE_PICTUREVIEWER_SCALING, &g_settings.picviewer_scaling, PICTUREVIEWER_SCALING_OPTIONS, PICTUREVIEWER_SCALING_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_PICTUREVIEWER_SCALING); + picviewsetup->addItem(mc); + CStringInput pic_timeout(LOCALE_PICTUREVIEWER_SLIDE_TIME, g_settings.picviewer_slide_time, 2, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, "0123456789 "); - picviewsetup->addItem(new CMenuForwarder(LOCALE_PICTUREVIEWER_SLIDE_TIME, true, g_settings.picviewer_slide_time, &pic_timeout)); - picviewsetup->addItem(new CMenuForwarder(LOCALE_PICTUREVIEWER_DEFDIR, true, g_settings.network_nfs_picturedir, this, "picturedir")); - + CMenuForwarder * mf = new CMenuForwarder(LOCALE_PICTUREVIEWER_SLIDE_TIME, true, g_settings.picviewer_slide_time, &pic_timeout); + mf->setHint("", LOCALE_MENU_HINT_PICTUREVIEWER_SLIDE_TIME); + picviewsetup->addItem(mf); + + mf = new CMenuForwarder(LOCALE_PICTUREVIEWER_DEFDIR, true, g_settings.network_nfs_picturedir, this, "picturedir"); + mf->setHint("", LOCALE_MENU_HINT_PICTUREVIEWER_DEFDIR); + picviewsetup->addItem(mf); + int res = picviewsetup->exec(NULL, ""); delete picviewsetup; return res; From 40941dd9498a266a83ae1e746bb3ccd0dc3ce19a Mon Sep 17 00:00:00 2001 From: satbaby Date: Fri, 13 Jul 2012 16:20:56 +0200 Subject: [PATCH 067/317] network_service.cpp: acitve menu only if binary available (tiny fix) --- src/gui/network_service.cpp | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/gui/network_service.cpp b/src/gui/network_service.cpp index ebd8a138f..6585c919c 100644 --- a/src/gui/network_service.cpp +++ b/src/gui/network_service.cpp @@ -51,8 +51,8 @@ struct network_service #define SERVICE_COUNT 4 static struct network_service services[SERVICE_COUNT] = { - { "FTP", "vsftpd", "", LOCALE_MENU_HINT_NET_TELNET, "", 0 }, - { "Telnet", "telnetd", "-l/bin/login", LOCALE_MENU_HINT_NET_FTPD, "", 0 }, + { "FTP", "vsftpd", "", LOCALE_MENU_HINT_NET_FTPD, "", 0 }, + { "Telnet", "telnetd", "-l/bin/login", LOCALE_MENU_HINT_NET_TELNET, "", 0 }, { "DjMount", "djmount", "-o iocharset=utf8 /media/00upnp/", LOCALE_MENU_HINT_NET_DJMOUNT, "", 0 }, { "uShare", "ushare", "-D", LOCALE_MENU_HINT_NET_USHARE, "", 0 } }; @@ -144,16 +144,17 @@ int CNetworkServiceSetup::showNetworkServiceSetup() //telnetd used inetd bool useinetd = false; - char line[256]; - + char *buf=NULL; + size_t len = 0; + FILE* fd = fopen("/etc/inetd.conf", "r"); if(fd) { while(!feof(fd)) { - fgets(line, 255, fd); + if(getline(&buf, &len, fd)!=-1) { - if (strstr(line, "telnetd") != NULL) + if (strstr(buf, "telnetd") != NULL) { useinetd = true; break; @@ -161,10 +162,12 @@ int CNetworkServiceSetup::showNetworkServiceSetup() } } fclose(fd); + if(buf) + free(buf); } //set active when found - int active; + bool active; for(unsigned i = 0; i < SERVICE_COUNT; i++) { items[i] = new CNetworkService(services[i].cmd, services[i].options); From 60b4debbe5c6d8a77a17583c9fad3734e133bf21 Mon Sep 17 00:00:00 2001 From: micha-bbg Date: Fri, 13 Jul 2012 20:18:20 +0200 Subject: [PATCH 068/317] * Menu hints: Update deutsch.locale - German Translations Part 3 (THX Tomworld) --- data/locale/deutsch.locale | 48 ++++++++++++++++++++++++++++++++++---- 1 file changed, 44 insertions(+), 4 deletions(-) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index 9942d5109..46406519d 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -521,7 +521,7 @@ fontsize.infobar_info Info fontsize.infobar_number Nummer fontsize.infobar_small Klein fontsize.menu Menütext -fontsize.menu_hint Menühinweise +fontsize.menu_hint Menü-Hilfe fontsize.menu_info Menüinfo fontsize.menu_title Menütitel hdd_10min 10 min. @@ -690,7 +690,7 @@ menu.back Zurück menu.cancel Abbrechen menu.hint_a_pic Konfigurieren Sie den Audio-Player und Bildbetrachter menu.hint_aplay Audioplayer -menu.hint_audio Audio-Ausgang, DD\nSRS True Volume Optionen +menu.hint_audio Audio-Ausgang, DolbyDigital\nund SRS True Volume Optionen menu.hint_audio_analog_mode Hier wird festgelegt, ob auf dem analogen Ausgang ein Stereo-,\nMono-Links- oder Mono-Rechts-Signal ausgegeben werden soll menu.hint_audio_avsync Diese Funktion synchronisiert Bild und Ton menu.hint_audio_dd Ist diese Option auf ein, wird automatisch auf Dolby Digital Ton\numgeschaltet, sobald dieser bei einem Sender verfügbar ist @@ -701,6 +701,7 @@ menu.hint_audio_srs_algo Mögliche Betriebsarten, einfach oder normal menu.hint_audio_srs_nmgr Schaltet diese Option an oder aus menu.hint_audio_srs_volume Hier kann die Referenzlautstärke festgelegt werden menu.hint_audio_volstep Beim Betätigen der Lautstärketasten wird die Lautstärke\nimmer schrittweise nach diesen Wert geändert +menu.hint_auto_lang Hier können Sie wählen ob automatisch Ihre bevorzugte Tonspur gewählt wird,\nwenn vorhanden menu.hint_back Zurück zum vorherigen Menü\nDrücken der Menütaste schließt alle Menüs menu.hint_backup Sichern der Konfigurationen und Kanäle in ein Verzeichnis menu.hint_bedit Bearbeiten der Favoriten und der Bouquets @@ -732,6 +733,7 @@ menu.hint_inet_radio Internetradio menu.hint_info Informationen über Image, CPU und Speicher,\nStream-Information menu.hint_keep_numbers Mit der Aktivierung werden den Sendern feste/dauerhafte\nKanalnummern zugewiesen menu.hint_keys Fernbedienungs Wiederholrate\nTastenbelegungen bearbeiten +menu.hint_lang_pref Wählen Sie ihre bevorzugten Audio-Sprachen, EPG\nund Untertitel-Sprachen menu.hint_language OSD Sprache, Zeitzone\nbevorzugte Audio und Untertitel Sprachen menu.hint_last_radio In dieser Menüzeile muss der gewünschte\nStart-Radio-Sender eingestellt werden menu.hint_last_tv In dieser Menüzeile muss der gewünschte\nStart-TV-Sender eingestellt werden @@ -753,32 +755,69 @@ menu.hint_misc_zapit Behandlung der Start-TV/Start-Radio Kanäle menu.hint_movie Wiedergabe von Filmen menu.hint_net_broadcast Hier können Sie die Broadcast-Adresse ändern,\nwenn Sie unsicher sind, verwenden Sie zuletzt .255 menu.hint_net_dhcp Verwenden Sie einen DHCP-Server für die automatische\nKonfiguration können Sie es hier einstellen +menu.hint_net_djmount Mountet UPnP-Geräte als Dateisystem\nunter / media/00upnp +menu.hint_net_ftpd Aktivieren Sie die Dateiübertragung über FTP menu.hint_net_gateway Hier können Sie die Gateway-Adresse des Routers eingeben menu.hint_net_hostname Hier kann man den Hostnamen der Box ändern +menu.hint_net_if Wählen Sie die Schnittstelle zur Konfiguration menu.hint_net_ipaddress Hier können Sie die IP-Adresse für die Box eingeben menu.hint_net_mount Hier werden Netzwerkfreigaben bearbeitet\nNFS und CIFS werden supported menu.hint_net_nameserver Hier können Sie die IP-Adresse des Routers\nbzw. eines DNS-Server eingeben menu.hint_net_netmask Hier können Sie eine Netzwerkmaske eingeben\nStandart ist 255.255.255.0 +menu.hint_net_nfs_mount Hier können Sie die Netzwerkfreigaben und Mounts bearbeiten +menu.hint_net_nfs_umount Hier können Sie gemountete Verzeichnis wieder aushängen menu.hint_net_ntp Hier kann man den Zeitserver ändern,\ndies dient der Zeitsynchronisation +menu.hint_net_ntpenable Aktiviert die Zeitsynchronisierung über das NTP-Protokoll\nwenn NTP-Sync nicht erfolgreich, verwenden Sie DVB +menu.hint_net_ntprefresh Hier können Sie den Interval zur Zeitsynchronisation einstellen +menu.hint_net_ntpserver Hier können Sie den NTP-Server eingeben +menu.hint_net_pass Hier können Sie das Passwort eingeben (WPA-PSK) menu.hint_net_proxy Wenn Sie Proxy für den Zugriff auf das Internet benutzen\nkonfigurieren Sie es hier für den Online-Software-Update +menu.hint_net_proxypass Hier können Sie den Proxy-Passwort eingeben,\nwenn es erforderlich ist +menu.hint_net_proxyserver Hier können Sie den Proxyserver-Namen eingeben +menu.hint_net_proxyuser Hier können Sie den Proxy-Benutzernamen eingeben,\nwenn es erforderlich ist menu.hint_net_services Konfigurieren Sie Netzwerkservices:\nTelnet, FTP, UPnP menu.hint_net_setupnow Hier werden die aktuellen Einstellungen zugewiesen\nbzw. geänderte übernommen menu.hint_net_setuponstartup Startet das Netzwerk automatisch beim Booten menu.hint_net_show Zeigen Ihnen die aktuellen Netzwerkeinstellungen +menu.hint_net_ssid Hier können Sie die Wireless-Netzwerk-SSID eingeben\nmit der Sie eine Verbindung herstellen möchten +menu.hint_net_telnet Aktivieren Sie den Telnet-Login auf Ihrer Box,\nNutzer: root Passwort: coolstream menu.hint_net_test Testet die Netzwerkverbindung:\nPing auf Gateway, Name-Server und externe IP-Adressen +menu.hint_net_ushare Freigabe verbundener HDD über UPnP menu.hint_network IP-Adresse, Gateway, DNS-, Time-Sync\nNetzwerk-Freigaben und Dienste menu.hint_new_zap_mode Aktiviert Quickzap in der Kanalliste. Nach Betätigen der Mute-\nTaste wird mit den Hoch/Runter Tasten der Sender umgeschaltet menu.hint_osd Farben, Schriftarten, Anzeigegröße\nGUI Ansichtsoptionen -menu.hint_parentallock_changepin Hier wird der 4 stellige PIN Code eingeben,\nder dann ggf. abgefragt wird +menu.hint_osd_language Wählen Sie ihre OSD Sprache +menu.hint_parentallock_changepin Hier wird der 4 stellige PIN Code eingegeben,\nder dann ggf. abgefragt wird menu.hint_parentallock_lockage Hier wird festgelegt, bei welcher Altersklasse\ndie PIN Abfrage kommt menu.hint_parentallock_prompt Hier wird definiert, wann eine PIN Eingabe erfolgen soll menu.hint_personalize aktivieren, deaktivieren, schützen von Menüpunkten\nkonfigurieren der Farb-Tasten in den Benutzermenüs menu.hint_picview Bilder anzeigen menu.hint_plugins_hdd_dir Auswahl des Verzeichnisses zum laden von Plugins\n auf der HDD -menu.hint_progressbar_color Show colored progress bars +menu.hint_pref_lang Wählen Sie ihre bevorzugte Audio- und EPG-Sprache,\ndie Einstellung 'none' deaktiviert diese Option +menu.hint_pref_subs Wählen Sie ihre bevorzugte Untertitel-Sprache,\ndie Einstellung 'none' deaktiviert diese Option menu.hint_protection Schützen Sie Inhalte per PIN-Code\nStandard-PIN ist 0000 menu.hint_radiomode schaltet zum Radio-Modus menu.hint_reboot Rebootet die Box\nohne Bestätigung +menu.hint_record_apid_ac3 Schließt bei einer Aufnahme die durch den Sender definierte "DolbyDigital-Tonspur"\nin die Aufnahme ein, sofern diese vorhanden ist +menu.hint_record_apid_alt Sind weitere Tonspuren verfügbar, dann können diese hiermit bei einer\nAufnahme entsprechend ein- bzw. ausgeschlossen werden +menu.hint_record_apid_std Schließt bei einer Aufnahme die durch den Sender definierte "Standard Tonspur"\nin die Aufnahme ein, bzw. schließt diese aus +menu.hint_record_apids Konfigurieren Sie die Tonspuren für die Aufnahme +menu.hint_record_apply Hiermit werden die Aufnahmeoptionen übernommen +menu.hint_record_chandir Diese Option speichert Aufnahmen mit dem Namen des Kanals\nin ein eigenes Verzeichnis +menu.hint_record_dir Hier wählen Sie das Aufnahmeverzeichnis +menu.hint_record_end Hier können Sie wählen zwischen max. Aufnahmezeit\noder anhand der EPG-Daten +menu.hint_record_tdir Wählen Sie eine Verzeichnis für Ihre Timeshift-Aufnahmen\nim temporären Timeshiftmodus +menu.hint_record_time Hier wird die maximale Zeit in Stunden eingetragen außer\nSie stoppen die Aufnahme vorzeitig +menu.hint_record_timeafter Hier kann die Endzeit für den Aufnahmetimer eingestellt werden,\nein Wert von 2, beendet die Aufnahme 2 Minuten nach dem Sendungsende +menu.hint_record_timebefore Hier kann die Startzeit für den Aufnahmetimer eingestellt werden,\nein Wert von 2, startet die Aufnahme 2 Minuten vor dem Sendungsbeginn +menu.hint_record_timer Konfigurieren Sie Timeroptionen für Aufnahmen +menu.hint_record_timeshift Konfigurieren Sie ihre Timeshift-Optionen +menu.hint_record_timeshift_auto Hier können Sie die Zeit einstellen nachdem Timeshift aktiv ist\nund Sie umschalten, in Sekunden +menu.hint_record_timeshift_delete Hier können Sie wählen ob nach beenden von Timeshift\ndie Aufnahmen gelöscht werden +menu.hint_record_timeshift_pause Wenn die Funktion aktiviert ist, lässt sich Timeshift\ndurch die Pause-Taste auf der Fernbedienung aktivieren +menu.hint_record_timeshift_temp Ist dies Option deaktiviert wird Timeshift direkt als Aufnahme gestartet +menu.hint_record_zap Bei aktiver Option wird bereits mit der Ankündigung\nder Aufnahme auf den aufzunehmenden Sender umgeschaltet +menu.hint_record_zap_pre_time Hier kann für den Umschalttimer ein Vorlaufzeit in Minuten eingestellt werden menu.hint_recording Aufnahme- und Timeshift-Optionen\nTimer Optionen, Audio-PIDs Optionen menu.hint_reload_channels Kanallisten neu laden\nKanallisten aktualisieren menu.hint_reload_plugins Plugins neu laden\nPlugin-Liste aktualisieren @@ -801,6 +840,7 @@ menu.hint_start_tostandby Aktiviert den Standby-Modus nach dem Booten menu.hint_streaminfo aktuelle Sender-Informationen: PIDs, SNR-Verhältnis\nBitrate grafisch menu.hint_sw_update Neutrino-HD auf Software-Update überprüfen\nImage sichern und wiederherstellen menu.hint_timers Hinzufügen / Entfernen / Bearbeiten geplanter\nAufnahme, Meldungen etc. +menu.hint_timezone Wählen Sie ihre Zeitzone aus menu.hint_tvmode Schaltet zum TV-Modus menu.hint_tvradio_switch Schaltet zwischen TV- und Radio-Modus um menu.hint_vfd Frontpanel LED's, VFD Optionen From 388f2a6c7e1f54b30007fb1716791b498cde5d0c Mon Sep 17 00:00:00 2001 From: satbaby Date: Sat, 14 Jul 2012 14:07:00 +0200 Subject: [PATCH 069/317] satellites.xml: update Astra 1H/1KR/1L/1M (19.2E) --- data/satellites.xml | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/data/satellites.xml b/data/satellites.xml index e7516d0ba..74e5f7083 100755 --- a/data/satellites.xml +++ b/data/satellites.xml @@ -1557,6 +1557,7 @@ + @@ -1569,16 +1570,20 @@ + + + - + + @@ -1591,8 +1596,9 @@ - + + @@ -1620,7 +1626,7 @@ - + From edfd3a5fe4daa8558ec999fd078d80509a894260 Mon Sep 17 00:00:00 2001 From: micha-bbg Date: Sat, 14 Jul 2012 22:40:02 +0200 Subject: [PATCH 070/317] * Menu hints: Update deutsch.locale - German Translations Part 4 (THX Tomworld) --- data/locale/deutsch.locale | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index 46406519d..8aea585ca 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -702,14 +702,18 @@ menu.hint_audio_srs_nmgr Schaltet diese Option an oder aus menu.hint_audio_srs_volume Hier kann die Referenzlautstärke festgelegt werden menu.hint_audio_volstep Beim Betätigen der Lautstärketasten wird die Lautstärke\nimmer schrittweise nach diesen Wert geändert menu.hint_auto_lang Hier können Sie wählen ob automatisch Ihre bevorzugte Tonspur gewählt wird,\nwenn vorhanden -menu.hint_back Zurück zum vorherigen Menü\nDrücken der Menütaste schließt alle Menüs +menu.hint_auto_subs Auto-Start für Untertitel in Ihrer bevorzugten Sprache +menu.hint_back Zurück zum vorherigen Menü,\ndrücken der Menütaste schließt alle Menüs menu.hint_backup Sichern der Konfigurationen und Kanäle in ein Verzeichnis menu.hint_bedit Bearbeiten der Favoriten und der Bouquets +menu.hint_bigwindows EPG Informationen werden immer im großen Fenster angezeigt,\ndies erreichen Sie auch mit der 'Info' Taste menu.hint_cache_txt Startet das Zwischenspeichern des Teletext nach\nKanalwechsel menu.hint_cec_mode CEC-Mode menu.hint_cec_standby CEC-Standby menu.hint_cec_view_on CEC view ON +menu.hint_channellist_setup Hier können Sie Anzeigeoptionen für die Kanalliste auswählen menu.hint_ci Conditional-Access-Menü zum Einrichten\nIhres CI-CAM oder eingebetteten Conax-Karte +menu.hint_colors Konfigurieren Sie die Menü-Farben menu.hint_dboxinfo Informationen über CPU und Speicher der Box menu.hint_delete_channels Löschen aller Kanale menu.hint_epg_cache Maximum in Tagen zukünftiger EPG-Daten @@ -720,17 +724,20 @@ menu.hint_epg_old_events EPG im Speicher behalten in Stunden,\nauch wenn es vera menu.hint_epg_save Speichert die EPG-Daten auf einer Harddisk oder USB-Stick\nund läd es nach einen Neustart menu.hint_extended Energiespar-, EPG-Speicher- / Lade-Optionen\nHDMI-CEC, Startkanal, Zap-Optionen menu.hint_factory Zurücksetzen der Box auf Werkseinstellungen\nBox wird nach einem Reset neu gestartet +menu.hint_fade Bei aktivierter Funktion werden die Menüfenster\n"weich" ein- bzw. ausgeblendet menu.hint_fan_speed Steuerung der Lüftergeschwindigkeit für den CPU menu.hint_filebrowser_denydirectoryleave Startverzeichnes auf absolut setzen menu.hint_filebrowser_showrights Anzeige der Dateirechte der Deiteinen im Filebrowser menu.hint_fileplay Spielen Sie verschiedene Video-Dateien menu.hint_filesystem_is_utf8 Kodierung für Unicode-Zeichen im Filebrowser +menu.hint_fonts Konfigurieren Sie die Menü-Schriftart und -Größen menu.hint_games Zeige Liste der installierten Spiele menu.hint_hdd Formatierung / Festplatte überprüfen menu.hint_imageinfo Informationen über die installierte Software menu.hint_inact_timer Ausschalten der Box nach Inaktivität in Minuten,\ndie Box geht automatisch in den Deep-Standby menu.hint_inet_radio Internetradio menu.hint_info Informationen über Image, CPU und Speicher,\nStream-Information +menu.hint_infobar_setup Hier können Sie die Anzeigeoptionen für die Infobar auswählen menu.hint_keep_numbers Mit der Aktivierung werden den Sendern feste/dauerhafte\nKanalnummern zugewiesen menu.hint_keys Fernbedienungs Wiederholrate\nTastenbelegungen bearbeiten menu.hint_lang_pref Wählen Sie ihre bevorzugten Audio-Sprachen, EPG\nund Untertitel-Sprachen @@ -745,6 +752,8 @@ menu.hint_make_removedlist Nach einer Kanalsuche wird ein Bouquet namens\n"gelö menu.hint_manage_settings sichern, wiederherstellen, zurück auf die \nStandardwerte, Auslieferungszustand herstellen menu.hint_mb Ihre Aufnahmen menu.hint_media Abspielen von Filmen, Audiodateien\nbetrachten Sie Bilder +menu.hint_menu_hints Zeigt Ihnen Hinweise zu den Menüpunkten an,\nbei Deaktivierung erreichen Sie es jederzeit auch mit der Taste 'Hilfe' +menu.hint_menu_pos Hier können Sie die Anzeigeposition der OSD-Menüs festlegen menu.hint_misc_cec HDMI-CEC Optionen menu.hint_misc_channellist Erweiterte Einstellungen für die Kanallisten\nZappingeinstellungen menu.hint_misc_energy Energie- und Softstandby-Optionen, verzögertes Ausschalten\nsetzen bzw. ändern des Inaktivitätstimers @@ -787,6 +796,7 @@ menu.hint_network IP-Adresse, Gateway, DNS-, Time-Sync\nNetzwerk-Freigaben und D menu.hint_new_zap_mode Aktiviert Quickzap in der Kanalliste. Nach Betätigen der Mute-\nTaste wird mit den Hoch/Runter Tasten der Sender umgeschaltet menu.hint_osd Farben, Schriftarten, Anzeigegröße\nGUI Ansichtsoptionen menu.hint_osd_language Wählen Sie ihre OSD Sprache +menu.hint_osd_preset Hier können Sie zwischen Röhren-TV (CRT) oder Flachbildschirm (LCD) vorwählen menu.hint_parentallock_changepin Hier wird der 4 stellige PIN Code eingegeben,\nder dann ggf. abgefragt wird menu.hint_parentallock_lockage Hier wird festgelegt, bei welcher Altersklasse\ndie PIN Abfrage kommt menu.hint_parentallock_prompt Hier wird definiert, wann eine PIN Eingabe erfolgen soll @@ -795,6 +805,7 @@ menu.hint_picview Bilder anzeigen menu.hint_plugins_hdd_dir Auswahl des Verzeichnisses zum laden von Plugins\n auf der HDD menu.hint_pref_lang Wählen Sie ihre bevorzugte Audio- und EPG-Sprache,\ndie Einstellung 'none' deaktiviert diese Option menu.hint_pref_subs Wählen Sie ihre bevorzugte Untertitel-Sprache,\ndie Einstellung 'none' deaktiviert diese Option +menu.hint_progressbar_color Bei aktivierter Option werden alle Fortschrittsbalken in Farbe\nund nicht im klassischen weiß angezeigt menu.hint_protection Schützen Sie Inhalte per PIN-Code\nStandard-PIN ist 0000 menu.hint_radiomode schaltet zum Radio-Modus menu.hint_reboot Rebootet die Box\nohne Bestätigung @@ -824,12 +835,17 @@ menu.hint_reload_plugins Plugins neu laden\nPlugin-Liste aktualisieren menu.hint_reset Zurücksetzen von Neutrino-HD-Einstellungen auf Standardwerte\nTuner Einstellungen und Kanäle bleiben erhalten menu.hint_restore Wiederherstellen von Dateien aus ausgewählten Verzeichnis menu.hint_rotor_swap Tauschen der Rotordrehrichtung Ost/West\nim Motorsetup +menu.hint_rounded_corners Aktiviert die Darstellung abgerundeter Ecken für die OSD-Menüs menu.hint_save_settings Speichern Sie alle Einstellungen im Image menu.hint_saveas Speichern der Neutrino-HD-Einstellungen in eine Datei +menu.hint_scrambled_message Bei aktivierter Option erscheint eine Meldung,\nwenn ein verschlüsselter Sender nicht entschlüsselt werden kann +menu.hint_screen_setup Konfigurieren Sie den Bildschirmbereich für die Menüanzeige +menu.hint_screenshot_setup Hier können Sie die Optionen zum erstellen von Screenshots einrichten menu.hint_scripts Skripts ausführen menu.hint_service Kanalsuche, Senderscan,\nBouquet-Verwaltung, Software-Aktualisierung menu.hint_service_scan Tuner-Einstellungen, Service-Scan menu.hint_settings konfigurieren von Neutrino-HD\nNetzwerk, Video, Audio, OSD und mehr +menu.hint_show_mute_icon Definiert ob beim Lautstärkewert 0 das Mute-Icon eingeblendet werden soll menu.hint_shutdown Setzen Sie Ihre Box in den Standby-Modus\noder schaltet die Box komplett aus menu.hint_shutdown_count Die Zeit zum Deep-Standby,\nwenn die Box im Soft-Standby-Mode ist menu.hint_shutdown_rcdelay Aktiviert den Deep-Standby, wenn der Powerknopf\nlänger als 1 Sekunde betätigt wird @@ -838,7 +854,9 @@ menu.hint_sleeptimer Zeitschaltuhr auf Ihrer Box aktivieren\ndie Box geht dann i menu.hint_soft_restart Neustarten von Neutrino-HD ohne zu Rebooten menu.hint_start_tostandby Aktiviert den Standby-Modus nach dem Booten menu.hint_streaminfo aktuelle Sender-Informationen: PIDs, SNR-Verhältnis\nBitrate grafisch +menu.hint_subchannel_pos Hier können Sie die Anzeigeposition der Untertitel auswählen menu.hint_sw_update Neutrino-HD auf Software-Update überprüfen\nImage sichern und wiederherstellen +menu.hint_timeouts Gibt an, nach welcher Zeit in Sekunden\ndie Menüs oder Infofenster sich automatisch schließen menu.hint_timers Hinzufügen / Entfernen / Bearbeiten geplanter\nAufnahme, Meldungen etc. menu.hint_timezone Wählen Sie ihre Zeitzone aus menu.hint_tvmode Schaltet zum TV-Modus @@ -853,6 +871,7 @@ menu.hint_video_format Diese Option aktiviert das "Bildschirmformat"\nauf das Fo menu.hint_video_mode Definiert in welchen Videoformat das Bild über den\nHDMI-Ausgang ausgegeben wird menu.hint_video_modes Definiert welche Videosysteme mit der VF-Taste\nder Fernbedienung ausgewählt werden können menu.hint_video_scart_mode Wählen Sie den Analogausgang Modus\nfür den SCART Ausgang +menu.hint_volume_pos Hier können Sie die Anzeigeposition der Lautstärkeanzeige auswählen menu.hint_zap_cycle Dadurch wird nur innerhalb des aktiven Bouquets gezappt menu.next Weiter (Menü zum Beenden) messagebox.back Zurück From 044d32c846b607e0a7f58a2cb9f0dcef6e63edc9 Mon Sep 17 00:00:00 2001 From: micha-bbg Date: Sun, 15 Jul 2012 06:23:51 +0200 Subject: [PATCH 071/317] * Fix typo in locale --- data/locale/english.locale | 2 +- src/system/locals_intern.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/data/locale/english.locale b/data/locale/english.locale index 41f40afcd..2cc865d5c 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -769,7 +769,7 @@ menu.hint_infobar_filesys Show flash and HDD used space levels menu.hint_infobar_fonts Change infobar font sizes menu.hint_infobar_logo_dir Select directory to search for channels logo menu.hint_infobar_logo Logo / signal options -menu.hint_infobar_onepg Show infobar on current EPG event change +menu.hint_infobar_on_epg Show infobar on current EPG event change menu.hint_infobar_radiotext Show radiotext window menu.hint_infobar_res Show channel resolution icons menu.hint_infobar_sat Show current satellite or cable provider diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index 0e672d225..96ad2bd9b 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -797,7 +797,7 @@ const char * locale_real_names[] = "menu.hint_infobar_fonts", "menu.hint_infobar_logo", "menu.hint_infobar_logo_dir", - "menu.hint_infobar_onepg", + "menu.hint_infobar_on_epg", "menu.hint_infobar_radiotext", "menu.hint_infobar_res", "menu.hint_infobar_sat", From aa64061cec2d013a4fe2e9c1e2649a4447ce2392 Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Sun, 15 Jul 2012 20:41:29 +0200 Subject: [PATCH 072/317] - vfd_setup: re-disable vfd-stuff for zee --- src/gui/vfd_setup.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/vfd_setup.cpp b/src/gui/vfd_setup.cpp index 1e6791250..2373eae4d 100644 --- a/src/gui/vfd_setup.cpp +++ b/src/gui/vfd_setup.cpp @@ -53,7 +53,7 @@ CVfdSetup::CVfdSetup() { width = w_max (40, 10); dim_time = NULL; - vfd_enabled = true; //(cs_get_revision() != 10); + vfd_enabled = (cs_get_revision() != 10); } CVfdSetup::~CVfdSetup() From f7e8f030a00493cd6b4dca53db96995a94fb8c18 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Mon, 16 Jul 2012 11:10:39 +0400 Subject: [PATCH 073/317] locals: add hints for scan setup --- data/locale/english.locale | 172 ++++++++++++++++++++++++------------- src/system/locals.h | 172 ++++++++++++++++++++++++------------- src/system/locals_intern.h | 171 +++++++++++++++++++++++------------- 3 files changed, 333 insertions(+), 182 deletions(-) diff --git a/data/locale/english.locale b/data/locale/english.locale index 81aadf283..d13b03ebc 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -695,6 +695,15 @@ menu.hint_audio Audio output, DD\nSRS True volume options menu.hint_audio_avsync A/V sync menu.hint_audio_dd Auto-switch to DolbyDigital audio pid,\nif available menu.hint_audio_hdmi_dd DolbyDigital over HDMI: off - decoded\nauto if supported by device, force +menu.hint_audioplayer_defdir Default audioplayer directory +menu.hint_audioplayer_follow Move playlist selected pointer\nto current playing song +menu.hint_audioplayer_highprio Increase playback priority +menu.hint_audioplayer_order Change playlist sort order +menu.hint_audioplayer_playlist Show playlist items +menu.hint_audioplayer_repeat Enable playlist repeat when end of list reached +menu.hint_audioplayer_sc_metadata Enable streaming audio metadata parsing +menu.hint_audioplayer_screensaver Set screensaver timeout, in minutes +menu.hint_audioplayer_title Enable SMS-style title search in playlist menu.hint_audio_spdif_dd DolbyDigital over optical output menu.hint_audio_srs_algo Amount of control, light or normal menu.hint_audio_srs_nmgr Noise manager @@ -778,7 +787,52 @@ menu.hint_infobar_textcolor Change infobar text color menu.hint_infobar_tuner Show active tuner number icon menu.hint_info Information about image, box cpu and storage,\nstream information menu.hint_keep_numbers Keep channel numbers over next scans\nand bouquets editing +menu.hint_key_addrecord Assign button to add record timer\nfrom event list +menu.hint_key_addremind Assign button to add zap timer\nfrom event list +menu.hint_key_audio On: 'audio' button start show audio-play menu\nOff: 'audio' button show Audio selection +menu.hint_key_binding Re-define keys used for common operations +menu.hint_key_bouquetdown Assign button to switch channel list\nto previous bouquet +menu.hint_key_bouquetup Assign button to switch channel list\nto next bouquet +menu.hint_key_cancel Assign button to close GUI window +menu.hint_key_channeldown Assign button for fast switch to previous\nchannel in channel list +menu.hint_key_channellist Configure keybingdings for channel list +menu.hint_key_channel_sms If enabled, numeric buttons in channel list\nused to search channel in SMS style +menu.hint_key_channelup Assign button for fast switch to next\nchannel in channel list +menu.hint_key_hardware Change remote control type +menu.hint_key_history Assign button to show channel\nchannel switch history +menu.hint_key_lastchannel Assign button for fast zap to\nprevious channel in history +menu.hint_key_left_exit Allow return to previous menu with 'left' key +menu.hint_key_list_end Assign button to go do list end +menu.hint_key_list_start Assign button to go to list start +menu.hint_key_load Load keybindings from file +menu.hint_key_modechange Change TV/Radio mode and standby keys +menu.hint_key_movieplayer Configure keybingdings for movie player +menu.hint_key_mpaudio Assign button to show audio selection\nin record/file playback mode +menu.hint_key_mpbookmark Assign button to create bookmark\nwhile playing record +menu.hint_key_mpforward Assign button to fast forward record playback +menu.hint_key_mppause Assign button to pause record/file playback +menu.hint_key_mpplay Assign button to resume record/file playback +menu.hint_key_mpplugin Assign button to start selected plugin\nwhile playing record/file +menu.hint_key_mprewind Assign button to rewind record playback +menu.hint_key_mpstop Assign button to stop record/file playback +menu.hint_key_mptime Assign button to show play time\nleft time +menu.hint_key_mptimeshift Assign button to start timeshift +menu.hint_key_pagedown Assign button to show next items page +menu.hint_key_pageup Assign button to show previous items page +menu.hint_key_poweroff Assign button to switch power state\n (standby/deepstandby <-> running) +menu.hint_key_quickzap Configure keybingdings for quick\nchannel switch +menu.hint_key_repeatblock Delay after button press and before\nfirst key repeat +menu.hint_key_repeatblockgeneric Delay between key repeats\nwhile button pressed +menu.hint_key_right Select 'right' function in live TV/Radio mode +menu.hint_key_save Save keybindings to file +menu.hint_key_screenshot Assign button to save GUI and/or TV screenshot +menu.hint_key_sort Assign button to change channel list sort order menu.hint_keys Remote control repeat rate\nEdit key bindings +menu.hint_key_subchanneldown Assign button for fast switch\n to previous subchannel +menu.hint_key_subchannelup Assign button for fast switch\n to next subchannel +menu.hint_key_transponder Assign button to show channel list\nfor current transponder +menu.hint_key_tvradiomode Assign button to switch TV <> Radio mode +menu.hint_key_unlock Assign button to unlock box if locked\nTo unlock press 'red', then in next 5 seconds this key menu.hint_lang_pref Configure preferred audio, EPG\nand subtitle languages menu.hint_language OSD language, timezone\nPreffered audio and subtitles languages menu.hint_last_radio Start box on selected channel\nif last mode is Radio @@ -846,6 +900,9 @@ menu.hint_parentallock_changepin Change PIN code menu.hint_parentallock_lockage Select age allowed to watch menu.hint_parentallock_prompt Configure when Neutrino-HD will ask you\nfor PIN code menu.hint_personalize Enable, disable or Protect menu items\nConfigure color-buttons user menus +menu.hint_pictureviewer_defdir Default picture viewer directory +menu.hint_pictureviewer_scaling Picture scaling algorithm +menu.hint_pictureviewer_slide_time Slideshow interval, in seconds menu.hint_picview View pictures menu.hint_plugins_hdd_dir Select directory to load\nplugins from menu.hint_power_leds Configure power-button LEDs behavior @@ -884,6 +941,60 @@ menu.hint_rotor_swap Swap rotor east/west directions\nin motor control menu.hint_rounded_corners Draw round or rectangular windows corners menu.hint_saveas Save Neutrino-HD GUI settings to file menu.hint_save_settings Save all settings to flash +menu.hint_scan_autoall Scan several selected providers at once +menu.hint_scan_autoall_select Add selected satellites to scan +menu.hint_scan_auto Auto-scan selected provider +menu.hint_scan_bouquet Update: add to current bouquets, erase:\nremove old bouquets, leave: dont add or change +menu.hint_scan_cable Select cable network to scan +menu.hint_scan_commited Select commited input for\nthis satellite +menu.hint_scan_diseqcrepeat Diseqc repeat for cascaded switches +menu.hint_scan_diseqc Select diseqc switch input for\nthis satellite +menu.hint_scan_diseqctype Select your diseqc switch protocol\nwith 'advanced' you can use uncommited switches +menu.hint_scan_fast CanalDigitaal/TéléSAT/TV Vlaanderen provider scan\nWARNING: diseqc config will be overwritten +menu.hint_scan_fastprov Select provider to scan +menu.hint_scan_fasttype Select fast scan type +menu.hint_scan_fec Select transponder FEC +menu.hint_scan_femode Select second tuner connection type +menu.hint_scan_fesetup Configure tuner(s) +menu.hint_scan_fetimeout Time to wait for signal, in 1/10 of second +menu.hint_scan_freq Enter transponder frequency +menu.hint_scan_fta Add only free-to-air (not-scrambled) channels +menu.hint_scan_ladirection Select latitude direction +menu.hint_scan_latitude Enter your latitude +menu.hint_scan_lnbconfig Configure LNB parameters for this satellite +menu.hint_scan_lodirection Select longtitude direction +menu.hint_scan_lofh High banb LNB frequency +menu.hint_scan_lofl Low band LNB frequency +menu.hint_scan_lofs Band switch LNB frequency +menu.hint_scan_longtitude Enter your longtitude +menu.hint_scan_manual Manual transponder scan using\nselected parameters +menu.hint_scan_mod Select transponder modulation +menu.hint_scan_motorpos Select stored position number for\nthis satellite +menu.hint_scan_motor_speed Rotor moving speed in 1/10 degree\nper second +menu.hint_scan_nid Enter decimal network ID +menu.hint_scan_nit Add transpoders from network information +menu.hint_scan_pids Scan and save audio/video/PMT PIDs +menu.hint_scan_pol Select transponder polarization +menu.hint_scan_rate Enter transponder symbol rate +menu.hint_scan_reset_numbers Reset exising channel numbers\nand re-number channels after scan +menu.hint_scan_satadd Add satellites for this frontend +menu.hint_scan_satellite Select satellite to scan +menu.hint_scan_satenable Enable satellite for this frontend +menu.hint_scan_satfind Satellite finder: manually drive your rotor\nto setup stored positions +menu.hint_scan_satfind_start Start Satellite finder +menu.hint_scan_satscan Scan selected satellite +menu.hint_scan_satselect Select satellite +menu.hint_scan_satsetup Configure satellites options +menu.hint_scan_savesettings Save tuner config and scan settings\nAlso saved, if you start service scan +menu.hint_scan_scantype Select, which channel types to scan +menu.hint_scan_setup_fe Configure selected frontend options +menu.hint_scan_start Start scan. You can use 'exit' button to stop +menu.hint_scan_test Test signal for this transponder +menu.hint_scan_tpselect Select transponder to scan +menu.hint_scan_uncommited Select uncommited input for\nthis satellite +menu.hint_scan_usalsall Set/unset usals flag for all satellites +menu.hint_scan_usals_repeat Repeat usals move rotor commands\nif you expirience unstable rotor move +menu.hint_scan_useusals Use USALS for\nthis satellite menu.hint_scrambled_message Show scrambled message, when channel cannot be decoded menu.hint_screen_setup Configure screen margins menu.hint_screenshot_count When no GUI on screen, you can save 1-5\nscreenshot serie @@ -938,67 +1049,6 @@ menu.hint_video_scart_mode Select analog output mode for SCART connectors menu.hint_video Video output, resolution, format\nAspect ratio, fast mode switch options menu.hint_volume_pos Select volume indicator position menu.hint_zap_cycle When swithing channels, stay in current bouquet - -menu.hint_key_binding Re-define keys used for common operations -menu.hint_key_load Load keybindings from file -menu.hint_key_save Save keybindings to file -menu.hint_key_hardware Change remote control type -menu.hint_key_repeatblock Delay after button press and before\nfirst key repeat -menu.hint_key_repeatblockgeneric Delay between key repeats\nwhile button pressed -menu.hint_key_modechange Change TV/Radio mode and standby keys -menu.hint_key_channellist Configure keybingdings for channel list -menu.hint_key_quickzap Configure keybingdings for quick\nchannel switch -menu.hint_key_movieplayer Configure keybingdings for movie player -menu.hint_key_left_exit Allow return to previous menu with 'left' key -menu.hint_key_audio On: 'audio' button start show audio-play menu\nOff: 'audio' button show Audio selection -menu.hint_key_right Select 'right' function in live TV/Radio mode -menu.hint_key_tvradiomode Assign button to switch TV <> Radio mode -menu.hint_key_poweroff Assign button to switch power state\n (standby/deepstandby <-> running) -menu.hint_key_pageup Assign button to show previous items page -menu.hint_key_pagedown Assign button to show next items page -menu.hint_key_list_start Assign button to go to list start -menu.hint_key_list_end Assign button to go do list end -menu.hint_key_cancel Assign button to close GUI window -menu.hint_key_sort Assign button to change channel list sort order -menu.hint_key_addrecord Assign button to add record timer\nfrom event list -menu.hint_key_addremind Assign button to add zap timer\nfrom event list -menu.hint_key_bouquetup Assign button to switch channel list\nto next bouquet -menu.hint_key_bouquetdown Assign button to switch channel list\nto previous bouquet -menu.hint_key_transponder Assign button to show channel list\nfor current transponder -menu.hint_key_channel_sms If enabled, numeric buttons in channel list\nused to search channel in SMS style -menu.hint_key_channelup Assign button for fast switch to next\nchannel in channel list -menu.hint_key_channeldown Assign button for fast switch to previous\nchannel in channel list -menu.hint_key_subchannelup Assign button for fast switch\n to next subchannel -menu.hint_key_subchanneldown Assign button for fast switch\n to previous subchannel -menu.hint_key_history Assign button to show channel\nchannel switch history -menu.hint_key_lastchannel Assign button for fast zap to\nprevious channel in history -menu.hint_key_mprewind Assign button to rewind record playback -menu.hint_key_mpforward Assign button to fast forward record playback -menu.hint_key_mppause Assign button to pause record/file playback -menu.hint_key_mpstop Assign button to stop record/file playback -menu.hint_key_mpplay Assign button to resume record/file playback -menu.hint_key_mpaudio Assign button to show audio selection\nin record/file playback mode -menu.hint_key_mptime Assign button to show play time\nleft time -menu.hint_key_mpbookmark Assign button to create bookmark\nwhile playing record -menu.hint_key_mptimeshift Assign button to start timeshift -menu.hint_key_plugin Assign button to start selected plugin\nwhile playing record/file -menu.hint_key_unlock Assign button to unlock box if locked\nTo unlock press 'red', then in next 5 seconds this key -menu.hint_key_screenshot Assign button to save GUI and/or TV screenshot - -menu.hint_audioplayer_order Change playlist sort order -menu.hint_audioplayer_follow Move playlist selected pointer\nto current playing song -menu.hint_audioplayer_title Enable SMS-style title search in playlist -menu.hint_audioplayer_repeat Enable playlist repeat when end of list reached -menu.hint_audioplayer_playlist Show playlist items -menu.hint_audioplayer_screensaver Set screensaver timeout, in minutes -menu.hint_audioplayer_highprio Increase playback priority -menu.hint_audioplayer_defdir Default audioplayer directory -menu.hint_audioplayer_sc_metadata Enable streaming audio metadata parsing - -menu.hint_pictureviewer_scaling Picture scaling algorithm -menu.hint_pictureviewer_slide_time Slideshow interval, in seconds -menu.hint_pictureviewer_defdir Default picture viewer directory - menu.next Next (press Menu to quit) messagebox.back Back messagebox.cancel Cancel diff --git a/src/system/locals.h b/src/system/locals.h index 6687764be..142116c4d 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -722,6 +722,15 @@ typedef enum LOCALE_MENU_HINT_AUDIO_AVSYNC, LOCALE_MENU_HINT_AUDIO_DD, LOCALE_MENU_HINT_AUDIO_HDMI_DD, + LOCALE_MENU_HINT_AUDIOPLAYER_DEFDIR, + LOCALE_MENU_HINT_AUDIOPLAYER_FOLLOW, + LOCALE_MENU_HINT_AUDIOPLAYER_HIGHPRIO, + LOCALE_MENU_HINT_AUDIOPLAYER_ORDER, + LOCALE_MENU_HINT_AUDIOPLAYER_PLAYLIST, + LOCALE_MENU_HINT_AUDIOPLAYER_REPEAT, + LOCALE_MENU_HINT_AUDIOPLAYER_SC_METADATA, + LOCALE_MENU_HINT_AUDIOPLAYER_SCREENSAVER, + LOCALE_MENU_HINT_AUDIOPLAYER_TITLE, LOCALE_MENU_HINT_AUDIO_SPDIF_DD, LOCALE_MENU_HINT_AUDIO_SRS, LOCALE_MENU_HINT_AUDIO_SRS_ALGO, @@ -805,7 +814,52 @@ typedef enum LOCALE_MENU_HINT_INFOBAR_TEXTCOLOR, LOCALE_MENU_HINT_INFOBAR_TUNER, LOCALE_MENU_HINT_KEEP_NUMBERS, + LOCALE_MENU_HINT_KEY_ADDRECORD, + LOCALE_MENU_HINT_KEY_ADDREMIND, + LOCALE_MENU_HINT_KEY_AUDIO, + LOCALE_MENU_HINT_KEY_BINDING, + LOCALE_MENU_HINT_KEY_BOUQUETDOWN, + LOCALE_MENU_HINT_KEY_BOUQUETUP, + LOCALE_MENU_HINT_KEY_CANCEL, + LOCALE_MENU_HINT_KEY_CHANNELDOWN, + LOCALE_MENU_HINT_KEY_CHANNELLIST, + LOCALE_MENU_HINT_KEY_CHANNEL_SMS, + LOCALE_MENU_HINT_KEY_CHANNELUP, + LOCALE_MENU_HINT_KEY_HARDWARE, + LOCALE_MENU_HINT_KEY_HISTORY, + LOCALE_MENU_HINT_KEY_LASTCHANNEL, + LOCALE_MENU_HINT_KEY_LEFT_EXIT, + LOCALE_MENU_HINT_KEY_LIST_END, + LOCALE_MENU_HINT_KEY_LIST_START, + LOCALE_MENU_HINT_KEY_LOAD, + LOCALE_MENU_HINT_KEY_MODECHANGE, + LOCALE_MENU_HINT_KEY_MOVIEPLAYER, + LOCALE_MENU_HINT_KEY_MPAUDIO, + LOCALE_MENU_HINT_KEY_MPBOOKMARK, + LOCALE_MENU_HINT_KEY_MPFORWARD, + LOCALE_MENU_HINT_KEY_MPPAUSE, + LOCALE_MENU_HINT_KEY_MPPLAY, + LOCALE_MENU_HINT_KEY_MPPLUGIN, + LOCALE_MENU_HINT_KEY_MPREWIND, + LOCALE_MENU_HINT_KEY_MPSTOP, + LOCALE_MENU_HINT_KEY_MPTIME, + LOCALE_MENU_HINT_KEY_MPTIMESHIFT, + LOCALE_MENU_HINT_KEY_PAGEDOWN, + LOCALE_MENU_HINT_KEY_PAGEUP, + LOCALE_MENU_HINT_KEY_POWEROFF, + LOCALE_MENU_HINT_KEY_QUICKZAP, + LOCALE_MENU_HINT_KEY_REPEATBLOCK, + LOCALE_MENU_HINT_KEY_REPEATBLOCKGENERIC, + LOCALE_MENU_HINT_KEY_RIGHT, LOCALE_MENU_HINT_KEYS, + LOCALE_MENU_HINT_KEY_SAVE, + LOCALE_MENU_HINT_KEY_SCREENSHOT, + LOCALE_MENU_HINT_KEY_SORT, + LOCALE_MENU_HINT_KEY_SUBCHANNELDOWN, + LOCALE_MENU_HINT_KEY_SUBCHANNELUP, + LOCALE_MENU_HINT_KEY_TRANSPONDER, + LOCALE_MENU_HINT_KEY_TVRADIOMODE, + LOCALE_MENU_HINT_KEY_UNLOCK, LOCALE_MENU_HINT_LANG_PREF, LOCALE_MENU_HINT_LANGUAGE, LOCALE_MENU_HINT_LAST_RADIO, @@ -873,6 +927,9 @@ typedef enum LOCALE_MENU_HINT_PARENTALLOCK_LOCKAGE, LOCALE_MENU_HINT_PARENTALLOCK_PROMPT, LOCALE_MENU_HINT_PERSONALIZE, + LOCALE_MENU_HINT_PICTUREVIEWER_DEFDIR, + LOCALE_MENU_HINT_PICTUREVIEWER_SCALING, + LOCALE_MENU_HINT_PICTUREVIEWER_SLIDE_TIME, LOCALE_MENU_HINT_PICVIEW, LOCALE_MENU_HINT_PLUGINS_HDD_DIR, LOCALE_MENU_HINT_POWER_LEDS, @@ -911,6 +968,60 @@ typedef enum LOCALE_MENU_HINT_ROUNDED_CORNERS, LOCALE_MENU_HINT_SAVEAS, LOCALE_MENU_HINT_SAVE_SETTINGS, + LOCALE_MENU_HINT_SCAN_AUTO, + LOCALE_MENU_HINT_SCAN_AUTOALL, + LOCALE_MENU_HINT_SCAN_AUTOALL_SELECT, + LOCALE_MENU_HINT_SCAN_BOUQUET, + LOCALE_MENU_HINT_SCAN_CABLE, + LOCALE_MENU_HINT_SCAN_COMMITED, + LOCALE_MENU_HINT_SCAN_DISEQC, + LOCALE_MENU_HINT_SCAN_DISEQCREPEAT, + LOCALE_MENU_HINT_SCAN_DISEQCTYPE, + LOCALE_MENU_HINT_SCAN_FAST, + LOCALE_MENU_HINT_SCAN_FASTPROV, + LOCALE_MENU_HINT_SCAN_FASTTYPE, + LOCALE_MENU_HINT_SCAN_FEC, + LOCALE_MENU_HINT_SCAN_FEMODE, + LOCALE_MENU_HINT_SCAN_FESETUP, + LOCALE_MENU_HINT_SCAN_FETIMEOUT, + LOCALE_MENU_HINT_SCAN_FREQ, + LOCALE_MENU_HINT_SCAN_FTA, + LOCALE_MENU_HINT_SCAN_LADIRECTION, + LOCALE_MENU_HINT_SCAN_LATITUDE, + LOCALE_MENU_HINT_SCAN_LNBCONFIG, + LOCALE_MENU_HINT_SCAN_LODIRECTION, + LOCALE_MENU_HINT_SCAN_LOFH, + LOCALE_MENU_HINT_SCAN_LOFL, + LOCALE_MENU_HINT_SCAN_LOFS, + LOCALE_MENU_HINT_SCAN_LONGITUDE, + LOCALE_MENU_HINT_SCAN_MANUAL, + LOCALE_MENU_HINT_SCAN_MOD, + LOCALE_MENU_HINT_SCAN_MOTORPOS, + LOCALE_MENU_HINT_SCAN_MOTOR_SPEED, + LOCALE_MENU_HINT_SCAN_NID, + LOCALE_MENU_HINT_SCAN_NIT, + LOCALE_MENU_HINT_SCAN_PIDS, + LOCALE_MENU_HINT_SCAN_POL, + LOCALE_MENU_HINT_SCAN_RATE, + LOCALE_MENU_HINT_SCAN_RESET_NUMBERS, + LOCALE_MENU_HINT_SCAN_SATADD, + LOCALE_MENU_HINT_SCAN_SATELLITE, + LOCALE_MENU_HINT_SCAN_SATENABLE, + LOCALE_MENU_HINT_SCAN_SATFIND, + LOCALE_MENU_HINT_SCAN_SATFIND_START, + LOCALE_MENU_HINT_SCAN_SATSCAN, + LOCALE_MENU_HINT_SCAN_SATSELECT, + LOCALE_MENU_HINT_SCAN_SATSETUP, + LOCALE_MENU_HINT_SCAN_SAVESETTINGS, + LOCALE_MENU_HINT_SCAN_SCANTYPE, + LOCALE_MENU_HINT_SCAN_SETUP_FE, + LOCALE_MENU_HINT_SCAN_START, + LOCALE_MENU_HINT_SCAN_TEST, + LOCALE_MENU_HINT_SCAN_TPSELECT, + LOCALE_MENU_HINT_SCAN_UNCOMMITED, + LOCALE_MENU_HINT_SCAN_USALSALL, + LOCALE_MENU_HINT_SCAN_USALS_REPEAT, + LOCALE_MENU_HINT_SCAN_USEUSALS, LOCALE_MENU_HINT_SCRAMBLED_MESSAGE, LOCALE_MENU_HINT_SCREEN_SETUP, LOCALE_MENU_HINT_SCREENSHOT_COUNT, @@ -965,67 +1076,6 @@ typedef enum LOCALE_MENU_HINT_VIDEO_SCART_MODE, LOCALE_MENU_HINT_VOLUME_POS, LOCALE_MENU_HINT_ZAP_CYCLE, - - LOCALE_MENU_HINT_KEY_BINDING, - LOCALE_MENU_HINT_KEY_LOAD, - LOCALE_MENU_HINT_KEY_SAVE, - LOCALE_MENU_HINT_KEY_HARDWARE, - LOCALE_MENU_HINT_KEY_REPEATBLOCK, - LOCALE_MENU_HINT_KEY_REPEATBLOCKGENERIC, - LOCALE_MENU_HINT_KEY_MODECHANGE, - LOCALE_MENU_HINT_KEY_CHANNELLIST, - LOCALE_MENU_HINT_KEY_QUICKZAP, - LOCALE_MENU_HINT_KEY_MOVIEPLAYER, - LOCALE_MENU_HINT_KEY_LEFT_EXIT, - LOCALE_MENU_HINT_KEY_AUDIO, - LOCALE_MENU_HINT_KEY_RIGHT, - LOCALE_MENU_HINT_KEY_TVRADIOMODE, - LOCALE_MENU_HINT_KEY_POWEROFF, - LOCALE_MENU_HINT_KEY_PAGEUP, - LOCALE_MENU_HINT_KEY_PAGEDOWN, - LOCALE_MENU_HINT_KEY_LIST_START, - LOCALE_MENU_HINT_KEY_LIST_END, - LOCALE_MENU_HINT_KEY_CANCEL, - LOCALE_MENU_HINT_KEY_SORT, - LOCALE_MENU_HINT_KEY_ADDRECORD, - LOCALE_MENU_HINT_KEY_ADDREMIND, - LOCALE_MENU_HINT_KEY_BOUQUETUP, - LOCALE_MENU_HINT_KEY_BOUQUETDOWN, - LOCALE_MENU_HINT_KEY_TRANSPONDER, - LOCALE_MENU_HINT_KEY_CHANNEL_SMS, - LOCALE_MENU_HINT_KEY_CHANNELUP, - LOCALE_MENU_HINT_KEY_CHANNELDOWN, - LOCALE_MENU_HINT_KEY_SUBCHANNELUP, - LOCALE_MENU_HINT_KEY_SUBCHANNELDOWN, - LOCALE_MENU_HINT_KEY_HISTORY, - LOCALE_MENU_HINT_KEY_LASTCHANNEL, - LOCALE_MENU_HINT_KEY_MPREWIND, - LOCALE_MENU_HINT_KEY_MPFORWARD, - LOCALE_MENU_HINT_KEY_MPPAUSE, - LOCALE_MENU_HINT_KEY_MPSTOP, - LOCALE_MENU_HINT_KEY_MPPLAY, - LOCALE_MENU_HINT_KEY_MPAUDIO, - LOCALE_MENU_HINT_KEY_MPTIME, - LOCALE_MENU_HINT_KEY_MPBOOKMARK, - LOCALE_MENU_HINT_KEY_MPTIMESHIFT, - LOCALE_MENU_HINT_KEY_MPPLUGIN, - LOCALE_MENU_HINT_KEY_UNLOCK, - LOCALE_MENU_HINT_KEY_SCREENSHOT, - - LOCALE_MENU_HINT_AUDIOPLAYER_ORDER, - LOCALE_MENU_HINT_AUDIOPLAYER_FOLLOW, - LOCALE_MENU_HINT_AUDIOPLAYER_TITLE, - LOCALE_MENU_HINT_AUDIOPLAYER_REPEAT, - LOCALE_MENU_HINT_AUDIOPLAYER_PLAYLIST, - LOCALE_MENU_HINT_AUDIOPLAYER_SCREENSAVER, - LOCALE_MENU_HINT_AUDIOPLAYER_HIGHPRIO, - LOCALE_MENU_HINT_AUDIOPLAYER_DEFDIR, - LOCALE_MENU_HINT_AUDIOPLAYER_SC_METADATA, - - LOCALE_MENU_HINT_PICTUREVIEWER_SCALING, - LOCALE_MENU_HINT_PICTUREVIEWER_SLIDE_TIME, - LOCALE_MENU_HINT_PICTUREVIEWER_DEFDIR, - LOCALE_MENU_NEXT, LOCALE_MESSAGEBOX_BACK, LOCALE_MESSAGEBOX_CANCEL, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index 37c28a6f7..3aa61a6d8 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -722,6 +722,15 @@ const char * locale_real_names[] = "menu.hint_audio_avsync", "menu.hint_audio_dd", "menu.hint_audio_hdmi_dd", + "menu.hint_audioplayer_defdir", + "menu.hint_audioplayer_follow", + "menu.hint_audioplayer_highprio", + "menu.hint_audioplayer_order", + "menu.hint_audioplayer_playlist", + "menu.hint_audioplayer_repeat", + "menu.hint_audioplayer_sc_metadata", + "menu.hint_audioplayer_screensaver", + "menu.hint_audioplayer_title", "menu.hint_audio_spdif_dd", "menu.hint_audio_srs", "menu.hint_audio_srs_algo", @@ -805,7 +814,52 @@ const char * locale_real_names[] = "menu.hint_infobar_textcolor", "menu.hint_infobar_tuner", "menu.hint_keep_numbers", + "menu.hint_key_addrecord", + "menu.hint_key_addremind", + "menu.hint_key_audio", + "menu.hint_key_binding", + "menu.hint_key_bouquetdown", + "menu.hint_key_bouquetup", + "menu.hint_key_cancel", + "menu.hint_key_channeldown", + "menu.hint_key_channellist", + "menu.hint_key_channel_sms", + "menu.hint_key_channelup", + "menu.hint_key_hardware", + "menu.hint_key_history", + "menu.hint_key_lastchannel", + "menu.hint_key_left_exit", + "menu.hint_key_list_end", + "menu.hint_key_list_start", + "menu.hint_key_load", + "menu.hint_key_modechange", + "menu.hint_key_movieplayer", + "menu.hint_key_mpaudio", + "menu.hint_key_mpbookmark", + "menu.hint_key_mpforward", + "menu.hint_key_mppause", + "menu.hint_key_mpplay", + "menu.hint_key_mpplugin", + "menu.hint_key_mprewind", + "menu.hint_key_mpstop", + "menu.hint_key_mptime", + "menu.hint_key_mptimeshift", + "menu.hint_key_pagedown", + "menu.hint_key_pageup", + "menu.hint_key_poweroff", + "menu.hint_key_quickzap", + "menu.hint_key_repeatblock", + "menu.hint_key_repeatblockgeneric", + "menu.hint_key_right", "menu.hint_keys", + "menu.hint_key_save", + "menu.hint_key_screenshot", + "menu.hint_key_sort", + "menu.hint_key_subchanneldown", + "menu.hint_key_subchannelup", + "menu.hint_key_transponder", + "menu.hint_key_tvradiomode", + "menu.hint_key_unlock", "menu.hint_lang_pref", "menu.hint_language", "menu.hint_last_radio", @@ -873,6 +927,9 @@ const char * locale_real_names[] = "menu.hint_parentallock_lockage", "menu.hint_parentallock_prompt", "menu.hint_personalize", + "menu.hint_pictureviewer_defdir", + "menu.hint_pictureviewer_scaling", + "menu.hint_pictureviewer_slide_time", "menu.hint_picview", "menu.hint_plugins_hdd_dir", "menu.hint_power_leds", @@ -911,6 +968,60 @@ const char * locale_real_names[] = "menu.hint_rounded_corners", "menu.hint_saveas", "menu.hint_save_settings", + "menu.hint_scan_auto", + "menu.hint_scan_autoall", + "menu.hint_scan_autoall_select", + "menu.hint_scan_bouquet", + "menu.hint_scan_cable", + "menu.hint_scan_commited", + "menu.hint_scan_diseqc", + "menu.hint_scan_diseqcrepeat", + "menu.hint_scan_diseqctype", + "menu.hint_scan_fast", + "menu.hint_scan_fastprov", + "menu.hint_scan_fasttype", + "menu.hint_scan_fec", + "menu.hint_scan_femode", + "menu.hint_scan_fesetup", + "menu.hint_scan_fetimeout", + "menu.hint_scan_freq", + "menu.hint_scan_fta", + "menu.hint_scan_ladirection", + "menu.hint_scan_latitude", + "menu.hint_scan_lnbconfig", + "menu.hint_scan_lodirection", + "menu.hint_scan_lofh", + "menu.hint_scan_lofl", + "menu.hint_scan_lofs", + "menu.hint_scan_longtitude", + "menu.hint_scan_manual", + "menu.hint_scan_mod", + "menu.hint_scan_motorpos", + "menu.hint_scan_motor_speed", + "menu.hint_scan_nid", + "menu.hint_scan_nit", + "menu.hint_scan_pids", + "menu.hint_scan_pol", + "menu.hint_scan_rate", + "menu.hint_scan_reset_numbers", + "menu.hint_scan_satadd", + "menu.hint_scan_satellite", + "menu.hint_scan_satenable", + "menu.hint_scan_satfind", + "menu.hint_scan_satfind_start", + "menu.hint_scan_satscan", + "menu.hint_scan_satselect", + "menu.hint_scan_satsetup", + "menu.hint_scan_savesettings", + "menu.hint_scan_scantype", + "menu.hint_scan_setup_fe", + "menu.hint_scan_start", + "menu.hint_scan_test", + "menu.hint_scan_tpselect", + "menu.hint_scan_uncommited", + "menu.hint_scan_usalsall", + "menu.hint_scan_usals_repeat", + "menu.hint_scan_useusals", "menu.hint_scrambled_message", "menu.hint_screen_setup", "menu.hint_screenshot_count", @@ -965,66 +1076,6 @@ const char * locale_real_names[] = "menu.hint_video_scart_mode", "menu.hint_volume_pos", "menu.hint_zap_cycle", - - "menu.hint_key_binding", - "menu.hint_key_load", - "menu.hint_key_save", - "menu.hint_key_hardware", - "menu.hint_key_repeatblock", - "menu.hint_key_repeatblockgeneric", - "menu.hint_key_modechange", - "menu.hint_key_channellist", - "menu.hint_key_quickzap", - "menu.hint_key_movieplayer", - "menu.hint_key_left_exit", - "menu.hint_key_audio", - "menu.hint_key_right", - "menu.hint_key_tvradiomode", - "menu.hint_key_poweroff", - "menu.hint_key_pageup", - "menu.hint_key_pagedown", - "menu.hint_key_list_start", - "menu.hint_key_list_end", - "menu.hint_key_cancel", - "menu.hint_key_sort", - "menu.hint_key_addrecord", - "menu.hint_key_addremind", - "menu.hint_key_bouquetup", - "menu.hint_key_bouquetdown", - "menu.hint_key_transponder", - "menu.hint_key_channel_sms", - "menu.hint_key_channelup", - "menu.hint_key_channeldown", - "menu.hint_key_subchannelup", - "menu.hint_key_subchanneldown", - "menu.hint_key_history", - "menu.hint_key_lastchannel", - "menu.hint_key_mprewind", - "menu.hint_key_mpforward", - "menu.hint_key_mppause", - "menu.hint_key_mpstop", - "menu.hint_key_mpplay", - "menu.hint_key_mpaudio", - "menu.hint_key_mptime", - "menu.hint_key_mpbookmark", - "menu.hint_key_mptimeshift", - "menu.hint_key_plugin", - "menu.hint_key_unlock", - "menu.hint_key_screenshot", - - "menu.hint_audioplayer_order", - "menu.hint_audioplayer_follow", - "menu.hint_audioplayer_title", - "menu.hint_audioplayer_repeat", - "menu.hint_audioplayer_playlist", - "menu.hint_audioplayer_screensaver", - "menu.hint_audioplayer_highprio", - "menu.hint_audioplayer_defdir", - "menu.hint_audioplayer_sc_metadata", - "menu.hint_pictureviewer_scaling", - "menu.hint_pictureviewer_slide_time", - "menu.hint_pictureviewer_defdir", - "menu.next", "messagebox.back", "messagebox.cancel", From f599fa2e71781c8275dc3c50d6f6b5eb8f6b25a0 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Mon, 16 Jul 2012 11:11:05 +0400 Subject: [PATCH 074/317] gui/scan_setup.cpp: add hints --- src/gui/scan_setup.cpp | 238 ++++++++++++++++++++++++++++------------- src/gui/scan_setup.h | 8 -- 2 files changed, 165 insertions(+), 81 deletions(-) diff --git a/src/gui/scan_setup.cpp b/src/gui/scan_setup.cpp index af4099903..28bc1c6f9 100644 --- a/src/gui/scan_setup.cpp +++ b/src/gui/scan_setup.cpp @@ -333,6 +333,9 @@ int CScanSetup::showScanMenu() printf("[neutrino] CScanSetup call %s...\n", __FUNCTION__); int shortcut = 1; + CMenuForwarder * mf; + CMenuOptionChooser * mc; + allow_start = !CRecordManager::getInstance()->RecordingStatus() || CRecordManager::getInstance()->TimeshiftOnly(); //main @@ -343,15 +346,21 @@ int CScanSetup::showScanMenu() settings->addIntroItems(is_wizard ? NONEXISTANT_LOCALE : LOCALE_SERVICEMENU_SCANTS); //---------------------------------------------------------------------- //save scan settings - settings->addItem(new CMenuForwarder(LOCALE_MAINSETTINGS_SAVESETTINGSNOW, true, NULL, this, "save_scansettings", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED)); + mf = new CMenuForwarder(LOCALE_MAINSETTINGS_SAVESETTINGSNOW, true, NULL, this, "save_scansettings", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED); + mf->setHint("", LOCALE_MENU_HINT_SCAN_SAVESETTINGS); + settings->addItem(mf); //---------------------------------------------------------------------- settings->addItem(GenericMenuSeparatorLine); //---------------------------------------------------------------------- //service select mode - settings->addItem(new CMenuOptionChooser(LOCALE_ZAPIT_SCANTYPE, (int *)&scansettings.scanType, SCANTS_ZAPIT_SCANTYPE, SCANTS_ZAPIT_SCANTYPE_COUNT, true, NULL, CRCInput::convertDigitToKey(shortcut++), "", true)); + mc = new CMenuOptionChooser(LOCALE_ZAPIT_SCANTYPE, (int *)&scansettings.scanType, SCANTS_ZAPIT_SCANTYPE, SCANTS_ZAPIT_SCANTYPE_COUNT, true, NULL, CRCInput::convertDigitToKey(shortcut++), "", true); + mc->setHint("", LOCALE_MENU_HINT_SCAN_SCANTYPE); + settings->addItem(mc); //bouquet generate mode - settings->addItem(new CMenuOptionChooser(LOCALE_SCANTS_BOUQUET, (int *)&scansettings.bouquetMode, SCANTS_BOUQUET_OPTIONS, SCANTS_BOUQUET_OPTION_COUNT, true, NULL, CRCInput::convertDigitToKey(shortcut++), "", true)); + mc = new CMenuOptionChooser(LOCALE_SCANTS_BOUQUET, (int *)&scansettings.bouquetMode, SCANTS_BOUQUET_OPTIONS, SCANTS_BOUQUET_OPTION_COUNT, true, NULL, CRCInput::convertDigitToKey(shortcut++), "", true); + mc->setHint("", LOCALE_MENU_HINT_SCAN_BOUQUET); + settings->addItem(mc); //sat/provider selector satSelect = new CMenuOptionStringChooser(satprov_locale, scansettings.satNameNoDiseqc, true, NULL, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED, true); @@ -359,31 +368,33 @@ int CScanSetup::showScanMenu() if (r_system == DVB_S) //sat { + satSelect->setHint("", LOCALE_MENU_HINT_SCAN_SATELLITE); //settings->addItem(new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_SCANTS_PREVERENCES_RECEIVING_SYSTEM)); CMenuWidget * setupMenu = new CMenuWidget(LOCALE_SATSETUP_FE_SETUP, NEUTRINO_ICON_SETTINGS, width, MN_WIDGET_ID_SCAN_FE_SETUP); addScanMenuFrontendSetup(setupMenu); - CMenuForwarder * fsetupMenu = new CMenuDForwarder(LOCALE_SATSETUP_FE_SETUP, true, NULL, setupMenu, "", CRCInput::convertDigitToKey(shortcut++)); - settings->addItem(fsetupMenu); + mf = new CMenuDForwarder(LOCALE_SATSETUP_FE_SETUP, true, NULL, setupMenu, "", CRCInput::convertDigitToKey(shortcut++)); + mf->setHint("", LOCALE_MENU_HINT_SCAN_FESETUP); + settings->addItem(mf); /* add configured satellites to satSelect */ fillSatSelect(); } else if (r_system == DVB_C) //cable { + satSelect->setHint("", LOCALE_MENU_HINT_SCAN_CABLE); //-------------------------------------------------------------- settings->addItem(GenericMenuSeparatorLine); //-------------------------------------------------------------- fillCableSelect(); //tune timeout - settings->addItem(new CMenuOptionNumberChooser(LOCALE_EXTRA_ZAPIT_FE_TIMEOUT, (int *)&zapitCfg.feTimeout, true, 6, 100) ); + CMenuOptionNumberChooser * nc = new CMenuOptionNumberChooser(LOCALE_EXTRA_ZAPIT_FE_TIMEOUT, (int *)&zapitCfg.feTimeout, true, 6, 100); + nc->setHint("", LOCALE_MENU_HINT_SCAN_FETIMEOUT); + settings->addItem(nc); if(CFEManager::getInstance()->getFrontendCount() > 1) { femode = CFEManager::getInstance()->getMode(); - CMenuOptionChooser * mode = new CMenuOptionChooser(LOCALE_SATSETUP_FE_MODE, (int *)&femode, SATSETUP_FRONTEND_MODE, 2, true, this); - settings->addItem(mode); + mc = new CMenuOptionChooser(LOCALE_SATSETUP_FE_MODE, (int *)&femode, SATSETUP_FRONTEND_MODE, 2, true, this); + mc->setHint("", LOCALE_MENU_HINT_SCAN_FEMODE); + settings->addItem(mc); } -#if 0 - CIntInput* nid = new CIntInput(LOCALE_SATSETUP_CABLE_NID, (int&) scansettings.cable_nid, 5, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE); - settings->addItem(new CMenuDForwarder(LOCALE_SATSETUP_CABLE_NID, true, nid->getValue(), nid)); -#endif } //-------------------------------------------------------------- settings->addItem(new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_SCANTS_PREVERENCES_SCAN)); @@ -399,25 +410,32 @@ int CScanSetup::showScanMenu() /* FIXME leak, satSelect added to both auto and manual scan, so one of them cannot be deleted */ CMenuWidget * autoScan = new CMenuWidget(LOCALE_SERVICEMENU_SCANTS, NEUTRINO_ICON_SETTINGS, w/*width*/, MN_WIDGET_ID_SCAN_AUTO_SCAN); addScanMenuAutoScan(autoScan); - settings->addItem(new CMenuForwarderNonLocalized(autoscan, true, NULL, autoScan, "", CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN)); + mf = new CMenuForwarderNonLocalized(autoscan, true, NULL, autoScan, "", CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN); + mf->setHint("", LOCALE_MENU_HINT_SCAN_AUTO); + settings->addItem(mf); //manual scan CMenuWidget manualScan(LOCALE_SATSETUP_MANUAL_SCAN, NEUTRINO_ICON_SETTINGS, w/*width*/, MN_WIDGET_ID_SCAN_MANUAL_SCAN); addScanMenuManualScan(&manualScan); - settings->addItem(new CMenuForwarder(LOCALE_SATSETUP_MANUAL_SCAN, true, NULL, &manualScan, "", CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW)); + mf = new CMenuForwarder(LOCALE_SATSETUP_MANUAL_SCAN, true, NULL, &manualScan, "", CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW); + mf->setHint("", LOCALE_MENU_HINT_SCAN_MANUAL); + settings->addItem(mf); if (r_system == DVB_S) { //auto scan all CMenuWidget * autoScanAll = new CMenuWidget(LOCALE_SATSETUP_AUTO_SCAN_ALL, NEUTRINO_ICON_SETTINGS, w/*width*/, MN_WIDGET_ID_SCAN_AUTO_SCAN_ALL); addScanMenuAutoScanAll(autoScanAll); - fautoScanAll = new CMenuDForwarder(LOCALE_SATSETUP_AUTO_SCAN_ALL, true /*(dmode != NO_DISEQC)*/, NULL, autoScanAll, "", CRCInput::RC_blue, NEUTRINO_ICON_BUTTON_BLUE); + fautoScanAll = new CMenuDForwarder(LOCALE_SATSETUP_AUTO_SCAN_ALL, true /*(dmode != NO_DISEQC)*/, NULL, autoScanAll, "", CRCInput::RC_blue, NEUTRINO_ICON_BUTTON_BLUE); + fautoScanAll->setHint("", LOCALE_MENU_HINT_SCAN_AUTOALL); settings->addItem(fautoScanAll); #ifdef ENABLE_FASTSCAN //fast scan CMenuWidget * fastScanMenu = new CMenuWidget(LOCALE_SATSETUP_FASTSCAN_HEAD, NEUTRINO_ICON_SETTINGS, MN_WIDGET_ID_SCAN_FAST_SCAN); addScanMenuFastScan(fastScanMenu); - settings->addItem(new CMenuDForwarder(LOCALE_SATSETUP_FASTSCAN_HEAD, true, NULL, fastScanMenu, "", CRCInput::convertDigitToKey(shortcut++))); + mf = new CMenuDForwarder(LOCALE_SATSETUP_FASTSCAN_HEAD, true, NULL, fastScanMenu, "", CRCInput::convertDigitToKey(shortcut++)); + mf->setHint("", LOCALE_MENU_HINT_SCAN_FAST); + settings->addItem(mf); #endif /*ENABLE_FASTSCAN*/ } @@ -431,16 +449,21 @@ int CScanSetup::showScanMenu() void CScanSetup::addScanMenuFrontendSetup(CMenuWidget * setupMenu) { + CMenuForwarder * mf; int shortcut = 1; + femode = CFEManager::getInstance()->getMode(); setupMenu->addIntroItems(); int count = CFEManager::getInstance()->getFrontendCount(); - CMenuOptionChooser * mode = new CMenuOptionChooser(LOCALE_SATSETUP_FE_MODE, (int *)&femode, SATSETUP_FRONTEND_MODE, SATSETUP_FRONTEND_MODE_COUNT, allow_start && (count > 1), this, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED, true); - setupMenu->addItem(mode); - setupMenu->addItem(new CMenuOptionNumberChooser(LOCALE_EXTRA_ZAPIT_FE_TIMEOUT, (int *)&zapitCfg.feTimeout, true, 6, 100) ); + CMenuOptionChooser * mc = new CMenuOptionChooser(LOCALE_SATSETUP_FE_MODE, (int *)&femode, SATSETUP_FRONTEND_MODE, SATSETUP_FRONTEND_MODE_COUNT, allow_start && (count > 1), this, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED, true); + mc->setHint("", LOCALE_MENU_HINT_SCAN_FEMODE); + setupMenu->addItem(mc); + CMenuOptionNumberChooser * nc = new CMenuOptionNumberChooser(LOCALE_EXTRA_ZAPIT_FE_TIMEOUT, (int *)&zapitCfg.feTimeout, true, 6, 100); + nc->setHint("", LOCALE_MENU_HINT_SCAN_FETIMEOUT); + setupMenu->addItem(nc); for(int i = 0; i < count; i++) { CFrontend * fe = CFEManager::getInstance()->getFE(i); @@ -450,27 +473,38 @@ void CScanSetup::addScanMenuFrontendSetup(CMenuWidget * setupMenu) char name[255]; snprintf(name, sizeof(name), "%s %d: %s", g_Locale->getText(LOCALE_SATSETUP_FE_SETUP), i+1, fe->getInfo()->name); - CMenuForwarder * fSetup = new CMenuForwarderNonLocalized(name, ((i == 0) || (femode == CFEManager::FE_MODE_ALONE)), NULL, this, tmp, + mf = new CMenuForwarderNonLocalized(name, ((i == 0) || (femode == CFEManager::FE_MODE_ALONE)), NULL, this, tmp, (i == 0) ? CRCInput::RC_green : CRCInput::RC_yellow, (i == 0) ? NEUTRINO_ICON_BUTTON_GREEN : NEUTRINO_ICON_BUTTON_YELLOW); - setupMenu->addItem(fSetup); + mf->setHint("", LOCALE_MENU_HINT_SCAN_SETUP_FE); + setupMenu->addItem(mf); if(i != 0) - frontendSetup = fSetup; + frontendSetup = mf; } sprintf(zapit_lat, "%02.6f", zapitCfg.gotoXXLatitude); sprintf(zapit_long, "%02.6f", zapitCfg.gotoXXLongitude); setupMenu->addItem(new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_SATSETUP_EXTENDED_MOTOR)); - setupMenu->addItem(new CMenuOptionChooser(LOCALE_EXTRA_LADIRECTION, (int *)&zapitCfg.gotoXXLaDirection, OPTIONS_SOUTH0_NORTH1_OPTIONS, OPTIONS_SOUTH0_NORTH1_OPTION_COUNT, true, NULL, CRCInput::convertDigitToKey(shortcut++))); + mc = new CMenuOptionChooser(LOCALE_EXTRA_LADIRECTION, (int *)&zapitCfg.gotoXXLaDirection, OPTIONS_SOUTH0_NORTH1_OPTIONS, OPTIONS_SOUTH0_NORTH1_OPTION_COUNT, true, NULL, CRCInput::convertDigitToKey(shortcut++)); + mc->setHint("", LOCALE_MENU_HINT_SCAN_LADIRECTION); + setupMenu->addItem(mc); CStringInput * toff1 = new CStringInput(LOCALE_EXTRA_LATITUDE, (char *) zapit_lat, 10, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, "0123456789."); - setupMenu->addItem(new CMenuDForwarder(LOCALE_EXTRA_LATITUDE, true, zapit_lat, toff1, "", CRCInput::convertDigitToKey(shortcut++))); + mf = new CMenuDForwarder(LOCALE_EXTRA_LATITUDE, true, zapit_lat, toff1, "", CRCInput::convertDigitToKey(shortcut++)); + mf->setHint("", LOCALE_MENU_HINT_SCAN_LATITUDE); + setupMenu->addItem(mf); - setupMenu->addItem(new CMenuOptionChooser(LOCALE_EXTRA_LODIRECTION, (int *)&zapitCfg.gotoXXLoDirection, OPTIONS_EAST0_WEST1_OPTIONS, OPTIONS_EAST0_WEST1_OPTION_COUNT, true, NULL, CRCInput::convertDigitToKey(shortcut++))); + mc = new CMenuOptionChooser(LOCALE_EXTRA_LODIRECTION, (int *)&zapitCfg.gotoXXLoDirection, OPTIONS_EAST0_WEST1_OPTIONS, OPTIONS_EAST0_WEST1_OPTION_COUNT, true, NULL, CRCInput::convertDigitToKey(shortcut++)); + mc->setHint("", LOCALE_MENU_HINT_SCAN_LODIRECTION); + setupMenu->addItem(mc); CStringInput * toff2 = new CStringInput(LOCALE_EXTRA_LONGITUDE, (char *) zapit_long, 10, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, "0123456789."); - setupMenu->addItem(new CMenuDForwarder(LOCALE_EXTRA_LONGITUDE, true, zapit_long, toff2, "", CRCInput::convertDigitToKey(shortcut++))); + mf = new CMenuDForwarder(LOCALE_EXTRA_LONGITUDE, true, zapit_long, toff2, "", CRCInput::convertDigitToKey(shortcut++)); + mf->setHint("", LOCALE_MENU_HINT_SCAN_LONGITUDE); + setupMenu->addItem(mf); - setupMenu->addItem(new CMenuOptionNumberChooser(LOCALE_SATSETUP_USALS_REPEAT, (int *)&zapitCfg.repeatUsals, true, 0, 10, NULL, 0, 0, LOCALE_OPTIONS_OFF) ); + nc = new CMenuOptionNumberChooser(LOCALE_SATSETUP_USALS_REPEAT, (int *)&zapitCfg.repeatUsals, true, 0, 10, NULL, 0, 0, LOCALE_OPTIONS_OFF); + nc->setHint("", LOCALE_MENU_HINT_SCAN_USALS_REPEAT); + setupMenu->addItem(nc); } int CScanSetup::showFrontendSetup(int number) @@ -482,12 +516,6 @@ int CScanSetup::showFrontendSetup(int number) fenumber = number; -#if 0 - itemsForAnyDiseqc.Clear(); - itemsForAdvancedDiseqc.Clear(); - itemsForNonAdvancedDiseqc.Clear(); -#endif - CFrontend * fe = CFEManager::getInstance()->getFE(number); frontend_config_t & fe_config = fe->getConfig(); dmode = fe_config.diseqcType; @@ -499,12 +527,12 @@ int CScanSetup::showFrontendSetup(int number) setupMenu->setSelected(feselected); setupMenu->addIntroItems(); - CMenuOptionChooser * ojDiseqc = new CMenuOptionChooser(LOCALE_SATSETUP_DISEQC, (int *)&dmode, SATSETUP_DISEQC_OPTIONS, SATSETUP_DISEQC_OPTION_COUNT, allow_start, this, CRCInput::convertDigitToKey(shortcut++), "", true); - /*CMenuOptionNumberChooser * */ ojDiseqcRepeats = new CMenuOptionNumberChooser(LOCALE_SATSETUP_DISEQCREPEAT, (int *)&fe_config.diseqcRepeats, (dmode != NO_DISEQC) && (dmode != DISEQC_ADVANCED), 0, 2, NULL); + CMenuOptionChooser * mc = new CMenuOptionChooser(LOCALE_SATSETUP_DISEQC, (int *)&dmode, SATSETUP_DISEQC_OPTIONS, SATSETUP_DISEQC_OPTION_COUNT, allow_start, this, CRCInput::convertDigitToKey(shortcut++), "", true); + mc->setHint("", LOCALE_MENU_HINT_SCAN_DISEQCTYPE); + setupMenu->addItem(mc); - //itemsForAnyDiseqc.Add(ojDiseqcRepeats); - - setupMenu->addItem(ojDiseqc); + ojDiseqcRepeats = new CMenuOptionNumberChooser(LOCALE_SATSETUP_DISEQCREPEAT, (int *)&fe_config.diseqcRepeats, (dmode != NO_DISEQC) && (dmode != DISEQC_ADVANCED), 0, 2, NULL); + ojDiseqcRepeats->setHint("", LOCALE_MENU_HINT_SCAN_DISEQCREPEAT); setupMenu->addItem(ojDiseqcRepeats); CMenuWidget satToSelect(LOCALE_SATSETUP_SELECT_SAT, NEUTRINO_ICON_SETTINGS, width); @@ -514,21 +542,36 @@ int CScanSetup::showFrontendSetup(int number) for (sat_iterator_t sit = satmap.begin(); sit != satmap.end(); ++sit) { std::string satname = CServiceManager::getInstance()->GetSatelliteName(sit->first); - satToSelect.addItem(new CMenuOptionChooser(satname.c_str(), &sit->second.configured, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); + mc = new CMenuOptionChooser(satname.c_str(), &sit->second.configured, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_SCAN_SATENABLE); + satToSelect.addItem(mc); } - setupMenu->addItem(new CMenuForwarder(LOCALE_SATSETUP_SELECT_SAT, true, NULL, &satToSelect, "", CRCInput::convertDigitToKey(shortcut++))); + CMenuForwarder * mf = new CMenuForwarder(LOCALE_SATSETUP_SELECT_SAT, true, NULL, &satToSelect, "", CRCInput::convertDigitToKey(shortcut++)); + mf->setHint("", LOCALE_MENU_HINT_SCAN_SATADD); + setupMenu->addItem(mf); + //FIXME why fsatSetup not local variable ? fsatSetup = new CMenuForwarder(LOCALE_SATSETUP_SAT_SETUP, true, NULL, this, "satsetup", CRCInput::convertDigitToKey(shortcut++)); + fsatSetup->setHint("", LOCALE_MENU_HINT_SCAN_SATSETUP); setupMenu->addItem(fsatSetup); setupMenu->addItem(new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_SATSETUP_EXTENDED_MOTOR)); - setupMenu->addItem(new CMenuOptionNumberChooser(LOCALE_EXTRA_ZAPIT_MOTOR_SPEED, (int *)&fe_config.motorRotationSpeed, true, 0, 64, NULL) ); - setupMenu->addItem(new CMenuOptionChooser(LOCALE_EXTRA_ZAPIT_HVOLTAGE, (int *)&fe_config.highVoltage, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); + CMenuOptionNumberChooser * nc = new CMenuOptionNumberChooser(LOCALE_EXTRA_ZAPIT_MOTOR_SPEED, (int *)&fe_config.motorRotationSpeed, true, 0, 64, NULL); + nc->setHint("", LOCALE_MENU_HINT_SCAN_MOTOR_SPEED); + setupMenu->addItem(nc); - CMenuOptionChooser * allusals = new CMenuOptionChooser(LOCALE_SATSETUP_USE_USALS, &all_usals, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, this); - setupMenu->addItem(allusals); +#if 0 + mc = new CMenuOptionChooser(LOCALE_EXTRA_ZAPIT_HVOLTAGE, (int *)&fe_config.highVoltage, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); + setupMenu->addItem(mc); +#endif - setupMenu->addItem(new CMenuForwarder(LOCALE_MOTORCONTROL_HEAD, true, NULL, this, "satfind", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED)); + mc = new CMenuOptionChooser(LOCALE_SATSETUP_USE_USALS, &all_usals, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, this); + mc->setHint("", LOCALE_MENU_HINT_SCAN_USALSALL); + setupMenu->addItem(mc); + + mf = new CMenuForwarder(LOCALE_MOTORCONTROL_HEAD, true, NULL, this, "satfind", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED); + mf->setHint("", LOCALE_MENU_HINT_SCAN_SATFIND); + setupMenu->addItem(mf); int res = setupMenu->exec(NULL, ""); feselected = setupMenu->getSelected(); @@ -563,7 +606,6 @@ int CScanSetup::showScanMenuLnbSetup() if(!sit->second.configured) continue; - //std::string satname = it->second.name.c_str(); std::string satname = CServiceManager::getInstance()->GetSatelliteName(sit->first); //sub menu for sat settings to selectable sat item @@ -576,7 +618,11 @@ int CScanSetup::showScanMenuLnbSetup() sat_setup->addItem(new CMenuForwarderNonLocalized(satname.c_str(), true, mpos, tempsat)); } else #endif - sat_setup->addItem(new CMenuForwarderNonLocalized(satname.c_str(), true, NULL, tempsat)); + { + CMenuForwarder * mf = new CMenuForwarderNonLocalized(satname.c_str(), true, NULL, tempsat); + mf->setHint("", LOCALE_MENU_HINT_SCAN_LNBCONFIG); + sat_setup->addItem(mf); + } tmp[count] = tempsat; count++; } @@ -625,9 +671,11 @@ void CScanSetup::fillSatSelect() } satellite_map_t & satmap = CServiceManager::getInstance()->SatelliteList(); for (sat_iterator_t sit = satmap.begin(); sit != satmap.end(); sit++) { - if(satpos.find(sit->first) != satpos.end()) - satOnOff->addItem(new CMenuOptionChooser(sit->second.name.c_str(), &sit->second.use_in_scan, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true)); - else + if(satpos.find(sit->first) != satpos.end()) { + CMenuOptionChooser * mc = new CMenuOptionChooser(sit->second.name.c_str(), &sit->second.use_in_scan, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_SCAN_SATSCAN); + satOnOff->addItem(mc); + } else sit->second.use_in_scan = false; } } @@ -668,6 +716,8 @@ int CScanSetup::showScanMenuSatFind() sat_findMenu->addIntroItems(); CMenuOptionStringChooser * feSatSelect = new CMenuOptionStringChooser(satprov_locale, scansettings.satNameNoDiseqc, true, NULL, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED, true); + feSatSelect->setHint("", LOCALE_MENU_HINT_SCAN_SATSELECT); + satellite_map_t & satmap = fe->getSatellites(); bool sfound = false; std::string firstname; @@ -688,14 +738,18 @@ int CScanSetup::showScanMenuSatFind() sat_findMenu->addItem(feSatSelect); CTPSelectHandler tpSelect; - sat_findMenu->addItem(new CMenuForwarder(LOCALE_SCANTS_SELECT_TP, true, NULL, &tpSelect, "test", CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN)); + CMenuForwarder * mf = new CMenuForwarder(LOCALE_SCANTS_SELECT_TP, true, NULL, &tpSelect, "test", CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN); + mf->setHint("", LOCALE_MENU_HINT_SCAN_TPSELECT); + sat_findMenu->addItem(mf); sat_findMenu->addItem(GenericMenuSeparatorLine); //-------------------------------------------------------------- addScanOptionsItems(sat_findMenu); //-------------------------------------------------------------- sat_findMenu->addItem(GenericMenuSeparatorLine); CMotorControl mcontrol(fenumber); - sat_findMenu->addItem(new CMenuForwarder(LOCALE_MOTORCONTROL_HEAD, allow_start, NULL, &mcontrol, "", CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW)); + mf = new CMenuForwarder(LOCALE_MOTORCONTROL_HEAD, allow_start, NULL, &mcontrol, "", CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW); + mf->setHint("", LOCALE_MENU_HINT_SCAN_SATFIND_START); + sat_findMenu->addItem(mf); int res = sat_findMenu->exec(NULL, ""); delete sat_findMenu; @@ -708,23 +762,19 @@ void CScanSetup::addScanMenuTempSat(CMenuWidget *temp_sat, sat_config_t & satcon temp_sat->addIntroItems(); CMenuOptionNumberChooser *diseqc = new CMenuOptionNumberChooser(LOCALE_SATSETUP_DISEQC_INPUT, &satconfig.diseqc, ((dmode != NO_DISEQC) && (dmode != DISEQC_ADVANCED)), -1, 15, NULL, 1, -1, LOCALE_OPTIONS_OFF); + diseqc->setHint("", LOCALE_MENU_HINT_SCAN_DISEQC); CMenuOptionNumberChooser *comm = new CMenuOptionNumberChooser(LOCALE_SATSETUP_COMM_INPUT, &satconfig.commited, dmode == DISEQC_ADVANCED, -1, 15, NULL, 1, -1, LOCALE_OPTIONS_OFF); + comm->setHint("", LOCALE_MENU_HINT_SCAN_COMMITED); CMenuOptionNumberChooser *uncomm = new CMenuOptionNumberChooser(LOCALE_SATSETUP_UNCOMM_INPUT, &satconfig.uncommited, dmode == DISEQC_ADVANCED, -1, 15, NULL, 1, -1, LOCALE_OPTIONS_OFF); + uncomm->setHint("", LOCALE_MENU_HINT_SCAN_UNCOMMITED); CMenuOptionNumberChooser *motor = new CMenuOptionNumberChooser(LOCALE_SATSETUP_MOTOR_POS, &satconfig.motor_position, true /*dmode == DISEQC_ADVANCED*/, 0, 64, NULL, 0, 0, LOCALE_OPTIONS_OFF); + motor->setHint("", LOCALE_MENU_HINT_SCAN_MOTORPOS); CMenuOptionChooser *usals = new CMenuOptionChooser(LOCALE_EXTRA_USE_GOTOXX, &satconfig.use_usals, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true /*dmode == DISEQC_ADVANCED*/); + usals->setHint("", LOCALE_MENU_HINT_SCAN_USEUSALS); if(!satconfig.use_usals) all_usals = 0; -#if 0 - itemsForAnyDiseqc.Add(diseqc); - itemsForAdvancedDiseqc.Add(comm); - itemsForAdvancedDiseqc.Add(uncomm); -#endif - //FIXME testing motor without DISEQC_ADVANCED - //itemsForAdvancedDiseqc.Add(motor); - //itemsForAdvancedDiseqc.Add(usals); - CIntInput* lofL = new CIntInput(LOCALE_SATSETUP_LOFL, (int&) satconfig.lnbOffsetLow, 5, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE); CIntInput* lofH = new CIntInput(LOCALE_SATSETUP_LOFH, (int&) satconfig.lnbOffsetHigh, 5, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE); CIntInput* lofS = new CIntInput(LOCALE_SATSETUP_LOFS, (int&) satconfig.lnbSwitch, 5, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE); @@ -734,9 +784,17 @@ void CScanSetup::addScanMenuTempSat(CMenuWidget *temp_sat, sat_config_t & satcon temp_sat->addItem(uncomm); temp_sat->addItem(motor); temp_sat->addItem(usals); - temp_sat->addItem(new CMenuDForwarder(LOCALE_SATSETUP_LOFL, true, lofL->getValue(), lofL)); - temp_sat->addItem(new CMenuDForwarder(LOCALE_SATSETUP_LOFH, true, lofH->getValue(), lofH)); - temp_sat->addItem(new CMenuDForwarder(LOCALE_SATSETUP_LOFS, true, lofS->getValue(), lofS)); + + CMenuForwarder * mf = new CMenuDForwarder(LOCALE_SATSETUP_LOFL, true, lofL->getValue(), lofL); + mf->setHint("", LOCALE_MENU_HINT_SCAN_LOFL); + temp_sat->addItem(mf); + mf = new CMenuDForwarder(LOCALE_SATSETUP_LOFH, true, lofH->getValue(), lofH); + mf->setHint("", LOCALE_MENU_HINT_SCAN_LOFH); + temp_sat->addItem(mf); + + mf = new CMenuDForwarder(LOCALE_SATSETUP_LOFS, true, lofS->getValue(), lofS); + mf->setHint("", LOCALE_MENU_HINT_SCAN_LOFS); + temp_sat->addItem(mf); } //init manual scan menu @@ -744,15 +802,20 @@ void CScanSetup::addScanMenuManualScan(CMenuWidget *manual_Scan) { printf("[neutrino] CScanSetup call %s...\n", __FUNCTION__); int shortCut = 1; + CMenuForwarder * mf; manual_Scan->addIntroItems(); //---------------------------------------------------------------------- manual_Scan->addItem(satSelect); if (r_system == DVB_C) { //cable CIntInput* nid = new CIntInput(LOCALE_SATSETUP_CABLE_NID, (int&) scansettings.cable_nid, 5, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE); - manual_Scan->addItem(new CMenuDForwarder(LOCALE_SATSETUP_CABLE_NID, true, nid->getValue(), nid)); + mf = new CMenuDForwarder(LOCALE_SATSETUP_CABLE_NID, true, nid->getValue(), nid); + mf->setHint("", LOCALE_MENU_HINT_SCAN_NID); + manual_Scan->addItem(mf); } - manual_Scan->addItem(new CMenuDForwarder(LOCALE_SCANTS_SELECT_TP, true, NULL, new CTPSelectHandler()/*tpSelect*/, "test", CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN)); + mf = new CMenuDForwarder(LOCALE_SCANTS_SELECT_TP, true, NULL, new CTPSelectHandler()/*tpSelect*/, "test", CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN); + mf->setHint("", LOCALE_MENU_HINT_SCAN_TPSELECT); + manual_Scan->addItem(mf); manual_Scan->addItem(GenericMenuSeparatorLine); //---------------------------------------------------------------------- @@ -761,8 +824,13 @@ void CScanSetup::addScanMenuManualScan(CMenuWidget *manual_Scan) //---------------------------------------------------------------------- manual_Scan->addItem(GenericMenuSeparatorLine); - manual_Scan->addItem(new CMenuForwarder(LOCALE_SCANTS_TEST, allow_start, NULL, this, "test", CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW)); - manual_Scan->addItem(new CMenuForwarder(LOCALE_SCANTS_STARTNOW, allow_start, NULL, this, "manual", CRCInput::RC_blue, NEUTRINO_ICON_BUTTON_BLUE)); + mf = new CMenuForwarder(LOCALE_SCANTS_TEST, allow_start, NULL, this, "test", CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW); + mf->setHint("", LOCALE_MENU_HINT_SCAN_TEST); + manual_Scan->addItem(mf); + + mf = new CMenuForwarder(LOCALE_SCANTS_STARTNOW, allow_start, NULL, this, "manual", CRCInput::RC_blue, NEUTRINO_ICON_BUTTON_BLUE); + mf->setHint("", LOCALE_MENU_HINT_SCAN_START); + manual_Scan->addItem(mf); } //init auto scan all menu @@ -771,14 +839,18 @@ void CScanSetup::addScanMenuAutoScanAll(CMenuWidget *auto_ScanAll) printf("[neutrino] CScanSetup call %s...\n", __FUNCTION__); auto_ScanAll->addIntroItems(); //---------------------------------------------------------------------- - auto_ScanAll->addItem(new CMenuForwarder(satprov_locale, true, NULL, satOnOff, "", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED)); + CMenuForwarder * mf = new CMenuForwarder(satprov_locale, true, NULL, satOnOff, "", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED); + mf->setHint("", LOCALE_MENU_HINT_SCAN_AUTOALL_SELECT); + auto_ScanAll->addItem(mf); auto_ScanAll->addItem(GenericMenuSeparatorLine); //---------------------------------------------------------------------- addListFlagsItems(auto_ScanAll, 1); //---------------------------------------------------------------------- auto_ScanAll->addItem(GenericMenuSeparatorLine); - auto_ScanAll->addItem(new CMenuForwarder(LOCALE_SCANTS_STARTNOW, allow_start, NULL, this, "all", CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN)); + mf = new CMenuForwarder(LOCALE_SCANTS_STARTNOW, allow_start, NULL, this, "all", CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN); + mf->setHint("", LOCALE_MENU_HINT_SCAN_START); + auto_ScanAll->addItem(mf); } #ifdef ENABLE_FASTSCAN @@ -805,14 +877,18 @@ void CScanSetup::addScanMenuFastScan(CMenuWidget *fast_ScanMenu) fast_ScanMenu->addIntroItems(); CMenuOptionChooser* fastProv = new CMenuOptionChooser(LOCALE_SATSETUP_FASTSCAN_PROV, (int *)&scansettings.fast_op, FAST_SCAN_PROV_OPTIONS, FAST_SCAN_PROV_OPTIONS_COUNT, true, NULL, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED, true); + fastProv->setHint("", LOCALE_MENU_HINT_SCAN_FASTPROV); CMenuOptionChooser* fastType = new CMenuOptionChooser(LOCALE_SATSETUP_FASTSCAN_TYPE, (int *)&scansettings.fast_type, FAST_SCAN_OPTIONS, FAST_SCAN_OPTIONS_COUNT, true, NULL, CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN, true); + fastType->setHint("", LOCALE_MENU_HINT_SCAN_FASTTYPE); //---------------------------------------------------------------------- fast_ScanMenu->addItem(fastProv); fast_ScanMenu->addItem(fastType); //---------------------------------------------------------------------- fast_ScanMenu->addItem(GenericMenuSeparatorLine); - fast_ScanMenu->addItem(new CMenuForwarder(LOCALE_SCANTS_STARTNOW, allow_start, NULL, this, "fast", CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW)); + CMenuForwarder * mf = new CMenuForwarder(LOCALE_SCANTS_STARTNOW, allow_start, NULL, this, "fast", CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW); + mf->setHint("", LOCALE_MENU_HINT_SCAN_START); + fast_ScanMenu->addItem(mf); } #endif /*ENABLE_FASTSCAN*/ @@ -820,19 +896,24 @@ void CScanSetup::addScanMenuFastScan(CMenuWidget *fast_ScanMenu) void CScanSetup::addScanMenuAutoScan(CMenuWidget *auto_Scan) { printf("[neutrino] CScanSetup call %s...\n", __FUNCTION__); + CMenuForwarder * mf; auto_Scan->addIntroItems(); auto_Scan->addItem(satSelect); if (r_system == DVB_C) { //cable CIntInput* nid = new CIntInput(LOCALE_SATSETUP_CABLE_NID, (int&) scansettings.cable_nid, 5, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE); - auto_Scan->addItem(new CMenuDForwarder(LOCALE_SATSETUP_CABLE_NID, true, nid->getValue(), nid)); + mf = new CMenuDForwarder(LOCALE_SATSETUP_CABLE_NID, true, nid->getValue(), nid); + mf->setHint("", LOCALE_MENU_HINT_SCAN_NID); + auto_Scan->addItem(mf); } auto_Scan->addItem(GenericMenuSeparatorLine); //---------------------------------------------------------------------- addListFlagsItems(auto_Scan, 1); //---------------------------------------------------------------------- auto_Scan->addItem(GenericMenuSeparatorLine); - auto_Scan->addItem(new CMenuForwarder(LOCALE_SCANTS_STARTNOW, allow_start, NULL, this, "auto", CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN)); + mf = new CMenuForwarder(LOCALE_SCANTS_STARTNOW, allow_start, NULL, this, "auto", CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN); + mf->setHint("", LOCALE_MENU_HINT_SCAN_START); + auto_Scan->addItem(mf); } //create scan options items @@ -843,18 +924,23 @@ int CScanSetup::addScanOptionsItems(CMenuWidget *options_menu, const int &shortc CStringInput *freq = new CStringInput(LOCALE_EXTRA_TP_FREQ, (char *) scansettings.TP_freq, freq_length, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, "0123456789"); CMenuForwarder *Freq = new CMenuDForwarder(LOCALE_EXTRA_TP_FREQ, true, scansettings.TP_freq, freq, "", CRCInput::convertDigitToKey(shortCut++)); + Freq->setHint("", LOCALE_MENU_HINT_SCAN_FREQ); CStringInput *rate = new CStringInput(LOCALE_EXTRA_TP_RATE, (char *) scansettings.TP_rate, 8, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, "0123456789"); CMenuForwarder *Rate = new CMenuDForwarder(LOCALE_EXTRA_TP_RATE, true, scansettings.TP_rate, rate, "", CRCInput::convertDigitToKey(shortCut++)); + Rate->setHint("", LOCALE_MENU_HINT_SCAN_RATE); CMenuOptionChooser *fec = NULL; CMenuOptionChooser *mod_pol= NULL; if (r_system == DVB_S) { fec = new CMenuOptionChooser(LOCALE_EXTRA_TP_FEC, (int *)&scansettings.TP_fec, SATSETUP_SCANTP_FEC, fec_count, true, NULL, CRCInput::convertDigitToKey(shortCut++), "", true); + fec->setHint("", LOCALE_MENU_HINT_SCAN_FEC); mod_pol = new CMenuOptionChooser(LOCALE_EXTRA_TP_POL, (int *)&scansettings.TP_pol, SATSETUP_SCANTP_POL, SATSETUP_SCANTP_POL_COUNT, true, NULL, CRCInput::convertDigitToKey(shortCut++)); + mod_pol->setHint("", LOCALE_MENU_HINT_SCAN_POL); } else if (r_system == DVB_C) { mod_pol = new CMenuOptionChooser(LOCALE_EXTRA_TP_MOD, (int *)&scansettings.TP_mod, SATSETUP_SCANTP_MOD, SATSETUP_SCANTP_MOD_COUNT, true, NULL, CRCInput::convertDigitToKey(shortCut++)); + mod_pol->setHint("", LOCALE_MENU_HINT_SCAN_MOD); } options_menu->addItem(Freq); @@ -878,14 +964,20 @@ int CScanSetup::addListFlagsItems(CMenuWidget *listflags_menu, const int &shortc else useNit = new CMenuOptionChooser(LOCALE_SATSETUP_USE_NIT, (int *)&scansettings.scan_nit, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, NULL, CRCInput::convertDigitToKey(shortCut++)); + useNit->setHint("", LOCALE_MENU_HINT_SCAN_NIT); + CMenuOptionChooser *ftaFlag = new CMenuOptionChooser(LOCALE_SATSETUP_USE_FTA_FLAG, (int *)&scansettings.scan_fta_flag, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, NULL, CRCInput::convertDigitToKey(shortCut++)); + ftaFlag->setHint("", LOCALE_MENU_HINT_SCAN_FTA); + CMenuOptionChooser *scanPid = new CMenuOptionChooser(LOCALE_EXTRA_ZAPIT_SCANPIDS, &zapitCfg.scanPids, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, NULL, CRCInput::convertDigitToKey(shortCut++)); + scanPid->setHint("", LOCALE_MENU_HINT_SCAN_PIDS); listflags_menu->addItem(useNit); listflags_menu->addItem(ftaFlag); listflags_menu->addItem(scanPid); CMenuOptionChooser *resetNum = new CMenuOptionChooser(LOCALE_SATSETUP_RESET_NUMBERS, (int *)&scansettings.scan_reset_numbers, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, NULL, CRCInput::convertDigitToKey(shortCut++)); + resetNum->setHint("", LOCALE_MENU_HINT_SCAN_RESET_NUMBERS); listflags_menu->addItem(resetNum); #if 0 // testing CMenuOptionChooser *useBat = new CMenuOptionChooser(LOCALE_SATSETUP_USE_BAT, (int *)&scansettings.scan_bat, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, NULL, CRCInput::convertDigitToKey(shortCut++)); diff --git a/src/gui/scan_setup.h b/src/gui/scan_setup.h index ea038ddd0..7fb75c6df 100644 --- a/src/gui/scan_setup.h +++ b/src/gui/scan_setup.h @@ -58,12 +58,6 @@ class CScanSetup : public CMenuTarget, public CChangeObserver CMenuForwarder *fsatSetup; CMenuOptionNumberChooser * ojDiseqcRepeats; - /* dynamic frontend items to be enabled/disabled in notify */ -#if 0 - CGenericMenuActivate itemsForAdvancedDiseqc; - CGenericMenuActivate itemsForNonAdvancedDiseqc; - CGenericMenuActivate itemsForAnyDiseqc; -#endif /* variables for selected frontend */ /* diseqc mode */ int dmode; @@ -130,6 +124,4 @@ class CTPSelectHandler : public CMenuTarget //CScanSetup public: int exec(CMenuTarget* parent, const std::string &actionkey); }; - - #endif From 831d6f2a823b6dc1af23cf01e96c6e3594b7cbc3 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Mon, 16 Jul 2012 13:47:11 +0400 Subject: [PATCH 075/317] english.locale: replace LAME with exit --- data/locale/english.locale | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/locale/english.locale b/data/locale/english.locale index 0b9714c43..141b18514 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -577,7 +577,7 @@ infoviewer.subchan_infobar Full infobar infoviewer.subservice Subservices infoviewer.waittime Waiting for time... ipsetup.hint_1 Use 0..9, or use Up/Down, -ipsetup.hint_2 OK saves, LAME! aborts +ipsetup.hint_2 OK saves, Exit aborts keybindingmenu.addrecord add record timer keybindingmenu.addremind add zapto timer keybindingmenu.allchannels_on_ok all-services From 96cb49b4feb64a56d024c3e0a0cc735def00c868 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Mon, 16 Jul 2012 13:47:35 +0400 Subject: [PATCH 076/317] gui/widget/stringinput_ext.cpp: fix size with hints, fix screen position --- src/gui/widget/stringinput_ext.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/gui/widget/stringinput_ext.cpp b/src/gui/widget/stringinput_ext.cpp index ffb5e9ccd..2f80729bc 100644 --- a/src/gui/widget/stringinput_ext.cpp +++ b/src/gui/widget/stringinput_ext.cpp @@ -116,13 +116,21 @@ void CExtendedInput::calculateDialog() hintPosY = height -10; - if (hint_1 != NONEXISTANT_LOCALE) + if (hint_1 != NONEXISTANT_LOCALE) { height += iheight; - if (hint_2 != NONEXISTANT_LOCALE) + int hw = g_Font[SNeutrinoSettings::FONT_TYPE_MENU_INFO]->getRenderWidth(g_Locale->getText(hint_1), true); + if(width < hw + 40) + width = hw + 40; + } + if (hint_2 != NONEXISTANT_LOCALE) { height += iheight; + int hw = g_Font[SNeutrinoSettings::FONT_TYPE_MENU_INFO]->getRenderWidth(g_Locale->getText(hint_2), true); + if(width < hw) + width = hw; + } - x = ((frameBuffer->getScreenWidth() - width)>>1); - y = ((frameBuffer->getScreenHeight() - height)>>1); + x = frameBuffer->getScreenX() + ((frameBuffer->getScreenWidth() - width)>>1); + y = frameBuffer->getScreenY() + ((frameBuffer->getScreenHeight() - height)>>1); hintPosY += y; } From e02258276ea51a56247e27b6f851eb12246104c1 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Mon, 16 Jul 2012 14:33:22 +0400 Subject: [PATCH 077/317] gui/widget/menue.cpp: fix menu_left_exit option; remove can_arrow member - isMenueOptionChooser() is enough --- src/gui/widget/menue.cpp | 23 ++++++++--------------- src/gui/widget/menue.h | 1 - 2 files changed, 8 insertions(+), 16 deletions(-) diff --git a/src/gui/widget/menue.cpp b/src/gui/widget/menue.cpp index b259136d5..94c0f17da 100644 --- a/src/gui/widget/menue.cpp +++ b/src/gui/widget/menue.cpp @@ -61,7 +61,6 @@ CMenuItem::CMenuItem() directKey = CRCInput::RC_nokey; iconName = ""; iconName_Info_right = ""; - can_arrow = false; used = false; icon_frame_w = 10; hint = NONEXISTANT_LOCALE; @@ -509,7 +508,7 @@ int CMenuWidget::exec(CMenuTarget* parent, const std::string &) do { if(hasItem() && selected >= 0 && (int)items.size() > selected ) - bAllowRepeatLR = items[selected]->can_arrow; + bAllowRepeatLR = items[selected]->isMenueOptionChooser(); //can_arrow; g_RCInput->getMsgAbsoluteTimeout(&msg, &data, &timeoutEnd, bAllowRepeatLR); @@ -643,12 +642,13 @@ int CMenuWidget::exec(CMenuTarget* parent, const std::string &) break; case (CRCInput::RC_left): { - CMenuItem* itemX = items[selected]; - int menu_left_exit = (itemX->isMenueOptionChooser() == 1) ? 0 : g_settings.menu_left_exit; - if ((hasItem() && (selected < 0 || !items[selected]->can_arrow)) || - menu_left_exit) { - msg = CRCInput::RC_timeout; - break; + if(hasItem() && selected > -1 && (int)items.size() > selected) { + CMenuItem* itemX = items[selected]; + if (!itemX->isMenueOptionChooser()) { + if (g_settings.menu_left_exit) + msg = CRCInput::RC_timeout; + break; + } } } case (CRCInput::RC_right): @@ -1224,7 +1224,6 @@ CMenuOptionNumberChooser::CMenuOptionNumberChooser(const neutrino_locale_t name, localized_value_name = special_value_name; optionString = non_localized_name; - can_arrow = true; observ = Observ; slider_on = sliderOn; } @@ -1288,7 +1287,6 @@ CMenuOptionChooser::CMenuOptionChooser(const neutrino_locale_t OptionName, int * observ = Observ; directKey = DirectKey; iconName = IconName; - can_arrow = true; pulldown = Pulldown; for (unsigned int i = 0; i < number_of_options; i++) { @@ -1311,7 +1309,6 @@ CMenuOptionChooser::CMenuOptionChooser(const char* OptionName, int * const Optio observ = Observ; directKey = DirectKey; iconName = IconName; - can_arrow = true; pulldown = Pulldown; for (unsigned int i = 0; i < number_of_options; i++) { @@ -1336,7 +1333,6 @@ CMenuOptionChooser::CMenuOptionChooser(const neutrino_locale_t OptionName, int * observ = Observ; directKey = DirectKey; iconName = IconName; - can_arrow = true; pulldown = Pulldown; for (unsigned int i = 0; i < number_of_options; i++) options.push_back(Options[i]); @@ -1355,7 +1351,6 @@ CMenuOptionChooser::CMenuOptionChooser(const char* OptionName, int * const Optio observ = Observ; directKey = DirectKey; iconName = IconName; - can_arrow = true; pulldown = Pulldown; for (unsigned int i = 0; i < number_of_options; i++) options.push_back(Options[i]); @@ -1515,7 +1510,6 @@ CMenuOptionStringChooser::CMenuOptionStringChooser(const neutrino_locale_t Optio directKey = DirectKey; iconName = IconName; - can_arrow = true; pulldown = Pulldown; } @@ -1530,7 +1524,6 @@ CMenuOptionStringChooser::CMenuOptionStringChooser(const char* OptionName, char* directKey = DirectKey; iconName = IconName; - can_arrow = true; pulldown = Pulldown; } diff --git a/src/gui/widget/menue.h b/src/gui/widget/menue.h index 6b681b9be..dfb4f3730 100644 --- a/src/gui/widget/menue.h +++ b/src/gui/widget/menue.h @@ -93,7 +93,6 @@ class CMenuItem bool active; neutrino_msg_t directKey; neutrino_msg_t msg; - bool can_arrow; std::string iconName; std::string selected_iconName; std::string iconName_Info_right; From a2ff6f7675edc31909fc7f56fd7aff864734ac4d Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Mon, 16 Jul 2012 15:26:54 +0400 Subject: [PATCH 078/317] gui/widget/menue.cpp: fix hint box height calc --- src/gui/widget/menue.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/widget/menue.cpp b/src/gui/widget/menue.cpp index 94c0f17da..0dc3b0f4f 100644 --- a/src/gui/widget/menue.cpp +++ b/src/gui/widget/menue.cpp @@ -787,7 +787,7 @@ void CMenuWidget::calcSize() } hint_height = 0; if(g_settings.show_menu_hints && has_hints) { - int fheight = g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->getHeight(); + int fheight = g_Font[SNeutrinoSettings::FONT_TYPE_MENU_HINT]->getHeight(); hint_height = 10 + 2*fheight; /* assuming all hint icons has the same size ! */ int iw, ih; From ab69ee272f6121952496a4aeb967b3bcfe070bc6 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Mon, 16 Jul 2012 16:13:51 +0400 Subject: [PATCH 079/317] gui/widget/menue.cpp: fix screen save/restore; use RADIUS_LARGE (without -2) --- src/gui/widget/menue.cpp | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/gui/widget/menue.cpp b/src/gui/widget/menue.cpp index 0dc3b0f4f..f88a50752 100644 --- a/src/gui/widget/menue.cpp +++ b/src/gui/widget/menue.cpp @@ -43,6 +43,8 @@ #include +#define ConnectLineBox_Width 16 + /* the following generic menu items are integrated into multiple menus at the same time */ CMenuSeparator CGenericMenuSeparator; CMenuSeparator CGenericMenuSeparatorLine(CMenuSeparator::LINE); @@ -758,6 +760,7 @@ void CMenuWidget::hide() /* setActive() paints item for hidden parent menu, if called from child menu */ for (unsigned int count = 0; count < items.size(); count++) items[count]->init(-1, 0, 0, 0); + hint_painted = false; } void CMenuWidget::calcSize() @@ -856,8 +859,8 @@ void CMenuWidget::calcSize() if(total_pages > 1) sb_width=15; - full_width = width+sb_width+SHADOW_OFFSET; - full_height = height+RADIUS_LARGE-2+SHADOW_OFFSET+hint_height; + full_width = ConnectLineBox_Width+width+sb_width+SHADOW_OFFSET; + full_height = height+RADIUS_LARGE+SHADOW_OFFSET*2+hint_height; setMenuPos(width - sb_width); } @@ -883,10 +886,9 @@ void CMenuWidget::paint() } #endif //paint shadow and backround - int rad = RADIUS_LARGE-2; - frameBuffer->paintBoxRel(x+SHADOW_OFFSET ,y + SHADOW_OFFSET ,width + sb_width ,height + rad ,COL_MENUCONTENTDARK_PLUS_0 ,rad); - frameBuffer->paintBoxRel(x ,y ,width + sb_width ,height + rad ,COL_MENUCONTENT_PLUS_0 ,rad); - frameBuffer->paintBoxRel(x ,y ,width + sb_width ,hheight ,COL_MENUHEAD_PLUS_0 ,rad, CORNER_TOP); + frameBuffer->paintBoxRel(x+SHADOW_OFFSET ,y + SHADOW_OFFSET ,width + sb_width ,height + RADIUS_LARGE ,COL_MENUCONTENTDARK_PLUS_0 ,RADIUS_LARGE); + frameBuffer->paintBoxRel(x ,y ,width + sb_width ,height + RADIUS_LARGE ,COL_MENUCONTENT_PLUS_0 ,RADIUS_LARGE); + frameBuffer->paintBoxRel(x ,y ,width + sb_width ,hheight ,COL_MENUHEAD_PLUS_0 ,RADIUS_LARGE, CORNER_TOP); //paint menu head int HeadiconOffset = 0; @@ -1030,14 +1032,14 @@ void CMenuWidget::saveScreen() background = new fb_pixel_t [full_width * full_height]; if(background) - frameBuffer->SaveScreen(x, y, full_width, full_height, background); + frameBuffer->SaveScreen(x-ConnectLineBox_Width, y, full_width, full_height, background); } void CMenuWidget::restoreScreen() { if(background) { if(savescreen) - frameBuffer->RestoreScreen(x, y, full_width, full_height, background); + frameBuffer->RestoreScreen(x-ConnectLineBox_Width, y, full_width, full_height, background); #if 0 delete[] background; background = NULL; @@ -1056,7 +1058,6 @@ void CMenuWidget::enableSaveScreen(bool enable) void CMenuWidget::paintHint(int pos) { -#define ConnectLineBox_Width 16 if (!g_settings.show_menu_hints) return; From 9c3f281445ecac41949730695306ab5ea607b206 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Mon, 16 Jul 2012 16:23:24 +0400 Subject: [PATCH 080/317] gui/osd_setup.cpp: in channel context menu->fonts use cancel button --- src/gui/osd_setup.cpp | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/gui/osd_setup.cpp b/src/gui/osd_setup.cpp index e92aed116..c92b949f8 100644 --- a/src/gui/osd_setup.cpp +++ b/src/gui/osd_setup.cpp @@ -881,15 +881,11 @@ int COsdSetup::showContextChanlistMenu() menu_chanlist->addItem(new CMenuOptionChooser(LOCALE_CHANNELLIST_FOOT, &g_settings.channellist_foot, CHANNELLIST_FOOT_OPTIONS, CHANNELLIST_FOOT_OPTIONS_COUNT, true)); menu_chanlist->addItem(new CMenuOptionChooser(LOCALE_MISCSETTINGS_CHANNELLIST_COLORED_EVENTS, &g_settings.colored_events_channellist, OPTIONS_COLORED_EVENTS_OPTIONS, OPTIONS_COLORED_EVENTS_OPTION_COUNT, true)); - /* TODO ? problems: - * 1. channel list not re-calc sizes after menu; - * 2. font menu smaller and make hole in channel list */ -#if 1 CMenuWidget *fontSettingsSubMenu = new CMenuWidget(LOCALE_FONTMENU_HEAD, NEUTRINO_ICON_KEYBINDING); fontSettingsSubMenu->enableSaveScreen(true); int i = 1; - fontSettingsSubMenu->addIntroItems(font_sizes_groups[i].groupname); + fontSettingsSubMenu->addIntroItems(font_sizes_groups[i].groupname, NONEXISTANT_LOCALE, CMenuWidget::BTN_TYPE_CANCEL); for (unsigned int j = 0; j < font_sizes_groups[i].count; j++) { @@ -898,7 +894,6 @@ int COsdSetup::showContextChanlistMenu() fontSettingsSubMenu->addItem(GenericMenuSeparatorLine); fontSettingsSubMenu->addItem(new CMenuForwarder(LOCALE_OPTIONS_DEFAULT, true, NULL, this, font_sizes_groups[i].actionkey)); menu_chanlist->addItem(new CMenuDForwarder(LOCALE_FONTMENU_HEAD, true, NULL, fontSettingsSubMenu, "", CRCInput::convertDigitToKey(0))); -#endif int res = menu_chanlist->exec(NULL, ""); cselected = menu_chanlist->getSelected(); From 5fabe3d425a6500d6fe1d77fd7a24eb97f451e98 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Mon, 16 Jul 2012 17:18:41 +0400 Subject: [PATCH 081/317] gui/bouquetlist.cpp: dont repaint, if mode not changed --- src/gui/bouquetlist.cpp | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/gui/bouquetlist.cpp b/src/gui/bouquetlist.cpp index 0a0f3134d..c433ffad4 100644 --- a/src/gui/bouquetlist.cpp +++ b/src/gui/bouquetlist.cpp @@ -363,21 +363,25 @@ int CBouquetList::show(bool bShowChannelList) loop=false; } else if(msg == CRCInput::RC_red || msg == CRCInput::RC_favorites) { - CNeutrinoApp::getInstance()->SetChannelMode(LIST_MODE_FAV); - hide(); - return -3; + if (CNeutrinoApp::getInstance()->GetChannelMode() != LIST_MODE_FAV) { + CNeutrinoApp::getInstance()->SetChannelMode(LIST_MODE_FAV); + hide(); + return -3; + } } else if(msg == CRCInput::RC_green) { - CNeutrinoApp::getInstance()->SetChannelMode(LIST_MODE_PROV); - hide(); - return -3; + if (CNeutrinoApp::getInstance()->GetChannelMode() != LIST_MODE_PROV) { + CNeutrinoApp::getInstance()->SetChannelMode(LIST_MODE_PROV); + hide(); + return -3; + } } else if(msg == CRCInput::RC_yellow || msg == CRCInput::RC_sat) { - if(bShowChannelList) { + if(bShowChannelList && CNeutrinoApp::getInstance()->GetChannelMode() != LIST_MODE_SAT) { CNeutrinoApp::getInstance()->SetChannelMode(LIST_MODE_SAT); hide(); return -3; } } else if(msg == CRCInput::RC_blue) { - if(bShowChannelList) { + if(bShowChannelList && CNeutrinoApp::getInstance()->GetChannelMode() != LIST_MODE_ALL) { CNeutrinoApp::getInstance()->SetChannelMode(LIST_MODE_ALL); hide(); return -3; From 3b0dec611c182fcb6ab54e7e4910629a2767e310 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Mon, 16 Jul 2012 19:05:35 +0400 Subject: [PATCH 082/317] gui/osd_setup.cpp: fix channel list menu, if fade enabled --- src/gui/osd_setup.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gui/osd_setup.cpp b/src/gui/osd_setup.cpp index c92b949f8..4ec89e270 100644 --- a/src/gui/osd_setup.cpp +++ b/src/gui/osd_setup.cpp @@ -872,6 +872,7 @@ int COsdSetup::showContextChanlistMenu() CMenuWidget * menu_chanlist = new CMenuWidget(LOCALE_MAINMENU_SETTINGS, NEUTRINO_ICON_SETTINGS, width); menu_chanlist->enableSaveScreen(true); + menu_chanlist->enableFade(false); menu_chanlist->setSelected(cselected); menu_chanlist->addIntroItems(LOCALE_MISCSETTINGS_CHANNELLIST, NONEXISTANT_LOCALE, CMenuWidget::BTN_TYPE_CANCEL); @@ -883,6 +884,7 @@ int COsdSetup::showContextChanlistMenu() CMenuWidget *fontSettingsSubMenu = new CMenuWidget(LOCALE_FONTMENU_HEAD, NEUTRINO_ICON_KEYBINDING); fontSettingsSubMenu->enableSaveScreen(true); + fontSettingsSubMenu->enableFade(false); int i = 1; fontSettingsSubMenu->addIntroItems(font_sizes_groups[i].groupname, NONEXISTANT_LOCALE, CMenuWidget::BTN_TYPE_CANCEL); From eb5b8328ec6d172d16cbe6954a5be3b659cc7e12 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Mon, 16 Jul 2012 19:11:17 +0400 Subject: [PATCH 083/317] gui/widget/menue.cpp: fade-in, if menu was hidden, for testing --- src/gui/widget/menue.cpp | 4 ++++ src/gui/widget/menue.h | 1 + 2 files changed, 5 insertions(+) diff --git a/src/gui/widget/menue.cpp b/src/gui/widget/menue.cpp index f88a50752..12e88ee89 100644 --- a/src/gui/widget/menue.cpp +++ b/src/gui/widget/menue.cpp @@ -670,6 +670,8 @@ int CMenuWidget::exec(CMenuTarget* parent, const std::string &) break; case menu_return::RETURN_REPAINT: case menu_return::RETURN_EXIT_REPAINT: + if (fade && washidden) + fader.StartFadeIn(); paint(); break; } @@ -761,6 +763,7 @@ void CMenuWidget::hide() for (unsigned int count = 0; count < items.size(); count++) items[count]->init(-1, 0, 0, 0); hint_painted = false; + washidden = true; } void CMenuWidget::calcSize() @@ -903,6 +906,7 @@ void CMenuWidget::paint() item_start_y = y+hheight; paintItems(); + washidden = false; } void CMenuWidget::setMenuPos(const int& menu_width) diff --git a/src/gui/widget/menue.h b/src/gui/widget/menue.h index dfb4f3730..4b3c0e15f 100644 --- a/src/gui/widget/menue.h +++ b/src/gui/widget/menue.h @@ -454,6 +454,7 @@ class CMenuWidget : public CMenuTarget bool exit_pressed; bool from_wizard; bool fade; + bool washidden; void Init(const std::string & Icon, const int mwidth, const mn_widget_id_t &w_index); virtual void paintItems(); From 52834d73fb7b010cbb964b976a6592acf039d1bb Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Mon, 16 Jul 2012 20:56:52 +0400 Subject: [PATCH 084/317] gui/widget/menue.cpp: remove one indent level in CMenuWidget::exec --- src/gui/widget/menue.cpp | 339 ++++++++++++++++++++------------------- 1 file changed, 170 insertions(+), 169 deletions(-) diff --git a/src/gui/widget/menue.cpp b/src/gui/widget/menue.cpp index 12e88ee89..bae578b30 100644 --- a/src/gui/widget/menue.cpp +++ b/src/gui/widget/menue.cpp @@ -534,69 +534,49 @@ int CMenuWidget::exec(CMenuTarget* parent, const std::string &) } } - if (!handled) { - switch (msg) { - case (NeutrinoMessages::EVT_TIMER): - if(data == fader.GetTimer()) { - if(fader.Fade()) - msg = CRCInput::RC_timeout; - } else { - if ( CNeutrinoApp::getInstance()->handleMsg( msg, data ) & messages_return::cancel_all ) { - retval = menu_return::RETURN_EXIT_ALL; - msg = CRCInput::RC_timeout; - } + if (handled) + continue; + + switch (msg) { + case (NeutrinoMessages::EVT_TIMER): + if(data == fader.GetTimer()) { + if(fader.Fade()) + msg = CRCInput::RC_timeout; + } else { + if ( CNeutrinoApp::getInstance()->handleMsg( msg, data ) & messages_return::cancel_all ) { + retval = menu_return::RETURN_EXIT_ALL; + msg = CRCInput::RC_timeout; } - break; - case (CRCInput::RC_page_up) : - case (CRCInput::RC_page_down) : - if(msg==CRCInput::RC_page_up) { - if(current_page) { - pos = (int) page_start[current_page] - 1; - for (unsigned int count=pos ; count > 0; count--) { - CMenuItem* item = items[pos]; - if ( item->isSelectable() ) { - if ((pos < (int)page_start[current_page + 1]) && (pos >= (int)page_start[current_page])) { - items[selected]->paint( false ); - item->paint( true ); - selected = pos; - } else { - selected=pos; - paintItems(); - } - break; - } - pos--; - } - } else { - pos = 0; - for (unsigned int count=0; count < items.size(); count++) { - CMenuItem* item = items[pos]; - if ( item->isSelectable() ) { - if ((pos < (int)page_start[current_page + 1]) && (pos >= (int)page_start[current_page])) { - items[selected]->paint( false ); - item->paint( true ); - selected = pos; - } else { - selected=pos; - paintItems(); - } - break; - } - pos++; - } - } - } - else if(msg==CRCInput::RC_page_down) { - pos = (int) page_start[current_page + 1];// - 1; - if(pos >= (int) items.size()) - pos = items.size()-1; - for (unsigned int count=pos ; count < items.size(); count++) { + } + break; + case (CRCInput::RC_page_up) : + case (CRCInput::RC_page_down) : + if(msg==CRCInput::RC_page_up) { + if(current_page) { + pos = (int) page_start[current_page] - 1; + for (unsigned int count=pos ; count > 0; count--) { + CMenuItem* item = items[pos]; + if ( item->isSelectable() ) { + if ((pos < (int)page_start[current_page + 1]) && (pos >= (int)page_start[current_page])) { + items[selected]->paint( false ); + item->paint( true ); + selected = pos; + } else { + selected=pos; + paintItems(); + } + break; + } + pos--; + } + } else { + pos = 0; + for (unsigned int count=0; count < items.size(); count++) { CMenuItem* item = items[pos]; if ( item->isSelectable() ) { if ((pos < (int)page_start[current_page + 1]) && (pos >= (int)page_start[current_page])) { items[selected]->paint( false ); item->paint( true ); - paintHint(pos); selected = pos; } else { selected=pos; @@ -607,122 +587,143 @@ int CMenuWidget::exec(CMenuTarget* parent, const std::string &) pos++; } } - break; - case (CRCInput::RC_up) : - case (CRCInput::RC_down) : - { - //search next / prev selectable item - for (unsigned int count=1; count< items.size(); count++) { - if (msg==CRCInput::RC_up) { - pos = selected - count; - if ( pos < 0 ) - pos += items.size(); - } - else if(msg==CRCInput::RC_down) { - pos = (selected+ count)%items.size(); - } - - CMenuItem* item = items[pos]; - - if ( item->isSelectable() ) { - if ((pos < (int)page_start[current_page + 1]) && (pos >= (int)page_start[current_page])) - { // Item is currently on screen - //clear prev. selected - items[selected]->paint( false ); - //select new - item->paint( true ); - paintHint(pos); - selected = pos; - } else { - selected=pos; - paintItems(); - } - break; - } - } - } - break; - case (CRCInput::RC_left): - { - if(hasItem() && selected > -1 && (int)items.size() > selected) { - CMenuItem* itemX = items[selected]; - if (!itemX->isMenueOptionChooser()) { - if (g_settings.menu_left_exit) - msg = CRCInput::RC_timeout; - break; - } - } - } - case (CRCInput::RC_right): - case (CRCInput::RC_ok): - { - if(hasItem() && selected > -1 && (int)items.size() > selected) { - //exec this item... - CMenuItem* item = items[selected]; - item->msg = msg; - fader.Stop(); - int rv = item->exec( this ); - switch ( rv ) { - case menu_return::RETURN_EXIT_ALL: - retval = menu_return::RETURN_EXIT_ALL; - case menu_return::RETURN_EXIT: - msg = CRCInput::RC_timeout; - break; - case menu_return::RETURN_REPAINT: - case menu_return::RETURN_EXIT_REPAINT: - if (fade && washidden) - fader.StartFadeIn(); - paint(); - break; - } - } else - msg = CRCInput::RC_timeout; - } - break; - - case (CRCInput::RC_home): - exit_pressed = true; - msg = CRCInput::RC_timeout; - break; - case (CRCInput::RC_timeout): - break; - - case (CRCInput::RC_sat): - case (CRCInput::RC_favorites): - g_RCInput->postMsg (msg, 0); - //close any menue on dbox-key - case (CRCInput::RC_setup): - { - msg = CRCInput::RC_timeout; - retval = menu_return::RETURN_EXIT_ALL; - } - break; - case (CRCInput::RC_help): - hide(); - g_settings.show_menu_hints = !g_settings.show_menu_hints; - paint(); - break; - - default: - if ( CNeutrinoApp::getInstance()->handleMsg( msg, data ) & messages_return::cancel_all ) { - retval = menu_return::RETURN_EXIT_ALL; - msg = CRCInput::RC_timeout; - } - } - if(msg == CRCInput::RC_timeout) { - if(fade && fader.StartFadeOut()) { - timeoutEnd = CRCInput::calcTimeoutEnd( 1 ); - msg = 0; - continue; } - } + else if(msg==CRCInput::RC_page_down) { + pos = (int) page_start[current_page + 1];// - 1; + if(pos >= (int) items.size()) + pos = items.size()-1; + for (unsigned int count=pos ; count < items.size(); count++) { + CMenuItem* item = items[pos]; + if ( item->isSelectable() ) { + if ((pos < (int)page_start[current_page + 1]) && (pos >= (int)page_start[current_page])) { + items[selected]->paint( false ); + item->paint( true ); + paintHint(pos); + selected = pos; + } else { + selected=pos; + paintItems(); + } + break; + } + pos++; + } + } + break; + case (CRCInput::RC_up) : + case (CRCInput::RC_down) : + { + //search next / prev selectable item + for (unsigned int count=1; count< items.size(); count++) { + if (msg==CRCInput::RC_up) { + pos = selected - count; + if ( pos < 0 ) + pos += items.size(); + } + else if(msg==CRCInput::RC_down) { + pos = (selected+ count)%items.size(); + } - if ( msg <= CRCInput::RC_MaxRC ) - { - // recalculate timeout for RC-keys - timeoutEnd = CRCInput::calcTimeoutEnd(g_settings.timing[SNeutrinoSettings::TIMING_MENU] == 0 ? 0xFFFF : g_settings.timing[SNeutrinoSettings::TIMING_MENU]); + CMenuItem* item = items[pos]; + + if ( item->isSelectable() ) { + if ((pos < (int)page_start[current_page + 1]) && (pos >= (int)page_start[current_page])) + { // Item is currently on screen + //clear prev. selected + items[selected]->paint( false ); + //select new + item->paint( true ); + paintHint(pos); + selected = pos; + } else { + selected=pos; + paintItems(); + } + break; + } + } + } + break; + case (CRCInput::RC_left): + { + if(hasItem() && selected > -1 && (int)items.size() > selected) { + CMenuItem* itemX = items[selected]; + if (!itemX->isMenueOptionChooser()) { + if (g_settings.menu_left_exit) + msg = CRCInput::RC_timeout; + break; + } + } + } + case (CRCInput::RC_right): + case (CRCInput::RC_ok): + { + if(hasItem() && selected > -1 && (int)items.size() > selected) { + //exec this item... + CMenuItem* item = items[selected]; + item->msg = msg; + fader.Stop(); + int rv = item->exec( this ); + switch ( rv ) { + case menu_return::RETURN_EXIT_ALL: + retval = menu_return::RETURN_EXIT_ALL; + case menu_return::RETURN_EXIT: + msg = CRCInput::RC_timeout; + break; + case menu_return::RETURN_REPAINT: + case menu_return::RETURN_EXIT_REPAINT: + if (fade && washidden) + fader.StartFadeIn(); + paint(); + break; + } + } else + msg = CRCInput::RC_timeout; + } + break; + + case (CRCInput::RC_home): + exit_pressed = true; + msg = CRCInput::RC_timeout; + break; + case (CRCInput::RC_timeout): + break; + + case (CRCInput::RC_sat): + case (CRCInput::RC_favorites): + g_RCInput->postMsg (msg, 0); + //close any menue on dbox-key + case (CRCInput::RC_setup): + { + msg = CRCInput::RC_timeout; + retval = menu_return::RETURN_EXIT_ALL; + } + break; + case (CRCInput::RC_help): + hide(); + g_settings.show_menu_hints = !g_settings.show_menu_hints; + paint(); + break; + + default: + if ( CNeutrinoApp::getInstance()->handleMsg( msg, data ) & messages_return::cancel_all ) { + retval = menu_return::RETURN_EXIT_ALL; + msg = CRCInput::RC_timeout; + } + } + if(msg == CRCInput::RC_timeout) { + if(fade && fader.StartFadeOut()) { + timeoutEnd = CRCInput::calcTimeoutEnd( 1 ); + msg = 0; + continue; } } + + if ( msg <= CRCInput::RC_MaxRC ) + { + // recalculate timeout for RC-keys + timeoutEnd = CRCInput::calcTimeoutEnd(g_settings.timing[SNeutrinoSettings::TIMING_MENU] == 0 ? 0xFFFF : g_settings.timing[SNeutrinoSettings::TIMING_MENU]); + } } while ( msg!=CRCInput::RC_timeout ); hide(); From 5fcc192a1d6db01ac6a86852770e7874dc3c94d7 Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Mon, 16 Jul 2012 14:52:36 +0200 Subject: [PATCH 085/317] *neutrino components: add new class CComponents This class and sub classes should help to replace some often used code parts and to use more generic. --- src/gui/widget/Makefile.am | 1 + src/gui/widget/components.cpp | 125 ++++++++++++++++++++++++++++++++++ src/gui/widget/components.h | 71 +++++++++++++++++++ 3 files changed, 197 insertions(+) create mode 100644 src/gui/widget/components.cpp create mode 100644 src/gui/widget/components.h diff --git a/src/gui/widget/Makefile.am b/src/gui/widget/Makefile.am index 6cdfee1fe..4b12dbb6a 100644 --- a/src/gui/widget/Makefile.am +++ b/src/gui/widget/Makefile.am @@ -22,6 +22,7 @@ noinst_LIBRARIES = libneutrino_gui_widget.a libneutrino_gui_widget2.a libneutrino_gui_widget_a_SOURCES = \ buttons.cpp \ colorchooser.cpp \ + components.cpp \ drawable.cpp \ helpbox.cpp \ hintbox.cpp \ diff --git a/src/gui/widget/components.cpp b/src/gui/widget/components.cpp new file mode 100644 index 000000000..21f79986c --- /dev/null +++ b/src/gui/widget/components.cpp @@ -0,0 +1,125 @@ +/* + GUI window component classes - Neutrino-GUI + + Copyright(C) 2012, Thilo Graf (dbt) + + This class contains generic components for GUI-related parts. + + License: GPL + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include + +#include +#include + + +//basic class CComponents +CComponents::CComponents(const int x_pos, const int y_pos, const int h, const int w) +{ + x = x_pos; + y = y_pos; + height = h; + width = w; + frameBuffer = CFrameBuffer::getInstance(); +} + +CComponents::~CComponents() +{ + +} + +//------------------------------------------------------------------------------------------------------- +//sub class CComponentsDetailLine +CComponentsDetailLine::CComponentsDetailLine(const int x_pos, const int y_pos_top, const int y_pos_down, const int h_mark_top_, const int h_mark_down_, fb_pixel_t color1, fb_pixel_t color2) +{ + x = x_pos; + width = 16; + thickness = 4; + y = y_pos_top; + y_down = y_pos_down; + h_mark_top = h_mark_top_; + h_mark_down = h_mark_down_; + offs_up = offs_down = 0; + col1 = color1; + col2 = color2; +} + +// y_top (=y) +// xpos +--|h_mark_up +// | +// | +// | +// | +// | +// | +// | +// | +// | +// +--|h_mark_down +// y_down + +//paint details line with current parameters +void CComponentsDetailLine::paint() +{ + offs_up = h_mark_top/2-thickness+1; + offs_down = h_mark_down/2-thickness+2; + int y_top = y; + + /* vertical item mark | */ + frameBuffer->paintBoxRel(x+width-4, y_top-offs_up, thickness, h_mark_top, col1); + frameBuffer->paintBoxRel(x+width-5+thickness, y_top-offs_up, 1, h_mark_top, col2); + + /* horizontal item line - */ + frameBuffer->paintBoxRel(x+width-15, y_top+1, 11, thickness, col1); + frameBuffer->paintBoxRel(x+width-15+thickness, y_top+1+thickness, 11-thickness, 1, col2); + + /* vertical connect line [ */ + frameBuffer->paintBoxRel(x+width-15, y_top+2, thickness, y_down-y_top-1, col1); + frameBuffer->paintBoxRel(x+width-15+thickness, y_top+2+thickness, 1, y_down-y_top+3-2*thickness, col2); + + /* horizontal info line - */ + frameBuffer->paintBoxRel(x+width-15, y_down, 11, thickness, col1); + frameBuffer->paintBoxRel(x+width-14+thickness, y_down+thickness, 11-thickness, 1, col2); + + /* vertical info mark | */ + frameBuffer->paintBoxRel(x+width-4, y_down-offs_down, thickness, h_mark_down, col1); + frameBuffer->paintBoxRel(x+width-5+thickness, y_down-offs_down, 1, h_mark_down, col2); +} + +//remove painted lines from screen +void CComponentsDetailLine::hide() +{ + //caching current colors + fb_pixel_t c_tmp1, c_tmp2; + c_tmp1 = col1; + c_tmp2 = col2; + + //set background color + col1 = col2 = COL_BACKGROUND; + + //paint with background and restore set last used colors + paint(); + col1 = c_tmp1; + col2 = c_tmp2; +} + diff --git a/src/gui/widget/components.h b/src/gui/widget/components.h new file mode 100644 index 000000000..59595db53 --- /dev/null +++ b/src/gui/widget/components.h @@ -0,0 +1,71 @@ +/* + GUI window component classes - Neutrino-GUI + + Copyright(C) 2012, Thilo Graf (dbt) + + This class contains generic components for GUI-related parts. + + License: GPL + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the + Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef __COMPONENTS__ +#define __COMPONENTS__ + +#include +#include +#include + +class CComponents +{ + protected: + int x, y, height, width; + CFrameBuffer * frameBuffer; + + + public: + CComponents(const int x_pos = 0, const int y_pos = 0, const int h = 0, const int w = 0); + virtual~CComponents(); + + virtual void setXPos(const int& xpos){x = xpos;}; + virtual void setYPos(const int& ypos){y = ypos;}; + virtual void setHeight(const int& h){width = h;}; + virtual void setWidth(const int& w){height = w;}; + + +}; + +class CComponentsDetailLine : public CComponents +{ + private: + int thickness, y_down, h_mark_top, h_mark_down, offs_up, offs_down; + fb_pixel_t col1, col2; + + public: + CComponentsDetailLine( const int x_pos,const int y_pos_top, const int y_pos_down, + const int h_mark_up =16 , const int h_mark_down = 16, + fb_pixel_t color1 = COL_MENUCONTENT_PLUS_6, fb_pixel_t color2 = COL_MENUCONTENTDARK_PLUS_0); + + void paint(); + void hide(); + void setWidth(const int& w){width = w;}; + void setColor(fb_pixel_t color1, fb_pixel_t color2){col1 = color1; col2 = color2;}; +// void setYPosTop(const int& y_pos_top){y = y_pos_top;}; //same like setYpos()val) + void setYPosDown(const int& y_pos_down){y_down = y_pos_down;}; +}; + +#endif From 261904acd08b2f5d86164937007af2598114dacf Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Mon, 16 Jul 2012 14:55:14 +0200 Subject: [PATCH 086/317] *neutrino: remove dub code using class 'CComponentsDetailLine' instead multiple code details line rendering --- src/gui/audioplayer.cpp | 28 +++++------------------- src/gui/bedit/bouqueteditor_channels.cpp | 24 +++++--------------- src/gui/channellist.cpp | 28 +++++------------------- src/gui/widget/menue.cpp | 28 ++++-------------------- 4 files changed, 20 insertions(+), 88 deletions(-) diff --git a/src/gui/audioplayer.cpp b/src/gui/audioplayer.cpp index b502eaf4f..a3b53f91d 100644 --- a/src/gui/audioplayer.cpp +++ b/src/gui/audioplayer.cpp @@ -65,6 +65,7 @@ #include #include #include +#include #include #include @@ -1874,36 +1875,17 @@ void CAudioPlayerGui::paintItemID3DetailsLine (int pos) int ypos1a = ypos1 + (m_fheight / 2) - 2; int ypos2a = ypos2 + (m_info_height / 2) - 2; fb_pixel_t col1 = COL_MENUCONTENT_PLUS_6; - fb_pixel_t col2 = COL_MENUCONTENT_PLUS_1; - int c_rad_small = RADIUS_SMALL; - // Clear m_frameBuffer->paintBackgroundBoxRel(xpos - 1, m_y + m_title_height, ConnectLineBox_Width + 1, m_height - m_title_height); - // paint Line if detail info (and not valid list pos) + // paint Line if detail info (and not valid list pos) and info box if (!m_playlist.empty() && (pos >= 0)) { - int fh = m_info_height > RADIUS_MID*2 ? m_info_height - RADIUS_MID*2 : m_info_height; - // 1. col thick line - m_frameBuffer->paintBoxRel(xpos + ConnectLineBox_Width - 4, ypos1, 4, m_fheight, col2, c_rad_small, CORNER_LEFT); - m_frameBuffer->paintBoxRel(xpos + ConnectLineBox_Width - 3, ypos1, 8, m_fheight, col1, c_rad_small, CORNER_LEFT); // item marker - - m_frameBuffer->paintBoxRel(xpos + ConnectLineBox_Width - 4, ypos2+RADIUS_MID, 4, fh /*m_info_height*/, col1); - - m_frameBuffer->paintBoxRel(xpos + ConnectLineBox_Width - 16, ypos1a, 3, ypos2a - ypos1a+3, col1); - - m_frameBuffer->paintBoxRel(xpos + ConnectLineBox_Width - 16, ypos1a, 12, 3, col1); - m_frameBuffer->paintBoxRel(xpos + ConnectLineBox_Width - 16, ypos2a, 12, 3, col1); - - // 2. col small line - m_frameBuffer->paintBoxRel(xpos + ConnectLineBox_Width - 4, ypos2+RADIUS_MID, 1, fh /*m_info_height*/, col2); - - m_frameBuffer->paintBoxRel(xpos + ConnectLineBox_Width - 16+3, ypos1a+3, 1, ypos2a - ypos1a-3, col2); - - m_frameBuffer->paintBoxRel(xpos + ConnectLineBox_Width - 16+3, ypos1a+3, 12-3, 1, col2); - m_frameBuffer->paintBoxRel(xpos + ConnectLineBox_Width - 16, ypos2a+3, 12, 1, col2); + //details line + CComponentsDetailLine details_line(xpos, ypos1a, ypos2a, m_fheight/2+1, m_fheight); + details_line.paint(); // -- small Frame around infobox m_frameBuffer->paintBoxFrame(m_x, ypos2, m_width, m_info_height, 2, col1, RADIUS_MID); diff --git a/src/gui/bedit/bouqueteditor_channels.cpp b/src/gui/bedit/bouqueteditor_channels.cpp index 2f544f4b1..31714c6b3 100644 --- a/src/gui/bedit/bouqueteditor_channels.cpp +++ b/src/gui/bedit/bouqueteditor_channels.cpp @@ -38,7 +38,7 @@ #include #include #include - +#include #include "bouqueteditor_channels.h" #include @@ -207,7 +207,6 @@ void CBEChannelWidget::paintItem2DetailsLine (int pos, int /*ch_index*/) int ypos1a = ypos1 + (fheight/2)-2; int ypos2a = ypos2 + (info_height/2)-2; fb_pixel_t col1 = COL_MENUCONTENT_PLUS_6; - fb_pixel_t col2 = COL_MENUCONTENT_PLUS_1; // Clear frameBuffer->paintBackgroundBoxRel(xpos,y, ConnectLineBox_Width, height+info_height); @@ -215,23 +214,12 @@ void CBEChannelWidget::paintItem2DetailsLine (int pos, int /*ch_index*/) // paint Line if detail info (and not valid list pos) if (pos >= 0) { - int fh = fheight > 10 ? fheight - 10: 5; - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-4, ypos1+5, 4, fh, col1); - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-4, ypos1+5, 1, fh, col2); + //details line + CComponentsDetailLine details_line(xpos, ypos1a, ypos2a, fheight/2+1, info_height-RADIUS_LARGE*2); + details_line.paint(); - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-4, ypos2+7, 4,info_height-14, col1); - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-4, ypos2+7, 1,info_height-14, col2); - - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a, 3,ypos2a-ypos1a+3, col1); - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16+3, ypos1a+3, 1,ypos2a-ypos1a-3, col2); - - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a, 12,3, col1); - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16+3, ypos1a+3, 12-3,1, col2); - - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos2a, 12,3, col1); - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos2a+3, 12,1, col2); - - frameBuffer->paintBoxFrame(x, ypos2, width, info_height, 2, col1, RADIUS_LARGE); + //info box frame + frameBuffer->paintBoxFrame(x, ypos2, width, info_height, 2, col1, RADIUS_LARGE); } } diff --git a/src/gui/channellist.cpp b/src/gui/channellist.cpp index bdacdf5b6..9eabbd53e 100644 --- a/src/gui/channellist.cpp +++ b/src/gui/channellist.cpp @@ -55,6 +55,7 @@ #include #include #include +#include #include #include @@ -1560,7 +1561,6 @@ void CChannelList::paintItem2DetailsLine (int pos, int /*ch_index*/) int ypos1a = ypos1 + (fheight/2)-2; int ypos2a = ypos2 + (info_height/2)-2; fb_pixel_t col1 = COL_MENUCONTENT_PLUS_6; - fb_pixel_t col2 = COL_MENUCONTENT_PLUS_1; // Clear frameBuffer->paintBackgroundBoxRel(xpos,y, ConnectLineBox_Width, height+info_height); @@ -1569,30 +1569,12 @@ void CChannelList::paintItem2DetailsLine (int pos, int /*ch_index*/) if (pos >= 0) { //pos >= 0 && chanlist[ch_index]->currentEvent.description != "") { if(1) // FIXME why -> ? (!g_settings.channellist_extended) { - int fh = fheight > 10 ? fheight - 10: 5; - /* horizontal item mark */ - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-4, ypos1+5, 4, fh, col1); - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-4, ypos1+5, 1, fh, col2); + //details line + CComponentsDetailLine details_line(xpos, ypos1a, ypos2a, fheight/2+1, info_height-RADIUS_LARGE*2); + details_line.paint(); - /* horizontal info mark */ - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-4, ypos2+7, 4,info_height-14, col1); - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-4, ypos2+7, 1,info_height-14, col2); - - /* vertical connect line */ - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a, 3,ypos2a-ypos1a+3, col1); - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16+3, ypos1a+3, 1,ypos2a-ypos1a-3, col2); - - /* vertical item line */ - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a, 12,3, col1); - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16+3, ypos1a+3, 12-3,1, col2); - - /* vertical info line */ - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos2a, 12,3, col1); - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos2a+3, 12,1, col2); - -// frameBuffer->paintBoxRel(x, ypos2, width, info_height, col1, RADIUS_LARGE); + //info box frame frameBuffer->paintBoxFrame(x, ypos2, width, info_height, 2, col1, RADIUS_LARGE); - } } } diff --git a/src/gui/widget/menue.cpp b/src/gui/widget/menue.cpp index 12e88ee89..4e1d5ec5d 100644 --- a/src/gui/widget/menue.cpp +++ b/src/gui/widget/menue.cpp @@ -35,7 +35,7 @@ #include #include - +#include #include #include #include @@ -1069,7 +1069,6 @@ void CMenuWidget::paintHint(int pos) return; fb_pixel_t col1 = COL_MENUCONTENT_PLUS_6; - fb_pixel_t col2 = COL_MENUCONTENT_PLUS_1; int rad = RADIUS_LARGE; int xpos = x - ConnectLineBox_Width; @@ -1097,33 +1096,14 @@ printf("paintHint: icon %s text %s\n", item->hintIcon.c_str(), g_Locale->getText int iheight = item->getHeight(); + //details line int ypos1 = item->getYPosition(); int ypos1a = ypos1 + (iheight/2)-2; int ypos2a = ypos2 + (hint_height/2)-2; - int markh = hint_height > rad*2 ? hint_height - rad*2 : hint_height; int imarkh = iheight/2+1; - int imarkoff = iheight/4; - - /* horizontal item mark - */ - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-4, ypos1+imarkoff, 4, imarkh, col1); - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-4, ypos1+imarkoff, 1, imarkh, col2); - - /* horizontal info mark - */ - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-4, ypos2+rad, 4, markh, col1); - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-4, ypos2+rad, 1 , markh, col2); - - /* vertical connect line [ */ - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a, 3, ypos2a-ypos1a+3, col1); - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16+3, ypos1a+3, 1, ypos2a-ypos1a-3, col2); - - /* vertical item line | */ - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a, 12, 3, col1); - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16+3, ypos1a+3, 12-3, 1, col2); - - /* vertical info line | */ - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos2a, 12, 3, col1); - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos2a+3, 12, 1, col2); + CComponentsDetailLine details_line(xpos, ypos1a, ypos2a, imarkh, markh); + details_line.paint(); /* box shadow */ frameBuffer->paintBoxRel(x+SHADOW_OFFSET, ypos2+SHADOW_OFFSET, width + sb_width, hint_height, COL_MENUCONTENTDARK_PLUS_0, rad); From 53d4ef64aa3fc5daaab751518e22a42a1bc4d00d Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Mon, 16 Jul 2012 22:18:49 +0200 Subject: [PATCH 087/317] *menu: hide detail line objects without paintBackgroundBoxRel() --- src/gui/widget/menue.cpp | 17 ++++++++++++----- src/gui/widget/menue.h | 2 ++ 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/gui/widget/menue.cpp b/src/gui/widget/menue.cpp index 4e1d5ec5d..d4d69e6a0 100644 --- a/src/gui/widget/menue.cpp +++ b/src/gui/widget/menue.cpp @@ -35,7 +35,7 @@ #include #include -#include + #include #include #include @@ -323,6 +323,7 @@ void CMenuWidget::Init(const std::string & Icon, const int mwidth, const mn_widg mglobal = CMenuGlobal::getInstance(); //create CMenuGlobal instance only here frameBuffer = CFrameBuffer::getInstance(); iconfile = Icon; + details_line = NULL; //handle select values if(w_index > MN_WIDGET_ID_MAX){ @@ -391,6 +392,7 @@ CMenuWidget::~CMenuWidget() page_start.clear(); #endif resetWidget(true); + delete details_line; } void CMenuWidget::addItem(CMenuItem* menuItem, const bool defaultselected) @@ -1076,8 +1078,9 @@ void CMenuWidget::paintHint(int pos) int iwidth = width+sb_width; if (hint_painted) { - /* clear line box */ - frameBuffer->paintBackgroundBoxRel(xpos, y+SHADOW_OFFSET, ConnectLineBox_Width, height+hint_height+rad); + /* clear detailsline line */ + if (details_line != NULL) + details_line->hide(); /* clear info box */ frameBuffer->paintBackgroundBoxRel(x, ypos2, iwidth+SHADOW_OFFSET, hint_height+SHADOW_OFFSET); @@ -1102,8 +1105,12 @@ printf("paintHint: icon %s text %s\n", item->hintIcon.c_str(), g_Locale->getText int ypos2a = ypos2 + (hint_height/2)-2; int markh = hint_height > rad*2 ? hint_height - rad*2 : hint_height; int imarkh = iheight/2+1; - CComponentsDetailLine details_line(xpos, ypos1a, ypos2a, imarkh, markh); - details_line.paint(); + + if (details_line == NULL) + details_line = new CComponentsDetailLine(xpos, ypos1a, ypos2a, imarkh, markh); + else + details_line->setYPos(ypos1a); + details_line->paint(); /* box shadow */ frameBuffer->paintBoxRel(x+SHADOW_OFFSET, ypos2+SHADOW_OFFSET, width + sb_width, hint_height, COL_MENUCONTENTDARK_PLUS_0, rad); diff --git a/src/gui/widget/menue.h b/src/gui/widget/menue.h index 4b3c0e15f..995f744a6 100644 --- a/src/gui/widget/menue.h +++ b/src/gui/widget/menue.h @@ -41,6 +41,7 @@ #include #include #include +#include #include #include @@ -422,6 +423,7 @@ class CMenuWidget : public CMenuTarget private: mn_widget_id_t widget_index; CMenuGlobal *mglobal; + CComponentsDetailLine *details_line; protected: std::string nameString; neutrino_locale_t name; From 351156539f9381767ee96b1defe30074b0365182 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Tue, 17 Jul 2012 10:45:05 +0400 Subject: [PATCH 088/317] gui/bedit/bouqueteditor_channels.cpp: fix shadow (CBEChannelWidget inherit from CMenuWidget) --- src/gui/bedit/bouqueteditor_channels.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gui/bedit/bouqueteditor_channels.cpp b/src/gui/bedit/bouqueteditor_channels.cpp index 31714c6b3..9df7fbd34 100644 --- a/src/gui/bedit/bouqueteditor_channels.cpp +++ b/src/gui/bedit/bouqueteditor_channels.cpp @@ -215,8 +215,8 @@ void CBEChannelWidget::paintItem2DetailsLine (int pos, int /*ch_index*/) if (pos >= 0) { //details line - CComponentsDetailLine details_line(xpos, ypos1a, ypos2a, fheight/2+1, info_height-RADIUS_LARGE*2); - details_line.paint(); + CComponentsDetailLine dline(xpos, ypos1a, ypos2a, fheight/2+1, info_height-RADIUS_LARGE*2); + dline.paint(); //info box frame frameBuffer->paintBoxFrame(x, ypos2, width, info_height, 2, col1, RADIUS_LARGE); From e295500984bdcc4945296a3822b150c35db7a4b2 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Tue, 17 Jul 2012 11:45:28 +0400 Subject: [PATCH 089/317] gui/widget/menue.cpp: check item's direct key only on key events --- src/gui/widget/menue.cpp | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/src/gui/widget/menue.cpp b/src/gui/widget/menue.cpp index d61c72d0c..2cc66eda1 100644 --- a/src/gui/widget/menue.cpp +++ b/src/gui/widget/menue.cpp @@ -300,6 +300,7 @@ CMenuWidget::CMenuWidget() savescreen = false; background = NULL; preselected = -1; + details_line = NULL; } CMenuWidget::CMenuWidget(const neutrino_locale_t Name, const std::string & Icon, const int mwidth, const mn_widget_id_t &w_index) @@ -512,27 +513,27 @@ int CMenuWidget::exec(CMenuTarget* parent, const std::string &) do { if(hasItem() && selected >= 0 && (int)items.size() > selected ) - bAllowRepeatLR = items[selected]->isMenueOptionChooser(); //can_arrow; + bAllowRepeatLR = items[selected]->isMenueOptionChooser(); g_RCInput->getMsgAbsoluteTimeout(&msg, &data, &timeoutEnd, bAllowRepeatLR); + int handled= false; if ( msg <= CRCInput::RC_MaxRC ) { timeoutEnd = CRCInput::calcTimeoutEnd(g_settings.timing[SNeutrinoSettings::TIMING_MENU] == 0 ? 0xFFFF : g_settings.timing[SNeutrinoSettings::TIMING_MENU]); - } - int handled= false; - for (unsigned int i= 0; i< items.size(); i++) { - CMenuItem* titem = items[i]; - if ((titem->directKey != CRCInput::RC_nokey) && (titem->directKey == msg)) { - if (titem->isSelectable()) { - items[selected]->paint( false ); - selected= i; - msg= CRCInput::RC_ok; - } else { - // swallow-key... - handled= true; + for (unsigned int i= 0; i< items.size(); i++) { + CMenuItem* titem = items[i]; + if ((titem->directKey != CRCInput::RC_nokey) && (titem->directKey == msg)) { + if (titem->isSelectable()) { + items[selected]->paint( false ); + selected= i; + msg= CRCInput::RC_ok; + } else { + // swallow-key... + handled= true; + } + break; } - break; } } From ee1077dbad01a489750f543f2bffa3d0285be61e Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Tue, 17 Jul 2012 14:48:31 +0200 Subject: [PATCH 090/317] *components: fix wrong parameter --- src/gui/widget/components.h | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/gui/widget/components.h b/src/gui/widget/components.h index 59595db53..1cc78bca4 100644 --- a/src/gui/widget/components.h +++ b/src/gui/widget/components.h @@ -43,10 +43,8 @@ class CComponents virtual void setXPos(const int& xpos){x = xpos;}; virtual void setYPos(const int& ypos){y = ypos;}; - virtual void setHeight(const int& h){width = h;}; - virtual void setWidth(const int& w){height = w;}; - - + virtual void setHeight(const int& h){height = h;}; + virtual void setWidth(const int& w){width = w;}; }; class CComponentsDetailLine : public CComponents From 491519c4b5ddf7848bbdc9c948b063a04585dd0d Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Tue, 17 Jul 2012 14:55:59 +0200 Subject: [PATCH 091/317] *components: remove inherit setWidth() member Is already declared as virtual member in basic class --- src/gui/widget/components.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/gui/widget/components.h b/src/gui/widget/components.h index 1cc78bca4..d8259ec88 100644 --- a/src/gui/widget/components.h +++ b/src/gui/widget/components.h @@ -60,9 +60,7 @@ class CComponentsDetailLine : public CComponents void paint(); void hide(); - void setWidth(const int& w){width = w;}; void setColor(fb_pixel_t color1, fb_pixel_t color2){col1 = color1; col2 = color2;}; -// void setYPosTop(const int& y_pos_top){y = y_pos_top;}; //same like setYpos()val) void setYPosDown(const int& y_pos_down){y_down = y_pos_down;}; }; From 27006d27190c367d6254c4bdd131fc1359cfb679 Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Tue, 17 Jul 2012 15:31:23 +0200 Subject: [PATCH 092/317] - deutsch.locale: some litte corrections --- data/locale/deutsch.locale | 60 +++++++++++++++++++------------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index 8aea585ca..448d65d6a 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -688,7 +688,7 @@ mainsettings.timezone Zeitzone mainsettings.video Video menu.back Zurück menu.cancel Abbrechen -menu.hint_a_pic Konfigurieren Sie den Audio-Player und Bildbetrachter +menu.hint_a_pic Konfigurieren Sie den Audioplayer und Bildbetrachter menu.hint_aplay Audioplayer menu.hint_audio Audio-Ausgang, DolbyDigital\nund SRS True Volume Optionen menu.hint_audio_analog_mode Hier wird festgelegt, ob auf dem analogen Ausgang ein Stereo-,\nMono-Links- oder Mono-Rechts-Signal ausgegeben werden soll @@ -701,55 +701,55 @@ menu.hint_audio_srs_algo Mögliche Betriebsarten, einfach oder normal menu.hint_audio_srs_nmgr Schaltet diese Option an oder aus menu.hint_audio_srs_volume Hier kann die Referenzlautstärke festgelegt werden menu.hint_audio_volstep Beim Betätigen der Lautstärketasten wird die Lautstärke\nimmer schrittweise nach diesen Wert geändert -menu.hint_auto_lang Hier können Sie wählen ob automatisch Ihre bevorzugte Tonspur gewählt wird,\nwenn vorhanden -menu.hint_auto_subs Auto-Start für Untertitel in Ihrer bevorzugten Sprache +menu.hint_auto_lang Hier können Sie wählen, ob automatisch Ihre bevorzugte Tonspur gewählt wird,\nwenn vorhanden +menu.hint_auto_subs Automatische Anzeige der Untertitel in Ihrer bevorzugten Sprache menu.hint_back Zurück zum vorherigen Menü,\ndrücken der Menütaste schließt alle Menüs -menu.hint_backup Sichern der Konfigurationen und Kanäle in ein Verzeichnis +menu.hint_backup Sichern von Konfigurationen und Kanallisten menu.hint_bedit Bearbeiten der Favoriten und der Bouquets menu.hint_bigwindows EPG Informationen werden immer im großen Fenster angezeigt,\ndies erreichen Sie auch mit der 'Info' Taste menu.hint_cache_txt Startet das Zwischenspeichern des Teletext nach\nKanalwechsel -menu.hint_cec_mode CEC-Mode +menu.hint_cec_mode CEC-Modus menu.hint_cec_standby CEC-Standby menu.hint_cec_view_on CEC view ON menu.hint_channellist_setup Hier können Sie Anzeigeoptionen für die Kanalliste auswählen -menu.hint_ci Conditional-Access-Menü zum Einrichten\nIhres CI-CAM oder eingebetteten Conax-Karte +menu.hint_ci Conditional-Access-Menü zum Einrichten\nIhres CI-Moduls oder der eingebetteten Conax-Karte menu.hint_colors Konfigurieren Sie die Menü-Farben -menu.hint_dboxinfo Informationen über CPU und Speicher der Box +menu.hint_dboxinfo Informationen über CPU und Arbeitsspeicher der Box menu.hint_delete_channels Löschen aller Kanale menu.hint_epg_cache Maximum in Tagen zukünftiger EPG-Daten -menu.hint_epg_dir Speicherverzeichnis auf der Harddsk oder einen USB-Stick\nzum speichern von EPG-Daten +menu.hint_epg_dir Speicherverzeichnis auf der Festplatte oder einen USB-Stick\nzum speichern von EPG-Daten menu.hint_epg_extendedcache Maximum in Stunden, die die EPG-Daten zwischengespeichert\nwerden bzw. der Event-Beschreibungen menu.hint_epg_max_events Maximum an Events im Zwischenspeicher. Nach Erreichen der\nGrenze werden EPG-Daten für zukünftige gelöscht -menu.hint_epg_old_events EPG im Speicher behalten in Stunden,\nauch wenn es veraltert ist +menu.hint_epg_old_events EPG im Speicher behalten in Stunden,\nauch wenn es veraltet ist menu.hint_epg_save Speichert die EPG-Daten auf einer Harddisk oder USB-Stick\nund läd es nach einen Neustart -menu.hint_extended Energiespar-, EPG-Speicher- / Lade-Optionen\nHDMI-CEC, Startkanal, Zap-Optionen +menu.hint_extended Energiespar-, EPG-Speicher- / Lade-Optionen,\nHDMI-CEC, Startkanal, Zap-Optionen menu.hint_factory Zurücksetzen der Box auf Werkseinstellungen\nBox wird nach einem Reset neu gestartet menu.hint_fade Bei aktivierter Funktion werden die Menüfenster\n"weich" ein- bzw. ausgeblendet -menu.hint_fan_speed Steuerung der Lüftergeschwindigkeit für den CPU -menu.hint_filebrowser_denydirectoryleave Startverzeichnes auf absolut setzen -menu.hint_filebrowser_showrights Anzeige der Dateirechte der Deiteinen im Filebrowser +menu.hint_fan_speed Steuerung der Lüftergeschwindigkeit für die CPU +menu.hint_filebrowser_denydirectoryleave Verhindert das Verlassen des Startverzeichnisses +menu.hint_filebrowser_showrights Anzeige der Dateirechte der Dateien im Filebrowser menu.hint_fileplay Spielen Sie verschiedene Video-Dateien menu.hint_filesystem_is_utf8 Kodierung für Unicode-Zeichen im Filebrowser menu.hint_fonts Konfigurieren Sie die Menü-Schriftart und -Größen menu.hint_games Zeige Liste der installierten Spiele -menu.hint_hdd Formatierung / Festplatte überprüfen +menu.hint_hdd Formatierung und Prüfung der Festplatte menu.hint_imageinfo Informationen über die installierte Software menu.hint_inact_timer Ausschalten der Box nach Inaktivität in Minuten,\ndie Box geht automatisch in den Deep-Standby menu.hint_inet_radio Internetradio -menu.hint_info Informationen über Image, CPU und Speicher,\nStream-Information +menu.hint_info Informationen über Image, CPU und Arbeitsspeicher,\nStream-Information menu.hint_infobar_setup Hier können Sie die Anzeigeoptionen für die Infobar auswählen menu.hint_keep_numbers Mit der Aktivierung werden den Sendern feste/dauerhafte\nKanalnummern zugewiesen -menu.hint_keys Fernbedienungs Wiederholrate\nTastenbelegungen bearbeiten +menu.hint_keys Fernbedienungs-Wiederholrate\nund Tastenbelegungen bearbeiten menu.hint_lang_pref Wählen Sie ihre bevorzugten Audio-Sprachen, EPG\nund Untertitel-Sprachen menu.hint_language OSD Sprache, Zeitzone\nbevorzugte Audio und Untertitel Sprachen -menu.hint_last_radio In dieser Menüzeile muss der gewünschte\nStart-Radio-Sender eingestellt werden -menu.hint_last_tv In dieser Menüzeile muss der gewünschte\nStart-TV-Sender eingestellt werden -menu.hint_last_use Speichert den aktuellen Kanal beim herunterfahren der Box +menu.hint_last_radio In dieser Menüzeile kann der gewünschte\nStart-Radio-Sender eingestellt werden +menu.hint_last_tv In dieser Menüzeile kann der gewünschte\nStart-TV-Sender eingestellt werden +menu.hint_last_use Speichert den aktuellen Kanal beim Herunterfahren der Box menu.hint_load Laden der Neutrino-HD-Einstellungen aus einer Datei menu.hint_make_hdlist Bei aktiver Option wird ein Bouquet namens "HD" erzeugt\nin dem alle HD Sender zusammengefasst sind menu.hint_make_newlist Nach einer Kanalsuche wird ein Bouquet namens\n"neue Kanäle" erzeugt menu.hint_make_removedlist Nach einer Kanalsuche wird ein Bouquet namens\n"gelöschte Kanäle" erzeugt -menu.hint_manage_settings sichern, wiederherstellen, zurück auf die \nStandardwerte, Auslieferungszustand herstellen +menu.hint_manage_settings Sichern, Wiederherstellen, zurück auf\nStandardwerte, Auslieferungszustand herstellen menu.hint_mb Ihre Aufnahmen menu.hint_media Abspielen von Filmen, Audiodateien\nbetrachten Sie Bilder menu.hint_menu_hints Zeigt Ihnen Hinweise zu den Menüpunkten an,\nbei Deaktivierung erreichen Sie es jederzeit auch mit der Taste 'Hilfe' @@ -808,7 +808,7 @@ menu.hint_pref_subs Wählen Sie ihre bevorzugte Untertitel-Sprache,\ndie Einstel menu.hint_progressbar_color Bei aktivierter Option werden alle Fortschrittsbalken in Farbe\nund nicht im klassischen weiß angezeigt menu.hint_protection Schützen Sie Inhalte per PIN-Code\nStandard-PIN ist 0000 menu.hint_radiomode schaltet zum Radio-Modus -menu.hint_reboot Rebootet die Box\nohne Bestätigung +menu.hint_reboot Startet die Box neu.\nOhne Bestätigung menu.hint_record_apid_ac3 Schließt bei einer Aufnahme die durch den Sender definierte "DolbyDigital-Tonspur"\nin die Aufnahme ein, sofern diese vorhanden ist menu.hint_record_apid_alt Sind weitere Tonspuren verfügbar, dann können diese hiermit bei einer\nAufnahme entsprechend ein- bzw. ausgeschlossen werden menu.hint_record_apid_std Schließt bei einer Aufnahme die durch den Sender definierte "Standard Tonspur"\nin die Aufnahme ein, bzw. schließt diese aus @@ -833,7 +833,7 @@ menu.hint_recording Aufnahme- und Timeshift-Optionen\nTimer Optionen, Audio-PIDs menu.hint_reload_channels Kanallisten neu laden\nKanallisten aktualisieren menu.hint_reload_plugins Plugins neu laden\nPlugin-Liste aktualisieren menu.hint_reset Zurücksetzen von Neutrino-HD-Einstellungen auf Standardwerte\nTuner Einstellungen und Kanäle bleiben erhalten -menu.hint_restore Wiederherstellen von Dateien aus ausgewählten Verzeichnis +menu.hint_restore Wiederherstellen von vorher erstellten Sicherungen menu.hint_rotor_swap Tauschen der Rotordrehrichtung Ost/West\nim Motorsetup menu.hint_rounded_corners Aktiviert die Darstellung abgerundeter Ecken für die OSD-Menüs menu.hint_save_settings Speichern Sie alle Einstellungen im Image @@ -844,16 +844,16 @@ menu.hint_screenshot_setup Hier können Sie die Optionen zum erstellen von Scree menu.hint_scripts Skripts ausführen menu.hint_service Kanalsuche, Senderscan,\nBouquet-Verwaltung, Software-Aktualisierung menu.hint_service_scan Tuner-Einstellungen, Service-Scan -menu.hint_settings konfigurieren von Neutrino-HD\nNetzwerk, Video, Audio, OSD und mehr +menu.hint_settings Konfigurieren von Neutrino-HD.\nNetzwerk, Video, Audio, OSD und mehr menu.hint_show_mute_icon Definiert ob beim Lautstärkewert 0 das Mute-Icon eingeblendet werden soll -menu.hint_shutdown Setzen Sie Ihre Box in den Standby-Modus\noder schaltet die Box komplett aus +menu.hint_shutdown Setzen Sie Ihre Box in den Standby-Modus\noder schalten Sie die Box komplett aus menu.hint_shutdown_count Die Zeit zum Deep-Standby,\nwenn die Box im Soft-Standby-Mode ist menu.hint_shutdown_rcdelay Aktiviert den Deep-Standby, wenn der Powerknopf\nlänger als 1 Sekunde betätigt wird menu.hint_shutdown_real Aktivieren des Soft-Standby-Modus, wenn diese Option\ndeaktiviert ist, geht die Box in den Deep-Standby -menu.hint_sleeptimer Zeitschaltuhr auf Ihrer Box aktivieren\ndie Box geht dann in den Standby-Modus +menu.hint_sleeptimer Zeitschaltuhr auf Ihrer Box aktivieren.\nDie Box geht dann in den Standby-Modus menu.hint_soft_restart Neustarten von Neutrino-HD ohne zu Rebooten -menu.hint_start_tostandby Aktiviert den Standby-Modus nach dem Booten -menu.hint_streaminfo aktuelle Sender-Informationen: PIDs, SNR-Verhältnis\nBitrate grafisch +menu.hint_start_tostandby Aktiviert den Standby-Modus nach dem starten der Box +menu.hint_streaminfo Aktuelle Sender-Informationen: PIDs, SNR-Verhältnis\nBitrate grafisch menu.hint_subchannel_pos Hier können Sie die Anzeigeposition der Untertitel auswählen menu.hint_sw_update Neutrino-HD auf Software-Update überprüfen\nImage sichern und wiederherstellen menu.hint_timeouts Gibt an, nach welcher Zeit in Sekunden\ndie Menüs oder Infofenster sich automatisch schließen @@ -861,13 +861,13 @@ menu.hint_timers Hinzufügen / Entfernen / Bearbeiten geplanter\nAufnahme, Meldu menu.hint_timezone Wählen Sie ihre Zeitzone aus menu.hint_tvmode Schaltet zum TV-Modus menu.hint_tvradio_switch Schaltet zwischen TV- und Radio-Modus um -menu.hint_vfd Frontpanel LED's, VFD Optionen -menu.hint_video Video-Ausgang, Auflösung, Format\nSeitenverhältnise, Modus-Schalter Optionen +menu.hint_vfd Frontpanel LED's und VFD Optionen +menu.hint_video Video-Ausgang, Auflösung, Format,\nSeitenverhältnise, Modus-Schalter Optionen menu.hint_video_43mode Anzeigemodus für 4:3-Inhalte auf 16:9 TV's menu.hint_video_analog_mode Wählen Sie den Analogausgang Modus\nfür den SCART und CINCH Anschluss menu.hint_video_cinch_mode Wählen Sie den Analogausgang Modus\nfür den Composite Video Ausgang menu.hint_video_dbdr Verwendeter MPEG2 Filter -menu.hint_video_format Diese Option aktiviert das "Bildschirmformat"\nauf das Format Deines Fernsehgerätes +menu.hint_video_format Diese Option aktiviert das "Bildschirmformat"\nauf das Format Ihres Fernsehgerätes menu.hint_video_mode Definiert in welchen Videoformat das Bild über den\nHDMI-Ausgang ausgegeben wird menu.hint_video_modes Definiert welche Videosysteme mit der VF-Taste\nder Fernbedienung ausgewählt werden können menu.hint_video_scart_mode Wählen Sie den Analogausgang Modus\nfür den SCART Ausgang From 34368532d225e38b3dee4f7d52776b2d0b7c246f Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Tue, 17 Jul 2012 15:53:33 +0200 Subject: [PATCH 093/317] - deutsch.locale: infobar isn't a "statusbalken" --- data/locale/deutsch.locale | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index 448d65d6a..a7938b856 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -259,7 +259,7 @@ colormenusetup.menucontent Fensterinhalt colormenusetup.menucontent_inactive Fensterinhalt deaktiviert colormenusetup.menucontent_selected Fensterinhalt selektiert colormenusetup.menuhead Titelleiste -colorstatusbar.text Statusbalken +colorstatusbar.text Infobar colorthememenu.head Theme auswählen colorthememenu.head2 Themes laden colorthememenu.name Themename From 5c862f76a909106ea39f2414a799404a97946430 Mon Sep 17 00:00:00 2001 From: micha-bbg Date: Tue, 17 Jul 2012 16:49:44 +0200 Subject: [PATCH 094/317] * Add CComponentsInfoBox to CComponents --- src/gui/widget/components.cpp | 54 ++++++++++++++++++++++++++++++++++- src/gui/widget/components.h | 19 ++++++++++++ 2 files changed, 72 insertions(+), 1 deletion(-) diff --git a/src/gui/widget/components.cpp b/src/gui/widget/components.cpp index 21f79986c..0609f0207 100644 --- a/src/gui/widget/components.cpp +++ b/src/gui/widget/components.cpp @@ -41,11 +41,15 @@ CComponents::CComponents(const int x_pos, const int y_pos, const int h, const in height = h; width = w; frameBuffer = CFrameBuffer::getInstance(); + bg_buf = NULL; } CComponents::~CComponents() { - + if (bg_buf) { + delete[] bg_buf; + bg_buf = NULL; + } } //------------------------------------------------------------------------------------------------------- @@ -123,3 +127,51 @@ void CComponentsDetailLine::hide() col2 = c_tmp2; } +//------------------------------------------------------------------------------------------------------- +//sub class CComponentsInfoBox +CComponentsInfoBox::CComponentsInfoBox( const int x_pos, const int y_pos, const int width_, const int height_, bool shadow_, + fb_pixel_t color1, fb_pixel_t color2, fb_pixel_t color3) +{ + x = x_pos; + y = y_pos; + width = width_; + height = height_; + rad = RADIUS_LARGE; + shadow = shadow_; + bg_saved = false; + + col_frame = color1; + col_body = color2; + col_shadow = color3; + bg_buf = new fb_pixel_t[(width+SHADOW_OFFSET) * (height+SHADOW_OFFSET)]; +} + +void CComponentsInfoBox::paint(int rad_) +{ + rad = rad_; + if ((bg_buf != NULL) && (!bg_saved)) { + frameBuffer->SaveScreen(x, y, width+SHADOW_OFFSET, height+SHADOW_OFFSET, bg_buf); + bg_saved = true; + } + + /* box shadow */ + if (shadow) + frameBuffer->paintBoxRel(x+SHADOW_OFFSET, y+SHADOW_OFFSET, width, height, col_shadow, rad); + /* box frame */ +// frameBuffer->paintBoxFrame(x, y, width, height, 2, col_frame, rad); + frameBuffer->paintBoxRel(x, y, width, height, col_frame, rad); + /* box fill */ + frameBuffer->paintBoxRel(x+2, y+2, width-4, height-4, col_body, rad); +} + +void CComponentsInfoBox::hide(bool full) +{ + if (full) { + if (bg_buf != NULL) + frameBuffer->RestoreScreen(x, y, width+SHADOW_OFFSET, height+SHADOW_OFFSET, bg_buf); + else + frameBuffer->paintBackgroundBoxRel(x, y, width+SHADOW_OFFSET, height+SHADOW_OFFSET); + } + else + frameBuffer->paintBoxRel(x+2, y+2, width-4, height-4, col_body, rad); +} diff --git a/src/gui/widget/components.h b/src/gui/widget/components.h index d8259ec88..588a0bdde 100644 --- a/src/gui/widget/components.h +++ b/src/gui/widget/components.h @@ -34,6 +34,7 @@ class CComponents { protected: int x, y, height, width; + fb_pixel_t *bg_buf; CFrameBuffer * frameBuffer; @@ -64,4 +65,22 @@ class CComponentsDetailLine : public CComponents void setYPosDown(const int& y_pos_down){y_down = y_pos_down;}; }; +class CComponentsInfoBox : public CComponents +{ + private: + int width, height, rad; + fb_pixel_t col_frame, col_body, col_shadow; + bool shadow, bg_saved; + + public: + CComponentsInfoBox( const int x_pos, const int y_pos, const int width_, const int height_, bool shadow_ = true, + fb_pixel_t color1 = COL_MENUCONTENT_PLUS_6, + fb_pixel_t color2 = COL_MENUCONTENTDARK_PLUS_0, + fb_pixel_t color3 = COL_MENUCONTENTDARK_PLUS_0); + + void paint(int rad_); + void hide(bool full = false); + void setColor(fb_pixel_t color1, fb_pixel_t color2, fb_pixel_t color3){col_frame = color1; col_body = color2; col_shadow = color3;}; +}; + #endif From fd1ec29d832d5ce6a1d42d117c55543801296fe7 Mon Sep 17 00:00:00 2001 From: micha-bbg Date: Tue, 17 Jul 2012 16:51:00 +0200 Subject: [PATCH 095/317] * Use CComponentsInfoBox for menu hint --- src/gui/widget/menue.cpp | 25 +++++++++++++++---------- src/gui/widget/menue.h | 2 ++ 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/src/gui/widget/menue.cpp b/src/gui/widget/menue.cpp index d61c72d0c..c84e1a68a 100644 --- a/src/gui/widget/menue.cpp +++ b/src/gui/widget/menue.cpp @@ -324,6 +324,7 @@ void CMenuWidget::Init(const std::string & Icon, const int mwidth, const mn_widg frameBuffer = CFrameBuffer::getInstance(); iconfile = Icon; details_line = NULL; + info_box = NULL; //handle select values if(w_index > MN_WIDGET_ID_MAX){ @@ -393,6 +394,7 @@ CMenuWidget::~CMenuWidget() #endif resetWidget(true); delete details_line; + delete info_box; } void CMenuWidget::addItem(CMenuItem* menuItem, const bool defaultselected) @@ -1071,7 +1073,6 @@ void CMenuWidget::paintHint(int pos) if (pos < 0 && !hint_painted) return; - fb_pixel_t col1 = COL_MENUCONTENT_PLUS_6; int rad = RADIUS_LARGE; int xpos = x - ConnectLineBox_Width; @@ -1083,8 +1084,8 @@ void CMenuWidget::paintHint(int pos) if (details_line != NULL) details_line->hide(); /* clear info box */ - frameBuffer->paintBackgroundBoxRel(x, ypos2, iwidth+SHADOW_OFFSET, hint_height+SHADOW_OFFSET); - + if (info_box != NULL) + info_box->hide((pos == -1) ? true : false); hint_painted = false; } if (pos < 0) @@ -1093,8 +1094,11 @@ void CMenuWidget::paintHint(int pos) CMenuItem* item = items[pos]; printf("paintHint: icon %s text %s\n", item->hintIcon.c_str(), g_Locale->getText(item->hint)); - if (item->hintIcon.empty() && item->hint == NONEXISTANT_LOCALE) + if (item->hintIcon.empty() && item->hint == NONEXISTANT_LOCALE) { + if (info_box != NULL) + info_box->hide(true); return; + } hint_painted = true; @@ -1113,12 +1117,13 @@ printf("paintHint: icon %s text %s\n", item->hintIcon.c_str(), g_Locale->getText details_line->setYPos(ypos1a); details_line->paint(); - /* box shadow */ - frameBuffer->paintBoxRel(x+SHADOW_OFFSET, ypos2+SHADOW_OFFSET, width + sb_width, hint_height, COL_MENUCONTENTDARK_PLUS_0, rad); - /* box frame and fill */ - frameBuffer->paintBoxFrame(x, ypos2, iwidth, hint_height, 2, col1, rad); - /* box frame and fill */ - frameBuffer->paintBoxRel(x+2, ypos2+2, iwidth-4, hint_height-4, COL_MENUCONTENTDARK_PLUS_0, rad); + if (info_box == NULL) + info_box = new CComponentsInfoBox(x, ypos2, iwidth, hint_height, rad); + else { + info_box->setXPos(x); + info_box->setYPos(ypos2); + } + info_box->paint(rad); int offset = 10; if (!item->hintIcon.empty()) { diff --git a/src/gui/widget/menue.h b/src/gui/widget/menue.h index 995f744a6..3fc6b98af 100644 --- a/src/gui/widget/menue.h +++ b/src/gui/widget/menue.h @@ -424,6 +424,8 @@ class CMenuWidget : public CMenuTarget mn_widget_id_t widget_index; CMenuGlobal *mglobal; CComponentsDetailLine *details_line; + CComponentsInfoBox *info_box; + protected: std::string nameString; neutrino_locale_t name; From ea33afbcf8b4f57dd02b0059f87218521cc1b149 Mon Sep 17 00:00:00 2001 From: micha-bbg Date: Tue, 17 Jul 2012 19:18:59 +0200 Subject: [PATCH 096/317] * Fix the position of CComponentsDetailLine --- src/gui/widget/components.h | 1 + src/gui/widget/menue.cpp | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/gui/widget/components.h b/src/gui/widget/components.h index 588a0bdde..c46c16e87 100644 --- a/src/gui/widget/components.h +++ b/src/gui/widget/components.h @@ -63,6 +63,7 @@ class CComponentsDetailLine : public CComponents void hide(); void setColor(fb_pixel_t color1, fb_pixel_t color2){col1 = color1; col2 = color2;}; void setYPosDown(const int& y_pos_down){y_down = y_pos_down;}; + void setHMarkDown(const int& h_mark_down_){h_mark_down = h_mark_down_;}; }; class CComponentsInfoBox : public CComponents diff --git a/src/gui/widget/menue.cpp b/src/gui/widget/menue.cpp index c84e1a68a..784d0088d 100644 --- a/src/gui/widget/menue.cpp +++ b/src/gui/widget/menue.cpp @@ -1113,8 +1113,12 @@ printf("paintHint: icon %s text %s\n", item->hintIcon.c_str(), g_Locale->getText if (details_line == NULL) details_line = new CComponentsDetailLine(xpos, ypos1a, ypos2a, imarkh, markh); - else + else { + details_line->setXPos(xpos); details_line->setYPos(ypos1a); + details_line->setYPosDown(ypos2a); + details_line->setHMarkDown(markh); + } details_line->paint(); if (info_box == NULL) From 301193ce01848fa975b1e4a81f2981310ae52aa5 Mon Sep 17 00:00:00 2001 From: micha-bbg Date: Tue, 17 Jul 2012 22:22:09 +0200 Subject: [PATCH 097/317] * CComponentsInfoBox: missing shadow - Removed wrong parameter 'rad' from function call CComponentsInfoBox --- src/gui/widget/menue.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/widget/menue.cpp b/src/gui/widget/menue.cpp index 784d0088d..fae5376ce 100644 --- a/src/gui/widget/menue.cpp +++ b/src/gui/widget/menue.cpp @@ -1122,7 +1122,7 @@ printf("paintHint: icon %s text %s\n", item->hintIcon.c_str(), g_Locale->getText details_line->paint(); if (info_box == NULL) - info_box = new CComponentsInfoBox(x, ypos2, iwidth, hint_height, rad); + info_box = new CComponentsInfoBox(x, ypos2, iwidth, hint_height); else { info_box->setXPos(x); info_box->setYPos(ypos2); From 00f77bec3dd64741ffc1c6a937a56e69886446fb Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Wed, 18 Jul 2012 16:01:48 +0400 Subject: [PATCH 098/317] gui/widget/menue.cpp: paint body without head; disable menu name display on VFD - it overwritten by option name anyway; little cleanup --- src/gui/widget/menue.cpp | 44 ++++++---------------------------------- 1 file changed, 6 insertions(+), 38 deletions(-) diff --git a/src/gui/widget/menue.cpp b/src/gui/widget/menue.cpp index 2cc66eda1..fc0cbff71 100644 --- a/src/gui/widget/menue.cpp +++ b/src/gui/widget/menue.cpp @@ -378,20 +378,6 @@ void CMenuWidget::move(int xoff, int yoff) CMenuWidget::~CMenuWidget() { -#if 0 - for(unsigned int count=0;countpaintBackgroundBoxRel(x, y, width+15+SHADOW_OFFSET,height+10+SHADOW_OFFSET); if(savescreen && background) restoreScreen();//FIXME else { @@ -875,27 +860,14 @@ void CMenuWidget::calcSize() void CMenuWidget::paint() { calcSize(); -#if 0 - if(save) - saveScreen(); -#endif - CVFD::getInstance()->setMode(CVFD::MODE_MENU_UTF8, nameString.c_str()); -#if 0 - //clear backround on corners switch - static bool corners = g_settings.rounded_corners; - if(g_settings.rounded_corners != corners){ - corners = g_settings.rounded_corners; - if(!g_settings.rounded_corners){ - frameBuffer->paintBackgroundBoxRel(x, y+full_height-hint_height, full_width, CORNER_RADIUS_LARGE-2+SHADOW_OFFSET); - }else{ - frameBuffer->paintBackgroundBoxRel(x, y, full_width, CORNER_RADIUS_LARGE-2+SHADOW_OFFSET); - } - } -#endif - //paint shadow and backround + CVFD::getInstance()->setMode(CVFD::MODE_MENU_UTF8 /*, nameString.c_str()*/); + + // paint shadow frameBuffer->paintBoxRel(x+SHADOW_OFFSET ,y + SHADOW_OFFSET ,width + sb_width ,height + RADIUS_LARGE ,COL_MENUCONTENTDARK_PLUS_0 ,RADIUS_LARGE); - frameBuffer->paintBoxRel(x ,y ,width + sb_width ,height + RADIUS_LARGE ,COL_MENUCONTENT_PLUS_0 ,RADIUS_LARGE); + // paint head frameBuffer->paintBoxRel(x ,y ,width + sb_width ,hheight ,COL_MENUHEAD_PLUS_0 ,RADIUS_LARGE, CORNER_TOP); + // paint background + frameBuffer->paintBoxRel(x ,y+hheight, width + sb_width, height-hheight + RADIUS_LARGE ,COL_MENUCONTENT_PLUS_0 ,RADIUS_LARGE, CORNER_BOTTOM); //paint menu head int HeadiconOffset = 0; @@ -1048,10 +1020,6 @@ void CMenuWidget::restoreScreen() if(background) { if(savescreen) frameBuffer->RestoreScreen(x-ConnectLineBox_Width, y, full_width, full_height, background); -#if 0 - delete[] background; - background = NULL; -#endif } } From edcf2940b8d60cb4553d3d20a28108e00052f980 Mon Sep 17 00:00:00 2001 From: micha-bbg Date: Thu, 19 Jul 2012 03:22:31 +0200 Subject: [PATCH 099/317] * Fix segfault in bouquet editor --- src/gui/bedit/bouqueteditor_bouquets.h | 2 +- src/gui/bedit/bouqueteditor_channels.h | 2 +- src/gui/widget/listbox.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gui/bedit/bouqueteditor_bouquets.h b/src/gui/bedit/bouqueteditor_bouquets.h index f916eae2b..8fff41f56 100644 --- a/src/gui/bedit/bouqueteditor_bouquets.h +++ b/src/gui/bedit/bouqueteditor_bouquets.h @@ -51,7 +51,7 @@ public: virtual void onBouquetsChanged() {}; }; -class CBEBouquetWidget : public CMenuWidget +class CBEBouquetWidget : public CMenuTarget { private: diff --git a/src/gui/bedit/bouqueteditor_channels.h b/src/gui/bedit/bouqueteditor_channels.h index 5b59278c2..e57e2364a 100644 --- a/src/gui/bedit/bouqueteditor_channels.h +++ b/src/gui/bedit/bouqueteditor_channels.h @@ -42,7 +42,7 @@ #include #include -class CBEChannelWidget : public CMenuWidget +class CBEChannelWidget : public CMenuTarget { private: diff --git a/src/gui/widget/listbox.h b/src/gui/widget/listbox.h index f4f556f9c..ce52081e0 100644 --- a/src/gui/widget/listbox.h +++ b/src/gui/widget/listbox.h @@ -31,7 +31,7 @@ #include -class CListBox : public CMenuWidget +class CListBox : public CMenuTarget { protected: CFrameBuffer* frameBuffer; From fb4d4644c968a5011944ffd885fe1295f6f2b9d6 Mon Sep 17 00:00:00 2001 From: micha-bbg Date: Thu, 19 Jul 2012 03:43:56 +0200 Subject: [PATCH 100/317] * Menu hints: Update deutsch.locale - German Translations Part 5 (THX Tomworld) --- data/locale/deutsch.locale | 53 ++++++++++++++++++++++++++++---------- 1 file changed, 40 insertions(+), 13 deletions(-) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index a7938b856..a1dc7a849 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -113,7 +113,7 @@ audiomenu.avsync A/V sync audiomenu.avsync_am Audio master audiomenu.clockrec audiomenu.dolbydigital DD-Unterkanal automatisch -audiomenu.hdmi_dd DolbyDigital über HDMI +audiomenu.hdmi_dd Dolby Digital über HDMI audiomenu.hdmi_dd_auto automatisch audiomenu.hdmi_dd_force erzwingen audiomenu.monoleft mono links @@ -123,7 +123,7 @@ audiomenu.pref_lang_head Tonwahl audiomenu.pref_languages Bevorzugte Sprachen audiomenu.pref_subs Sprache audiomenu.pref_subs_head Untertitelwahl -audiomenu.spdif_dd DolbyDigital über S/PDIF +audiomenu.spdif_dd Dolby Digital über S/PDIF audiomenu.stereo stereo audiomenu.volume_step Lautstärke Schrittweite audioplayer.add Hinzufügen @@ -690,12 +690,21 @@ menu.back Zurück menu.cancel Abbrechen menu.hint_a_pic Konfigurieren Sie den Audioplayer und Bildbetrachter menu.hint_aplay Audioplayer -menu.hint_audio Audio-Ausgang, DolbyDigital\nund SRS True Volume Optionen +menu.hint_audio Audio-Ausgang, Dolby Digital\nund SRS True Volume Optionen menu.hint_audio_analog_mode Hier wird festgelegt, ob auf dem analogen Ausgang ein Stereo-,\nMono-Links- oder Mono-Rechts-Signal ausgegeben werden soll menu.hint_audio_avsync Diese Funktion synchronisiert Bild und Ton menu.hint_audio_dd Ist diese Option auf ein, wird automatisch auf Dolby Digital Ton\numgeschaltet, sobald dieser bei einem Sender verfügbar ist -menu.hint_audio_hdmi_dd Bei aktiver Option wird über den HDMI-Ausgang\nDolby-Digital-Ton ausgegeben -menu.hint_audio_spdif_dd Bei aktiver Option wird über den optischen Ausgang\n(S/PDIF) Dolby-Digital-Ton ausgegeben +menu.hint_audio_hdmi_dd Bei aktiver Option wird über den HDMI-Ausgang\nDolby Digital Ton ausgegeben +menu.hint_audioplayer_defdir Hier wählen Sie das Startverzeichnis für den Audioplayer +menu.hint_audioplayer_follow Das Selektieren eines aktuellen Titel in der Playliste zulassen +menu.hint_audioplayer_highprio Erhöhen Sie die Priorität der Wiedergabe +menu.hint_audioplayer_order Ändern der Playlist-Sortierreihenfolge +menu.hint_audioplayer_playlist Aktiviert die Anzeige der Titel in der Playliste +menu.hint_audioplayer_repeat Aktiviert die Wiederholung der Playliste,\nwenn das Ende der Liste erreicht ist +menu.hint_audioplayer_sc_metadata Aktiviert das Anzeigen der Audio-Metadaten +menu.hint_audioplayer_screensaver Aktiviert den Bildschirmschoner in Minuten +menu.hint_audioplayer_title Aktivieren Sie die Titelsuche (SMS-Stil) in der Playliste +menu.hint_audio_spdif_dd Bei aktiver Option wird über den optischen Ausgang\n(S/PDIF) Dolby Digital Ton ausgegeben menu.hint_audio_srs Hier wird SRS TruVolume an oder abgeschaltet\nbei inhaltlichen Änderungen menu.hint_audio_srs_algo Mögliche Betriebsarten, einfach oder normal menu.hint_audio_srs_nmgr Schaltet diese Option an oder aus @@ -736,8 +745,8 @@ menu.hint_hdd Formatierung und Prüfung der Festplatte menu.hint_imageinfo Informationen über die installierte Software menu.hint_inact_timer Ausschalten der Box nach Inaktivität in Minuten,\ndie Box geht automatisch in den Deep-Standby menu.hint_inet_radio Internetradio -menu.hint_info Informationen über Image, CPU und Arbeitsspeicher,\nStream-Information menu.hint_infobar_setup Hier können Sie die Anzeigeoptionen für die Infobar auswählen +menu.hint_info Informationen über Image, CPU und Arbeitsspeicher,\nStream-Information menu.hint_keep_numbers Mit der Aktivierung werden den Sendern feste/dauerhafte\nKanalnummern zugewiesen menu.hint_keys Fernbedienungs-Wiederholrate\nund Tastenbelegungen bearbeiten menu.hint_lang_pref Wählen Sie ihre bevorzugten Audio-Sprachen, EPG\nund Untertitel-Sprachen @@ -745,6 +754,11 @@ menu.hint_language OSD Sprache, Zeitzone\nbevorzugte Audio und Untertitel Sprach menu.hint_last_radio In dieser Menüzeile kann der gewünschte\nStart-Radio-Sender eingestellt werden menu.hint_last_tv In dieser Menüzeile kann der gewünschte\nStart-TV-Sender eingestellt werden menu.hint_last_use Speichert den aktuellen Kanal beim Herunterfahren der Box +menu.hint_leds_blink Die Power-LEDs blinken, wenn sich der Receiver\nim Deep-Standby befindet und ein Timer aktiv ist +menu.hint_leds_deepstandby Definiert den Status der Power-LEDs im Deep-Standby +menu.hint_leds_record Definiert ob die Power-LEDs blinken,\nwenn eine Aufnahme aktiv ist +menu.hint_leds_standby Definiert den Status der Power-LEDs im Standby +menu.hint_leds_tv Definiert den Status der Power-LEDs im TV-Betrieb menu.hint_load Laden der Neutrino-HD-Einstellungen aus einer Datei menu.hint_make_hdlist Bei aktiver Option wird ein Bouquet namens "HD" erzeugt\nin dem alle HD Sender zusammengefasst sind menu.hint_make_newlist Nach einer Kanalsuche wird ein Bouquet namens\n"neue Kanäle" erzeugt @@ -801,15 +815,19 @@ menu.hint_parentallock_changepin Hier wird der 4 stellige PIN Code eingegeben,\n menu.hint_parentallock_lockage Hier wird festgelegt, bei welcher Altersklasse\ndie PIN Abfrage kommt menu.hint_parentallock_prompt Hier wird definiert, wann eine PIN Eingabe erfolgen soll menu.hint_personalize aktivieren, deaktivieren, schützen von Menüpunkten\nkonfigurieren der Farb-Tasten in den Benutzermenüs +menu.hint_pictureviewer_defdir Hier wählen Sie das Startverzeichnis für den Bildbetrachter +menu.hint_pictureviewer_scaling Hier kann die Bildauflösung eingestellt werden +menu.hint_pictureviewer_slide_time Hier kann der Slideshow-Intervall geändert werden,\nStandardmässig ist ein Intervall von 10 Sekunden eingstellt menu.hint_picview Bilder anzeigen menu.hint_plugins_hdd_dir Auswahl des Verzeichnisses zum laden von Plugins\n auf der HDD +menu.hint_power_leds Konfiguriert das Verhalten der LEDs an der Power-Taste menu.hint_pref_lang Wählen Sie ihre bevorzugte Audio- und EPG-Sprache,\ndie Einstellung 'none' deaktiviert diese Option menu.hint_pref_subs Wählen Sie ihre bevorzugte Untertitel-Sprache,\ndie Einstellung 'none' deaktiviert diese Option -menu.hint_progressbar_color Bei aktivierter Option werden alle Fortschrittsbalken in Farbe\nund nicht im klassischen weiß angezeigt +menu.hint_progressbar_color Bei aktivierter Option werden alle Fortschrittsbalken in Farbe\nund nicht im klassischen Weiß angezeigt menu.hint_protection Schützen Sie Inhalte per PIN-Code\nStandard-PIN ist 0000 -menu.hint_radiomode schaltet zum Radio-Modus +menu.hint_radiomode Schaltet zum Radio-Modus menu.hint_reboot Startet die Box neu.\nOhne Bestätigung -menu.hint_record_apid_ac3 Schließt bei einer Aufnahme die durch den Sender definierte "DolbyDigital-Tonspur"\nin die Aufnahme ein, sofern diese vorhanden ist +menu.hint_record_apid_ac3 Schließt bei einer Aufnahme die durch den Sender definierte "Dolby Digital Tonspur"\nin die Aufnahme ein, sofern diese vorhanden ist menu.hint_record_apid_alt Sind weitere Tonspuren verfügbar, dann können diese hiermit bei einer\nAufnahme entsprechend ein- bzw. ausgeschlossen werden menu.hint_record_apid_std Schließt bei einer Aufnahme die durch den Sender definierte "Standard Tonspur"\nin die Aufnahme ein, bzw. schließt diese aus menu.hint_record_apids Konfigurieren Sie die Tonspuren für die Aufnahme @@ -836,14 +854,14 @@ menu.hint_reset Zurücksetzen von Neutrino-HD-Einstellungen auf Standardwerte\nT menu.hint_restore Wiederherstellen von vorher erstellten Sicherungen menu.hint_rotor_swap Tauschen der Rotordrehrichtung Ost/West\nim Motorsetup menu.hint_rounded_corners Aktiviert die Darstellung abgerundeter Ecken für die OSD-Menüs -menu.hint_save_settings Speichern Sie alle Einstellungen im Image menu.hint_saveas Speichern der Neutrino-HD-Einstellungen in eine Datei +menu.hint_save_settings Speichern Sie alle Einstellungen im Image menu.hint_scrambled_message Bei aktivierter Option erscheint eine Meldung,\nwenn ein verschlüsselter Sender nicht entschlüsselt werden kann menu.hint_screen_setup Konfigurieren Sie den Bildschirmbereich für die Menüanzeige menu.hint_screenshot_setup Hier können Sie die Optionen zum erstellen von Screenshots einrichten menu.hint_scripts Skripts ausführen -menu.hint_service Kanalsuche, Senderscan,\nBouquet-Verwaltung, Software-Aktualisierung menu.hint_service_scan Tuner-Einstellungen, Service-Scan +menu.hint_service Kanalsuche, Senderscan,\nBouquet-Verwaltung, Software-Aktualisierung menu.hint_settings Konfigurieren von Neutrino-HD.\nNetzwerk, Video, Audio, OSD und mehr menu.hint_show_mute_icon Definiert ob beim Lautstärkewert 0 das Mute-Icon eingeblendet werden soll menu.hint_shutdown Setzen Sie Ihre Box in den Standby-Modus\noder schalten Sie die Box komplett aus @@ -861,9 +879,18 @@ menu.hint_timers Hinzufügen / Entfernen / Bearbeiten geplanter\nAufnahme, Meldu menu.hint_timezone Wählen Sie ihre Zeitzone aus menu.hint_tvmode Schaltet zum TV-Modus menu.hint_tvradio_switch Schaltet zwischen TV- und Radio-Modus um -menu.hint_vfd Frontpanel LED's und VFD Optionen +menu.hint_vfd_brightnessdeepstandby Definiert die Helligkeit, wenn sich der Receiver im Deep-Standby befindet +menu.hint_vfd_brightnessdim Definiert den Wert für das dimmen des Display nach Ablauf der eingestellten Zeit +menu.hint_vfd_brightness_setup Konfiguriert die Displayhelligkeit des Frontpanels für verschiedene Modi +menu.hint_vfd_brightnessstandby Definiert die Helligkeit, wenn sich der Receiver im Standby befindet +menu.hint_vfd_brightness Definiert die Helligkeit im TV-Betrieb +menu.hint_vfd_defaults Setzt die Standardeinstellungen für die Helligkeitswerte +menu.hint_vfd_dimtime Hier kann in Sekunden eingegeben werden,\nwann sich das Display automatisch auf den gewünschten Wert dimmt +menu.hint_vfd Frontpanel Power-LEDs und VFD Optionen +menu.hint_vfd_infoline Wählen Sie, was in der Infozeile angezeigt werden soll +menu.hint_vfd_statusline Wählen Sie, was in der Statuszeile angezeigt werden soll menu.hint_video Video-Ausgang, Auflösung, Format,\nSeitenverhältnise, Modus-Schalter Optionen -menu.hint_video_43mode Anzeigemodus für 4:3-Inhalte auf 16:9 TV's +menu.hint_video_43mode Anzeigemodus für 4:3-Inhalte auf 16:9 TVs menu.hint_video_analog_mode Wählen Sie den Analogausgang Modus\nfür den SCART und CINCH Anschluss menu.hint_video_cinch_mode Wählen Sie den Analogausgang Modus\nfür den Composite Video Ausgang menu.hint_video_dbdr Verwendeter MPEG2 Filter From c5c8e1019ae0fa2ec4a0d6b9a622de795d54a470 Mon Sep 17 00:00:00 2001 From: micha-bbg Date: Thu, 19 Jul 2012 12:56:17 +0200 Subject: [PATCH 101/317] * Menu hints: Update deutsch.locale - German Translations Part 6 (THX Tomworld) - Fix typo in english.locale --- data/locale/deutsch.locale | 78 +++++++++++++++++++++++++++++++------- data/locale/english.locale | 2 +- 2 files changed, 65 insertions(+), 15 deletions(-) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index a1dc7a849..0dc081ee7 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -695,6 +695,12 @@ menu.hint_audio_analog_mode Hier wird festgelegt, ob auf dem analogen Ausgang ei menu.hint_audio_avsync Diese Funktion synchronisiert Bild und Ton menu.hint_audio_dd Ist diese Option auf ein, wird automatisch auf Dolby Digital Ton\numgeschaltet, sobald dieser bei einem Sender verfügbar ist menu.hint_audio_hdmi_dd Bei aktiver Option wird über den HDMI-Ausgang\nDolby Digital Ton ausgegeben +menu.hint_audio_spdif_dd Bei aktiver Option wird über den optischen Ausgang\n(S/PDIF) Dolby Digital Ton ausgegeben +menu.hint_audio_srs Hier wird SRS TruVolume an oder abgeschaltet\nbei inhaltlichen Änderungen +menu.hint_audio_srs_algo Mögliche Betriebsarten, einfach oder normal +menu.hint_audio_srs_nmgr Schaltet diese Option an oder aus +menu.hint_audio_srs_volume Hier kann die Referenzlautstärke festgelegt werden +menu.hint_audio_volstep Beim Betätigen der Lautstärketasten wird die Lautstärke\nimmer schrittweise nach diesen Wert geändert menu.hint_audioplayer_defdir Hier wählen Sie das Startverzeichnis für den Audioplayer menu.hint_audioplayer_follow Das Selektieren eines aktuellen Titel in der Playliste zulassen menu.hint_audioplayer_highprio Erhöhen Sie die Priorität der Wiedergabe @@ -704,12 +710,6 @@ menu.hint_audioplayer_repeat Aktiviert die Wiederholung der Playliste,\nwenn das menu.hint_audioplayer_sc_metadata Aktiviert das Anzeigen der Audio-Metadaten menu.hint_audioplayer_screensaver Aktiviert den Bildschirmschoner in Minuten menu.hint_audioplayer_title Aktivieren Sie die Titelsuche (SMS-Stil) in der Playliste -menu.hint_audio_spdif_dd Bei aktiver Option wird über den optischen Ausgang\n(S/PDIF) Dolby Digital Ton ausgegeben -menu.hint_audio_srs Hier wird SRS TruVolume an oder abgeschaltet\nbei inhaltlichen Änderungen -menu.hint_audio_srs_algo Mögliche Betriebsarten, einfach oder normal -menu.hint_audio_srs_nmgr Schaltet diese Option an oder aus -menu.hint_audio_srs_volume Hier kann die Referenzlautstärke festgelegt werden -menu.hint_audio_volstep Beim Betätigen der Lautstärketasten wird die Lautstärke\nimmer schrittweise nach diesen Wert geändert menu.hint_auto_lang Hier können Sie wählen, ob automatisch Ihre bevorzugte Tonspur gewählt wird,\nwenn vorhanden menu.hint_auto_subs Automatische Anzeige der Untertitel in Ihrer bevorzugten Sprache menu.hint_back Zurück zum vorherigen Menü,\ndrücken der Menütaste schließt alle Menüs @@ -720,17 +720,28 @@ menu.hint_cache_txt Startet das Zwischenspeichern des Teletext nach\nKanalwechse menu.hint_cec_mode CEC-Modus menu.hint_cec_standby CEC-Standby menu.hint_cec_view_on CEC view ON +menu.hint_channellist_colored Definiert ob die aktuelle oder nächste Sendung in einer anderen Farbe dargestellt werden soll +menu.hint_channellist_epg_align Hier kann man festlegen, wie der Text für das EPG in der Liste\nrechts vom Programmnamen ausgerichtet wird +menu.hint_channellist_extended Bei aktivierter Funktion wird vor dem Sendernamen ein Balken eingeblendet,\nder den Sendungsfortschritt anzeigt +menu.hint_channellist_fonts Ändern Sie in der Kanalliste die Schriftgrößen +menu.hint_channellist_foot Definiert welche Informationen im unteren Sendungsfenster angezeigt werden sollen menu.hint_channellist_setup Hier können Sie Anzeigeoptionen für die Kanalliste auswählen menu.hint_ci Conditional-Access-Menü zum Einrichten\nIhres CI-Moduls oder der eingebetteten Conax-Karte menu.hint_colors Konfigurieren Sie die Menü-Farben +menu.hint_content_back Ändern Sie die Hintergrundfarbe für den Fensterinhalt +menu.hint_content_textcolor Ändern Sie die Textfarbe für den Fensterinhalt +menu.hint_contrast_fonts Wählen Sie mehr Schriftkontrast (absetzen vom Hintergrund) menu.hint_dboxinfo Informationen über CPU und Arbeitsspeicher der Box menu.hint_delete_channels Löschen aller Kanale menu.hint_epg_cache Maximum in Tagen zukünftiger EPG-Daten menu.hint_epg_dir Speicherverzeichnis auf der Festplatte oder einen USB-Stick\nzum speichern von EPG-Daten menu.hint_epg_extendedcache Maximum in Stunden, die die EPG-Daten zwischengespeichert\nwerden bzw. der Event-Beschreibungen +menu.hint_epg_fonts Ändern Sie für die EPG-Details die Schriftgrößen menu.hint_epg_max_events Maximum an Events im Zwischenspeicher. Nach Erreichen der\nGrenze werden EPG-Daten für zukünftige gelöscht menu.hint_epg_old_events EPG im Speicher behalten in Stunden,\nauch wenn es veraltet ist menu.hint_epg_save Speichert die EPG-Daten auf einer Harddisk oder USB-Stick\nund läd es nach einen Neustart +menu.hint_event_textcolor Ändern Sie die Event-Farbe für farbige Event-Optionen in Kanalliste und Infobar +menu.hint_eventlist_fonts Ändern Sie in der Event-Liste die Schriftgrößen menu.hint_extended Energiespar-, EPG-Speicher- / Lade-Optionen,\nHDMI-CEC, Startkanal, Zap-Optionen menu.hint_factory Zurücksetzen der Box auf Werkseinstellungen\nBox wird nach einem Reset neu gestartet menu.hint_fade Bei aktivierter Funktion werden die Menüfenster\n"weich" ein- bzw. ausgeblendet @@ -739,14 +750,42 @@ menu.hint_filebrowser_denydirectoryleave Verhindert das Verlassen des Startverze menu.hint_filebrowser_showrights Anzeige der Dateirechte der Dateien im Filebrowser menu.hint_fileplay Spielen Sie verschiedene Video-Dateien menu.hint_filesystem_is_utf8 Kodierung für Unicode-Zeichen im Filebrowser -menu.hint_fonts Konfigurieren Sie die Menü-Schriftart und -Größen +menu.hint_font_gui Wählen Sie die Schriftart aus Schriftart-Dateien, um diese für die Menüs zu verwenden +menu.hint_font_scaling Legen Sie global die vertikale und horizontale Skalierung der Menüschrift fest +menu.hint_font_ttx Wählen Sie Schriftart aus Schriftart-Dateien, um diese für den Teletext zu verwenden +menu.hint_fonts Konfigurieren Sie die Menü-Schriftart und Schriftgrößen +menu.hint_gamelist_fonts Ändern Sie für die Spiele- und Script-Liste die Schriftgrößen menu.hint_games Zeige Liste der installierten Spiele menu.hint_hdd Formatierung und Prüfung der Festplatte +menu.hint_hdd_apply Die veränderten Einstellungen zum Sleep- und Akustik-Modus werden übernommen +menu.hint_hdd_check Überprüft das Dateisystem und führt gegebenfalls eine Reparatur durch (fsck) +menu.hint_hdd_format Erstellt eine HDD-Partition und formatiert diese +menu.hint_hdd_noise Hier können Parameter für Automatic Acoustic Management gesetzt werden,\nnicht alle Laufwerke unterstützen diese Funktion +menu.hint_hdd_sleep Dieser Wert definiert nach wie viel Minuten die Festplatte bei Inaktivität in den Sleep-Modus geschaltet wird +menu.hint_hdd_tools Hier können Sie die gefundenen Festplatten formatieren bzw. das Dateisystem überprüfen +menu.hint_head_back Ändern Sie die Titel-Hintergrundfarbe +menu.hint_head_textcolor Ändern Sie die Titel-Textfarbe menu.hint_imageinfo Informationen über die installierte Software menu.hint_inact_timer Ausschalten der Box nach Inaktivität in Minuten,\ndie Box geht automatisch in den Deep-Standby +menu.hint_inactive_back Ändern Sie die Hintergrundfarbe für deaktivierte Fensterinhalte +menu.hint_inactive_textcolor Ändern Sie die Textfarbe für deaktivierte Fensterinhalte menu.hint_inet_radio Internetradio -menu.hint_infobar_setup Hier können Sie die Anzeigeoptionen für die Infobar auswählen menu.hint_info Informationen über Image, CPU und Arbeitsspeicher,\nStream-Information +menu.hint_infobar_back Ändern Sie die Hintergrundfarbe für die Infobar +menu.hint_infobar_casys ein: zeigt alle Aktiven farbig, Mini: einzelnes Symbol ob gespeert, Diskret: alle Aktiven CA-Systeme +menu.hint_infobar_colored_event Verwenden Sie unterschiedliche Farben für die aktuelle oder nächste Sendung in der Infobar +menu.hint_infobar_dd Zeigt ein Dolby Digital Icon bei Verfügbarkeit +menu.hint_infobar_filesys Zeigen den vom Flash- und einer HDD verwendeten Speicherplatz +menu.hint_infobar_fonts Ändern Sie in der Infobar die Schriftgrößen +menu.hint_infobar_logo Logo- und Signal-Optionen +menu.hint_infobar_logo_dir Hier wählen Sie das Verzeichnis für die Senderlogos +menu.hint_infobar_on_epg Zeigt einen Hinweis bei EPG-Änderungen +menu.hint_infobar_radiotext Zeigt Radiotext in einen Fenster, wenn verfügbar +menu.hint_infobar_res Zeige die gesendete Auflösung in Symbolen +menu.hint_infobar_sat Zeigt die aktuellen Satelliten- oder Kabel-Provider +menu.hint_infobar_setup Hier können Sie die Anzeigeoptionen für die Infobar auswählen +menu.hint_infobar_textcolor Ändern Sie die Textfarbe für die Infobar +menu.hint_infobar_tuner Zeigt den aktiven Tuner als Nummernicon menu.hint_keep_numbers Mit der Aktivierung werden den Sendern feste/dauerhafte\nKanalnummern zugewiesen menu.hint_keys Fernbedienungs-Wiederholrate\nund Tastenbelegungen bearbeiten menu.hint_lang_pref Wählen Sie ihre bevorzugten Audio-Sprachen, EPG\nund Untertitel-Sprachen @@ -766,6 +805,7 @@ menu.hint_make_removedlist Nach einer Kanalsuche wird ein Bouquet namens\n"gelö menu.hint_manage_settings Sichern, Wiederherstellen, zurück auf\nStandardwerte, Auslieferungszustand herstellen menu.hint_mb Ihre Aufnahmen menu.hint_media Abspielen von Filmen, Audiodateien\nbetrachten Sie Bilder +menu.hint_menu_fonts Ändern Sie im Menü die Schriftgrößen menu.hint_menu_hints Zeigt Ihnen Hinweise zu den Menüpunkten an,\nbei Deaktivierung erreichen Sie es jederzeit auch mit der Taste 'Hilfe' menu.hint_menu_pos Hier können Sie die Anzeigeposition der OSD-Menüs festlegen menu.hint_misc_cec HDMI-CEC Optionen @@ -854,14 +894,23 @@ menu.hint_reset Zurücksetzen von Neutrino-HD-Einstellungen auf Standardwerte\nT menu.hint_restore Wiederherstellen von vorher erstellten Sicherungen menu.hint_rotor_swap Tauschen der Rotordrehrichtung Ost/West\nim Motorsetup menu.hint_rounded_corners Aktiviert die Darstellung abgerundeter Ecken für die OSD-Menüs -menu.hint_saveas Speichern der Neutrino-HD-Einstellungen in eine Datei menu.hint_save_settings Speichern Sie alle Einstellungen im Image +menu.hint_saveas Speichern der Neutrino-HD-Einstellungen in eine Datei menu.hint_scrambled_message Bei aktivierter Option erscheint eine Meldung,\nwenn ein verschlüsselter Sender nicht entschlüsselt werden kann menu.hint_screen_setup Konfigurieren Sie den Bildschirmbereich für die Menüanzeige +menu.hint_screenshot_count Hier können Sie wählen, wie viele Screenshots (1-5) erstellt werden sollen +menu.hint_screenshot_cover ein: Bei der Wiedergabe von Aufnahmen ein Video-Screenshot erstellen\nfür die Vorschau im Moviebrowser +menu.hint_screenshot_dir Hier wählen Sie das Verzeichnis zum speichern der Screenshots +menu.hint_screenshot_format Wählen Sie das Dateiformat zum speichern der Screenshots +menu.hint_screenshot_res Screenshot Größe: aktuelle TV-Auflösung oder OSD-Größe (1280x720) +menu.hint_screenshot_scale Für Video + OSD Screenshots, Skalierung auf Video-Größe menu.hint_screenshot_setup Hier können Sie die Optionen zum erstellen von Screenshots einrichten +menu.hint_screenshot_video Diese Funktion übernimmt das Live-Bild in den Screenshot als Hintergrund menu.hint_scripts Skripts ausführen -menu.hint_service_scan Tuner-Einstellungen, Service-Scan +menu.hint_selected_back Ändern Sie die Hintergrundfarbe für selektierte Fensterinhalte +menu.hint_selected_text Ändern Sie die Textfarbe für selektierte Fensterinhalte menu.hint_service Kanalsuche, Senderscan,\nBouquet-Verwaltung, Software-Aktualisierung +menu.hint_service_scan Tuner-Einstellungen, Service-Scan menu.hint_settings Konfigurieren von Neutrino-HD.\nNetzwerk, Video, Audio, OSD und mehr menu.hint_show_mute_icon Definiert ob beim Lautstärkewert 0 das Mute-Icon eingeblendet werden soll menu.hint_shutdown Setzen Sie Ihre Box in den Standby-Modus\noder schalten Sie die Box komplett aus @@ -874,19 +923,20 @@ menu.hint_start_tostandby Aktiviert den Standby-Modus nach dem starten der Box menu.hint_streaminfo Aktuelle Sender-Informationen: PIDs, SNR-Verhältnis\nBitrate grafisch menu.hint_subchannel_pos Hier können Sie die Anzeigeposition der Untertitel auswählen menu.hint_sw_update Neutrino-HD auf Software-Update überprüfen\nImage sichern und wiederherstellen -menu.hint_timeouts Gibt an, nach welcher Zeit in Sekunden\ndie Menüs oder Infofenster sich automatisch schließen +menu.hint_theme Wählen Sie vordefiniertes Farbschema, Speichern oder Laden Sie Theme aus Filen +menu.hint_timeouts Gibt an, nach welcher Zeit in Sekunden die Menüs oder\nInfofenster sich automatisch schließen (0 deaktiviert) menu.hint_timers Hinzufügen / Entfernen / Bearbeiten geplanter\nAufnahme, Meldungen etc. menu.hint_timezone Wählen Sie ihre Zeitzone aus menu.hint_tvmode Schaltet zum TV-Modus menu.hint_tvradio_switch Schaltet zwischen TV- und Radio-Modus um +menu.hint_vfd Frontpanel Power-LEDs und VFD Optionen +menu.hint_vfd_brightness Definiert die Helligkeit im TV-Betrieb +menu.hint_vfd_brightness_setup Konfiguriert die Displayhelligkeit des Frontpanels für verschiedene Modi menu.hint_vfd_brightnessdeepstandby Definiert die Helligkeit, wenn sich der Receiver im Deep-Standby befindet menu.hint_vfd_brightnessdim Definiert den Wert für das dimmen des Display nach Ablauf der eingestellten Zeit -menu.hint_vfd_brightness_setup Konfiguriert die Displayhelligkeit des Frontpanels für verschiedene Modi menu.hint_vfd_brightnessstandby Definiert die Helligkeit, wenn sich der Receiver im Standby befindet -menu.hint_vfd_brightness Definiert die Helligkeit im TV-Betrieb menu.hint_vfd_defaults Setzt die Standardeinstellungen für die Helligkeitswerte menu.hint_vfd_dimtime Hier kann in Sekunden eingegeben werden,\nwann sich das Display automatisch auf den gewünschten Wert dimmt -menu.hint_vfd Frontpanel Power-LEDs und VFD Optionen menu.hint_vfd_infoline Wählen Sie, was in der Infozeile angezeigt werden soll menu.hint_vfd_statusline Wählen Sie, was in der Statuszeile angezeigt werden soll menu.hint_video Video-Ausgang, Auflösung, Format,\nSeitenverhältnise, Modus-Schalter Optionen diff --git a/data/locale/english.locale b/data/locale/english.locale index 141b18514..92192660f 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -1022,7 +1022,7 @@ menu.hint_start_tostandby Enter standby mode after boot menu.hint_streaminfo Current channel info: pids, signal and noise ratio\nBitrate graphs menu.hint_subchannel_pos Select subchannels menu position menu.hint_sw_update Update software -menu.hint_theme Select Select pre-defined color theme\nSave or load theme from files +menu.hint_theme Select pre-defined color theme\nSave or load theme from files menu.hint_timeouts Configure time to hide GUI windows\nin seconds menu.hint_timers Add/Remove/Edit scheduled\nrecording, reminders etc. menu.hint_timezone Select your timezone From e52367edd8a25efb8588e075debeca57ec8d3007 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Thu, 19 Jul 2012 17:30:53 +0400 Subject: [PATCH 102/317] gui/widget/menue.cpp: dont repaint menu on help key, if no hints --- src/gui/widget/menue.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/gui/widget/menue.cpp b/src/gui/widget/menue.cpp index 7fe166893..ce66c3953 100644 --- a/src/gui/widget/menue.cpp +++ b/src/gui/widget/menue.cpp @@ -691,9 +691,12 @@ int CMenuWidget::exec(CMenuTarget* parent, const std::string &) } break; case (CRCInput::RC_help): - hide(); + // FIXME should we switch hints in menu without hints ? + if (has_hints) + hide(); g_settings.show_menu_hints = !g_settings.show_menu_hints; - paint(); + if (has_hints) + paint(); break; default: @@ -778,7 +781,7 @@ void CMenuWidget::calcSize() if (tmpw > width) width = tmpw; - if(g_settings.show_menu_hints && (!items[i]->hintIcon.empty() || items[i]->hint != NONEXISTANT_LOCALE)) { + if(!items[i]->hintIcon.empty() || items[i]->hint != NONEXISTANT_LOCALE) { has_hints = true; } } From 2a0c197c1faa728830ceb59b9f7816d5f93b99f1 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Thu, 19 Jul 2012 17:35:23 +0400 Subject: [PATCH 103/317] src/gui/widget/menue.cpp: fix crash, if class inherit from CMenuWidget i.e. CFileChooser --- src/gui/widget/menue.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gui/widget/menue.cpp b/src/gui/widget/menue.cpp index ce66c3953..306f69412 100644 --- a/src/gui/widget/menue.cpp +++ b/src/gui/widget/menue.cpp @@ -301,6 +301,7 @@ CMenuWidget::CMenuWidget() background = NULL; preselected = -1; details_line = NULL; + info_box = NULL; } CMenuWidget::CMenuWidget(const neutrino_locale_t Name, const std::string & Icon, const int mwidth, const mn_widget_id_t &w_index) From 3c7a4441de8fcbe60e1f715eb6354fba731475ef Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Thu, 19 Jul 2012 17:54:18 +0400 Subject: [PATCH 104/317] src/gui/moviebrowser.cpp: use 'cancel' button in movie start menu --- src/gui/moviebrowser.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/moviebrowser.cpp b/src/gui/moviebrowser.cpp index bdd13f175..0563a3a85 100644 --- a/src/gui/moviebrowser.cpp +++ b/src/gui/moviebrowser.cpp @@ -3113,7 +3113,7 @@ int CMovieBrowser::showStartPosSelectionMenu(void) // P2 CMenuWidgetSelection startPosSelectionMenu(LOCALE_MOVIEBROWSER_HEAD , NEUTRINO_ICON_MOVIEPLAYER); startPosSelectionMenu.enableFade(false); - startPosSelectionMenu.addIntroItems(LOCALE_MOVIEBROWSER_START_HEAD); + startPosSelectionMenu.addIntroItems(LOCALE_MOVIEBROWSER_START_HEAD, NONEXISTANT_LOCALE, CMenuWidget::BTN_TYPE_CANCEL); if(m_movieSelectionHandler->bookmarks.start != 0) { From e391ea7dfdb029adb2f58be49b83411f61b14e46 Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Thu, 19 Jul 2012 21:23:53 +0200 Subject: [PATCH 105/317] - mainmenu: add an icon for tv-radio-switch --- data/icons/Makefile.am | 1 + data/icons/hint_tvradio_switch.png | Bin 0 -> 5343 bytes src/gui/widget/icons.h | 1 + src/neutrino_menue.cpp | 2 +- 4 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 data/icons/hint_tvradio_switch.png diff --git a/data/icons/Makefile.am b/data/icons/Makefile.am index aaf0addbd..23dd0d9e0 100644 --- a/data/icons/Makefile.am +++ b/data/icons/Makefile.am @@ -104,6 +104,7 @@ install_DATA = \ hint_swupdate.png \ hint_timers.png \ hint_tvmode.png \ + hint_tvradio_switch \ hint_vfd.png \ hint_video.png \ home.png \ diff --git a/data/icons/hint_tvradio_switch.png b/data/icons/hint_tvradio_switch.png new file mode 100644 index 0000000000000000000000000000000000000000..df84f62e20b07d873e3d5d1f64af667bc5f4e719 GIT binary patch literal 5343 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 literal 0 HcmV?d00001 diff --git a/src/gui/widget/icons.h b/src/gui/widget/icons.h index c0b43eb3f..fa5a77fdd 100644 --- a/src/gui/widget/icons.h +++ b/src/gui/widget/icons.h @@ -169,6 +169,7 @@ /* menu hints */ #define NEUTRINO_ICON_HINT_BACK "hint_back" /* main menu */ +#define NEUTRINO_ICON_HINT_TVRADIO_SWITCH "hint_tvradio_switch" #define NEUTRINO_ICON_HINT_TVMODE "hint_tvmode" #define NEUTRINO_ICON_HINT_RADIOMODE "hint_radiomode" #define NEUTRINO_ICON_HINT_TIMERS "hint_timers" diff --git a/src/neutrino_menue.cpp b/src/neutrino_menue.cpp index 856511738..3e8ddce2c 100644 --- a/src/neutrino_menue.cpp +++ b/src/neutrino_menue.cpp @@ -140,7 +140,7 @@ void CNeutrinoApp::InitMenuMain() //tv <-> radio toggle CMenuForwarder *tvradio_switch = new CMenuForwarder(LOCALE_MAINMENU_TVRADIO_SWITCH, true, NULL, this, "tv_radio_switch", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED); - tvradio_switch->setHint("", LOCALE_MENU_HINT_TVRADIO_SWITCH); + tvradio_switch->setHint(NEUTRINO_ICON_HINT_TVRADIO_SWITCH, LOCALE_MENU_HINT_TVRADIO_SWITCH); personalize.addItem(MENU_MAIN, tvradio_switch, &g_settings.personalize[SNeutrinoSettings::P_MAIN_TV_RADIO_MODE]); //tv-mode From 5af87e238b1a3325c8fc8768f37b0a810958daf9 Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Thu, 19 Jul 2012 21:28:47 +0200 Subject: [PATCH 106/317] - yes - it's a png --- data/icons/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/icons/Makefile.am b/data/icons/Makefile.am index 23dd0d9e0..66dc9a37d 100644 --- a/data/icons/Makefile.am +++ b/data/icons/Makefile.am @@ -104,7 +104,7 @@ install_DATA = \ hint_swupdate.png \ hint_timers.png \ hint_tvmode.png \ - hint_tvradio_switch \ + hint_tvradio_switch.png \ hint_vfd.png \ hint_video.png \ home.png \ From 250708158a3a030009bfed4015f466365c2ce9f3 Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Fri, 20 Jul 2012 10:32:55 +0200 Subject: [PATCH 107/317] - yweb: fix start directory for audioplayer --- src/nhttpd/web/Y_neutrino_Blocks.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/nhttpd/web/Y_neutrino_Blocks.txt b/src/nhttpd/web/Y_neutrino_Blocks.txt index 5137ea115..f9774b72e 100644 --- a/src/nhttpd/web/Y_neutrino_Blocks.txt +++ b/src/nhttpd/web/Y_neutrino_Blocks.txt @@ -1297,7 +1297,7 @@ start-block~neutrino_form-data_audioplayer {=L:set.ap.start_dir=} - + {=L:set.ap.parse_shoutcast=} @@ -1352,7 +1352,7 @@ start-block~neutrino_audioplayer_save_settings {=ini-set:/var/tuxbox/config/neutrino.conf;audioplayer_show_playlist;{=audioplayer_show_playlist=}~cache=} {=ini-set:/var/tuxbox/config/neutrino.conf;audioplayer_screensaver;{=audioplayer_screensaver=}~cache=} {=ini-set:/var/tuxbox/config/neutrino.conf;audioplayer_highprio;{=audioplayer_highprio=}~cache=} -{=ini-set:/var/tuxbox/config/neutrino.conf;audioplayer_audioplayerdir;{=audioplayer_audioplayerdir=}~cache=} +{=ini-set:/var/tuxbox/config/neutrino.conf;network_nfs_audioplayerdir;{=network_nfs_audioplayerdir=}~cache=} {=ini-set:/var/tuxbox/config/neutrino.conf;audioplayer_enable_sc_metadata;{=audioplayer_enable_sc_metadata=}~save=} end-block~neutrino_audioplayer_save_settings From 2d0cc14810164864ca25b4e48cb20b592574c62d Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Fri, 20 Jul 2012 11:14:37 +0200 Subject: [PATCH 108/317] - yweb: fix start directory for pictureviewer --- src/nhttpd/web/Y_neutrino_Blocks.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/nhttpd/web/Y_neutrino_Blocks.txt b/src/nhttpd/web/Y_neutrino_Blocks.txt index f9774b72e..c7023c6bb 100644 --- a/src/nhttpd/web/Y_neutrino_Blocks.txt +++ b/src/nhttpd/web/Y_neutrino_Blocks.txt @@ -1187,7 +1187,7 @@ start-block~neutrino_form-data_pictureviewer {=L:set.pv.start_dir=} - + {=if-not-equal:{=global-var-get:boxtype=}~coolstream~ @@ -1234,7 +1234,7 @@ end-block~neutrino_form-data_pictureviewer start-block~neutrino_pictureviewer_save_settings {=ini-set:/var/tuxbox/config/neutrino.conf;picviewer_scaling;{=picviewer_scaling=}~open=} {=ini-set:/var/tuxbox/config/neutrino.conf;picviewer_slide_time;{=picviewer_slide_time=}~cache=} -{=ini-set:/var/tuxbox/config/neutrino.conf;picviewer_picturedir;{=picviewer_picturedir=}~cache=} +{=ini-set:/var/tuxbox/config/neutrino.conf;network_nfs_picturedir;{=network_nfs_picturedir=}~cache=} {=ini-set:/var/tuxbox/config/neutrino.conf;picviewer_decode_server_ip;{=picviewer_decode_server_ip=}~cache=} {=ini-set:/var/tuxbox/config/neutrino.conf;picviewer_decode_server_port;{=picviewer_decode_server_port=}~save=} end-block~neutrino_pictureviewer_save_settings From eee9f078b0a1c6e80b7126c5a69479a08f93c1e8 Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Fri, 20 Jul 2012 17:02:13 +0200 Subject: [PATCH 109/317] - yweb: fix directory for records in timersettings; move block to Y_neutrino_Blocks.txt --- src/nhttpd/web/Y_Timer_Edit.yhtm | 13 +------ src/nhttpd/web/Y_Tools_Timer_Sync.yhtm | 14 +------- src/nhttpd/web/Y_neutrino_Blocks.txt | 49 ++++++++++++++++++++++++++ 3 files changed, 51 insertions(+), 25 deletions(-) diff --git a/src/nhttpd/web/Y_Timer_Edit.yhtm b/src/nhttpd/web/Y_Timer_Edit.yhtm index 5a7f4a228..9f0aadb48 100644 --- a/src/nhttpd/web/Y_Timer_Edit.yhtm +++ b/src/nhttpd/web/Y_Timer_Edit.yhtm @@ -164,18 +164,7 @@ function init() {=L:live.timer_edit.rec_dir=}: - + {=include-block:Y_neutrino_Blocks.txt;neutrino_list_record_dirs=} diff --git a/src/nhttpd/web/Y_Tools_Timer_Sync.yhtm b/src/nhttpd/web/Y_Tools_Timer_Sync.yhtm index 0ec1d2fb4..d4159530a 100644 --- a/src/nhttpd/web/Y_Tools_Timer_Sync.yhtm +++ b/src/nhttpd/web/Y_Tools_Timer_Sync.yhtm @@ -23,19 +23,7 @@ Slave box
Test
--> {=L:live.timer-sync.rec_dir=}: - - + {=include-block:Y_neutrino_Blocks.txt;neutrino_list_record_dirs=}
{=L:live.timer-sync.settings=} {=L:live.timer-sync.debugging=} diff --git a/src/nhttpd/web/Y_neutrino_Blocks.txt b/src/nhttpd/web/Y_neutrino_Blocks.txt index c7023c6bb..5c953b869 100644 --- a/src/nhttpd/web/Y_neutrino_Blocks.txt +++ b/src/nhttpd/web/Y_neutrino_Blocks.txt @@ -1583,3 +1583,52 @@ start-block~neutrino_esound_save_settings {=ini-set:/var/tuxbox/config/neutrino.conf;esound_port;{=esound_port=}=} end-block~neutrino_esound_save_settings + +# ------- list possible directorys for records +start-block~neutrino_list_record_dirs + +end-block~neutrino_list_record_dirs From c4e5336619937223a677f6624fb98e29bcddde89 Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Fri, 20 Jul 2012 17:06:27 +0200 Subject: [PATCH 110/317] - yweb: increase version --- src/nhttpd/web/Y_Version.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/nhttpd/web/Y_Version.txt b/src/nhttpd/web/Y_Version.txt index 53882ef34..018454482 100644 --- a/src/nhttpd/web/Y_Version.txt +++ b/src/nhttpd/web/Y_Version.txt @@ -1,5 +1,5 @@ -version=2.8.0.9 -date=07.06.2012 +version=2.8.0.10 +date=20.07.2012 type=Release info=Port Coolstream From 9b66c00d0470d8500674584c7486678d04b52961 Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Fri, 20 Jul 2012 17:50:11 +0200 Subject: [PATCH 111/317] - osd_setup.cpp: remove double include --- src/gui/osd_setup.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/gui/osd_setup.cpp b/src/gui/osd_setup.cpp index 4ec89e270..938d9a458 100644 --- a/src/gui/osd_setup.cpp +++ b/src/gui/osd_setup.cpp @@ -38,7 +38,6 @@ #include "themes.h" #include "screensetup.h" #include "osdlang_setup.h" -#include "themes.h" #include "filebrowser.h" #include From 6cfa5041682ec2614ed708d96990b36424e61b8c Mon Sep 17 00:00:00 2001 From: micha-bbg Date: Fri, 20 Jul 2012 21:57:36 +0200 Subject: [PATCH 112/317] * Menu hints: Update deutsch.locale - German Translations Part 7 (THX Tomworld & Klauser) --- data/locale/deutsch.locale | 58 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 56 insertions(+), 2 deletions(-) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index 0dc081ee7..9b830ea1e 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -732,7 +732,7 @@ menu.hint_content_back Ändern Sie die Hintergrundfarbe für den Fensterinhalt menu.hint_content_textcolor Ändern Sie die Textfarbe für den Fensterinhalt menu.hint_contrast_fonts Wählen Sie mehr Schriftkontrast (absetzen vom Hintergrund) menu.hint_dboxinfo Informationen über CPU und Arbeitsspeicher der Box -menu.hint_delete_channels Löschen aller Kanale +menu.hint_delete_channels Löschen aller Kanäle menu.hint_epg_cache Maximum in Tagen zukünftiger EPG-Daten menu.hint_epg_dir Speicherverzeichnis auf der Festplatte oder einen USB-Stick\nzum speichern von EPG-Daten menu.hint_epg_extendedcache Maximum in Stunden, die die EPG-Daten zwischengespeichert\nwerden bzw. der Event-Beschreibungen @@ -896,6 +896,60 @@ menu.hint_rotor_swap Tauschen der Rotordrehrichtung Ost/West\nim Motorsetup menu.hint_rounded_corners Aktiviert die Darstellung abgerundeter Ecken für die OSD-Menüs menu.hint_save_settings Speichern Sie alle Einstellungen im Image menu.hint_saveas Speichern der Neutrino-HD-Einstellungen in eine Datei +menu.hint_scan_auto Auto-Scan ausgewählter Anbieter +menu.hint_scan_autoall Scannen Sie ihre ausgewählten Anbieter auf einmal +menu.hint_scan_autoall_select Nur in ausgewählten Satelliten scannen +menu.hint_scan_bouquet erneuern: hinzufügen zu den Bouquets, löschen: entfernt alte Bouquets, nicht ändern: Neue werden in "Andere" angefügt +menu.hint_scan_cable Wählen Sie ihr Kabelnetz zum scannen +menu.hint_scan_commited Wählen Sie ihre Einstellungen für diesen Satelliten +menu.hint_scan_diseqc Wählen Sie DiSEqC-Schalter-Eingangssignal für diesen Satelliten +menu.hint_scan_diseqcrepeat Diseqc Wiederholungen für kaskadierte Schaltungen,\nnutzen Sie die links/rechs Tasten +menu.hint_scan_diseqctype Wählen Sie ihr DiSEqC-Protokoll\nmit "Erweitert" können Sie ihre Anlage einbinden +menu.hint_scan_fast Schnell-Scan eines ausgewählten Anbieters\nWARNUNG: DiSEqC-Config wird überschrieben +menu.hint_scan_fastprov Wählen Sie einen Anbieter (Provider) zum scannen +menu.hint_scan_fasttype Wählen Sie das Sendeformat +menu.hint_scan_fec Wählen Sie eine Transponder-FEC +menu.hint_scan_femode Wählen Sie den Verbindungstyp für den zweiten Tuner +menu.hint_scan_fesetup Konfigurieren des oder der Tuner +menu.hint_scan_fetimeout Zeit bis zum warten des Signal, in 1/10 Sekunden,\nbenutzen Sie die links/rechts Tasten +menu.hint_scan_freq Geben Sie eine Transponder-Frequenz ein +menu.hint_scan_fta Lassen Sie nur frei empfangbare (nicht-verschlüsselte) Programme suchen +menu.hint_scan_ladirection Wählen Sie ihre Breitengrad-Ausrichtung +menu.hint_scan_latitude Geben Sie ihren Breitengrad ein +menu.hint_scan_lnbconfig Konfigurieren Sie LNB-Parameter für diesen Satelliten +menu.hint_scan_lodirection Wählen Sie ihre Längengrad-Ausrichtung +menu.hint_scan_lofh High-Banb LNB-Frequenz +menu.hint_scan_lofl Low-Band LNB-Frequenz +menu.hint_scan_lofs LNB-Band-Umschalter Frequenz +menu.hint_scan_longtitude Geben Sie ihren Längengrad ein +menu.hint_scan_manual Manueller Transponder-Scan mit ausgewählten Parametern +menu.hint_scan_mod Select transponder modulation +menu.hint_scan_motor_speed Rotor-Bewegungsgeschwindigkeit in 1/10 Grad pro Sekunde +menu.hint_scan_motorpos Wählen Sie eine gespeicherten Positions-Nummer für diesen Satelliten +menu.hint_scan_nid Hier können Sie ihre Kabelnetzwerk-Id in dezimal eingeben +menu.hint_scan_nit Hier kann man Transponder über gesendete NIT-Daten (Network Information Table) hinzufügen lassen +menu.hint_scan_pids Scant und speichert auch nur Audio / Video / PMT PIDs +menu.hint_scan_pol Wählen Sie eine Transponder-Polarisation +menu.hint_scan_rate Geben Sie eine Transponder-Symbolrate ein +menu.hint_scan_reset_numbers Zurücksetzen der existierender Kanalnummern und Umnummerierung nach einen Scan +menu.hint_scan_satadd Wählen Sie ihre verfügbaren Satelliten hier aus, für Ihren Anschluß +menu.hint_scan_satellite Wählen Sie die Satelliten zum scannen +menu.hint_scan_satenable Aktivieren Sie diesen Satelliten für ihre Anlage zum scannen +menu.hint_scan_satfind Sat-Finder: fahren Sie manuell Ihre Rotor-Positionen durch +menu.hint_scan_satfind_start Startet den Satellitenfinder für die Signalstärke +menu.hint_scan_satscan Scant den ausgewählten Satelliten +menu.hint_scan_satselect Ausgewählter Satellit +menu.hint_scan_satsetup Hier können Sie ihre gewählten Satelitten sehen und das LNB konfigurieren +menu.hint_scan_savesettings Speichert die Tuner-Config und Scan-Einstellungen,\ndiese bleiben dann erhalten für einen neuen Service-Scan +menu.hint_scan_scantype Wählen Sie, welche Kanal-Typen Sie scannen möchten +menu.hint_scan_setup_fe Konfigurieren Sie ihre ausgewählten Tuner +menu.hint_scan_start Startet die Kanalsuche mit den angegebenen Parametern.\nMit der 'EXIT' Taste kann man abbrechen +menu.hint_scan_test Testen Sie das Signal für diesen Transponder +menu.hint_scan_tpselect Wählen Sie einen einzelnen Transponder zum scannen +menu.hint_scan_uncommited Wählen Sie nicht festgeschriebene Angaben für diesen Satelliten +menu.hint_scan_usals_repeat Hier können Sie die USALS-Wiederholungen eingeben für den Rotor +menu.hint_scan_usalsall Setzen oder entfernen Sie USALS-Merker für alle Satelliten +menu.hint_scan_useusals Verwenden Sie USALS für diesen Satelitten menu.hint_scrambled_message Bei aktivierter Option erscheint eine Meldung,\nwenn ein verschlüsselter Sender nicht entschlüsselt werden kann menu.hint_screen_setup Konfigurieren Sie den Bildschirmbereich für die Menüanzeige menu.hint_screenshot_count Hier können Sie wählen, wie viele Screenshots (1-5) erstellt werden sollen @@ -1416,7 +1470,7 @@ satsetup.fe_mode_alone independent satsetup.fe_mode_loop loop satsetup.fe_mode_single single satsetup.fe_mode_twin twin -satsetup.fe_setup Setup tuner +satsetup.fe_setup Setup Tuner satsetup.lofh LNB High Offset satsetup.lofl LNB Low Offset satsetup.lofs LNB Switch Offset From f6ae36664eb71cd16d690c6488ee30f02386732d Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Fri, 20 Jul 2012 22:35:32 +0200 Subject: [PATCH 113/317] - yweb: rework and enable zapit-settings --- src/nhttpd/web/Y_Settings_Menue.yhtm | 2 +- src/nhttpd/web/Y_Settings_zapit.yhtm | 29 +++++++++++++++------------- src/nhttpd/web/scripts/Y_Tools.sh | 2 +- 3 files changed, 18 insertions(+), 15 deletions(-) diff --git a/src/nhttpd/web/Y_Settings_Menue.yhtm b/src/nhttpd/web/Y_Settings_Menue.yhtm index c72f8bd94..332f7ac81 100644 --- a/src/nhttpd/web/Y_Settings_Menue.yhtm +++ b/src/nhttpd/web/Y_Settings_Menue.yhtm @@ -58,8 +58,8 @@ function init(){ ~
  • yWeb
  • {=L:set.menue.webserver=}
  • - {=if-not-equal:{=global-var-get:boxtype=}~coolstream~
  • {=L:set.menue.zapit=}
  • + {=if-not-equal:{=global-var-get:boxtype=}~coolstream~
  • {=L:set.menue.ucodes=}
  • {=L:set.menue.boot_logo=}
  • ~=} diff --git a/src/nhttpd/web/Y_Settings_zapit.yhtm b/src/nhttpd/web/Y_Settings_zapit.yhtm index 8279ffe86..0b50665d7 100644 --- a/src/nhttpd/web/Y_Settings_zapit.yhtm +++ b/src/nhttpd/web/Y_Settings_zapit.yhtm @@ -9,9 +9,11 @@ function do_submit() else if (document.f.R1[1].checked == true) _url="/control/exec?Y_Tools&zapit_upload&services.xml"; else if (document.f.R1[2].checked == true) + _url="/control/exec?Y_Tools&zapit_upload&bouquets.xml"; + else if (document.f.R1[3].checked == true) _url="/control/exec?Y_Tools&zapit_upload&myservices.xml"; else - alert("Bitte eine Auswahl treffen"); + alert("Please make a selection.\nBitte eine Auswahl treffen."); document.f.action=_url; document.f.submit(); } @@ -26,24 +28,25 @@ function do_submit() - -
    UploadDownload
    +
    -

    - bouquets.xml
    + bouquets.xml
    services.xml
    + ubouquets.xml
    myservices.xml
    - -
    - +

    +
    +

    +

    +

    - + + bouquets.xml
    + services.xml
    + ubouquets.xml
    + myservices.xml
    diff --git a/src/nhttpd/web/scripts/Y_Tools.sh b/src/nhttpd/web/scripts/Y_Tools.sh index 56a099131..3592289f6 100755 --- a/src/nhttpd/web/scripts/Y_Tools.sh +++ b/src/nhttpd/web/scripts/Y_Tools.sh @@ -188,7 +188,7 @@ ucodes_upload() # ----------------------------------------------------------- zapit_upload() { - msg="$1 hochgeladen
    next file" + msg="$1 hochgeladen
    next file" upload_copy "$y_path_zapit/$1" y_format_message_html } From 39a44545e0bd7c47a6771cc58335b631c3ae7a14 Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Fri, 20 Jul 2012 22:41:40 +0200 Subject: [PATCH 114/317] - yweb: missing u --- src/nhttpd/web/Y_Settings_zapit.yhtm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/nhttpd/web/Y_Settings_zapit.yhtm b/src/nhttpd/web/Y_Settings_zapit.yhtm index 0b50665d7..40a7aae32 100644 --- a/src/nhttpd/web/Y_Settings_zapit.yhtm +++ b/src/nhttpd/web/Y_Settings_zapit.yhtm @@ -9,7 +9,7 @@ function do_submit() else if (document.f.R1[1].checked == true) _url="/control/exec?Y_Tools&zapit_upload&services.xml"; else if (document.f.R1[2].checked == true) - _url="/control/exec?Y_Tools&zapit_upload&bouquets.xml"; + _url="/control/exec?Y_Tools&zapit_upload&ubouquets.xml"; else if (document.f.R1[3].checked == true) _url="/control/exec?Y_Tools&zapit_upload&myservices.xml"; else From a62210d9746516ba7ca4192c912d65d134077419 Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Fri, 20 Jul 2012 23:45:13 +0200 Subject: [PATCH 115/317] - yweb: rework and enable movieplayer-settings --- src/nhttpd/web/Y_Settings_Menue.yhtm | 2 +- src/nhttpd/web/Y_neutrino_Blocks.txt | 220 +-------------------------- 2 files changed, 6 insertions(+), 216 deletions(-) diff --git a/src/nhttpd/web/Y_Settings_Menue.yhtm b/src/nhttpd/web/Y_Settings_Menue.yhtm index 332f7ac81..fd6c40a16 100644 --- a/src/nhttpd/web/Y_Settings_Menue.yhtm +++ b/src/nhttpd/web/Y_Settings_Menue.yhtm @@ -110,9 +110,9 @@ function init(){
  • {=L:set.menue.direct_recording=}
  • =}
  • {=L:set.menue.audio_player=}
  • +
  • {=L:set.menue.movieplayer=}
  • {=if-not-equal:{=global-var-get:boxtype=}~coolstream~
  • {=L:set.menue.esound_server=}
  • -
  • {=L:set.menue.movieplayer=}
  • ~=}
  • {=L:set.menue.pictureviewer=}
  • {=if-not-equal:{=global-var-get:boxtype=}~coolstream~ diff --git a/src/nhttpd/web/Y_neutrino_Blocks.txt b/src/nhttpd/web/Y_neutrino_Blocks.txt index 5c953b869..81cc238ca 100644 --- a/src/nhttpd/web/Y_neutrino_Blocks.txt +++ b/src/nhttpd/web/Y_neutrino_Blocks.txt @@ -324,142 +324,17 @@ start-block~neutrino_form-data_movieplayer
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
    {=L:set.mp.sources=}
    {=L:set.mp.streamingserver=} - {=L:off=}  - {=L:on=} -
    {=L:set.mp.streamingserver_ip=} - - -
    {=L:set.mp.streamingserver_port=} - - -
    {=L:set.mp.dvd_device=} - - -
    {=L:set.mp.vlc_dir=} - - -
    {=L:set.mp.transcoding=}
    {=L:set.mp.video_datarate=} - - -
    {=L:set.mp.transcode=} - {=L:off=}  - {=L:on=} - -
    {=L:set.mp.video_codec=} - - -
    {=L:set.mp.resolution=} - - -
    {=L:set.mp.audio_datarate=} - - -
    {=L:set.mp.transcode_audio=} - {=L:off=}  - {=L:on=} - -
    {=L:set.mp.force_ac3=} - {=L:off=}  - {=L:on=} - -
    {=L:set.mp.player=}
    {=L:set.mp.start_directory=}
    {=L:set.rec.epg_sectionsd=} -  ({=L:set.mp.only_movieplayer=}) -
    {=L:set.mp.used_buffer=} - {=L:off=}  - {=L:on=}  {=L:set.mp.only_movieplayer=} -
    {=L:set.mp.number_buffersegments=}({=L:set.mp.only_movieplayer=})
    {=L:set.mp.picture_in_browser=} - {=L:off=}  - {=L:on=} -

    - +    {=L:help=}
    @@ -470,80 +345,11 @@ start-block~neutrino_form-data_movieplayer function form_init() { var val = ""; - obj_set_radio_value('streaming_type', "{=ini-get:/var/tuxbox/config/neutrino.conf;streaming_type;0~open=}"); - - val = "{=ini-get:/var/tuxbox/config/neutrino.conf;streaming_server_ip~cache=}"; - document.f.streaming_server_ip.value = val; - val = "{=ini-get:/var/tuxbox/config/neutrino.conf;streaming_server_port;8080~cache=}"; - document.f.streaming_server_port.value = val; - val = "{=ini-get:/var/tuxbox/config/neutrino.conf;streaming_server_cddrive;D:~cache=}"; - document.f.streaming_server_cddrive.value = val; - val = "{=ini-get:/var/tuxbox/config/neutrino.conf;streaming_server_startdir;C:/Movies~cache=}"; - document.f.streaming_server_startdir.value = val; - val = "{=ini-get:/var/tuxbox/config/neutrino.conf;streaming_videorate;1000~cache=}"; - document.f.streaming_videorate.value = val; - - obj_set_radio_value('streaming_force_transcode_video', "{=ini-get:/var/tuxbox/config/neutrino.conf;streaming_force_transcode_video;0~cache=}"); - - val = "{=ini-get:/var/tuxbox/config/neutrino.conf;streaming_transcode_video_codec;0~cache=}"; - document.f.streaming_transcode_video_codec.selectedIndex = val; - val = "{=ini-get:/var/tuxbox/config/neutrino.conf;streaming_resolution;0~cache=}"; - document.f.streaming_resolution.selectedIndex = val; - val = "{=ini-get:/var/tuxbox/config/neutrino.conf;streaming_audiorate;192~cache=}"; - document.f.streaming_audiorate.value = val; - - obj_set_radio_value('streaming_transcode_audio', "{=ini-get:/var/tuxbox/config/neutrino.conf;streaming_transcode_audio;0~cache=}"); - obj_set_radio_value('streaming_force_avi_rawaudio', "{=ini-get:/var/tuxbox/config/neutrino.conf;streaming_force_avi_rawaudio;0~cache=}"); - - val = "{=ini-get:/var/tuxbox/config/neutrino.conf;streaming_moviedir~cache=}"; - document.f.streaming_moviedir.value = val; - val = "{=ini-get:/var/tuxbox/config/neutrino.conf;streaming_stopsectionsd;1~cache=}"; - document.f.stopsectionsd_mp.selectedIndex = val; - - obj_set_radio_value('streaming_use_buffer', "{=ini-get:/var/tuxbox/config/neutrino.conf;streaming_use_buffer;1~cache=}"); - - val = "{=ini-get:/var/tuxbox/config/neutrino.conf;streaming_buffer_segment_size;24~cache=}"; - document.f.streaming_buffer_segment_size.value = val; - - obj_set_radio_value('streaming_show_tv_in_browser', "{=ini-get:/var/tuxbox/config/neutrino.conf;streaming_show_tv_in_browser;0~cache=}"); - change_streaming_type(); -} -function change_streaming_type() -{ - var vis = document.f.streaming_type[0].checked; - - document.f.streaming_server_ip.disabled = vis; - document.f.streaming_server_port.disabled = vis; - document.f.streaming_server_cddrive.disabled = vis; - document.f.streaming_server_startdir.disabled = vis; - document.f.streaming_videorate.disabled = vis; - document.f.streaming_force_transcode_video[0].disabled = vis; - document.f.streaming_force_transcode_video[1].disabled = vis; - document.f.streaming_transcode_video_codec.disabled = vis; - document.f.streaming_resolution.disabled = vis; - document.f.streaming_audiorate.disabled = vis; - document.f.streaming_transcode_audio[0].disabled = vis; - document.f.streaming_transcode_audio[1].disabled = vis; - document.f.streaming_force_avi_rawaudio[0].disabled = vis; - document.f.streaming_force_avi_rawaudio[1].disabled = vis; -} -function set_hidden_values() -{ - document.f.h_streaming_server_ip.value = document.f.streaming_server_ip.value; - document.f.h_streaming_server_port.value = document.f.streaming_server_port.value; - document.f.h_streaming_server_cddrive.value = document.f.streaming_server_cddrive.value; - document.f.h_streaming_server_startdir.value = document.f.streaming_server_startdir.value; - document.f.h_streaming_videorate.value = document.f.streaming_videorate.value; - document.f.h_streaming_force_transcode_video.value = obj_get_radio_value("streaming_force_transcode_video"); - document.f.h_streaming_transcode_video_codec.value = document.f.streaming_transcode_video_codec.selectedIndex; - document.f.h_streaming_resolution.value = document.f.streaming_resolution.selectedIndex; - document.f.h_streaming_audiorate.value = document.f.streaming_audiorate.value; - document.f.h_streaming_transcode_audio.value = obj_get_radio_value("streaming_transcode_audio"); - document.f.h_streaming_force_avi_rawaudio.value = obj_get_radio_value("streaming_force_avi_rawaudio"); + val = "{=ini-get:/var/tuxbox/config/neutrino.conf;network_nfs_moviedir~open=}"; + document.f.network_nfs_moviedir.value = val; } function do_submit() { - set_hidden_values(); show_waitbox(true); document.f.submit(); } @@ -554,23 +360,7 @@ end-block~neutrino_form-data_movieplayer # ------- yWeb save Settings start-block~neutrino_movieplayer_save_settings -{=ini-set:/var/tuxbox/config/neutrino.conf;streaming_type;{=streaming_type=}~open=} -{=ini-set:/var/tuxbox/config/neutrino.conf;streaming_server_ip;{=h_streaming_server_ip=}~cache=} -{=ini-set:/var/tuxbox/config/neutrino.conf;streaming_server_port;{=h_streaming_server_port=}~cache=} -{=ini-set:/var/tuxbox/config/neutrino.conf;streaming_server_cddrive;{=h_streaming_server_cddrive=}~cache=} -{=ini-set:/var/tuxbox/config/neutrino.conf;streaming_server_startdir;{=h_streaming_server_startdir=}~cache=} -{=ini-set:/var/tuxbox/config/neutrino.conf;streaming_videorate;{=h_streaming_videorate=}~cache=} -{=ini-set:/var/tuxbox/config/neutrino.conf;streaming_force_transcode_video;{=h_streaming_force_transcode_video=}~cache=} -{=ini-set:/var/tuxbox/config/neutrino.conf;streaming_transcode_video_codec;{=h_streaming_transcode_video_codec=}~cache=} -{=ini-set:/var/tuxbox/config/neutrino.conf;streaming_resolution;{=h_streaming_resolution=}~cache=} -{=ini-set:/var/tuxbox/config/neutrino.conf;streaming_audiorate;{=h_streaming_audiorate=}~cache=} -{=ini-set:/var/tuxbox/config/neutrino.conf;streaming_transcode_audio;{=h_streaming_transcode_audio=}~cache=} -{=ini-set:/var/tuxbox/config/neutrino.conf;streaming_force_avi_rawaudio;{=h_streaming_force_avi_rawaudio=}~cache=} -{=ini-set:/var/tuxbox/config/neutrino.conf;streaming_moviedir;{=streaming_moviedir=}~cache=} -{=ini-set:/var/tuxbox/config/neutrino.conf;streaming_stopsectionsd;{=stopsectionsd_mp=}~cache=} -{=ini-set:/var/tuxbox/config/neutrino.conf;streaming_use_buffer;{=streaming_use_buffer=}~cache=} -{=ini-set:/var/tuxbox/config/neutrino.conf;streaming_buffer_segment_size;{=streaming_buffer_segment_size=}~cache=} -{=ini-set:/var/tuxbox/config/neutrino.conf;streaming_show_tv_in_browser;{=streaming_show_tv_in_browser=}~save=} +{=ini-set:/var/tuxbox/config/neutrino.conf;network_nfs_moviedir;{=network_nfs_moviedir=}=} end-block~neutrino_movieplayer_save_settings From 05c48975044f313afe6e2d092c82d03a00352828 Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Fri, 20 Jul 2012 23:46:39 +0200 Subject: [PATCH 116/317] - yweb: increase version (for two commits) --- src/nhttpd/web/Y_Version.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/nhttpd/web/Y_Version.txt b/src/nhttpd/web/Y_Version.txt index 018454482..7b6929294 100644 --- a/src/nhttpd/web/Y_Version.txt +++ b/src/nhttpd/web/Y_Version.txt @@ -1,4 +1,4 @@ -version=2.8.0.10 +version=2.8.0.12 date=20.07.2012 type=Release info=Port Coolstream From 48dea3faf0cff13e61c3efdae24ee8047f02a982 Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Sat, 21 Jul 2012 12:53:18 +0200 Subject: [PATCH 117/317] - yweb: remove obsolete ucodes-code --- src/nhttpd/web/Makefile.am | 1 - src/nhttpd/web/Y_Blocks.txt | 1 - src/nhttpd/web/Y_Settings_Menue.yhtm | 2 - src/nhttpd/web/Y_Settings_personalize.yhtm | 8 --- src/nhttpd/web/Y_Settings_ucodes.yhtm | 58 ---------------------- src/nhttpd/web/Y_Tools_Check_Install.yhtm | 19 ------- src/nhttpd/web/Y_Version.txt | 4 +- src/nhttpd/web/languages/Deutsch | 1 - src/nhttpd/web/languages/English | 1 - src/nhttpd/web/languages/Portuguese | 1 - src/nhttpd/web/scripts/Y_Tools.sh | 8 --- src/nhttpd/web/scripts/_Y_Globals.sh | 1 - 12 files changed, 2 insertions(+), 103 deletions(-) delete mode 100644 src/nhttpd/web/Y_Settings_ucodes.yhtm diff --git a/src/nhttpd/web/Makefile.am b/src/nhttpd/web/Makefile.am index a873fc92a..7a1a58268 100644 --- a/src/nhttpd/web/Makefile.am +++ b/src/nhttpd/web/Makefile.am @@ -61,7 +61,6 @@ install_DATA = channels.js \ Y_Settings_personalize.yhtm \ Y_Settings_Skin.yhtm \ Y_Settings_Timer.yhtm \ - Y_Settings_ucodes.yhtm \ Y_Settings_umount_liste.yhtm \ Y_Settings_video_audio.yhtm \ Y_Settings_VNC.yhtm \ diff --git a/src/nhttpd/web/Y_Blocks.txt b/src/nhttpd/web/Y_Blocks.txt index d438796ca..579538d8b 100644 --- a/src/nhttpd/web/Y_Blocks.txt +++ b/src/nhttpd/web/Y_Blocks.txt @@ -151,7 +151,6 @@ start-block~personalize_save_settings {=ini-set:/var/tuxbox/config/neutrino.conf;personalize_getplugins;{=p_getplugins=}~cache=} {=ini-set:/var/tuxbox/config/neutrino.conf;personalize_restart;{=p_restart=}~cache=} {=ini-set:/var/tuxbox/config/neutrino.conf;personalize_epgrestart;{=p_epgrestart=}~cache=} -{=ini-set:/var/tuxbox/config/neutrino.conf;personalize_ucodecheck;{=p_ucodecheck=}~cache=} {=ini-set:/var/tuxbox/config/neutrino.conf;personalize_chan_epg_stat;{=p_chan_epg_stat=}~cache=} {=ini-set:/var/tuxbox/config/neutrino.conf;personalize_imageinfo;{=p_imageinfo=}~cache=} {=ini-set:/var/tuxbox/config/neutrino.conf;personalize_update;{=p_update=}~cache=} diff --git a/src/nhttpd/web/Y_Settings_Menue.yhtm b/src/nhttpd/web/Y_Settings_Menue.yhtm index fd6c40a16..2b61fb0c8 100644 --- a/src/nhttpd/web/Y_Settings_Menue.yhtm +++ b/src/nhttpd/web/Y_Settings_Menue.yhtm @@ -51,7 +51,6 @@ function init(){
  • {=L:set.menue.webserver=}
  • {=L:set.menue.zapit=}
  • {=if-not-equal:{=global-var-get:boxtype=}~coolstream~ -
  • {=L:set.menue.ucodes=}
  • {=L:set.menue.boot_logo=}
  • ~=}
  • {=L:set.menue.timer_settings=}
  • @@ -60,7 +59,6 @@ function init(){
  • {=L:set.menue.webserver=}
  • {=L:set.menue.zapit=}
  • {=if-not-equal:{=global-var-get:boxtype=}~coolstream~ -
  • {=L:set.menue.ucodes=}
  • {=L:set.menue.boot_logo=}
  • ~=} {=if-not-equal:{=global-var-get:boxtype=}~coolstream~ diff --git a/src/nhttpd/web/Y_Settings_personalize.yhtm b/src/nhttpd/web/Y_Settings_personalize.yhtm index 5cbcf937e..a4bce8d7f 100644 --- a/src/nhttpd/web/Y_Settings_personalize.yhtm +++ b/src/nhttpd/web/Y_Settings_personalize.yhtm @@ -49,7 +49,6 @@ function do_init() obj_set_radio_value('p_getplugins', "{=ini-get:/var/tuxbox/config/neutrino.conf;personalize_getplugins;1~cache=}"); obj_set_radio_value('p_restart', "{=ini-get:/var/tuxbox/config/neutrino.conf;personalize_restart;1~cache=}"); obj_set_radio_value('p_epgrestart', "{=ini-get:/var/tuxbox/config/neutrino.conf;personalize_epgrestart;1~cache=}"); - obj_set_radio_value('p_ucodecheck', "{=ini-get:/var/tuxbox/config/neutrino.conf;personalize_ucodecheck;1~cache=}"); obj_set_radio_value('p_chan_epg_stat', "{=ini-get:/var/tuxbox/config/neutrino.conf;personalize_chan_epg_stat;1~cache=}"); obj_set_radio_value('p_imageinfo', "{=ini-get:/var/tuxbox/config/neutrino.conf;personalize_imageinfo;1~cache=}"); obj_set_radio_value('p_update', "{=ini-get:/var/tuxbox/config/neutrino.conf;personalize_update;1~cache=}"); @@ -324,13 +323,6 @@ function do_init() PIN - Ucodes überprüfen - - nicht sichtbar  - sichtbar  - PIN - - Sender/EPG Statistik nicht sichtbar  diff --git a/src/nhttpd/web/Y_Settings_ucodes.yhtm b/src/nhttpd/web/Y_Settings_ucodes.yhtm deleted file mode 100644 index 49cacf81c..000000000 --- a/src/nhttpd/web/Y_Settings_ucodes.yhtm +++ /dev/null @@ -1,58 +0,0 @@ -{=include-block:Y_Blocks.txt;head=} - - - -
    -
    - {=var-set:help_url=Help-Settings-ucodes=}{=var-set:menu=Ucodes=}{=include-block:Y_Blocks.txt;work_menu=}
    -
    - - - - - - -
    UploadDownload
    -
    -

    - camalpha.bin
    - avia500.ux
    - avia600.ux
    - ucode.bin
    - -
    - -

    -
    -
    - -
    -
    -
    - - \ No newline at end of file diff --git a/src/nhttpd/web/Y_Tools_Check_Install.yhtm b/src/nhttpd/web/Y_Tools_Check_Install.yhtm index 19ca8ff51..e032adc7d 100644 --- a/src/nhttpd/web/Y_Tools_Check_Install.yhtm +++ b/src/nhttpd/web/Y_Tools_Check_Install.yhtm @@ -126,25 +126,6 @@ function do_check(){ =} ~=} - - {=if-not-equal:{=global-var-get:boxtype=}~coolstream~ - /*ucodes*/ - {=if-file-exists:/var/tuxbox/ucodes/avia500.ux~ - sLog_addRow(sLog_body, "green", "Ucodes: avia500.ux found", "ok"); - ~ - sLog_addRow(sLog_body, "yellow", "Ucodes: avia500.ux not found. "+wiki_url("Ucodes"), "notice"); - =} - {=if-file-exists:/var/tuxbox/ucodes/avia600.ux~ - sLog_addRow(sLog_body, "green", "Ucodes: avia600.ux found", "ok"); - ~ - sLog_addRow(sLog_body, "yellow", "Ucodes: avia600.ux not found. "+wiki_url("Ucodes"), "notice"); - =} - {=if-file-exists:/var/tuxbox/ucodes/cam-alpha.bin~ - sLog_addRow(sLog_body, "green", "Ucodes: cam-alpha found", "ok"); - ~ - sLog_addRow(sLog_body, "red", "Ucodes: cam-alpha not found. "+wiki_url("Ucodes"), "failed"); - =} - ~=} do_stop(); } //]]> diff --git a/src/nhttpd/web/Y_Version.txt b/src/nhttpd/web/Y_Version.txt index 7b6929294..45aae143d 100644 --- a/src/nhttpd/web/Y_Version.txt +++ b/src/nhttpd/web/Y_Version.txt @@ -1,5 +1,5 @@ -version=2.8.0.12 -date=20.07.2012 +version=2.8.0.13 +date=21.07.2012 type=Release info=Port Coolstream diff --git a/src/nhttpd/web/languages/Deutsch b/src/nhttpd/web/languages/Deutsch index 4586571d3..f422477b8 100644 --- a/src/nhttpd/web/languages/Deutsch +++ b/src/nhttpd/web/languages/Deutsch @@ -215,7 +215,6 @@ set.sync_with_neutrino=Zur Synchronisation mit Neutrino ========Settings General & Menue set.menue.webserver=Webserver -set.menue.ucodes=Ucodes set.menue.boot_logo=Boot Logo set.menue.timer_settings=Timer Einstellungen set.menue.zapit=Zapit diff --git a/src/nhttpd/web/languages/English b/src/nhttpd/web/languages/English index cec1fb334..be48ce32c 100644 --- a/src/nhttpd/web/languages/English +++ b/src/nhttpd/web/languages/English @@ -218,7 +218,6 @@ set.sync_with_neutrino=Synchronization with Neutrino =======Settings General & Menue set.menue.webserver=Webserver -set.menue.ucodes=Ucodes set.menue.boot_logo=Boot Logo set.menue.timer_settings=Timer Settings set.menue.zapit=Zapit diff --git a/src/nhttpd/web/languages/Portuguese b/src/nhttpd/web/languages/Portuguese index afa3c0913..d098e8bae 100644 --- a/src/nhttpd/web/languages/Portuguese +++ b/src/nhttpd/web/languages/Portuguese @@ -222,7 +222,6 @@ set.sync_with_neutrino=Sincronização com Neutrino =======Definições General & Menu set.menue.webserver=Webserver -set.menue.ucodes=Ucodes set.menue.boot_logo=Boot Logo set.menue.timer_settings=Definições do Programador set.menue.zapit=Zapit diff --git a/src/nhttpd/web/scripts/Y_Tools.sh b/src/nhttpd/web/scripts/Y_Tools.sh index 3592289f6..a89ed914f 100755 --- a/src/nhttpd/web/scripts/Y_Tools.sh +++ b/src/nhttpd/web/scripts/Y_Tools.sh @@ -179,13 +179,6 @@ bootlogo_lcd_upload() y_format_message_html } # ----------------------------------------------------------- -ucodes_upload() -{ - msg="$1 hochgeladen
    next file" - upload_copy "$y_path_ucodes/$1" - y_format_message_html -} -# ----------------------------------------------------------- zapit_upload() { msg="$1 hochgeladen
    next file" @@ -545,7 +538,6 @@ case "$1" in image_delete) image_delete_download_page ;; bootlogo_upload) bootlogo_upload ;; bootlogo_lcd_upload) bootlogo_lcd_upload ;; - ucodes_upload) ucodes_upload $2 ;; zapit_upload) zapit_upload $2 ;; kernel-stack) msg=`dmesg`; y_format_message_html ;; ps) msg=`ps`; y_format_message_html ;; diff --git a/src/nhttpd/web/scripts/_Y_Globals.sh b/src/nhttpd/web/scripts/_Y_Globals.sh index ebe1a72c0..ed3206eb5 100755 --- a/src/nhttpd/web/scripts/_Y_Globals.sh +++ b/src/nhttpd/web/scripts/_Y_Globals.sh @@ -19,7 +19,6 @@ y_path_scripts="$y_path_httpd/scripts" y_path_usrbin="/var/bin" y_path_config="/var/tuxbox/config" y_path_tmp="/tmp" -y_path_ucodes="/var/tuxbox/ucodes" y_path_zapit="/var/tuxbox/config/zapit" y_path_plugin_tuxnew="/var/tuxbox/config/tuxnews" From 17fd18941083c6cbad9cc4cd61826c9cd3e08d19 Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Sat, 21 Jul 2012 23:31:59 +0200 Subject: [PATCH 118/317] - yweb: rework, localize and enable backup/restore --- data/scripts/backup.sh | 2 +- src/nhttpd/web/Y_Settings_Backup.yhtm | 25 +++++++++--------- src/nhttpd/web/Y_Settings_Menue.yhtm | 3 +-- src/nhttpd/web/languages/Deutsch | 10 ++++++- src/nhttpd/web/languages/English | 8 ++++++ src/nhttpd/web/languages/Portuguese | 8 ++++++ src/nhttpd/web/scripts/Y_Tools.sh | 38 ++++++++++----------------- 7 files changed, 54 insertions(+), 40 deletions(-) diff --git a/data/scripts/backup.sh b/data/scripts/backup.sh index d9998007e..2ab6bcf7e 100755 --- a/data/scripts/backup.sh +++ b/data/scripts/backup.sh @@ -24,4 +24,4 @@ TOBACKUP=$(echo $RES) echo Backup to $1/settings_$DATE.tar -tar -cf $1/settings_$DATE.tar $TOBACKUP +tar -cf $1/settings_$DATE.tar $TOBACKUP 2>&1 >/dev/null diff --git a/src/nhttpd/web/Y_Settings_Backup.yhtm b/src/nhttpd/web/Y_Settings_Backup.yhtm index 02f908e1d..4977afef7 100644 --- a/src/nhttpd/web/Y_Settings_Backup.yhtm +++ b/src/nhttpd/web/Y_Settings_Backup.yhtm @@ -36,27 +36,28 @@ function do_backup2() {=var-set:wait_text=Settings=}{=include-block:Y_Blocks.txt;snip_wait=}
    - {=var-set:help_url=Help-Settings-Backup_Restore=}{=var-set:menu=Backup & Restore=}{=include-block:Y_Blocks.txt;work_menu=}
    + {=var-set:help_url=Help-Settings-Backup_Restore=}{=var-set:menu={=L:set.menue.backup_restore=}=}{=include-block:Y_Blocks.txt;work_menu=}
    -

    -  Achtung Backup & Restore ist nur bei einem gleichen Image mit gleichem Stand sinnvoll. -

    -
    +

    + + {=L:attention=} {=L:set.settings.warning=} +

    - + - - + diff --git a/src/nhttpd/web/Y_Settings_Menue.yhtm b/src/nhttpd/web/Y_Settings_Menue.yhtm index 2b61fb0c8..31aa65324 100644 --- a/src/nhttpd/web/Y_Settings_Menue.yhtm +++ b/src/nhttpd/web/Y_Settings_Menue.yhtm @@ -53,6 +53,7 @@ function init(){ {=if-not-equal:{=global-var-get:boxtype=}~coolstream~
  • {=L:set.menue.boot_logo=}
  • ~=} +
  • {=L:set.menue.backup_restore=}
  • {=L:set.menue.timer_settings=}
  • ~
  • yWeb
  • @@ -61,9 +62,7 @@ function init(){ {=if-not-equal:{=global-var-get:boxtype=}~coolstream~
  • {=L:set.menue.boot_logo=}
  • ~=} - {=if-not-equal:{=global-var-get:boxtype=}~coolstream~
  • {=L:set.menue.backup_restore=}
  • - ~=}
  • {=L:set.menue.timer_settings=}
  • =} diff --git a/src/nhttpd/web/languages/Deutsch b/src/nhttpd/web/languages/Deutsch index f422477b8..27b7e08d4 100644 --- a/src/nhttpd/web/languages/Deutsch +++ b/src/nhttpd/web/languages/Deutsch @@ -49,7 +49,8 @@ tag=Bezeichnung empty=leer check=prüfen help=Hilfe -restriced_by_management_ip=Zugriff verwert wg. ManagementIP +attention=Achtung! +restriced_by_management_ip=Zugriff verwehrt wg. ManagementIP # ==========Main Menue main.boxcontrol=Boxsteuerung @@ -373,6 +374,13 @@ set.timer.klack.security_code_desc=Klack Sicherheits Code set.timer.klack.security_code=Sicherheits Code set.timer.channel_name_replacelist=Sendernamen-Ersetzungsliste +========Settings Backup/Restore +set.settings.backup=Sichern +set.settings.backup_desc=Sichern Ihrer Einstellungen +set.settings.restore=Wiederherstellen +set.settings.restore_desc=Hochladen und wiederherstellen einer vorher erstellten Sicherung. Ihre Box startet danach neu. +set.settings.warning=Sichern & Wiederherstellen ist nur bei einem gleichen Image mit gleichem Entwicklungsstand sinnvoll. + ============ Tools Info tools.info.show_messages=Kernel Meldungen tools.info.processes=Prozesse diff --git a/src/nhttpd/web/languages/English b/src/nhttpd/web/languages/English index be48ce32c..3d8803063 100644 --- a/src/nhttpd/web/languages/English +++ b/src/nhttpd/web/languages/English @@ -49,6 +49,7 @@ tag=Tag empty=empty check=check help=Help +attention=Attention! restriced_by_management_ip=restricted by ManagementIP #========= MAIN Menue @@ -376,6 +377,13 @@ set.timer.klack.security_code_desc=your klack security code to get your data wit set.timer.klack.security_code=Security Code set.timer.channel_name_replacelist=Channel name replace list +========Settings Backup/Restore +set.settings.backup=Backup +set.settings.backup_desc=Backup your settings +set.settings.restore=Restore +set.settings.restore_desc=Upload and restore your settings. Your STB will reboot. +set.settings.warning=Backup & Restore is only useful for the same image with the same level of development. + ============ Tools Info tools.info.show_messages=Kernel Messages tools.info.processes=Processes diff --git a/src/nhttpd/web/languages/Portuguese b/src/nhttpd/web/languages/Portuguese index d098e8bae..36cb93211 100644 --- a/src/nhttpd/web/languages/Portuguese +++ b/src/nhttpd/web/languages/Portuguese @@ -49,6 +49,7 @@ tag=Tag empty=vazio check=verificar help=Ajuda +attention=Attention! restriced_by_management_ip=restringido pela Gestão de IP #========= Menu Principal @@ -371,6 +372,13 @@ set.ap.decode_priority=Prioridade de decodificação set.ap.start_dir=Diretório de Início set.ap.parse_shoutcast=Shoutcast Meta-Data +========Settings Backup/Restore +set.settings.backup=Backup +set.settings.backup_desc=Backup your settings +set.settings.restore=Restore +set.settings.restore_desc=Upload and restore your settings. Your STB will reboot. +set.settings.warning=Backup & Restore is only useful for the same image with the same level of development. + ============ Ferramentas de Informação tools.info.show_messages=Mensagens do Kernel tools.info.processes=Processos diff --git a/src/nhttpd/web/scripts/Y_Tools.sh b/src/nhttpd/web/scripts/Y_Tools.sh index a89ed914f..dd26fece1 100755 --- a/src/nhttpd/web/scripts/Y_Tools.sh +++ b/src/nhttpd/web/scripts/Y_Tools.sh @@ -486,35 +486,25 @@ do_fbshot_clear() # ----------------------------------------------------------- do_settings_backup_restore() { - workdir="$y_path_tmp/y_save_settings" - yI_Version="0.1" + now=$(date +%Y-%m-%d_%H-%M-%S) + workdir="$y_path_tmp/y_save_settings/$now" case "$1" in backup) - mkdir $workdir >/dev/null - cp -r $y_path_config $workdir >/dev/null - t=`date +%y%m%d_%H%M%S` - filename="$y_path_tmp/y_Save_Settings_$t.tar" - cd $workdir - tar -cvf $filename ./* >/dev/null - rm -r $workdir >/dev/null - echo "$filename" + rm -rf $workdir + mkdir -p $workdir + /bin/backup.sh $workdir >/dev/null + filename=$(ls -1 -tr $workdir/settings_* | tail -1) + echo "$filename" ;; restore) - msg="restore settings" - if [ -s "$y_upload_file" ] - then - # unpack /tmp/upload.tmp - cd $y_path_tmp - tar -xf "$y_upload_file" - rm $y_upload_file - cp -rf ./config /var/tuxbox/ - rm -r ./config - msg="$msg ok" - else - msg="$msg error: no upload file" - fi - y_format_message_html + if [ -s "$y_upload_file" ] + then + msg=$(/bin/restore.sh "$y_upload_file") + else + msg="error: no upload file" + fi + y_format_message_html ;; esac } From 084fb88f50a67a73095aca522ec303998dc079ef Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Tue, 17 Jul 2012 22:00:12 +0200 Subject: [PATCH 119/317] *menu: ensure also correct x-position of details line It's possible that x pos is changeing during runtime --- src/gui/widget/menue.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gui/widget/menue.cpp b/src/gui/widget/menue.cpp index 306f69412..0ac02d7fb 100644 --- a/src/gui/widget/menue.cpp +++ b/src/gui/widget/menue.cpp @@ -1055,7 +1055,7 @@ void CMenuWidget::paintHint(int pos) if (hint_painted) { /* clear detailsline line */ if (details_line != NULL) - details_line->hide(); + details_line->restore(); /* clear info box */ if (info_box != NULL) info_box->hide((pos == -1) ? true : false); @@ -1084,9 +1084,9 @@ printf("paintHint: icon %s text %s\n", item->hintIcon.c_str(), g_Locale->getText int markh = hint_height > rad*2 ? hint_height - rad*2 : hint_height; int imarkh = iheight/2+1; - if (details_line == NULL) + if (details_line == NULL){ details_line = new CComponentsDetailLine(xpos, ypos1a, ypos2a, imarkh, markh); - else { + }else{ details_line->setXPos(xpos); details_line->setYPos(ypos1a); details_line->setYPosDown(ypos2a); From bc01ed9a862b25787067624ab2e48f00b0798c65 Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Thu, 19 Jul 2012 15:40:09 +0200 Subject: [PATCH 120/317] *components: add members for generic paint, hide and restore items --- src/gui/widget/components.cpp | 207 ++++++++++++++++++++++------------ src/gui/widget/components.h | 51 ++++++--- src/gui/widget/menue.cpp | 13 ++- 3 files changed, 174 insertions(+), 97 deletions(-) diff --git a/src/gui/widget/components.cpp b/src/gui/widget/components.cpp index 0609f0207..eddfe8af6 100644 --- a/src/gui/widget/components.cpp +++ b/src/gui/widget/components.cpp @@ -27,10 +27,12 @@ #include #endif -#include - #include #include +#include + + + //basic class CComponents @@ -40,32 +42,74 @@ CComponents::CComponents(const int x_pos, const int y_pos, const int h, const in y = y_pos; height = h; width = w; - frameBuffer = CFrameBuffer::getInstance(); - bg_buf = NULL; + sw = 0; //shadow width + frameBuffer = CFrameBuffer::getInstance(); + v_screen_val.clear(); } CComponents::~CComponents() { - if (bg_buf) { - delete[] bg_buf; - bg_buf = NULL; + clear(); +} + + +//paint framebuffer stuff and fill buffer +void CComponents::paintFbItems(struct comp_fbdata_t * fbdata, const int items_count, bool do_save_bg) +{ + for(int i=0; i< items_count ;i++){ + if (do_save_bg){ + fbdata[i].pixbuf = new fb_pixel_t[fbdata[i].dx * fbdata[i].dy]; + frameBuffer->SaveScreen(fbdata[i].x, fbdata[i].y, fbdata[i].dx, fbdata[i].dy, fbdata[i].pixbuf); + } + v_screen_val.push_back(fbdata[i]); + + if (fbdata[i].is_frame) + frameBuffer->paintBoxFrame(fbdata[i].x, fbdata[i].y, fbdata[i].dx, fbdata[i].dy, fbdata[i].frame_thickness, fbdata[i].color, fbdata[i].r); + else + frameBuffer->paintBoxRel(fbdata[i].x, fbdata[i].y, fbdata[i].dx, fbdata[i].dy, fbdata[i].color, fbdata[i].r); } } +//restore screen +inline void CComponents::restore() +{ + for(size_t i =0; i< v_screen_val.size() ;i++) { + if (v_screen_val[i].pixbuf != NULL){ + frameBuffer->RestoreScreen(v_screen_val[i].x, v_screen_val[i].y, v_screen_val[i].dx, v_screen_val[i].dy, v_screen_val[i].pixbuf); + delete[] v_screen_val[i].pixbuf; + } + } + v_screen_val.clear(); +} + +//clean old screen buffer +inline void CComponents::clear() +{ + for(size_t i =0; i< v_screen_val.size() ;i++) + if (v_screen_val[i].pixbuf != NULL) + delete[] v_screen_val[i].pixbuf; + v_screen_val.clear(); +} + //------------------------------------------------------------------------------------------------------- //sub class CComponentsDetailLine -CComponentsDetailLine::CComponentsDetailLine(const int x_pos, const int y_pos_top, const int y_pos_down, const int h_mark_top_, const int h_mark_down_, fb_pixel_t color1, fb_pixel_t color2) +CComponentsDetailLine::CComponentsDetailLine(const int x_pos, const int y_pos_top, const int y_pos_down, const int h_mark_top_, const int h_mark_down_, fb_pixel_t color_line, fb_pixel_t color_shadow) { x = x_pos; width = 16; thickness = 4; + sw = 1; //shadow width y = y_pos_top; y_down = y_pos_down; h_mark_top = h_mark_top_; h_mark_down = h_mark_down_; - offs_up = offs_down = 0; - col1 = color1; - col2 = color2; + col_line = color_line; + col_shadow = color_shadow; +} + +CComponentsDetailLine::~CComponentsDetailLine() +{ + clear(); } // y_top (=y) @@ -82,32 +126,42 @@ CComponentsDetailLine::CComponentsDetailLine(const int x_pos, const int y_pos_to // +--|h_mark_down // y_down + +#define DLINE_ITEMS_COUNT 12 //paint details line with current parameters -void CComponentsDetailLine::paint() +void CComponentsDetailLine::paint(bool do_save_bg) { - offs_up = h_mark_top/2-thickness+1; - offs_down = h_mark_down/2-thickness+2; - int y_top = y; + clear(); + + int y_mark_top = y-h_mark_top/2+thickness/2; + int y_mark_down = y_down-h_mark_down/2+thickness/2; - /* vertical item mark | */ - frameBuffer->paintBoxRel(x+width-4, y_top-offs_up, thickness, h_mark_top, col1); - frameBuffer->paintBoxRel(x+width-5+thickness, y_top-offs_up, 1, h_mark_top, col2); + comp_fbdata_t fbdata[DLINE_ITEMS_COUNT] = + { + /* vertical item mark | */ + {x+width-thickness-sw, y_mark_top, thickness, h_mark_top, col_line, 0, NULL, NULL, false, 0}, + {x+width-sw, y_mark_top, sw, h_mark_top, col_shadow, 0, NULL, NULL, false, 0}, + {x+width-thickness-sw, y_mark_top+h_mark_top, thickness+sw, sw , col_shadow, 0, NULL, NULL, false, 0}, + + /* horizontal item line - */ + {x, y, width-thickness-sw, thickness, col_line, 0, NULL, NULL, false, 0}, + {x+thickness, y+thickness, width-2*thickness-sw, sw, col_shadow, 0, NULL, NULL, false, 0}, + + /* vertical connect line [ */ + {x, y+thickness, thickness, y_down-y-thickness, col_line, 0, NULL, NULL, false, 0}, + {x+thickness, y+thickness+sw, sw, y_down-y-thickness-sw, col_shadow, 0, NULL, NULL, false, 0}, + + /* horizontal info line - */ + {x, y_down, width-thickness-sw, thickness, col_line, 0, NULL, NULL, false, 0}, + {x, y_down+thickness, width-thickness-sw, sw, col_shadow, 0, NULL, NULL, false, 0}, + + /* vertical info mark | */ + {x+width-thickness-sw, y_mark_down, thickness, h_mark_down, col_line, 0, NULL, NULL, false, 0}, + {x+width-sw, y_mark_down, sw, h_mark_down, col_shadow, 0, NULL, NULL, false, 0}, + {x+width-thickness-sw, y_mark_down+h_mark_down,thickness+sw, sw, col_shadow, 0, NULL, NULL, false, 0}, + }; - /* horizontal item line - */ - frameBuffer->paintBoxRel(x+width-15, y_top+1, 11, thickness, col1); - frameBuffer->paintBoxRel(x+width-15+thickness, y_top+1+thickness, 11-thickness, 1, col2); - - /* vertical connect line [ */ - frameBuffer->paintBoxRel(x+width-15, y_top+2, thickness, y_down-y_top-1, col1); - frameBuffer->paintBoxRel(x+width-15+thickness, y_top+2+thickness, 1, y_down-y_top+3-2*thickness, col2); - - /* horizontal info line - */ - frameBuffer->paintBoxRel(x+width-15, y_down, 11, thickness, col1); - frameBuffer->paintBoxRel(x+width-14+thickness, y_down+thickness, 11-thickness, 1, col2); - - /* vertical info mark | */ - frameBuffer->paintBoxRel(x+width-4, y_down-offs_down, thickness, h_mark_down, col1); - frameBuffer->paintBoxRel(x+width-5+thickness, y_down-offs_down, 1, h_mark_down, col2); + paintFbItems(fbdata, DLINE_ITEMS_COUNT, do_save_bg); } //remove painted lines from screen @@ -115,63 +169,66 @@ void CComponentsDetailLine::hide() { //caching current colors fb_pixel_t c_tmp1, c_tmp2; - c_tmp1 = col1; - c_tmp2 = col2; + c_tmp1 = col_line; + c_tmp2 = col_shadow; //set background color - col1 = col2 = COL_BACKGROUND; + col_line = col_shadow = COL_BACKGROUND; - //paint with background and restore set last used colors - paint(); - col1 = c_tmp1; - col2 = c_tmp2; + //paint with background and restore, set last used colors + paint(false); + col_line = c_tmp1; + col_shadow = c_tmp2; } + //------------------------------------------------------------------------------------------------------- //sub class CComponentsInfoBox -CComponentsInfoBox::CComponentsInfoBox( const int x_pos, const int y_pos, const int width_, const int height_, bool shadow_, - fb_pixel_t color1, fb_pixel_t color2, fb_pixel_t color3) +CComponentsInfoBox::CComponentsInfoBox(const int x_pos, const int y_pos, const int h, const int w, fb_pixel_t color_frame, fb_pixel_t color_body, fb_pixel_t color_shadow, bool has_shadow) { x = x_pos; y = y_pos; - width = width_; - height = height_; - rad = RADIUS_LARGE; - shadow = shadow_; - bg_saved = false; - - col_frame = color1; - col_body = color2; - col_shadow = color3; - bg_buf = new fb_pixel_t[(width+SHADOW_OFFSET) * (height+SHADOW_OFFSET)]; + width = w; + height = h; + rad = 0; + shadow = has_shadow; + col_frame = color_frame; + col_body = color_body; + col_shadow = color_shadow; + fr_thickness = 2; } -void CComponentsInfoBox::paint(int rad_) +#define INFOBOX_ITEMS_COUNT 3 +void CComponentsInfoBox::paint(bool do_save_bg) { - rad = rad_; - if ((bg_buf != NULL) && (!bg_saved)) { - frameBuffer->SaveScreen(x, y, width+SHADOW_OFFSET, height+SHADOW_OFFSET, bg_buf); - bg_saved = true; - } + clear(); + rad = RADIUS_LARGE; - /* box shadow */ - if (shadow) - frameBuffer->paintBoxRel(x+SHADOW_OFFSET, y+SHADOW_OFFSET, width, height, col_shadow, rad); - /* box frame */ -// frameBuffer->paintBoxFrame(x, y, width, height, 2, col_frame, rad); - frameBuffer->paintBoxRel(x, y, width, height, col_frame, rad); - /* box fill */ - frameBuffer->paintBoxRel(x+2, y+2, width-4, height-4, col_body, rad); + comp_fbdata_t fbdata[INFOBOX_ITEMS_COUNT] = + { + {x+SHADOW_OFFSET, y+SHADOW_OFFSET, width, height, col_shadow, rad, NULL, NULL, false, 0}, + {x, y, width, height, col_frame, rad, NULL, NULL, true, fr_thickness}, + {x+fr_thickness, y+fr_thickness, width-2*fr_thickness, height-2*fr_thickness, col_body, rad, NULL, NULL, false, 0}, + }; + + paintFbItems(fbdata, INFOBOX_ITEMS_COUNT, do_save_bg); } -void CComponentsInfoBox::hide(bool full) +void CComponentsInfoBox::hide() { - if (full) { - if (bg_buf != NULL) - frameBuffer->RestoreScreen(x, y, width+SHADOW_OFFSET, height+SHADOW_OFFSET, bg_buf); - else - frameBuffer->paintBackgroundBoxRel(x, y, width+SHADOW_OFFSET, height+SHADOW_OFFSET); - } - else - frameBuffer->paintBoxRel(x+2, y+2, width-4, height-4, col_body, rad); + //caching current colors + fb_pixel_t c_tmp1, c_tmp2, c_tmp3; + c_tmp1 = col_body; + c_tmp2 = col_shadow; + c_tmp3 = col_frame; + + //set background color + col_body = col_frame = col_shadow = COL_BACKGROUND; + + //paint with background and restore, set last used colors + paint(false); + col_body = c_tmp1; + col_shadow = c_tmp2; + col_frame = c_tmp3; } + diff --git a/src/gui/widget/components.h b/src/gui/widget/components.h index c46c16e87..b639519f0 100644 --- a/src/gui/widget/components.h +++ b/src/gui/widget/components.h @@ -29,14 +29,32 @@ #include #include #include +#include + +//required typedefs +typedef struct comp_fbdata_t +{ + int x; + int y; + int dx; + int dy; + fb_pixel_t color; + int r; + void * data; + fb_pixel_t* pixbuf; + bool is_frame; + int frame_thickness; +} comp_fbdata_struct_t; class CComponents { protected: - int x, y, height, width; - fb_pixel_t *bg_buf; + int x, y, height, width, sw; CFrameBuffer * frameBuffer; + std::vector v_screen_val; + void paintFbItems(struct comp_fbdata_t * fbdata, const int items_count, bool do_save_bg = true); + void clear(); public: CComponents(const int x_pos = 0, const int y_pos = 0, const int h = 0, const int w = 0); @@ -46,22 +64,24 @@ class CComponents virtual void setYPos(const int& ypos){y = ypos;}; virtual void setHeight(const int& h){height = h;}; virtual void setWidth(const int& w){width = w;}; + virtual void restore(); }; class CComponentsDetailLine : public CComponents { private: - int thickness, y_down, h_mark_top, h_mark_down, offs_up, offs_down; - fb_pixel_t col1, col2; + int thickness, y_down, h_mark_top, h_mark_down; + fb_pixel_t col_line, col_shadow; public: CComponentsDetailLine( const int x_pos,const int y_pos_top, const int y_pos_down, const int h_mark_up =16 , const int h_mark_down = 16, - fb_pixel_t color1 = COL_MENUCONTENT_PLUS_6, fb_pixel_t color2 = COL_MENUCONTENTDARK_PLUS_0); + fb_pixel_t color_line = COL_MENUCONTENT_PLUS_6, fb_pixel_t color_shadow = COL_MENUCONTENTDARK_PLUS_0); + ~CComponentsDetailLine(); - void paint(); + void paint(bool do_save_bg = true); void hide(); - void setColor(fb_pixel_t color1, fb_pixel_t color2){col1 = color1; col2 = color2;}; + void setColor(fb_pixel_t color_line, fb_pixel_t color_shadow){col_line = color_line; col_shadow = color_shadow;}; void setYPosDown(const int& y_pos_down){y_down = y_pos_down;}; void setHMarkDown(const int& h_mark_down_){h_mark_down = h_mark_down_;}; }; @@ -69,19 +89,18 @@ class CComponentsDetailLine : public CComponents class CComponentsInfoBox : public CComponents { private: - int width, height, rad; + int rad,fr_thickness; + bool shadow; fb_pixel_t col_frame, col_body, col_shadow; - bool shadow, bg_saved; public: - CComponentsInfoBox( const int x_pos, const int y_pos, const int width_, const int height_, bool shadow_ = true, - fb_pixel_t color1 = COL_MENUCONTENT_PLUS_6, - fb_pixel_t color2 = COL_MENUCONTENTDARK_PLUS_0, - fb_pixel_t color3 = COL_MENUCONTENTDARK_PLUS_0); + CComponentsInfoBox( const int x_pos, const int y_pos, const int h, const int w, + fb_pixel_t color_frame = COL_MENUCONTENT_PLUS_6, fb_pixel_t color_body = COL_MENUCONTENTDARK_PLUS_0,fb_pixel_t color_shadow = COL_MENUCONTENTDARK_PLUS_0, + bool has_shadow = true); - void paint(int rad_); - void hide(bool full = false); - void setColor(fb_pixel_t color1, fb_pixel_t color2, fb_pixel_t color3){col_frame = color1; col_body = color2; col_shadow = color3;}; + void paint(bool do_save_bg = true); + void hide(); + void setColor(fb_pixel_t color_frame, fb_pixel_t color_body, fb_pixel_t color_shadow){col_frame = color_frame; col_body = color_body; col_shadow = color_shadow;}; }; #endif diff --git a/src/gui/widget/menue.cpp b/src/gui/widget/menue.cpp index 0ac02d7fb..8858605d9 100644 --- a/src/gui/widget/menue.cpp +++ b/src/gui/widget/menue.cpp @@ -1058,7 +1058,7 @@ void CMenuWidget::paintHint(int pos) details_line->restore(); /* clear info box */ if (info_box != NULL) - info_box->hide((pos == -1) ? true : false); + pos == -1 ? info_box->hide() : info_box->restore(); hint_painted = false; } if (pos < 0) @@ -1069,7 +1069,7 @@ printf("paintHint: icon %s text %s\n", item->hintIcon.c_str(), g_Locale->getText if (item->hintIcon.empty() && item->hint == NONEXISTANT_LOCALE) { if (info_box != NULL) - info_box->hide(true); + info_box->hide(); return; } @@ -1080,7 +1080,7 @@ printf("paintHint: icon %s text %s\n", item->hintIcon.c_str(), g_Locale->getText //details line int ypos1 = item->getYPosition(); int ypos1a = ypos1 + (iheight/2)-2; - int ypos2a = ypos2 + (hint_height/2)-2; + int ypos2a = ypos2 + (hint_height/2); int markh = hint_height > rad*2 ? hint_height - rad*2 : hint_height; int imarkh = iheight/2+1; @@ -1090,17 +1090,18 @@ printf("paintHint: icon %s text %s\n", item->hintIcon.c_str(), g_Locale->getText details_line->setXPos(xpos); details_line->setYPos(ypos1a); details_line->setYPosDown(ypos2a); - details_line->setHMarkDown(markh); + details_line->setHMarkDown(markh); } details_line->paint(); if (info_box == NULL) - info_box = new CComponentsInfoBox(x, ypos2, iwidth, hint_height); + info_box = new CComponentsInfoBox(x, ypos2, hint_height, iwidth); else { info_box->setXPos(x); info_box->setYPos(ypos2); + info_box->setWidth(iwidth); } - info_box->paint(rad); + info_box->paint(); int offset = 10; if (!item->hintIcon.empty()) { From 672d2db9ffb74d705cd7928b70b68a166baebf49 Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Thu, 19 Jul 2012 15:41:58 +0200 Subject: [PATCH 121/317] *CBEBouquetWidget: add missing init for some members with NULL --- src/gui/bedit/bouqueteditor_bouquets.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/gui/bedit/bouqueteditor_bouquets.cpp b/src/gui/bedit/bouqueteditor_bouquets.cpp index 0d9d99526..532d3ecb1 100644 --- a/src/gui/bedit/bouqueteditor_bouquets.cpp +++ b/src/gui/bedit/bouqueteditor_bouquets.cpp @@ -66,6 +66,11 @@ CBEBouquetWidget::CBEBouquetWidget() liststart = 0; state = beDefault; blueFunction = beRename; + Bouquets = NULL; + iheight = 0; + ButtonHeight = 0; + fheight = 0; + theight = 0; } void CBEBouquetWidget::paintItem(int pos) From 2aa30d73031368e32c1b9391023b7750fea87d7a Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Thu, 19 Jul 2012 15:43:10 +0200 Subject: [PATCH 122/317] *CBEChannelWidget: rework details line handling --- src/gui/bedit/bouqueteditor_channels.cpp | 24 +++++++++++++++++------- src/gui/bedit/bouqueteditor_channels.h | 7 ++++--- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/src/gui/bedit/bouqueteditor_channels.cpp b/src/gui/bedit/bouqueteditor_channels.cpp index 9df7fbd34..9dddd94ec 100644 --- a/src/gui/bedit/bouqueteditor_channels.cpp +++ b/src/gui/bedit/bouqueteditor_channels.cpp @@ -38,7 +38,7 @@ #include #include #include -#include + #include "bouqueteditor_channels.h" #include @@ -87,6 +87,13 @@ CBEChannelWidget::CBEChannelWidget(const std::string & Caption, unsigned int Bou caption = Caption; bouquet = Bouquet; mode = CZapitClient::MODE_TV; + dline = NULL; + Channels = NULL; +} + +CBEChannelWidget::~CBEChannelWidget() +{ + delete dline; } void CBEChannelWidget::paintItem(int pos) @@ -208,15 +215,17 @@ void CBEChannelWidget::paintItem2DetailsLine (int pos, int /*ch_index*/) int ypos2a = ypos2 + (info_height/2)-2; fb_pixel_t col1 = COL_MENUCONTENT_PLUS_6; - // Clear - frameBuffer->paintBackgroundBoxRel(xpos,y, ConnectLineBox_Width, height+info_height); + // clear details line + if (dline != NULL) + dline->hide(); // paint Line if detail info (and not valid list pos) if (pos >= 0) { - //details line - CComponentsDetailLine dline(xpos, ypos1a, ypos2a, fheight/2+1, info_height-RADIUS_LARGE*2); - dline.paint(); + if (dline == NULL) + dline = new CComponentsDetailLine(xpos, ypos1a, ypos2a, fheight/2+1, info_height-RADIUS_LARGE*2); + dline->setYPos(ypos1a); + dline->paint(); //info box frame frameBuffer->paintBoxFrame(x, ypos2, width, info_height, 2, col1, RADIUS_LARGE); @@ -225,7 +234,8 @@ void CBEChannelWidget::paintItem2DetailsLine (int pos, int /*ch_index*/) void CBEChannelWidget::clearItem2DetailsLine () { - paintItem2DetailsLine (-1, 0); + if (dline != NULL) + dline->hide(); } void CBEChannelWidget::hide() diff --git a/src/gui/bedit/bouqueteditor_channels.h b/src/gui/bedit/bouqueteditor_channels.h index e57e2364a..0c692186d 100644 --- a/src/gui/bedit/bouqueteditor_channels.h +++ b/src/gui/bedit/bouqueteditor_channels.h @@ -35,7 +35,7 @@ #include #include - +#include #include #include @@ -46,9 +46,9 @@ class CBEChannelWidget : public CMenuTarget { private: - CFrameBuffer *frameBuffer; - + CComponentsDetailLine *dline; + enum state_ { beDefault, @@ -100,6 +100,7 @@ class CBEChannelWidget : public CMenuTarget public: CBEChannelWidget( const std::string & Caption, unsigned int Bouquet); + ~CBEChannelWidget(); //CZapitClient::BouquetChannelList Channels; ZapitChannelList * Channels; From dd9086b84d645c35f9ff0acc6b2672eabdde09a5 Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Thu, 19 Jul 2012 15:45:00 +0200 Subject: [PATCH 123/317] *CBEChannelSelectWidget: remove old detail line handing add dline instance from CComponentsDetailsLine --- src/gui/bedit/bouqueteditor_chanselect.cpp | 37 +++++++++++----------- src/gui/bedit/bouqueteditor_chanselect.h | 4 ++- 2 files changed, 22 insertions(+), 19 deletions(-) diff --git a/src/gui/bedit/bouqueteditor_chanselect.cpp b/src/gui/bedit/bouqueteditor_chanselect.cpp index ad0604abd..9f889bb9b 100644 --- a/src/gui/bedit/bouqueteditor_chanselect.cpp +++ b/src/gui/bedit/bouqueteditor_chanselect.cpp @@ -72,6 +72,16 @@ CBEChannelSelectWidget::CBEChannelSelectWidget(const std::string & Caption, unsi ButtonHeight = std::max(footerHeight, icol_h+4); liststart = 0; + bouquetChannels = NULL; + dline = NULL; +} + +CBEChannelSelectWidget::~CBEChannelSelectWidget() +{ + // clear details line + if (dline != NULL) + dline->hide(); + delete dline; } uint CBEChannelSelectWidget::getItemCount() @@ -222,30 +232,21 @@ void CBEChannelSelectWidget::paintItem2DetailsLine (int pos, int /*ch_index*/) int ypos1a = ypos1 + (fheight/2)-2; int ypos2a = ypos2 + (info_height/2)-2; fb_pixel_t col1 = COL_MENUCONTENT_PLUS_6; - fb_pixel_t col2 = COL_MENUCONTENT_PLUS_1; - // Clear - frameBuffer->paintBackgroundBoxRel(xpos,y, ConnectLineBox_Width, height+info_height); + // clear details line + if (dline != NULL) + dline->hide(); // paint Line if detail info (and not valid list pos) if (pos >= 0) { - int fh = fheight > 10 ? fheight - 10: 5; - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-4, ypos1+5, 4, fh, col1); - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-4, ypos1+5, 1, fh, col2); - - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-4, ypos2+7, 4,info_height-14, col1); - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-4, ypos2+7, 1,info_height-14, col2); - - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a, 4,ypos2a-ypos1a, col1); - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a, 1,ypos2a-ypos1a+4, col2); - - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a, 12,4, col1); - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos1a, 12,1, col2); - - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-16, ypos2a, 12,4, col1); - frameBuffer->paintBoxRel(xpos+ConnectLineBox_Width-12, ypos2a, 8,1, col2); + if (dline == NULL) + dline = new CComponentsDetailLine(xpos, ypos1a, ypos2a, fheight/2+1, info_height-RADIUS_LARGE*2); + dline->setYPos(ypos1a); + dline->paint(); + //info box frame frameBuffer->paintBoxFrame(x, ypos2, width, info_height, 2, col1, RADIUS_LARGE); } } + diff --git a/src/gui/bedit/bouqueteditor_chanselect.h b/src/gui/bedit/bouqueteditor_chanselect.h index 89fc63fe5..e31e93bbe 100644 --- a/src/gui/bedit/bouqueteditor_chanselect.h +++ b/src/gui/bedit/bouqueteditor_chanselect.h @@ -34,7 +34,7 @@ #include #include - +#include #include #include @@ -48,6 +48,7 @@ class CBEChannelSelectWidget : public CListBox unsigned int bouquet; CZapitClient::channelsMode mode; bool isChannelInBouquet( int index); + CComponentsDetailLine *dline; uint getItemCount(); void paintItem(uint32_t itemNr, int paintNr, bool selected); @@ -64,6 +65,7 @@ class CBEChannelSelectWidget : public CListBox ZapitChannelList * bouquetChannels; CBEChannelSelectWidget(const std::string & Caption, unsigned int Bouquet, CZapitClient::channelsMode Mode); + ~CBEChannelSelectWidget(); int exec(CMenuTarget* parent, const std::string & actionKey); bool hasChanged(); From 1a654403ccece0a2b676e0a537f15437508313e1 Mon Sep 17 00:00:00 2001 From: micha-bbg Date: Fri, 20 Jul 2012 19:02:54 +0200 Subject: [PATCH 124/317] * CComponentsInfoBox: save/restore screen - Own save/restore screen routine - Shadow can be switched off - Small fixes --- src/gui/widget/components.cpp | 58 +++++++++++++++++++++++++++++------ src/gui/widget/components.h | 9 ++++-- src/gui/widget/menue.cpp | 9 +++--- 3 files changed, 59 insertions(+), 17 deletions(-) diff --git a/src/gui/widget/components.cpp b/src/gui/widget/components.cpp index eddfe8af6..fb82880f2 100644 --- a/src/gui/widget/components.cpp +++ b/src/gui/widget/components.cpp @@ -52,17 +52,17 @@ CComponents::~CComponents() clear(); } - //paint framebuffer stuff and fill buffer void CComponents::paintFbItems(struct comp_fbdata_t * fbdata, const int items_count, bool do_save_bg) { - for(int i=0; i< items_count ;i++){ - if (do_save_bg){ - fbdata[i].pixbuf = new fb_pixel_t[fbdata[i].dx * fbdata[i].dy]; - frameBuffer->SaveScreen(fbdata[i].x, fbdata[i].y, fbdata[i].dx, fbdata[i].dy, fbdata[i].pixbuf); - } + int i; + for(i=0; i< items_count ;i++){ + if (do_save_bg) + fbdata[i].pixbuf = saveScreen(fbdata[i].x, fbdata[i].y, fbdata[i].dx, fbdata[i].dy); v_screen_val.push_back(fbdata[i]); + } + for(i=0; i< items_count ;i++){ if (fbdata[i].is_frame) frameBuffer->paintBoxFrame(fbdata[i].x, fbdata[i].y, fbdata[i].dx, fbdata[i].dy, fbdata[i].frame_thickness, fbdata[i].color, fbdata[i].r); else @@ -70,6 +70,14 @@ void CComponents::paintFbItems(struct comp_fbdata_t * fbdata, const int items_co } } +//screen area save +inline fb_pixel_t* CComponents::saveScreen(int ax, int ay, int dx, int dy) +{ + fb_pixel_t* pixbuf = new fb_pixel_t[dx * dy]; + frameBuffer->SaveScreen(ax, ay, dx, dy, pixbuf); + return pixbuf; +} + //restore screen inline void CComponents::restore() { @@ -184,7 +192,7 @@ void CComponentsDetailLine::hide() //------------------------------------------------------------------------------------------------------- //sub class CComponentsInfoBox -CComponentsInfoBox::CComponentsInfoBox(const int x_pos, const int y_pos, const int h, const int w, fb_pixel_t color_frame, fb_pixel_t color_body, fb_pixel_t color_shadow, bool has_shadow) +CComponentsInfoBox::CComponentsInfoBox(const int x_pos, const int y_pos, const int h, const int w, bool has_shadow, fb_pixel_t color_frame, fb_pixel_t color_body, fb_pixel_t color_shadow) { x = x_pos; y = y_pos; @@ -196,6 +204,8 @@ CComponentsInfoBox::CComponentsInfoBox(const int x_pos, const int y_pos, const i col_body = color_body; col_shadow = color_shadow; fr_thickness = 2; + bg_saved = false; + v_infobox_val.clear(); } #define INFOBOX_ITEMS_COUNT 3 @@ -207,11 +217,40 @@ void CComponentsInfoBox::paint(bool do_save_bg) comp_fbdata_t fbdata[INFOBOX_ITEMS_COUNT] = { {x+SHADOW_OFFSET, y+SHADOW_OFFSET, width, height, col_shadow, rad, NULL, NULL, false, 0}, - {x, y, width, height, col_frame, rad, NULL, NULL, true, fr_thickness}, + {x, y, width, height, col_frame, rad, NULL, NULL, false, 0}, {x+fr_thickness, y+fr_thickness, width-2*fr_thickness, height-2*fr_thickness, col_body, rad, NULL, NULL, false, 0}, }; - paintFbItems(fbdata, INFOBOX_ITEMS_COUNT, do_save_bg); + int start = (shadow) ? 0 : 1; + if (do_save_bg) { + if (!bg_saved) { + v_infobox_val.clear(); + for(int i = start; i < INFOBOX_ITEMS_COUNT; i++) { + fbdata[i].pixbuf = saveScreen(fbdata[i].x, fbdata[i].y, fbdata[i].dx, fbdata[i].dy); + v_infobox_val.push_back(fbdata[i]); + fbdata[i].pixbuf = NULL; + } + bg_saved = true; + } + } + + paintFbItems((comp_fbdata_t*)&fbdata[start], INFOBOX_ITEMS_COUNT - start, false); +} + +//restore infobox +void CComponentsInfoBox::restore(bool clear_) +{ + if (!v_infobox_val.empty()) { + for(size_t i =0; i< v_infobox_val.size() ;i++) { + if (v_infobox_val[i].pixbuf != NULL) { + frameBuffer->RestoreScreen(v_infobox_val[i].x, v_infobox_val[i].y, v_infobox_val[i].dx, v_infobox_val[i].dy, v_infobox_val[i].pixbuf); + if (clear_) + delete[] v_infobox_val[i].pixbuf; + } + } + if (clear_) + v_infobox_val.clear(); + } } void CComponentsInfoBox::hide() @@ -231,4 +270,3 @@ void CComponentsInfoBox::hide() col_shadow = c_tmp2; col_frame = c_tmp3; } - diff --git a/src/gui/widget/components.h b/src/gui/widget/components.h index b639519f0..902b48a4f 100644 --- a/src/gui/widget/components.h +++ b/src/gui/widget/components.h @@ -54,6 +54,7 @@ class CComponents std::vector v_screen_val; void paintFbItems(struct comp_fbdata_t * fbdata, const int items_count, bool do_save_bg = true); + fb_pixel_t* saveScreen(int ax, int ay, int dx, int dy); void clear(); public: @@ -92,14 +93,16 @@ class CComponentsInfoBox : public CComponents int rad,fr_thickness; bool shadow; fb_pixel_t col_frame, col_body, col_shadow; + bool bg_saved; + std::vector v_infobox_val; public: - CComponentsInfoBox( const int x_pos, const int y_pos, const int h, const int w, - fb_pixel_t color_frame = COL_MENUCONTENT_PLUS_6, fb_pixel_t color_body = COL_MENUCONTENTDARK_PLUS_0,fb_pixel_t color_shadow = COL_MENUCONTENTDARK_PLUS_0, - bool has_shadow = true); + CComponentsInfoBox( const int x_pos, const int y_pos, const int h, const int w, bool has_shadow = true, + fb_pixel_t color_frame = COL_MENUCONTENT_PLUS_6, fb_pixel_t color_body = COL_MENUCONTENTDARK_PLUS_0,fb_pixel_t color_shadow = COL_MENUCONTENTDARK_PLUS_0); void paint(bool do_save_bg = true); void hide(); + void restore(bool clear_); void setColor(fb_pixel_t color_frame, fb_pixel_t color_body, fb_pixel_t color_shadow){col_frame = color_frame; col_body = color_body; col_shadow = color_shadow;}; }; diff --git a/src/gui/widget/menue.cpp b/src/gui/widget/menue.cpp index 8858605d9..46bb726fd 100644 --- a/src/gui/widget/menue.cpp +++ b/src/gui/widget/menue.cpp @@ -1049,7 +1049,7 @@ void CMenuWidget::paintHint(int pos) int rad = RADIUS_LARGE; int xpos = x - ConnectLineBox_Width; - int ypos2 = y + height + rad + SHADOW_OFFSET; + int ypos2 = y + height + rad + SHADOW_OFFSET + 2; int iwidth = width+sb_width; if (hint_painted) { @@ -1058,7 +1058,8 @@ void CMenuWidget::paintHint(int pos) details_line->restore(); /* clear info box */ if (info_box != NULL) - pos == -1 ? info_box->hide() : info_box->restore(); + if (pos == -1) + info_box->restore(true); hint_painted = false; } if (pos < 0) @@ -1069,7 +1070,7 @@ printf("paintHint: icon %s text %s\n", item->hintIcon.c_str(), g_Locale->getText if (item->hintIcon.empty() && item->hint == NONEXISTANT_LOCALE) { if (info_box != NULL) - info_box->hide(); + info_box->restore(false); return; } @@ -1080,7 +1081,7 @@ printf("paintHint: icon %s text %s\n", item->hintIcon.c_str(), g_Locale->getText //details line int ypos1 = item->getYPosition(); int ypos1a = ypos1 + (iheight/2)-2; - int ypos2a = ypos2 + (hint_height/2); + int ypos2a = ypos2 + (hint_height/2)-2; int markh = hint_height > rad*2 ? hint_height - rad*2 : hint_height; int imarkh = iheight/2+1; From ecadf79a8f7526aaff73ea3417bad4b5b0265e40 Mon Sep 17 00:00:00 2001 From: micha-bbg Date: Fri, 20 Jul 2012 21:28:18 +0200 Subject: [PATCH 125/317] * Correct restore the screen to exit menu --- src/gui/widget/menue.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/gui/widget/menue.cpp b/src/gui/widget/menue.cpp index 46bb726fd..1800905c1 100644 --- a/src/gui/widget/menue.cpp +++ b/src/gui/widget/menue.cpp @@ -44,6 +44,7 @@ #include #define ConnectLineBox_Width 16 +#define INFO_BOX_Y_OFFSET 2 /* the following generic menu items are integrated into multiple menus at the same time */ CMenuSeparator CGenericMenuSeparator; @@ -858,7 +859,7 @@ void CMenuWidget::calcSize() sb_width=15; full_width = ConnectLineBox_Width+width+sb_width+SHADOW_OFFSET; - full_height = height+RADIUS_LARGE+SHADOW_OFFSET*2+hint_height; + full_height = height+RADIUS_LARGE+SHADOW_OFFSET*2+hint_height+INFO_BOX_Y_OFFSET; setMenuPos(width - sb_width); } @@ -1049,7 +1050,7 @@ void CMenuWidget::paintHint(int pos) int rad = RADIUS_LARGE; int xpos = x - ConnectLineBox_Width; - int ypos2 = y + height + rad + SHADOW_OFFSET + 2; + int ypos2 = y + height + rad + SHADOW_OFFSET + INFO_BOX_Y_OFFSET; int iwidth = width+sb_width; if (hint_painted) { @@ -1081,7 +1082,7 @@ printf("paintHint: icon %s text %s\n", item->hintIcon.c_str(), g_Locale->getText //details line int ypos1 = item->getYPosition(); int ypos1a = ypos1 + (iheight/2)-2; - int ypos2a = ypos2 + (hint_height/2)-2; + int ypos2a = ypos2 + (hint_height/2) - INFO_BOX_Y_OFFSET; int markh = hint_height > rad*2 ? hint_height - rad*2 : hint_height; int imarkh = iheight/2+1; From cb375cc2140eff282c0385f864237dd4bdb373ef Mon Sep 17 00:00:00 2001 From: micha-bbg Date: Sun, 22 Jul 2012 12:31:19 +0200 Subject: [PATCH 126/317] * CComponentsInfoBox: Optimize display - Paint full info box only when activating the menu, otherwise only body paint --- src/gui/widget/components.cpp | 22 +++++++++++++--------- src/gui/widget/components.h | 2 +- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/gui/widget/components.cpp b/src/gui/widget/components.cpp index fb82880f2..cbfdfcac8 100644 --- a/src/gui/widget/components.cpp +++ b/src/gui/widget/components.cpp @@ -204,7 +204,7 @@ CComponentsInfoBox::CComponentsInfoBox(const int x_pos, const int y_pos, const i col_body = color_body; col_shadow = color_shadow; fr_thickness = 2; - bg_saved = false; + firstPaint = true; v_infobox_val.clear(); } @@ -221,20 +221,22 @@ void CComponentsInfoBox::paint(bool do_save_bg) {x+fr_thickness, y+fr_thickness, width-2*fr_thickness, height-2*fr_thickness, col_body, rad, NULL, NULL, false, 0}, }; - int start = (shadow) ? 0 : 1; - if (do_save_bg) { - if (!bg_saved) { + if (firstPaint) { + int start = (shadow) ? 0 : 1; + if (do_save_bg) { v_infobox_val.clear(); for(int i = start; i < INFOBOX_ITEMS_COUNT; i++) { fbdata[i].pixbuf = saveScreen(fbdata[i].x, fbdata[i].y, fbdata[i].dx, fbdata[i].dy); v_infobox_val.push_back(fbdata[i]); fbdata[i].pixbuf = NULL; } - bg_saved = true; } + paintFbItems((comp_fbdata_t*)&fbdata[start], INFOBOX_ITEMS_COUNT - start, false); + firstPaint = false; } - - paintFbItems((comp_fbdata_t*)&fbdata[start], INFOBOX_ITEMS_COUNT - start, false); + else + // paint body only + paintFbItems((comp_fbdata_t*)&fbdata[INFOBOX_ITEMS_COUNT - 1], 1, false); } //restore infobox @@ -248,8 +250,10 @@ void CComponentsInfoBox::restore(bool clear_) delete[] v_infobox_val[i].pixbuf; } } - if (clear_) - v_infobox_val.clear(); + if (clear_) { + v_infobox_val.clear(); + firstPaint = true; + } } } diff --git a/src/gui/widget/components.h b/src/gui/widget/components.h index 902b48a4f..da0dcf3e4 100644 --- a/src/gui/widget/components.h +++ b/src/gui/widget/components.h @@ -93,7 +93,7 @@ class CComponentsInfoBox : public CComponents int rad,fr_thickness; bool shadow; fb_pixel_t col_frame, col_body, col_shadow; - bool bg_saved; + bool firstPaint; std::vector v_infobox_val; public: From a5d8bd4e13034010c69be956b60ccf44fb82f907 Mon Sep 17 00:00:00 2001 From: micha-bbg Date: Sun, 22 Jul 2012 16:14:29 +0200 Subject: [PATCH 127/317] * CComponentsInfoBox: Switch parameter h and w in constructor --- src/gui/widget/components.cpp | 2 +- src/gui/widget/components.h | 3 ++- src/gui/widget/menue.cpp | 3 +-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/gui/widget/components.cpp b/src/gui/widget/components.cpp index cbfdfcac8..1a1fd1aaf 100644 --- a/src/gui/widget/components.cpp +++ b/src/gui/widget/components.cpp @@ -192,7 +192,7 @@ void CComponentsDetailLine::hide() //------------------------------------------------------------------------------------------------------- //sub class CComponentsInfoBox -CComponentsInfoBox::CComponentsInfoBox(const int x_pos, const int y_pos, const int h, const int w, bool has_shadow, fb_pixel_t color_frame, fb_pixel_t color_body, fb_pixel_t color_shadow) +CComponentsInfoBox::CComponentsInfoBox(const int x_pos, const int y_pos, const int w, const int h, bool has_shadow, fb_pixel_t color_frame, fb_pixel_t color_body, fb_pixel_t color_shadow) { x = x_pos; y = y_pos; diff --git a/src/gui/widget/components.h b/src/gui/widget/components.h index da0dcf3e4..cc221701f 100644 --- a/src/gui/widget/components.h +++ b/src/gui/widget/components.h @@ -87,6 +87,7 @@ class CComponentsDetailLine : public CComponents void setHMarkDown(const int& h_mark_down_){h_mark_down = h_mark_down_;}; }; +#define INFO_BOX_Y_OFFSET 2 class CComponentsInfoBox : public CComponents { private: @@ -97,7 +98,7 @@ class CComponentsInfoBox : public CComponents std::vector v_infobox_val; public: - CComponentsInfoBox( const int x_pos, const int y_pos, const int h, const int w, bool has_shadow = true, + CComponentsInfoBox( const int x_pos, const int y_pos, const int w, const int h, bool has_shadow = true, fb_pixel_t color_frame = COL_MENUCONTENT_PLUS_6, fb_pixel_t color_body = COL_MENUCONTENTDARK_PLUS_0,fb_pixel_t color_shadow = COL_MENUCONTENTDARK_PLUS_0); void paint(bool do_save_bg = true); diff --git a/src/gui/widget/menue.cpp b/src/gui/widget/menue.cpp index 1800905c1..480e40cf4 100644 --- a/src/gui/widget/menue.cpp +++ b/src/gui/widget/menue.cpp @@ -44,7 +44,6 @@ #include #define ConnectLineBox_Width 16 -#define INFO_BOX_Y_OFFSET 2 /* the following generic menu items are integrated into multiple menus at the same time */ CMenuSeparator CGenericMenuSeparator; @@ -1097,7 +1096,7 @@ printf("paintHint: icon %s text %s\n", item->hintIcon.c_str(), g_Locale->getText details_line->paint(); if (info_box == NULL) - info_box = new CComponentsInfoBox(x, ypos2, hint_height, iwidth); + info_box = new CComponentsInfoBox(x, ypos2, iwidth, hint_height); else { info_box->setXPos(x); info_box->setYPos(ypos2); From 28b602a8b30c458ae6e52c46b440a5e2b27b67b1 Mon Sep 17 00:00:00 2001 From: micha-bbg Date: Sun, 22 Jul 2012 16:47:42 +0200 Subject: [PATCH 128/317] * Bouqueteditor: CComponentsInfoBox use to paint infobox --- src/gui/bedit/bouqueteditor_channels.cpp | 26 +++++++++++----------- src/gui/bedit/bouqueteditor_channels.h | 1 + src/gui/bedit/bouqueteditor_chanselect.cpp | 25 ++++++++++++++------- src/gui/bedit/bouqueteditor_chanselect.h | 1 + 4 files changed, 32 insertions(+), 21 deletions(-) diff --git a/src/gui/bedit/bouqueteditor_channels.cpp b/src/gui/bedit/bouqueteditor_channels.cpp index 9dddd94ec..00fa4d5e0 100644 --- a/src/gui/bedit/bouqueteditor_channels.cpp +++ b/src/gui/bedit/bouqueteditor_channels.cpp @@ -88,12 +88,14 @@ CBEChannelWidget::CBEChannelWidget(const std::string & Caption, unsigned int Bou bouquet = Bouquet; mode = CZapitClient::MODE_TV; dline = NULL; + ibox = NULL; Channels = NULL; } CBEChannelWidget::~CBEChannelWidget() { delete dline; + delete ibox; } void CBEChannelWidget::paintItem(int pos) @@ -107,9 +109,6 @@ void CBEChannelWidget::paintItem(int pos) color = COL_MENUCONTENTSELECTED; bgcolor = COL_MENUCONTENTSELECTED_PLUS_0; - // clear details - frameBuffer->paintBoxRel(x+2, y + height + 2, width-4, info_height - 4, COL_MENUCONTENTDARK_PLUS_0, RADIUS_LARGE); - if(current < Channels->size()) { paintItem2DetailsLine (pos, current); paintDetails(current); @@ -200,8 +199,8 @@ void CBEChannelWidget::paintDetails(int index) else desc = desc + " (" + satname + ")"; - g_Font[SNeutrinoSettings::FONT_TYPE_CHANNELLIST]->RenderString(x+ 10, y+ height+ 5+ fheight, width - 30, satname.c_str(), COL_MENUCONTENTDARK, 0, true); - g_Font[SNeutrinoSettings::FONT_TYPE_CHANNELLIST]->RenderString(x+ 10, y+ height+ 5+ 2*fheight, width - 30, desc.c_str(), COL_MENUCONTENTDARK, 0, true); + g_Font[SNeutrinoSettings::FONT_TYPE_CHANNELLIST]->RenderString(x+ 10, y+ height+ 5+ fheight+INFO_BOX_Y_OFFSET, width - 30, satname.c_str(), COL_MENUCONTENTDARK, 0, true); + g_Font[SNeutrinoSettings::FONT_TYPE_CHANNELLIST]->RenderString(x+ 10, y+ height+ 5+ 2*fheight+INFO_BOX_Y_OFFSET, width - 30, desc.c_str(), COL_MENUCONTENTDARK, 0, true); } void CBEChannelWidget::paintItem2DetailsLine (int pos, int /*ch_index*/) @@ -210,14 +209,11 @@ void CBEChannelWidget::paintItem2DetailsLine (int pos, int /*ch_index*/) int xpos = x - ConnectLineBox_Width; int ypos1 = y + theight+0 + pos*fheight; - int ypos2 = y + height; + int ypos2 = y + height + INFO_BOX_Y_OFFSET; int ypos1a = ypos1 + (fheight/2)-2; int ypos2a = ypos2 + (info_height/2)-2; - fb_pixel_t col1 = COL_MENUCONTENT_PLUS_6; - // clear details line - if (dline != NULL) - dline->hide(); + clearItem2DetailsLine(); // paint Line if detail info (and not valid list pos) if (pos >= 0) @@ -227,15 +223,19 @@ void CBEChannelWidget::paintItem2DetailsLine (int pos, int /*ch_index*/) dline->setYPos(ypos1a); dline->paint(); - //info box frame - frameBuffer->paintBoxFrame(x, ypos2, width, info_height, 2, col1, RADIUS_LARGE); + //infobox + if (ibox == NULL) + ibox = new CComponentsInfoBox(x, ypos2, width, info_height, false); + ibox->paint(false); } } -void CBEChannelWidget::clearItem2DetailsLine () +void CBEChannelWidget::clearItem2DetailsLine() { if (dline != NULL) dline->hide(); + if (ibox != NULL) + ibox->hide(); } void CBEChannelWidget::hide() diff --git a/src/gui/bedit/bouqueteditor_channels.h b/src/gui/bedit/bouqueteditor_channels.h index 0c692186d..bcc653e74 100644 --- a/src/gui/bedit/bouqueteditor_channels.h +++ b/src/gui/bedit/bouqueteditor_channels.h @@ -48,6 +48,7 @@ class CBEChannelWidget : public CMenuTarget private: CFrameBuffer *frameBuffer; CComponentsDetailLine *dline; + CComponentsInfoBox *ibox; enum state_ { diff --git a/src/gui/bedit/bouqueteditor_chanselect.cpp b/src/gui/bedit/bouqueteditor_chanselect.cpp index 9f889bb9b..e2f787e44 100644 --- a/src/gui/bedit/bouqueteditor_chanselect.cpp +++ b/src/gui/bedit/bouqueteditor_chanselect.cpp @@ -74,6 +74,7 @@ CBEChannelSelectWidget::CBEChannelSelectWidget(const std::string & Caption, unsi liststart = 0; bouquetChannels = NULL; dline = NULL; + ibox = NULL; } CBEChannelSelectWidget::~CBEChannelSelectWidget() @@ -82,6 +83,10 @@ CBEChannelSelectWidget::~CBEChannelSelectWidget() if (dline != NULL) dline->hide(); delete dline; + // clear infobox + if (ibox != NULL) + ibox->hide(); + delete ibox; } uint CBEChannelSelectWidget::getItemCount() @@ -115,7 +120,6 @@ void CBEChannelSelectWidget::paintItem(uint32_t itemNr, int paintNr, bool pselec color = COL_MENUCONTENTSELECTED; bgcolor = COL_MENUCONTENTSELECTED_PLUS_0; - frameBuffer->paintBoxRel(x+2, y + height + 2, width-4, info_height - 4, COL_MENUCONTENTDARK_PLUS_0, RADIUS_LARGE); if(itemNr < getItemCount()) { paintItem2DetailsLine (paintNr, itemNr); paintDetails(itemNr); @@ -218,8 +222,8 @@ void CBEChannelSelectWidget::paintDetails(int index) else desc = desc + " (" + satname + ")"; - g_Font[SNeutrinoSettings::FONT_TYPE_CHANNELLIST]->RenderString(x+ 10, y+ height+ 5+ fheight, width - 30, satname.c_str(), COL_MENUCONTENTDARK, 0, true); - g_Font[SNeutrinoSettings::FONT_TYPE_CHANNELLIST]->RenderString(x+ 10, y+ height+ 5+ 2*fheight, width - 30, desc.c_str(), COL_MENUCONTENTDARK, 0, true); + g_Font[SNeutrinoSettings::FONT_TYPE_CHANNELLIST]->RenderString(x+ 10, y+ height+ 5+ fheight+INFO_BOX_Y_OFFSET, width - 30, satname.c_str(), COL_MENUCONTENTDARK, 0, true); + g_Font[SNeutrinoSettings::FONT_TYPE_CHANNELLIST]->RenderString(x+ 10, y+ height+ 5+ 2*fheight+INFO_BOX_Y_OFFSET, width - 30, desc.c_str(), COL_MENUCONTENTDARK, 0, true); } void CBEChannelSelectWidget::paintItem2DetailsLine (int pos, int /*ch_index*/) @@ -228,25 +232,30 @@ void CBEChannelSelectWidget::paintItem2DetailsLine (int pos, int /*ch_index*/) int xpos = x - ConnectLineBox_Width; int ypos1 = y + theight+0 + pos*fheight; - int ypos2 = y + height; + int ypos2 = y + height + INFO_BOX_Y_OFFSET; int ypos1a = ypos1 + (fheight/2)-2; int ypos2a = ypos2 + (info_height/2)-2; - fb_pixel_t col1 = COL_MENUCONTENT_PLUS_6; // clear details line if (dline != NULL) dline->hide(); + // clear infobox + if (ibox != NULL) + ibox->hide(); + // paint Line if detail info (and not valid list pos) if (pos >= 0) { if (dline == NULL) dline = new CComponentsDetailLine(xpos, ypos1a, ypos2a, fheight/2+1, info_height-RADIUS_LARGE*2); dline->setYPos(ypos1a); - dline->paint(); + dline->paint(false); - //info box frame - frameBuffer->paintBoxFrame(x, ypos2, width, info_height, 2, col1, RADIUS_LARGE); + //infobox + if (ibox == NULL) + ibox = new CComponentsInfoBox(x, ypos2, width, info_height, false); + ibox->paint(false); } } diff --git a/src/gui/bedit/bouqueteditor_chanselect.h b/src/gui/bedit/bouqueteditor_chanselect.h index e31e93bbe..963862550 100644 --- a/src/gui/bedit/bouqueteditor_chanselect.h +++ b/src/gui/bedit/bouqueteditor_chanselect.h @@ -49,6 +49,7 @@ class CBEChannelSelectWidget : public CListBox CZapitClient::channelsMode mode; bool isChannelInBouquet( int index); CComponentsDetailLine *dline; + CComponentsInfoBox *ibox; uint getItemCount(); void paintItem(uint32_t itemNr, int paintNr, bool selected); From 64b3debba2c0bcdb5120bc150857d8992a1043f4 Mon Sep 17 00:00:00 2001 From: micha-bbg Date: Sun, 22 Jul 2012 17:28:59 +0200 Subject: [PATCH 129/317] * Audioplayer: CComponentsInfoBox use to paint infobox --- src/gui/audioplayer.cpp | 23 ++++++++++++++++------- src/gui/audioplayer.h | 2 ++ 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/src/gui/audioplayer.cpp b/src/gui/audioplayer.cpp index a3b53f91d..43d5b5a54 100644 --- a/src/gui/audioplayer.cpp +++ b/src/gui/audioplayer.cpp @@ -188,6 +188,8 @@ CAudioPlayerGui::CAudioPlayerGui(bool inetmode) m_frameBuffer = CFrameBuffer::getInstance(); m_visible = false; m_inetmode = inetmode; + dline = NULL; + ibox = NULL; Init(); } @@ -237,6 +239,8 @@ CAudioPlayerGui::~CAudioPlayerGui() m_title2Pos.clear(); // g_Zapit->setStandby (false); g_Sectionsd->setPauseScanning (false); + delete dline; + delete ibox; } //------------------------------------------------------------------------ @@ -1874,7 +1878,6 @@ void CAudioPlayerGui::paintItemID3DetailsLine (int pos) int ypos2 = m_y + (m_height - m_info_height); int ypos1a = ypos1 + (m_fheight / 2) - 2; int ypos2a = ypos2 + (m_info_height / 2) - 2; - fb_pixel_t col1 = COL_MENUCONTENT_PLUS_6; // Clear m_frameBuffer->paintBackgroundBoxRel(xpos - 1, m_y + m_title_height, ConnectLineBox_Width + 1, @@ -1884,13 +1887,16 @@ void CAudioPlayerGui::paintItemID3DetailsLine (int pos) if (!m_playlist.empty() && (pos >= 0)) { //details line - CComponentsDetailLine details_line(xpos, ypos1a, ypos2a, m_fheight/2+1, m_fheight); - details_line.paint(); + if (dline == NULL) + dline = new CComponentsDetailLine(xpos, ypos1a, ypos2a, m_fheight/2+1, m_fheight); + dline->setYPos(ypos1a); + dline->paint(false); - // -- small Frame around infobox - m_frameBuffer->paintBoxFrame(m_x, ypos2, m_width, m_info_height, 2, col1, RADIUS_MID); // paint id3 infobox - m_frameBuffer->paintBoxRel(m_x + 2, ypos2 + 2 , m_width - 4, m_info_height - 4, COL_MENUCONTENTDARK_PLUS_0, RADIUS_MID); + if (ibox == NULL) + ibox = new CComponentsInfoBox(m_x, ypos2, m_width, m_info_height, false); + ibox->paint(false); + g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->RenderString(m_x + 10, ypos2 + 2 + 1*m_fheight, m_width- 80, m_playlist[m_selected].MetaData.title, COL_MENUCONTENTDARK, 0, true); // UTF-8 std::string tmp; @@ -1919,7 +1925,10 @@ void CAudioPlayerGui::paintItemID3DetailsLine (int pos) } else { - m_frameBuffer->paintBackgroundBoxRel(m_x, ypos2, m_width, m_info_height); + if (dline != NULL) + dline->hide(); + if (ibox != NULL) + ibox->hide(); } } //------------------------------------------------------------------------ diff --git a/src/gui/audioplayer.h b/src/gui/audioplayer.h index 3fea78f12..789c8d53a 100644 --- a/src/gui/audioplayer.h +++ b/src/gui/audioplayer.h @@ -140,6 +140,8 @@ class CAudioPlayerGui : public CMenuTarget bool m_screensaver; bool m_inetmode; uint32_t stimer; + CComponentsDetailLine *dline; + CComponentsInfoBox *ibox; SMSKeyInput m_SMSKeyInput; From 3127a48745a1648ac8537940eb213282ca699f72 Mon Sep 17 00:00:00 2001 From: micha-bbg Date: Sun, 22 Jul 2012 17:40:43 +0200 Subject: [PATCH 130/317] * Menu hints: Update deutsch.locale - German Translations Part 8 (THX Tomworld) --- data/locale/deutsch.locale | 67 +++++++++++++++++++++++++++++++------- 1 file changed, 56 insertions(+), 11 deletions(-) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index 9b830ea1e..f6592f3c2 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -606,7 +606,7 @@ keybindingmenu.poweroff Standby EIN/AUS keybindingmenu.quickzap Schnellumschaltung keybindingmenu.remotecontrol_hardware Hardware keybindingmenu.remotecontrol_hardware_coolstream Coolstream -keybindingmenu.remotecontrol_hardware_dbox d-box Nokia (alt) +keybindingmenu.remotecontrol_hardware_dbox DBox Nokia (alt) keybindingmenu.remotecontrol_hardware_msg_part1 Die Fernbedienung wurde von ' keybindingmenu.remotecontrol_hardware_msg_part2 ' auf ' keybindingmenu.remotecontrol_hardware_msg_part3 ' geändert.\nIst dies korrekt?\nBitte die Auswahl innerhalb 15 Sekunden mit der neuen Fernbedienung\nbestätigen. Ansonsten wird die Auswahl zurückgesetzt. @@ -744,7 +744,7 @@ menu.hint_event_textcolor Ändern Sie die Event-Farbe für farbige Event-Optione menu.hint_eventlist_fonts Ändern Sie in der Event-Liste die Schriftgrößen menu.hint_extended Energiespar-, EPG-Speicher- / Lade-Optionen,\nHDMI-CEC, Startkanal, Zap-Optionen menu.hint_factory Zurücksetzen der Box auf Werkseinstellungen\nBox wird nach einem Reset neu gestartet -menu.hint_fade Bei aktivierter Funktion werden die Menüfenster\n"weich" ein- bzw. ausgeblendet +menu.hint_fade Bei aktivierter Funktion werden die Menüfenster\n'weich' ein- bzw. ausgeblendet menu.hint_fan_speed Steuerung der Lüftergeschwindigkeit für die CPU menu.hint_filebrowser_denydirectoryleave Verhindert das Verlassen des Startverzeichnisses menu.hint_filebrowser_showrights Anzeige der Dateirechte der Dateien im Filebrowser @@ -787,6 +787,51 @@ menu.hint_infobar_setup Hier können Sie die Anzeigeoptionen für die Infobar au menu.hint_infobar_textcolor Ändern Sie die Textfarbe für die Infobar menu.hint_infobar_tuner Zeigt den aktiven Tuner als Nummernicon menu.hint_keep_numbers Mit der Aktivierung werden den Sendern feste/dauerhafte\nKanalnummern zugewiesen +menu.hint_key_addrecord Weisen Sie eine Taste für das starten und makieren von Aufnahmen im EPG zu +menu.hint_key_addremind Weisen Sie eine Taste für das Umschalten im EPG über den Timer zu +menu.hint_key_audio ein: 'Audio' Taste startet das Audioplayer-Menü\naus: 'Audio' Taste startet die Auswahl der Tonspuren +menu.hint_key_binding In diesem Menü können Einstellungen für die Tasten der Fernbedienung angepasst werden +menu.hint_key_bouquetdown Weisen Sie eine Taste für das zurückblättern in den Bouquet zu +menu.hint_key_bouquetup Weisen Sie eine Taste für das vorblättern in den Bouquet zu +menu.hint_key_cancel Weisen Sie eine Taste für das schließen der Menüe zu +menu.hint_key_channel_sms Wenn es aktiviert ist, können Sie die Nummern-Tasten in der Kanalliste nutzen,\num im SMS-Style zu suchen +menu.hint_key_channeldown Weisen Sie eine Taste für das runterschalten in der Kanalliste zu +menu.hint_key_channellist Konfigurieren Sie die Tastenbelegung für die Kanalliste +menu.hint_key_channelup Weisen Sie eine Taste für das hochschalten in der Kanalliste zu +menu.hint_key_hardware Hier wird definiert welchen Fernbedienungstyp Sie verwenden möchten,\ndie Bestätigung erfolgt mit der Ausgewählten +menu.hint_key_history Hier können Sie eine Taste für das Anzeigen der letzten Programme,\ndie Sie schauten definieren (History-Liste) +menu.hint_key_lastchannel Hier können Sie eine Taste definieren, der in den letzten Kanal zurückschaltet aus der History-Liste +menu.hint_key_left_exit Weisen Sie der 'links' Taste für das wechseln in den Menüe zu +menu.hint_key_list_end Weisen Sie eine Taste für den Wechsel zum 'Listenende' zu +menu.hint_key_list_start Weisen Sie eine Taste für den Wechsel zum 'Listenanfang' zu +menu.hint_key_load Laden Sie definierte Tastenbelegungen aus einer Datei +menu.hint_key_modechange Wählen Sie eine Taste für den wechseln in den TV/Radio Modus und für den Standby +menu.hint_key_movieplayer Konfigurieren Sie die Tastenbelegung für den Movieplayer +menu.hint_key_mpaudio Weisen Sie eine Taste zu um die Tonspuren in ihren Aufnahmen zu wechseln +menu.hint_key_mpbookmark Weisen Sie eine Taste um 'Merker' in ihren Aufnahmen für den Neustart zu setzen +menu.hint_key_mpforward Weisen Sie eine Taste zum vorspulen in ihren Aufnahmen zu +menu.hint_key_mppause Weisen Sie eine Taste zum pausieren der Wiedergabe zu +menu.hint_key_mpplay Weisen Sie eine Taste zu, um die Wiedergabe zu starten +menu.hint_key_mpplugin Weisen Sie eine Taste zu um ein Plugin zu starten,\nwenn ihre Wiedergabe läuft +menu.hint_key_mprewind Weisen Sie eine Taste zum zurückspulen in ihren Aufnahmen zu +menu.hint_key_mpstop Weisen Sie eine Taste zum beenden der Wiedergabe zu +menu.hint_key_mptime Weisen Sie eine Taste für die Zeitanzeige in ihren Aufnahmen zu,\nSpielzeit und verbleibene Zeit +menu.hint_key_mptimeshift Weisen Sie eine Taste für das starten von Timeshift zu +menu.hint_key_pagedown Weisen Sie eine Taste für 'Seite weiter' zu +menu.hint_key_pageup Weisen Sie eine Taste für 'Seite zurück' zu +menu.hint_key_poweroff Wählen Sie eine Taste für den Standby\nund für das Verhalten für Standby und Deep-Standby +menu.hint_key_quickzap Konfigurieren Sie die Tastenbelegung für die Schnellumschaltung +menu.hint_key_repeatblock Die Verzögerung nach Tastendruck,\nauf den die Box reagieren soll +menu.hint_key_repeatblockgeneric Die Verzögerung zwischen Tastewiederholungen,\nauf die die Box reagieren soll +menu.hint_key_right Wählen Sie die Funktion für die 'links/rechts' Tasten aus im TV/Radio Modus +menu.hint_key_save Speichern Sie Tastenbelegungen als Datei in einer Config +menu.hint_key_screenshot Weisen Sie eine Taste zu, um Menü- und/oder TV-Screenshots zu speichern +menu.hint_key_sort Weisen Sie eine Taste für das sortieren in der Kanalliste zu +menu.hint_key_subchanneldown Weisen Sie eine Taste für das zurückschalten in den Unterkanälen zu +menu.hint_key_subchannelup Weisen Sie eine Taste für das weiterschalten in den Unterkanälen zu +menu.hint_key_transponder Weisen Sie eine Taste für das Anzeigen der Transponder in der Kanalliste zu +menu.hint_key_tvradiomode Wählen Sie eine Taste für das umschalten zwischen TV <> Radio Modus +menu.hint_key_unlock Weisen Sie eine Taste zum entriegeln zu,\nbetätigen Sie die 'rote' Taste und diese für 5 Sekunden menu.hint_keys Fernbedienungs-Wiederholrate\nund Tastenbelegungen bearbeiten menu.hint_lang_pref Wählen Sie ihre bevorzugten Audio-Sprachen, EPG\nund Untertitel-Sprachen menu.hint_language OSD Sprache, Zeitzone\nbevorzugte Audio und Untertitel Sprachen @@ -799,9 +844,9 @@ menu.hint_leds_record Definiert ob die Power-LEDs blinken,\nwenn eine Aufnahme a menu.hint_leds_standby Definiert den Status der Power-LEDs im Standby menu.hint_leds_tv Definiert den Status der Power-LEDs im TV-Betrieb menu.hint_load Laden der Neutrino-HD-Einstellungen aus einer Datei -menu.hint_make_hdlist Bei aktiver Option wird ein Bouquet namens "HD" erzeugt\nin dem alle HD Sender zusammengefasst sind -menu.hint_make_newlist Nach einer Kanalsuche wird ein Bouquet namens\n"neue Kanäle" erzeugt -menu.hint_make_removedlist Nach einer Kanalsuche wird ein Bouquet namens\n"gelöschte Kanäle" erzeugt +menu.hint_make_hdlist Bei aktiver Option wird ein Bouquet namens 'HD' erzeugt\nin dem alle HD Sender zusammengefasst sind +menu.hint_make_newlist Nach einer Kanalsuche wird ein Bouquet namens\n'neue Kanäle' erzeugt +menu.hint_make_removedlist Nach einer Kanalsuche wird ein Bouquet namens\n'gelöschte Kanäle' erzeugt menu.hint_manage_settings Sichern, Wiederherstellen, zurück auf\nStandardwerte, Auslieferungszustand herstellen menu.hint_mb Ihre Aufnahmen menu.hint_media Abspielen von Filmen, Audiodateien\nbetrachten Sie Bilder @@ -867,9 +912,9 @@ menu.hint_progressbar_color Bei aktivierter Option werden alle Fortschrittsbalke menu.hint_protection Schützen Sie Inhalte per PIN-Code\nStandard-PIN ist 0000 menu.hint_radiomode Schaltet zum Radio-Modus menu.hint_reboot Startet die Box neu.\nOhne Bestätigung -menu.hint_record_apid_ac3 Schließt bei einer Aufnahme die durch den Sender definierte "Dolby Digital Tonspur"\nin die Aufnahme ein, sofern diese vorhanden ist +menu.hint_record_apid_ac3 Schließt bei einer Aufnahme die durch den Sender definierte 'Dolby Digital Tonspur'\nin die Aufnahme ein, sofern diese vorhanden ist menu.hint_record_apid_alt Sind weitere Tonspuren verfügbar, dann können diese hiermit bei einer\nAufnahme entsprechend ein- bzw. ausgeschlossen werden -menu.hint_record_apid_std Schließt bei einer Aufnahme die durch den Sender definierte "Standard Tonspur"\nin die Aufnahme ein, bzw. schließt diese aus +menu.hint_record_apid_std Schließt bei einer Aufnahme die durch den Sender definierte 'Standard Tonspur'\nin die Aufnahme ein, bzw. schließt diese aus menu.hint_record_apids Konfigurieren Sie die Tonspuren für die Aufnahme menu.hint_record_apply Hiermit werden die Aufnahmeoptionen übernommen menu.hint_record_chandir Diese Option speichert Aufnahmen mit dem Namen des Kanals\nin ein eigenes Verzeichnis @@ -899,12 +944,12 @@ menu.hint_saveas Speichern der Neutrino-HD-Einstellungen in eine Datei menu.hint_scan_auto Auto-Scan ausgewählter Anbieter menu.hint_scan_autoall Scannen Sie ihre ausgewählten Anbieter auf einmal menu.hint_scan_autoall_select Nur in ausgewählten Satelliten scannen -menu.hint_scan_bouquet erneuern: hinzufügen zu den Bouquets, löschen: entfernt alte Bouquets, nicht ändern: Neue werden in "Andere" angefügt +menu.hint_scan_bouquet erneuern: hinzufügen zu den Bouquets, löschen: entfernt alte Bouquets, nicht ändern: Neue werden in 'Andere' angefügt menu.hint_scan_cable Wählen Sie ihr Kabelnetz zum scannen menu.hint_scan_commited Wählen Sie ihre Einstellungen für diesen Satelliten menu.hint_scan_diseqc Wählen Sie DiSEqC-Schalter-Eingangssignal für diesen Satelliten menu.hint_scan_diseqcrepeat Diseqc Wiederholungen für kaskadierte Schaltungen,\nnutzen Sie die links/rechs Tasten -menu.hint_scan_diseqctype Wählen Sie ihr DiSEqC-Protokoll\nmit "Erweitert" können Sie ihre Anlage einbinden +menu.hint_scan_diseqctype Wählen Sie ihr DiSEqC-Protokoll\nmit 'Erweitert' können Sie ihre Anlage einbinden menu.hint_scan_fast Schnell-Scan eines ausgewählten Anbieters\nWARNUNG: DiSEqC-Config wird überschrieben menu.hint_scan_fastprov Wählen Sie einen Anbieter (Provider) zum scannen menu.hint_scan_fasttype Wählen Sie das Sendeformat @@ -998,7 +1043,7 @@ menu.hint_video_43mode Anzeigemodus für 4:3-Inhalte auf 16:9 TVs menu.hint_video_analog_mode Wählen Sie den Analogausgang Modus\nfür den SCART und CINCH Anschluss menu.hint_video_cinch_mode Wählen Sie den Analogausgang Modus\nfür den Composite Video Ausgang menu.hint_video_dbdr Verwendeter MPEG2 Filter -menu.hint_video_format Diese Option aktiviert das "Bildschirmformat"\nauf das Format Ihres Fernsehgerätes +menu.hint_video_format Diese Option aktiviert das 'Bildschirmformat'\nauf das Format Ihres Fernsehgerätes menu.hint_video_mode Definiert in welchen Videoformat das Bild über den\nHDMI-Ausgang ausgegeben wird menu.hint_video_modes Definiert welche Videosysteme mit der VF-Taste\nder Fernbedienung ausgewählt werden können menu.hint_video_scart_mode Wählen Sie den Analogausgang Modus\nfür den SCART Ausgang @@ -1357,7 +1402,7 @@ personalize.pinprotect ja personalize.pinstatus mit PIN personalize.plugins Plugins personalize.usermenu_preferred_buttons Bevorzugte Tasten zuweisen -personalize.usermenu_show_cancel Zeige Schalter "Abbrechen" +personalize.usermenu_show_cancel Zeige Schalter "Abbrechen" personalize.visible sichtbar pictureviewer.defdir Start-Verz. pictureviewer.head Bildbetrachter From 52a5640bc29570bd9adad4ee7480b4960411ed9e Mon Sep 17 00:00:00 2001 From: micha-bbg Date: Sun, 22 Jul 2012 19:26:38 +0200 Subject: [PATCH 131/317] * Audioplayer: Small display bugs fixed --- src/gui/audioplayer.cpp | 13 ++++++------- src/gui/audioplayer.h | 1 + 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/gui/audioplayer.cpp b/src/gui/audioplayer.cpp index 43d5b5a54..424387a78 100644 --- a/src/gui/audioplayer.cpp +++ b/src/gui/audioplayer.cpp @@ -65,7 +65,6 @@ #include #include #include -#include #include #include @@ -1874,14 +1873,14 @@ void CAudioPlayerGui::clearItemID3DetailsLine () void CAudioPlayerGui::paintItemID3DetailsLine (int pos) { int xpos = m_x - ConnectLineBox_Width; - int ypos1 = m_y + m_title_height + m_theight+ 0 + pos*m_fheight; - int ypos2 = m_y + (m_height - m_info_height); + int ypos1 = m_y + m_title_height + m_theight+ 0 + pos*m_fheight + INFO_BOX_Y_OFFSET; + int ypos2 = m_y + (m_height - m_info_height) + INFO_BOX_Y_OFFSET; int ypos1a = ypos1 + (m_fheight / 2) - 2; int ypos2a = ypos2 + (m_info_height / 2) - 2; - // Clear - m_frameBuffer->paintBackgroundBoxRel(xpos - 1, m_y + m_title_height, ConnectLineBox_Width + 1, - m_height - m_title_height); + // clear details line + if (dline != NULL) + dline->hide(); // paint Line if detail info (and not valid list pos) and info box if (!m_playlist.empty() && (pos >= 0)) @@ -1890,7 +1889,7 @@ void CAudioPlayerGui::paintItemID3DetailsLine (int pos) if (dline == NULL) dline = new CComponentsDetailLine(xpos, ypos1a, ypos2a, m_fheight/2+1, m_fheight); dline->setYPos(ypos1a); - dline->paint(false); + dline->paint(); // paint id3 infobox if (ibox == NULL) diff --git a/src/gui/audioplayer.h b/src/gui/audioplayer.h index 789c8d53a..07a6c6fc5 100644 --- a/src/gui/audioplayer.h +++ b/src/gui/audioplayer.h @@ -37,6 +37,7 @@ #include "driver/framebuffer.h" #include "driver/audiofile.h" #include "gui/filebrowser.h" +#include "gui/widget/components.h" #include "gui/widget/menue.h" #include From ccd8e3918299b1cf7a1d33d698e55cbfa36c9c7e Mon Sep 17 00:00:00 2001 From: micha-bbg Date: Fri, 27 Apr 2012 08:13:29 +0200 Subject: [PATCH 132/317] * Numeric display volumebar can be switched off. - Adjustable via Menu -> Settings -> OSD -> Volumebar digits --- data/locale/deutsch.locale | 2 ++ data/locale/english.locale | 2 ++ src/driver/volume.cpp | 8 ++++---- src/gui/osd_setup.cpp | 8 +++++++- src/neutrino.cpp | 2 ++ src/system/locals.h | 2 ++ src/system/locals_intern.h | 2 ++ src/system/settings.h | 1 + 8 files changed, 22 insertions(+), 5 deletions(-) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index f6592f3c2..230f40fb4 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -391,6 +391,7 @@ extra.tp_pol_r R extra.tp_rate Symbolrate extra.update_dir Lokales Update-Verzeichnis extra.use_gotoxx Benutze gotoXX +extra.volume_digits Lautstärkeanzeige Ziffern extra.volume_pos Lautstärkeanzeige extra.west Westen extra.zap_cycle Zap nur in Bouquet @@ -1047,6 +1048,7 @@ menu.hint_video_format Diese Option aktiviert das 'Bildschirmformat'\nauf das Fo menu.hint_video_mode Definiert in welchen Videoformat das Bild über den\nHDMI-Ausgang ausgegeben wird menu.hint_video_modes Definiert welche Videosysteme mit der VF-Taste\nder Fernbedienung ausgewählt werden können menu.hint_video_scart_mode Wählen Sie den Analogausgang Modus\nfür den SCART Ausgang +menu.hint_volume_digits Zifferndarstellung der Lautstärkeanzeige ein/ausschalten menu.hint_volume_pos Hier können Sie die Anzeigeposition der Lautstärkeanzeige auswählen menu.hint_zap_cycle Dadurch wird nur innerhalb des aktiven Bouquets gezappt menu.next Weiter (Menü zum Beenden) diff --git a/data/locale/english.locale b/data/locale/english.locale index 92192660f..9a2d73bf9 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -315,6 +315,7 @@ extra.tp.pol_v V extra.tp_rate Symbol rate extra.update_dir Local update directory extra.use_gotoxx Use gotoXX +extra.volume_digits Volumebar digits extra.volume_pos Volumebar extra.west West extra.zap_cycle Zap cycle @@ -1047,6 +1048,7 @@ menu.hint_video_mode HDMI output video mode menu.hint_video_modes VF key will cycle between enabled modes menu.hint_video_scart_mode Select analog output mode for SCART connectors menu.hint_video Video output, resolution, format\nAspect ratio, fast mode switch options +menu.hint_volume_digits Numeric display of the volumebar on/off menu.hint_volume_pos Select volume indicator position menu.hint_zap_cycle When swithing channels, stay in current bouquet menu.next Next (press Menu to quit) diff --git a/src/driver/volume.cpp b/src/driver/volume.cpp index 07f26ce78..a5534d80d 100644 --- a/src/driver/volume.cpp +++ b/src/driver/volume.cpp @@ -57,12 +57,11 @@ CVolume::CVolume() v_RemoteControl = new CRemoteControl; #endif VolumeFont = SNeutrinoSettings::FONT_TYPE_INFOBAR_INFO; - paintDigits = true; // For future On/Off digits paintShadow = false; // For future On/Off switch shadow MuteIconFrame = false; // For future On/Off switch IconFrame ShadowOffset = 4; mute_ay = 0; - m_mode = CNeutrinoApp::getInstance()->getMode(); + m_mode = CNeutrinoApp::getInstance()->getMode(); Init(); } @@ -75,6 +74,7 @@ CVolume::~CVolume() void CVolume::Init() { + paintDigits = g_settings.volume_digits; mute_ay_old = mute_ay; int faktor_h = 18; // scale * 10 int clock_height= 0; @@ -239,9 +239,9 @@ void CVolume::setVolume(const neutrino_msg_t key, const bool bDoPaint, bool nowa // volumebar shadow if (paintShadow) - frameBuffer->paintBoxRel(x+ShadowOffset , y+ShadowOffset , (paintDigits) ? vbar_w - vbar_h : vbar_w, vbar_h, colShadow, ROUNDED, CORNER_TOP_LEFT | CORNER_BOTTOM_LEFT); + frameBuffer->paintBoxRel(x+ShadowOffset , y+ShadowOffset , (paintDigits) ? vbar_w - vbar_h : vbar_w + 1, vbar_h, colShadow, ROUNDED, (paintDigits) ? CORNER_TOP_LEFT | CORNER_BOTTOM_LEFT : CORNER_ALL); // volumebar - frameBuffer->paintBoxRel(x , y , (paintDigits) ? vbar_w - vbar_h : vbar_w, vbar_h, colBar, ROUNDED, CORNER_TOP_LEFT | CORNER_BOTTOM_LEFT); + frameBuffer->paintBoxRel(x , y , (paintDigits) ? vbar_w - vbar_h : vbar_w + 1, vbar_h, colBar, ROUNDED, (paintDigits) ? CORNER_TOP_LEFT | CORNER_BOTTOM_LEFT : CORNER_ALL); // frame for progress frameBuffer->paintBoxRel(progress_x-pB, progress_y-pB, progress_w+pB*1, progress_h+pB*2, colFrame); // volume icon diff --git a/src/gui/osd_setup.cpp b/src/gui/osd_setup.cpp index 938d9a458..f00c98c38 100644 --- a/src/gui/osd_setup.cpp +++ b/src/gui/osd_setup.cpp @@ -466,6 +466,11 @@ int COsdSetup::showOsdSetup() mc->setHint("", LOCALE_MENU_HINT_VOLUME_POS); osd_menu->addItem(mc); + // volume digits + mc = new CMenuOptionChooser(LOCALE_EXTRA_VOLUME_DIGITS, &g_settings.volume_digits, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, this); + mc->setHint("", LOCALE_MENU_HINT_VOLUME_DIGITS); + osd_menu->addItem(mc); + // show mute at volume 0 mc = new CMenuOptionChooser(LOCALE_EXTRA_SHOW_MUTE_ICON, &g_settings.show_mute_icon, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); mc->setHint("", LOCALE_MENU_HINT_SHOW_MUTE_ICON); @@ -839,7 +844,8 @@ bool COsdSetup::changeNotify(const neutrino_locale_t OptionName, void * data) g_InfoViewer->changePB(); return true; } - else if (ARE_LOCALES_EQUAL(OptionName, LOCALE_EXTRA_VOLUME_POS)) { + else if ((ARE_LOCALES_EQUAL(OptionName, LOCALE_EXTRA_VOLUME_POS)) || + (ARE_LOCALES_EQUAL(OptionName, LOCALE_EXTRA_VOLUME_DIGITS))){ CVolume::getInstance()->Init(); return false; } diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 35c1abf93..69c0ff441 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -403,6 +403,7 @@ int CNeutrinoApp::loadSetup(const char * fname) g_settings.casystem_display = configfile.getInt32("casystem_display", 2 );//mini ca mode default g_settings.scrambled_message = configfile.getBool("scrambled_message", true ); g_settings.volume_pos = configfile.getInt32("volume_pos", 0 ); + g_settings.volume_digits = configfile.getBool("volume_digits", true); g_settings.menu_pos = configfile.getInt32("menu_pos", CMenuWidget::MENU_POS_CENTER); g_settings.show_menu_hints = configfile.getBool("show_menu_hints", true); g_settings.infobar_show_sysfs_hdd = configfile.getBool("infobar_show_sysfs_hdd" , true ); @@ -845,6 +846,7 @@ void CNeutrinoApp::saveSetup(const char * fname) configfile.setInt32("casystem_display" , g_settings.casystem_display ); configfile.setBool("scrambled_message" , g_settings.scrambled_message ); configfile.setInt32("volume_pos" , g_settings.volume_pos ); + configfile.setBool("volume_digits", g_settings.volume_digits); configfile.setInt32("menu_pos" , g_settings.menu_pos); configfile.setBool("show_menu_hints" , g_settings.show_menu_hints); configfile.setInt32("infobar_show_sysfs_hdd" , g_settings.infobar_show_sysfs_hdd ); diff --git a/src/system/locals.h b/src/system/locals.h index 142116c4d..ded816293 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -342,6 +342,7 @@ typedef enum LOCALE_EXTRA_TP_RATE, LOCALE_EXTRA_UPDATE_DIR, LOCALE_EXTRA_USE_GOTOXX, + LOCALE_EXTRA_VOLUME_DIGITS, LOCALE_EXTRA_VOLUME_POS, LOCALE_EXTRA_WEST, LOCALE_EXTRA_ZAP_CYCLE, @@ -1074,6 +1075,7 @@ typedef enum LOCALE_MENU_HINT_VIDEO_MODE, LOCALE_MENU_HINT_VIDEO_MODES, LOCALE_MENU_HINT_VIDEO_SCART_MODE, + LOCALE_MENU_HINT_VOLUME_DIGITS, LOCALE_MENU_HINT_VOLUME_POS, LOCALE_MENU_HINT_ZAP_CYCLE, LOCALE_MENU_NEXT, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index 7e7c911b8..382b19209 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -342,6 +342,7 @@ const char * locale_real_names[] = "extra.tp_rate", "extra.update_dir", "extra.use_gotoxx", + "extra.volume_digits", "extra.volume_pos", "extra.west", "extra.zap_cycle", @@ -1074,6 +1075,7 @@ const char * locale_real_names[] = "menu.hint_video_mode", "menu.hint_video_modes", "menu.hint_video_scart_mode", + "menu.hint_volume_digits", "menu.hint_volume_pos", "menu.hint_zap_cycle", "menu.next", diff --git a/src/system/settings.h b/src/system/settings.h index 345ca26a6..88ded2fea 100644 --- a/src/system/settings.h +++ b/src/system/settings.h @@ -71,6 +71,7 @@ struct SNeutrinoSettings int casystem_display; int scrambled_message; int volume_pos; + int volume_digits; int show_mute_icon; int menu_pos; int show_menu_hints; From 0c6ab70c27c4a6ac615f102246c940ad400e3e6c Mon Sep 17 00:00:00 2001 From: micha-bbg Date: Mon, 23 Jul 2012 07:57:46 +0200 Subject: [PATCH 133/317] * CComponentsInfoBox: Optimize display - 'only body paint' can be switched off --- src/gui/widget/components.cpp | 16 +++++++++++----- src/gui/widget/components.h | 2 +- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/gui/widget/components.cpp b/src/gui/widget/components.cpp index 1a1fd1aaf..52f64db69 100644 --- a/src/gui/widget/components.cpp +++ b/src/gui/widget/components.cpp @@ -209,7 +209,7 @@ CComponentsInfoBox::CComponentsInfoBox(const int x_pos, const int y_pos, const i } #define INFOBOX_ITEMS_COUNT 3 -void CComponentsInfoBox::paint(bool do_save_bg) +void CComponentsInfoBox::paint(bool do_save_bg, bool fullPaint) { clear(); rad = RADIUS_LARGE; @@ -221,8 +221,8 @@ void CComponentsInfoBox::paint(bool do_save_bg) {x+fr_thickness, y+fr_thickness, width-2*fr_thickness, height-2*fr_thickness, col_body, rad, NULL, NULL, false, 0}, }; + int start = (shadow) ? 0 : 1; if (firstPaint) { - int start = (shadow) ? 0 : 1; if (do_save_bg) { v_infobox_val.clear(); for(int i = start; i < INFOBOX_ITEMS_COUNT; i++) { @@ -231,12 +231,18 @@ void CComponentsInfoBox::paint(bool do_save_bg) fbdata[i].pixbuf = NULL; } } + // paint infobox full paintFbItems((comp_fbdata_t*)&fbdata[start], INFOBOX_ITEMS_COUNT - start, false); firstPaint = false; } - else - // paint body only - paintFbItems((comp_fbdata_t*)&fbdata[INFOBOX_ITEMS_COUNT - 1], 1, false); + else { + if (fullPaint) + // paint infobox full + paintFbItems((comp_fbdata_t*)&fbdata[start], INFOBOX_ITEMS_COUNT - start, false); + else + // paint body only + paintFbItems((comp_fbdata_t*)&fbdata[INFOBOX_ITEMS_COUNT - 1], 1, false); + } } //restore infobox diff --git a/src/gui/widget/components.h b/src/gui/widget/components.h index cc221701f..9d17015d7 100644 --- a/src/gui/widget/components.h +++ b/src/gui/widget/components.h @@ -101,7 +101,7 @@ class CComponentsInfoBox : public CComponents CComponentsInfoBox( const int x_pos, const int y_pos, const int w, const int h, bool has_shadow = true, fb_pixel_t color_frame = COL_MENUCONTENT_PLUS_6, fb_pixel_t color_body = COL_MENUCONTENTDARK_PLUS_0,fb_pixel_t color_shadow = COL_MENUCONTENTDARK_PLUS_0); - void paint(bool do_save_bg = true); + void paint(bool do_save_bg = true, bool fullPaint = false); void hide(); void restore(bool clear_); void setColor(fb_pixel_t color_frame, fb_pixel_t color_body, fb_pixel_t color_shadow){col_frame = color_frame; col_body = color_body; col_shadow = color_shadow;}; From e7a1dca8ea0cbad95c05eb89e423d37261e54096 Mon Sep 17 00:00:00 2001 From: micha-bbg Date: Mon, 23 Jul 2012 07:59:11 +0200 Subject: [PATCH 134/317] * Audioplayer: Small display bugs fixed - Use 'full paint' for infobox --- src/gui/audioplayer.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/gui/audioplayer.cpp b/src/gui/audioplayer.cpp index 424387a78..60359eb71 100644 --- a/src/gui/audioplayer.cpp +++ b/src/gui/audioplayer.cpp @@ -1882,6 +1882,10 @@ void CAudioPlayerGui::paintItemID3DetailsLine (int pos) if (dline != NULL) dline->hide(); + // clear infobox + if (ibox != NULL) + ibox->hide(); + // paint Line if detail info (and not valid list pos) and info box if (!m_playlist.empty() && (pos >= 0)) { @@ -1894,7 +1898,8 @@ void CAudioPlayerGui::paintItemID3DetailsLine (int pos) // paint id3 infobox if (ibox == NULL) ibox = new CComponentsInfoBox(m_x, ypos2, m_width, m_info_height, false); - ibox->paint(false); + ibox->setYPos(ypos2); + ibox->paint(false, true); g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->RenderString(m_x + 10, ypos2 + 2 + 1*m_fheight, m_width- 80, m_playlist[m_selected].MetaData.title, COL_MENUCONTENTDARK, 0, true); // UTF-8 From 2189d30d563cd7daf74b070d07d4d3e60aee4e76 Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Mon, 23 Jul 2012 12:58:01 +0200 Subject: [PATCH 135/317] - yweb: fix usage of Y_Version.txt; increase version (for three commits) --- src/nhttpd/web/Y_Menue.yhtm | 2 +- src/nhttpd/web/Y_Version.txt | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/nhttpd/web/Y_Menue.yhtm b/src/nhttpd/web/Y_Menue.yhtm index 8e69324e2..48a2fa2e6 100644 --- a/src/nhttpd/web/Y_Menue.yhtm +++ b/src/nhttpd/web/Y_Menue.yhtm @@ -98,7 +98,7 @@ function vlc() {
    Backup
    {=L:set.settings.backup=}
    - + + +
    Restore
    {=L:set.settings.restore=}
    tar-File:  
    - +

    - {=L:main.version=} {=ini-get:Y_Version.txt;version=} + v{=ini-get:{=var-get:vf=};version=}

    - -   - - - -    - -   -   + + + + + + + + + + + + + + + + + + + + + + + + +
    @@ -137,7 +167,9 @@ function init(){ diff --git a/src/nhttpd/web/Y_Ext_Menue.yhtm b/src/nhttpd/web/Y_Ext_Menue.yhtm index 547164c50..7981d982d 100644 --- a/src/nhttpd/web/Y_Ext_Menue.yhtm +++ b/src/nhttpd/web/Y_Ext_Menue.yhtm @@ -14,13 +14,10 @@ function build_menu(){ var item=""+e.get('menuitem')+""; y_add_li_to_ul(id("ext_normal"),"ext",item); }); - var ext_normal=ext.select_type("m"); - ext_normal.each(function(e){ - {=if-empty:{=var-get:management=}~ - var item=""+e.get('menuitem')+""; - ~ - var item=""+e.get('menuitem')+""; - =} + + var ext_management=ext.select_type("m"); + ext_management.each(function(e){ + var item=''+e.get("menuitem")+''; y_add_li_to_ul(id("ext_management"),"ext",item); }); } @@ -44,15 +41,21 @@ function build_menu(){
    {=L:administration=}
      - {=if-empty:{=var-get:management=}~ -
    • {=L:main.settings=}
    • -
    • {=L:ext.installer_updater=}
    • -
    • {=L:uninstaller=}
    • - ~ -
    • {=L:main.settings=}
    • -
    • {=L:ext.installer_updater=}
    • -
    • {=L:uninstaller=}
    • - =} +
    • + {=var-set:m_link_href=Y_Ext_Settings.yhtm=} + {=var-set:m_link_text={=L:main.settings=}=} + {=include-block:Y_Blocks.txt;management_link=} +
    • +
    • + {=var-set:m_link_href=Y_Ext_Update.yhtm=} + {=var-set:m_link_text={=L:ext.installer_updater=}=} + {=include-block:Y_Blocks.txt;management_link=} +
    • +
    • + {=var-set:m_link_href=Y_Ext_Uninstall.yhtm=} + {=var-set:m_link_text={=L:uninstaller=}=} + {=include-block:Y_Blocks.txt;management_link=} +
    diff --git a/src/nhttpd/web/Y_Info_Menue.yhtm b/src/nhttpd/web/Y_Info_Menue.yhtm index 227ad2af5..c549d5ffc 100644 --- a/src/nhttpd/web/Y_Info_Menue.yhtm +++ b/src/nhttpd/web/Y_Info_Menue.yhtm @@ -13,7 +13,7 @@ function init(){ 'href': e.get('file') }).update("-"+e.get('menuitem')) ); - $('secmenu').insert({'bottom':el}); + $('secmenu_info').insert({'bottom':el}); }); } @@ -24,14 +24,18 @@ function init(){

    {=L:main.info=}

    -
    diff --git a/src/nhttpd/web/Y_Live_Menue.yhtm b/src/nhttpd/web/Y_Live_Menue.yhtm index 5efd33a80..a92bb0d90 100644 --- a/src/nhttpd/web/Y_Live_Menue.yhtm +++ b/src/nhttpd/web/Y_Live_Menue.yhtm @@ -30,7 +30,17 @@ function init(){ 'href': e.get('file') }).update("-"+e.get('menuitem')) ); - $('secmenu_live').insert({'bottom':el}); + $('secmenu_live').insert({'bottom':el}); + }); + var menu=ext.select_menu('epg'); + menu.each(function(e){ + var el=new Element('li').update( + new Element('a', {'target':'work', + 'title': e.get('desc'), + 'href': e.get('file') + }).update("-"+e.get('menuitem')) + ); + $('secmenu_epg').insert({'bottom':el}); }); var menu=ext.select_menu('timer'); menu.each(function(e){ @@ -40,7 +50,7 @@ function init(){ 'href': e.get('file') }).update("-"+e.get('menuitem')) ); - $('secmenu_timer').insert({'bottom':el}); + $('secmenu_timer').insert({'bottom':el}); }); } //]]> @@ -55,33 +65,38 @@ function init(){ +
    {=L:live.epg=}
    +
    + +
    {=L:live.timer=}
    diff --git a/src/nhttpd/web/Y_Main.css b/src/nhttpd/web/Y_Main.css index b71b30e24..df5072da4 100644 --- a/src/nhttpd/web/Y_Main.css +++ b/src/nhttpd/web/Y_Main.css @@ -25,7 +25,7 @@ button[ytype]{ background-color: transparent; background-repeat: no-repeat; padding-left: 20px; - padding-right:0px; + padding-right: 5px; vertical-align: middle; text-align:left; } @@ -227,12 +227,6 @@ tr { padding-left: 20px; color: #555555; } -.y_menu_sec li.disabled { - height: auto; - margin-bottom: 0.1em; - color: #808080; - text-decoration:line-through; -} .y_menu_sec li a { text-decoration: none; font-size: 10pt; @@ -240,8 +234,6 @@ tr { .y_menu_sec li.plain a { color: #555555 } -.y_menu_sec li.disabled a { -} .y_menu_sec li a:hover { color: #FF6600; } @@ -252,6 +244,22 @@ tr { font-size: 10pt; font-weight: bold; } +.y_menu_sec li a.disabled, +.y_menu_sec li a.restricted { + color: #808080; + text-decoration:line-through; +} +.y_menu_sec ul li:first-child { + margin-top: 5px; +} +.y_menu_popup_link { + float: right; + margin-right: 15px; +} + +.control_icon a img { + margin: 0 2px; +} /*work*/ .work_box { diff --git a/src/nhttpd/web/Y_Menue.yhtm b/src/nhttpd/web/Y_Menue.yhtm index 48a2fa2e6..b2965a68d 100644 --- a/src/nhttpd/web/Y_Menue.yhtm +++ b/src/nhttpd/web/Y_Menue.yhtm @@ -117,10 +117,12 @@ function vlc() { -   -   -   - + + + + + +   diff --git a/src/nhttpd/web/Y_Settings_Menue.yhtm b/src/nhttpd/web/Y_Settings_Menue.yhtm index 31aa65324..239aa3a89 100644 --- a/src/nhttpd/web/Y_Settings_Menue.yhtm +++ b/src/nhttpd/web/Y_Settings_Menue.yhtm @@ -46,100 +46,123 @@ function init(){
    {=L:general=}
      - {=if-empty:{=var-get:management=}~ -
    • yWeb
    • -
    • {=L:set.menue.webserver=}
    • -
    • {=L:set.menue.zapit=}
    • - {=if-not-equal:{=global-var-get:boxtype=}~coolstream~ -
    • {=L:set.menue.boot_logo=}
    • - ~=} -
    • {=L:set.menue.backup_restore=}
    • -
    • {=L:set.menue.timer_settings=}
    • - ~ -
    • yWeb
    • -
    • {=L:set.menue.webserver=}
    • -
    • {=L:set.menue.zapit=}
    • - {=if-not-equal:{=global-var-get:boxtype=}~coolstream~ -
    • {=L:set.menue.boot_logo=}
    • - ~=} -
    • {=L:set.menue.backup_restore=}
    • -
    • {=L:set.menue.timer_settings=}
    • - =} +
    • + {=var-set:m_link_href=Y_Settings_yWeb.yhtm=} + {=var-set:m_link_text=yWeb=} + {=include-block:Y_Blocks.txt;management_link=} +
    • +
    • + {=var-set:m_link_href=Y_Settings_nhttpd.yhtm=} + {=var-set:m_link_text={=L:set.menue.webserver=}=} + {=include-block:Y_Blocks.txt;management_link=} +
    • +
    • + {=var-set:m_link_href=Y_Settings_zapit.yhtm=} + {=var-set:m_link_text={=L:set.menue.zapit=}=} + {=include-block:Y_Blocks.txt;management_link=} +
    • +
    • + {=var-set:m_link_href=Y_Settings_Backup.yhtm=} + {=var-set:m_link_text={=L:set.menue.backup_restore=}=} + {=include-block:Y_Blocks.txt;management_link=} +
    • +
    • + {=var-set:m_link_href=Y_Settings_Timer.yhtm=} + {=var-set:m_link_text={=L:set.menue.timer_settings=}=} + {=include-block:Y_Blocks.txt;management_link=} +
    Neutrino
      - {=if-empty:{=var-get:management=}~ -
    • {=L:set.menue.bouquet_editor=}
    • - {=if-not-equal:{=global-var-get:boxtype=}~coolstream~ -
    • {=L:set.menue.video_audio=}
    • - ~=} -
    • {=L:set.menue.parental=}
    • -
    • {=L:set.menue.recording=}
    • - {=if-not-equal:{=global-var-get:boxtype=}~coolstream~ -
    • {=L:set.menue.direct_recording=}
    • - =} -
    • {=L:set.menue.audio_player=}
    • - {=if-not-equal:{=global-var-get:boxtype=}~coolstream~ -
    • {=L:set.menue.esound_server=}
    • -
    • {=L:set.menue.movieplayer=}
    • - ~=} -
    • {=L:set.menue.pictureviewer=}
    • - {=if-not-equal:{=global-var-get:boxtype=}~coolstream~ -
    • {=L:set.menue.lcd_display=}
    • - ~=} -
    • {=L:set.menue.key_settings=}
    • - {=if-not-equal:{=global-var-get:boxtype=}~coolstream~ -
    • {=L:set.menue.boot_options=}
    • -
    • {=L:set.menue.others=}
    • - ~=} -
    • {=L:set.menue.peronalization=}
    • - ~ -
    • {=L:set.menue.bouquet_editor=}
    • - {=if-not-equal:{=global-var-get:boxtype=}~coolstream~ -
    • {=L:set.menue.video_audio=}
    • - ~=} -
    • {=L:set.menue.parental=}
    • -
    • {=L:set.menue.recording=}
    • - {=if-not-equal:{=global-var-get:boxtype=}~coolstream~ -
    • {=L:set.menue.direct_recording=}
    • - =} -
    • {=L:set.menue.audio_player=}
    • -
    • {=L:set.menue.movieplayer=}
    • - {=if-not-equal:{=global-var-get:boxtype=}~coolstream~ -
    • {=L:set.menue.esound_server=}
    • - ~=} -
    • {=L:set.menue.pictureviewer=}
    • - {=if-not-equal:{=global-var-get:boxtype=}~coolstream~ -
    • {=L:set.menue.lcd_display=}
    • - ~=} - {=if-not-equal:{=global-var-get:boxtype=}~coolstream~ -
    • {=L:set.menue.key_settings=}
    • - ~=} - {=if-not-equal:{=global-var-get:boxtype=}~coolstream~ -
    • {=L:set.menue.boot_options=}
    • -
    • {=L:set.menue.others=}
    • - ~=} - {=if-not-equal:{=global-var-get:boxtype=}~coolstream~ -
    • {=L:set.menue.peronalization=}
    • - ~=} - =} +
    • + {=var-set:m_link_href=Y_Boxcontrol_Bouquet_Editor_Main.yhtm=} + {=var-set:m_link_text={=L:set.menue.bouquet_editor=}=} + {=include-block:Y_Blocks.txt;management_link=} +
    • +
    • + {=var-set:m_link_href=Y_Settings_neutrino_forms.yhtm?form=neutrino_form-data_parental=} + {=var-set:m_link_text={=L:set.menue.parental=}=} + {=include-block:Y_Blocks.txt;management_link=} +
    • +
    • + {=var-set:m_link_href=Y_Settings_neutrino_forms.yhtm?form=neutrino_form-data_record=} + {=var-set:m_link_text={=L:set.menue.recording=}=} + {=include-block:Y_Blocks.txt;management_link=} +
    • +
    • + {=var-set:m_link_href=Y_Settings_neutrino_forms.yhtm?form=neutrino_form-data_movieplayer=} + {=var-set:m_link_text={=L:set.menue.movieplayer=}=} + {=include-block:Y_Blocks.txt;management_link=} +
    • +
    • + {=var-set:m_link_href=Y_Settings_neutrino_forms.yhtm?form=neutrino_form-data_audioplayer=} + {=var-set:m_link_text={=L:set.menue.audio_player=}=} + {=include-block:Y_Blocks.txt;management_link=} +
    • +
    • + {=var-set:m_link_href=Y_Settings_neutrino_forms.yhtm?form=neutrino_form-data_pictureviewer=} + {=var-set:m_link_text={=L:set.menue.pictureviewer=}=} + {=include-block:Y_Blocks.txt;management_link=} +
    • + {=if-not-equal:{=global-var-get:boxtype=}~coolstream~ +
    • + {=var-set:m_link_href=Y_Settings_video_audio.yhtm=} + {=var-set:m_link_text={=L:set.menue.video_audio=}=} + {=include-block:Y_Blocks.txt;management_link=} +
    • +
    • + {=var-set:m_link_href=Y_Settings_neutrino_forms.yhtm?form=neutrino_form-data_esound=} + {=var-set:m_link_text={=L:set.menue.esound_server=}=} + {=include-block:Y_Blocks.txt;management_link=} +
    • +
    • + {=var-set:m_link_href=Y_Settings_neutrino_forms.yhtm?form=neutrino_form-data_direct_recording=} + {=var-set:m_link_text={=L:set.menue.direct_recording=}=} + {=include-block:Y_Blocks.txt;management_link=} +
    • +
    • + {=var-set:m_link_href=Y_Settings_lcd.yhtm=} + {=var-set:m_link_text={=L:set.menue.lcd_display=}=} + {=include-block:Y_Blocks.txt;management_link=} +
    • +
    • + {=var-set:m_link_href=Y_Settings_buttons.yhtm=} + {=var-set:m_link_text={=L:set.menue.key_settings=}=} + {=include-block:Y_Blocks.txt;management_link=} +
    • +
    • + {=var-set:m_link_href=Y_Settings_neutrino_forms.yhtm?form=neutrino_form-data_bootoptions=} + {=var-set:m_link_text={=L:set.menue.boot_options=}=} + {=include-block:Y_Blocks.txt;management_link=} +
    • +
    • + {=var-set:m_link_href=Y_Settings_neutrino_forms.yhtm?form=neutrino_form-data_diverse=} + {=var-set:m_link_text={=L:set.menue.others=}=} + {=include-block:Y_Blocks.txt;management_link=} +
    • +
    • + {=var-set:m_link_href=Y_Settings_personalize.yhtm=} + {=var-set:m_link_text={=L:set.menue.peronalization=}=} + {=include-block:Y_Blocks.txt;management_link=} +
    • + ~=}
    - {=if-not-equal:{=global-var-get:boxtype=}~coolstream~ + {=if-not-equal:{=global-var-get:boxtype=}~coolstream~
    {=L:plugins=}
      - {=if-empty:{=var-get:management=}~ -
    • VNC
    • - ~ -
    • VNC
    • - =} +
    • + {=var-set:m_link_href=Y_Settings_VNC.yhtm=} + {=var-set:m_link_text=VNC=} + {=include-block:Y_Blocks.txt;management_link=} +
    - ~=} + ~=} diff --git a/src/nhttpd/web/Y_Tools_Check_Install.yhtm b/src/nhttpd/web/Y_Tools_Check_Install.yhtm index e032adc7d..768f771e3 100644 --- a/src/nhttpd/web/Y_Tools_Check_Install.yhtm +++ b/src/nhttpd/web/Y_Tools_Check_Install.yhtm @@ -94,37 +94,37 @@ function do_check(){ sLog_addRow(sLog_body, "green", "Programs: dboxshot is installed at: {=var-get:dboxshot=}. Remote & OSD is enabled.", "ok"); =} - {=if-not-equal:{=global-var-get:boxtype=}~coolstream~ - {=var-set:fcp={=if-file-exists:/sbin/fcp~/sbin/fcp~{=if-file-exists:/var/bin/fcp~/var/bin/fcp~{=if-file-exists:/bin/fcp~/bin/fcp~false=}=}=}=} - {=if-equal:{=var-get:fcp=}~false~ - sLog_addRow(sLog_body, "red", "Programs: fcp is not installed. Image flashing is disabled. "+y_url("Help-Tools-Image"), "failed"); - ~ - sLog_addRow(sLog_body, "green", "Programs: fcp is installed at: {=var-get:fcp=}. Image flashing is enabled.", "ok"); - =} - ~=} +{=if-not-equal:{=global-var-get:boxtype=}~coolstream~ + {=var-set:fcp={=if-file-exists:/sbin/fcp~/sbin/fcp~{=if-file-exists:/var/bin/fcp~/var/bin/fcp~{=if-file-exists:/bin/fcp~/bin/fcp~false=}=}=}=} + {=if-equal:{=var-get:fcp=}~false~ + sLog_addRow(sLog_body, "red", "Programs: fcp is not installed. Image flashing is disabled. "+y_url("Help-Tools-Image"), "failed"); + ~ + sLog_addRow(sLog_body, "green", "Programs: fcp is installed at: {=var-get:fcp=}. Image flashing is enabled.", "ok"); + =} +~=} - {=var-set:ether-wake={=if-equal:{=global-var-get:boxtype=}~coolstream~{=if-file-exists:/bin/ether-wake~/bin/ether-wake~{=if-file-exists:/var/bin/ether-wake~/var/bin/ether-wake~=}=}~{=if-file-exists:/bin/ether-wake~/bin/ether-wake~{=if-file-exists:/var/bin/ether-wake~/var/bin/ether-wake~=}=}=}=} + {=var-set:ether-wake={=if-file-exists:/bin/ether-wake~/bin/ether-wake~{=if-file-exists:/var/bin/ether-wake~/var/bin/ether-wake~false=}=}=} {=if-equal:{=var-get:ether-wake=}~false~ sLog_addRow(sLog_body, "red", "Programs: ether-wake is not installed. Wake on LAN is disabled. "+y_url("Help-Tools-Wake_on_LAN"), "failed"); ~ sLog_addRow(sLog_body, "green", "Programs: ether-wake is installed at: {=var-get:ether-wake=}. Wake on LAN is enabled.", "ok"); =} - {=if-not-equal:{=global-var-get:boxtype=}~coolstream~ - /*automount*/ - {=var-set:automount={=if-file-exists:/sbin/automount~/sbin/automount~{=if-file-exists:/var/bin/automount~/var/bin/automount~false=}=}=} - {=if-equal:{=var-get:automount=}~false~ - sLog_addRow(sLog_body, "red", "Programs: automount is not installed. AutoMount is disabled. "+y_url("Help-Tools-AutoMount"), "failed"); - ~ - sLog_addRow(sLog_body, "green", "Programs: automount is installed at: {=var-get:automount=}. AutoMount is enabled.", "ok"); - =} - /* udp */ - {=var-set:udpstreamts={=if-file-exists:/sbin/udpstreamts~/sbin/udpstreamts~{=if-file-exists:/var/bin/udpstreamts~/var/bin/udpstreamts~false=}=}=} - {=if-equal:{=var-get:udpstreamts=}~false~ - sLog_addRow(sLog_body, "red", "Programs: udpstreamts is not installed. udp-streaming is disabled. "+y_url("Help-Live_Timer-UDP_Streaming"), "failed"); - ~ - sLog_addRow(sLog_body, "green", "Programs: udpstreamts is installed at: {=var-get:udpstreamts=}. udp-streaming is enabled.", "ok"); - =} - ~=} +{=if-not-equal:{=global-var-get:boxtype=}~coolstream~ + /*automount*/ + {=var-set:automount={=if-file-exists:/sbin/automount~/sbin/automount~{=if-file-exists:/var/bin/automount~/var/bin/automount~false=}=}=} + {=if-equal:{=var-get:automount=}~false~ + sLog_addRow(sLog_body, "red", "Programs: automount is not installed. AutoMount is disabled. "+y_url("Help-Tools-AutoMount"), "failed"); + ~ + sLog_addRow(sLog_body, "green", "Programs: automount is installed at: {=var-get:automount=}. AutoMount is enabled.", "ok"); + =} + /* udp */ + {=var-set:udpstreamts={=if-file-exists:/sbin/udpstreamts~/sbin/udpstreamts~{=if-file-exists:/var/bin/udpstreamts~/var/bin/udpstreamts~false=}=}=} + {=if-equal:{=var-get:udpstreamts=}~false~ + sLog_addRow(sLog_body, "red", "Programs: udpstreamts is not installed. udp-streaming is disabled. "+y_url("Help-Live_Timer-UDP_Streaming"), "failed"); + ~ + sLog_addRow(sLog_body, "green", "Programs: udpstreamts is installed at: {=var-get:udpstreamts=}. udp-streaming is enabled.", "ok"); + =} +~=} do_stop(); } diff --git a/src/nhttpd/web/Y_Tools_Menue.yhtm b/src/nhttpd/web/Y_Tools_Menue.yhtm index 04acc2d10..6cf1ac3e5 100644 --- a/src/nhttpd/web/Y_Tools_Menue.yhtm +++ b/src/nhttpd/web/Y_Tools_Menue.yhtm @@ -15,7 +15,7 @@ function init(){ 'href': e.get('file') }).update("-"+e.get('menuitem')) ); - $('secmenu_tools').insert({'bottom':el}); + $('secmenu_tools').insert({'bottom':el}); }); var menu=ext.select_menu('expert'); menu.each(function(e){ @@ -25,13 +25,23 @@ function init(){ 'href': e.get('file') }).update("-"+e.get('menuitem')) ); - $('secmenu_expert').insert({'bottom':el}); + $('secmenu_expert').insert({'bottom':el}); + }); + var menu=ext.select_menu('yweb'); + menu.each(function(e){ + var el=new Element('li').update( + new Element('a', {'target':'work', + 'title': e.get('desc'), + 'href': e.get('file') + }).update("-"+e.get('menuitem')) + ); + $('secmenu_yweb').insert({'bottom':el}); }); } -{=var-set:automount={=if-file-exists:/sbin/automount~true~{=if-file-exists:/var/bin/automount~true~=}=}=} {=var-set:management={=if-equal:{=func:get_request_data client_addr=}~{=ini-get:/var/tuxbox/config/Y-Web.conf;management_ip;{=func:get_request_data client_addr=}=}~1~=}{=if-equal:{=func:get_request_data client_addr=}~{=ini-get:/var/tuxbox/config/Y-Web.conf;management_ip2=}~1~=}=} +{=var-set:automount={=if-file-exists:/sbin/automount~true~{=if-file-exists:/var/bin/automount~true~=}=}=} {=var-set:ether-wake={=if-equal:{=global-var-get:boxtype=}~coolstream~{=if-file-exists:/bin/ether-wake~/bin/ether-wake~{=if-file-exists:/var/bin/ether-wake~/var/bin/ether-wake~=}=}~{=if-file-exists:/bin/ether-wake~/bin/ether-wake~{=if-file-exists:/var/bin/ether-wake~/var/bin/ether-wake~=}=}=}=}
    @@ -40,46 +50,77 @@ function init(){
    {=L:main.tools=}
      - {=if-empty:{=var-get:management=}~ - {=if-not-equal:{=global-var-get:boxtype=}~coolstream~ -
    • {=L:tools.automount=}
    • -
    • {=L:tools.mounts=}
    • -
    • {=L:tools.wake_on_lan=}
    • - ~=} - ~ - {=if-not-equal:{=global-var-get:boxtype=}~coolstream~ + {=if-not-equal:{=global-var-get:boxtype=}~coolstreamm~ +
    • {=if-empty:{=var-get:automount=}~ -
    • {=L:tools.automount=}
    • + {=L:tools.automount=} ~ -
    • {=L:tools.automount=}
    • + {=var-set:m_link_href=Y_Settings_automount_liste.yhtm=} + {=var-set:m_link_desc==} + {=var-set:m_link_text={=L:tools.automount=}=} + {=include-block:Y_Blocks.txt;management_link=} =} -
    • {=L:tools.mounts=}
    • - ~=} - {=if-empty:{=var-get:ether-wake=}~ -
    • {=L:tools.wake_on_lan=}
    • - ~ -
    • {=L:tools.wake_on_lan=}
    • - =} - =} -
    • {=L:tools.check_install=}
    • + +
    • + {=var-set:m_link_href=Y_Settings_mount_liste.yhtm=} + {=var-set:m_link_desc={=L:tools.mounts_desc=}=} + {=var-set:m_link_text={=L:tools.mounts=}=} + {=include-block:Y_Blocks.txt;management_link=} +
    • + ~=} +
    • + {=if-empty:{=var-get:ether-wake=}~ + {=L:tools.wake_on_lan=} + ~ + {=var-set:m_link_href=Y_Settings_wol.yhtm=} + {=var-set:m_link_desc==} + {=var-set:m_link_text={=L:tools.wake_on_lan=}=} + {=include-block:Y_Blocks.txt;management_link=} + =} +
    {=L:tools.expert=}
      -
    • {=L:main.info=}
    • - {=if-empty:{=var-get:management=}~ -
    • {=L:tools.image=}
    • -
    • {=L:tools.command_shell=}
    • -
    • yInstaller
    • - ~ - {=if-not-equal:{=global-var-get:boxtype=}~coolstream~ -
    • {=L:tools.image=}
    • - ~=} -
    • {=L:tools.command_shell=}  -
    • -
    • yInstaller
    • - =} +
    • + {=L:main.info=} +
    • + {=if-not-equal:{=global-var-get:boxtype=}~coolstream~ +
    • + {=var-set:m_link_href=Y_Tools_Bootlogo.yhtm=} + {=var-set:m_link_desc==} + {=var-set:m_link_text={=L:tools.boot_logo=}=} + {=include-block:Y_Blocks.txt;management_link=} +
    • +
    • + {=var-set:m_link_href=Y_Tools_Flash_Menue.yhtm=} + {=var-set:m_link_desc==} + {=var-set:m_link_text={=L:tools.image=}=} + {=include-block:Y_Blocks.txt;management_link=} +
    • + ~=} +
    • + {=var-set:m_link_href=Y_Tools_Cmd.yhtm=} + {=var-set:m_link_desc==} + {=var-set:m_link_text={=L:tools.command_shell=}=} + {=include-block:Y_Blocks.txt;management_link=} + +
    • +
    +
    +
    yWeb
    +
    +
      +
    • + {=L:tools.check_install=} +
    • +
    • + {=var-set:m_link_href=Y_Tools_Installer.yhtm=} + {=var-set:m_link_desc==} + {=var-set:m_link_text=yInstaller=} + {=include-block:Y_Blocks.txt;management_link=} +
    diff --git a/src/nhttpd/web/Y_Version.txt b/src/nhttpd/web/Y_Version.txt index 30716673e..894eae6c5 100644 --- a/src/nhttpd/web/Y_Version.txt +++ b/src/nhttpd/web/Y_Version.txt @@ -1,4 +1,4 @@ -version=2.8.0.20 -date=23.07.2012 +version=2.8.0.21 +date=24.07.2012 type=Release info=Port Coolstream diff --git a/src/nhttpd/web/languages/Deutsch b/src/nhttpd/web/languages/Deutsch index cb6471e44..1958127c3 100644 --- a/src/nhttpd/web/languages/Deutsch +++ b/src/nhttpd/web/languages/Deutsch @@ -217,7 +217,6 @@ set.sync_with_neutrino=Zur Synchronisation mit Neutrino ========Settings General & Menue set.menue.webserver=Webserver -set.menue.boot_logo=Boot Logo set.menue.timer_settings=Timer Einstellungen set.menue.zapit=Zapit set.menue.backup_restore=Sichern und Wiederherstellen @@ -422,6 +421,7 @@ tools.path=Verzeichnis tools.command=Kommando tools.cmd.enter_command=Auszuführendes Kommando eingeben tools.cmd.execute_command=Kommando ausführen +tools.boot_logo=Boot Logo =========== LIVE Menue live.heading=Live/Timer diff --git a/src/nhttpd/web/languages/English b/src/nhttpd/web/languages/English index 2dc94fcb8..85c0c6657 100644 --- a/src/nhttpd/web/languages/English +++ b/src/nhttpd/web/languages/English @@ -220,7 +220,6 @@ set.sync_with_neutrino=Synchronization with Neutrino =======Settings General & Menue set.menue.webserver=Webserver -set.menue.boot_logo=Boot Logo set.menue.timer_settings=Timer Settings set.menue.zapit=Zapit set.menue.backup_restore=Backup & Restore @@ -425,6 +424,7 @@ tools.path=Path tools.command=Command tools.cmd.enter_command=enter command to execute tools.cmd.execute_command=execute shell command +tools.boot_logo=Boot Logo =========== LIVE Menue live.heading=Live/Timer diff --git a/src/nhttpd/web/languages/Portuguese b/src/nhttpd/web/languages/Portuguese index 6495cb1ca..a455b84f1 100644 --- a/src/nhttpd/web/languages/Portuguese +++ b/src/nhttpd/web/languages/Portuguese @@ -223,7 +223,6 @@ set.sync_with_neutrino=Sincronização com Neutrino =======Definições General & Menu set.menue.webserver=Webserver -set.menue.boot_logo=Boot Logo set.menue.timer_settings=Definições do Programador set.menue.zapit=Zapit set.menue.backup_restore=Backup & Restore @@ -409,6 +408,7 @@ tools.path=Path tools.command=Comando_Shell tools.cmd.enter_command=escrever comando para executar tools.cmd.execute_command=execute comando shell +tools.boot_logo=Boot Logo =========== Menu LIVE live.heading=Live/Timer From 957d9c65558e3e6752b21f92dd59153469d32637 Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Wed, 25 Jul 2012 01:06:47 +0200 Subject: [PATCH 146/317] - yweb: some more corrections in languagefiles and design * replace background-images with plain css --- src/nhttpd/web/Y_Blocks.txt | 2 +- src/nhttpd/web/Y_Main.css | 121 ++++++++---------- src/nhttpd/web/Y_Settings_Menue.yhtm | 6 +- src/nhttpd/web/Y_Settings_Timer.yhtm | 8 +- .../web/Y_Settings_automount_liste.yhtm | 1 + src/nhttpd/web/Y_Version.txt | 4 +- src/nhttpd/web/images/LICENSE | 4 - src/nhttpd/web/images/body-trans-l.gif | Bin 2311 -> 0 bytes src/nhttpd/web/images/body-trans-r.gif | Bin 6861 -> 0 bytes src/nhttpd/web/images/head-blue-l.gif | Bin 649 -> 0 bytes src/nhttpd/web/images/head-blue-r.gif | Bin 1880 -> 0 bytes src/nhttpd/web/images/head-orange-l.gif | Bin 656 -> 0 bytes src/nhttpd/web/images/head-orange-r.gif | Bin 1913 -> 0 bytes src/nhttpd/web/images/head-trans-l.gif | Bin 433 -> 0 bytes src/nhttpd/web/images/head-trans-r.gif | Bin 1539 -> 0 bytes src/nhttpd/web/languages/Deutsch | 20 +-- 16 files changed, 75 insertions(+), 91 deletions(-) delete mode 100644 src/nhttpd/web/images/body-trans-l.gif delete mode 100644 src/nhttpd/web/images/body-trans-r.gif delete mode 100644 src/nhttpd/web/images/head-blue-l.gif delete mode 100644 src/nhttpd/web/images/head-blue-r.gif delete mode 100644 src/nhttpd/web/images/head-orange-l.gif delete mode 100644 src/nhttpd/web/images/head-orange-r.gif delete mode 100644 src/nhttpd/web/images/head-trans-l.gif delete mode 100644 src/nhttpd/web/images/head-trans-r.gif diff --git a/src/nhttpd/web/Y_Blocks.txt b/src/nhttpd/web/Y_Blocks.txt index c5f78a2cf..79995cc78 100644 --- a/src/nhttpd/web/Y_Blocks.txt +++ b/src/nhttpd/web/Y_Blocks.txt @@ -384,7 +384,7 @@ start-block~frame_main {=include-block:Y_Blocks.txt;frame_head=} yWeb - + diff --git a/src/nhttpd/web/Y_Main.css b/src/nhttpd/web/Y_Main.css index df5072da4..ce40619fa 100644 --- a/src/nhttpd/web/Y_Main.css +++ b/src/nhttpd/web/Y_Main.css @@ -1,6 +1,6 @@ body { font-family: Verdana, Geneva, Arial, 'Lucida Grande',Tahoma, Helvetica, sans-serif; - background-color: White; + background-color: #ffffff; margin: 0; padding:0; font-size:10pt; @@ -13,18 +13,17 @@ button,input,select,form,td { color:#555555; } /* buttons */ -/*button{margin:1px}*/ a img:hover { position:relative; left:1px; top:1px; } button[ytype]{ - background-position:1px; + background-position: 5px; background-attachment: scroll; background-color: transparent; background-repeat: no-repeat; - padding-left: 20px; + padding-left: 25px; padding-right: 5px; vertical-align: middle; text-align:left; @@ -48,7 +47,10 @@ button[ytype="delete"]{background-image:url(/images/remove.png);} button[ytype="edit"]{background-image:url(/images/modify.png);} button[ytype="flash"]{background-image:url(/images/flash.png);} -button[ytype="no"]{height:21px;padding-left:1px} +button[ytype="no"] { + height: 21px; + padding-left: 5px +} /*TODO: input file*/ button,input[type="button"],input[type="submit"]/*,input[type="file"],input[type="file"] > input[type="button"],input[type="file"] > input[type="text"]*/ { @@ -108,56 +110,42 @@ tr { } /* primary Navigation */ .y_menu_prim_box { - margin: 0; -/* padding:0;*/ - width: 100%; - background: url(/images/body-trans-r.gif) no-repeat bottom right; - font-size: 100%; + margin: 5px; + font-size: 100.01%; + border: 1px solid #a0a0a0; + border-radius: 5px; } .y_menu_prim_box_head { - background: url(/images/head-trans-r.gif) no-repeat top right; margin: 0; padding: 0; text-align: center; + background: #ffffff; + border-radius: 4px 4px 0 0; } .y_menu_prim_box_head_h2 { - background: url(/images/head-trans-l.gif) no-repeat top left; margin: 0; padding: 5px 0px 5px; color: white; -/* font-size: 0;*/ -/* line-height: 0.5em;*/ } .y_menu_prim_box_body { - background: url(/images/body-trans-l.gif) no-repeat bottom left; -/* margin: 0;*/ - padding-bottom: 8px; - padding-left: 20px; - padding-right: 20px; + padding: 0 20px 5px; + background-color: #ffffff; + border-radius: 0 0 4px 4px; } .y_menu_item { margin: 0; -/* display: block; - background-repeat: no-repeat;*/ } .y_menu_prim { margin: 0; padding: 0; -/* background-color: transparent; - white-space: nowrap;*/ list-style: none; height: auto; -/* line-height: normal;*/ } .y_menu_prim li { display: inline; margin: 0; -/* font-family: Arial, 'Lucida Grande',Tahoma, Verdana, Geneva, Helvetica, sans-serif; - background-repeat: no-repeat; - background-position: 0 1px; -*/ text-align:center; + text-align:center; font-weight: normal; -/* height: auto;*/ padding: 0em 0.3em; } .y_menu_prim_item { @@ -180,38 +168,36 @@ tr { } /* secondary Navigation */ .y_menu_sec_box { - margin: 0; + margin: 0 5px 5px; padding: 0; - width: 100%; - background: url(/images/body-trans-r.gif) no-repeat bottom right; - font-size: 100%; + font-size: 100.01%; + border: 1px solid #a0a0a0; + border-radius: 5px; } .y_menu_sec_box_head { - background: url(/images/head-orange-r.gif) no-repeat top right; margin: 0; padding: 0; + background: #ff6600; + border-radius: 4px 4px 0 0; } .y_menu_sec_box_head h2 { margin: 0; - padding: 10px 30px 3px 25px; - background: url(/images/head-orange-l.gif) no-repeat top left; + padding: 5px 5px 5px 10px; font-family: Arial, 'Lucida Grande',Tahoma, Verdana, Geneva, Helvetica, sans-serif; color: white; font-weight: bold; - font-size: 12pt; -/* line-height: 1.5em;*/ + font-size: 1.2em; text-align: left; } .y_menu_sec_box_body { - background: url(/images/body-trans-l.gif) no-repeat bottom left; margin: 0; -/* padding:0;*/ - padding: 5px 5px 20px 5px; - + padding: 5px 0 10px; + background-color: #ffffff; + border-radius: 0 0 4px 4px; } .y_menu_sec { - display: block; - background-repeat: no-repeat; + display: block; + background-repeat: no-repeat; margin: 0px; } @@ -263,31 +249,33 @@ tr { /*work*/ .work_box { - margin: 0; - background: url(/images/body-trans-r.gif) no-repeat bottom right; + margin: 0 5px 5px 0; + padding: 0; font-size: 100.01%; + border: 1px solid #a0a0a0; + border-radius: 5px; } .work_box_head { - background: url(/images/head-blue-r.gif) no-repeat top right; margin: 0; padding: 0; text-align: center; + background-color: #2188e0; + border-radius: 4px 4px 0 0; } .work_box_head h2,.work_box_head_h2 { - background: url(/images/head-blue-l.gif) no-repeat top left; margin: 0; - padding: 10px 30px 3px 30px; + padding: 5px 20px; font-family: Arial, 'Lucida Grande',Tahoma, Verdana, Geneva, Helvetica, sans-serif; color: white; font-weight: bold; - font-size: 12pt; -/* line-height: 1.5em;*/ + font-size: 1.2em; text-align: left; } .work_box_body { - background: url(/images/body-trans-l.gif) no-repeat bottom left; margin: 0; padding: 5px 30px 10px 30px; + background-color: #ffffff; + border-radius: 0 0 4px 4px; } .work_box_help { float:right; @@ -340,47 +328,45 @@ tr { /*wait box*/ .y_wait_box { margin: 0; - background: url(/images/body-trans-r.gif) no-repeat bottom right; font-size: 100%; position : absolute; left : 100px; top : 100px; visibility : hidden; z-index : 500; + border: 1px solid #a0a0a0; + border-radius: 5px; } .y_wait_box_visible { margin: 0; - background: url(/images/body-trans-r.gif) no-repeat bottom right; font-size: 100%; position : absolute; left : 100px; top : 100px; visibility : visible; z-index : 500; + border: 1px solid #a0a0a0; + border-radius: 5px; } .y_wait_box_head { - background: url(/images/head-orange-r.gif) no-repeat top right; margin: 0; padding: 0; + background: #ff6600; + border-radius: 4px 4px 0 0; } .y_wait_box_head h2 { - background: url(/images/head-orange-l.gif) no-repeat top left; margin: 0; - padding: 12px 30px 3px 30px; + padding: 5px 20px; color: white; font-weight: bold; font-size: 1.2em; - line-height: 1.5em; text-align: center; } .y_wait_box_body { - background: url(/images/body-trans-l.gif) no-repeat bottom left; margin: 0; - padding-top: 5px; - padding-left: 16px; - padding-bottom: 20px; - padding-right: 16px; - + padding: 5px 15px 20px; + background-color: #ffffff; + border-radius: 0 0 4px 4px; } .y_wait_box_main { color: #666666; @@ -491,9 +477,10 @@ tr { .y_text_boxcontrol_table { width:114px; height: 22px; - background : url('/images/audiobar.gif') no-repeat 1px 0px; - padding : 1px; - border : #FF8e42 solid 1px; + background: url('/images/audiobar.gif') no-repeat 1px 0px; + padding: 1px; + margin-top: 10px; + border: #FF8e42 solid 1px; } .y_epg_info { border: 1px solid #CCCCCC; diff --git a/src/nhttpd/web/Y_Settings_Menue.yhtm b/src/nhttpd/web/Y_Settings_Menue.yhtm index 239aa3a89..2769674bf 100644 --- a/src/nhttpd/web/Y_Settings_Menue.yhtm +++ b/src/nhttpd/web/Y_Settings_Menue.yhtm @@ -13,7 +13,7 @@ function init(){ 'href': e.get('file') }).update("-"+e.get('menuitem')) ); - $('secmenu_general').insert({'bottom':el}); + $('secmenu_general').insert({'bottom':el}); }); var menu=ext.select_menu('settings_neutrino'); menu.each(function(e){ @@ -23,7 +23,7 @@ function init(){ 'href': e.get('file') }).update("-"+e.get('menuitem')) ); - $('secmenu_neutrino').insert({'bottom':el}); + $('secmenu_neutrino').insert({'bottom':el}); }); var menu=ext.select_menu('settings_plugins'); menu.each(function(e){ @@ -33,7 +33,7 @@ function init(){ 'href': e.get('file') }).update("-"+e.get('menuitem')) ); - $('secmenu_plugins').insert({'bottom':el}); + $('secmenu_plugins').insert({'bottom':el}); }); } diff --git a/src/nhttpd/web/Y_Settings_Timer.yhtm b/src/nhttpd/web/Y_Settings_Timer.yhtm index 1c82b4a9f..bd9a69344 100644 --- a/src/nhttpd/web/Y_Settings_Timer.yhtm +++ b/src/nhttpd/web/Y_Settings_Timer.yhtm @@ -29,19 +29,19 @@ function do_submit() { {=L:set.timer.password=} -

    + klack.de (V2) {=L:set.timer.klack.url=} -
    - {=L:set.timer.klack.url_desc=}
    + +
    {=L:set.timer.klack.url_desc=} {=L:set.timer.klack.security_code=} -

    + {=L:set.timer.channel_name_replacelist=} diff --git a/src/nhttpd/web/Y_Settings_automount_liste.yhtm b/src/nhttpd/web/Y_Settings_automount_liste.yhtm index 51a3b72a9..1ea68f360 100644 --- a/src/nhttpd/web/Y_Settings_automount_liste.yhtm +++ b/src/nhttpd/web/Y_Settings_automount_liste.yhtm @@ -41,6 +41,7 @@ function do_delete()
    {=script:Y_Tools automount_list {=if-file-exists:/var/etc/auto.net~/var/etc/auto.net~/etc/auto.net=}=} +
    diff --git a/src/nhttpd/web/Y_Version.txt b/src/nhttpd/web/Y_Version.txt index 894eae6c5..8548da598 100644 --- a/src/nhttpd/web/Y_Version.txt +++ b/src/nhttpd/web/Y_Version.txt @@ -1,4 +1,4 @@ -version=2.8.0.21 -date=24.07.2012 +version=2.8.0.22 +date=25.07.2012 type=Release info=Port Coolstream diff --git a/src/nhttpd/web/images/LICENSE b/src/nhttpd/web/images/LICENSE index 5988e4386..c98e4bd19 100644 --- a/src/nhttpd/web/images/LICENSE +++ b/src/nhttpd/web/images/LICENSE @@ -9,10 +9,6 @@ Published under GPL v2 - y.png - audiobar.gif - blank.gif -- body-trans* -- head-blue* -- head-orange* -- head-trans* - help_white.gif From old (before yWeb): diff --git a/src/nhttpd/web/images/body-trans-l.gif b/src/nhttpd/web/images/body-trans-l.gif deleted file mode 100644 index 20e08cbf4e4bd4311603ba8a79b7a8f841a7efad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2311 zcmV+i3HbI$Nk%w1VJrYy2E+gW(9qD%&d#i?to;1^+uPgl@bJ32y7BSx+1c6h^78)v z{U63P=RFaXFlrWi1mOzr5cb%YpkfST6g_xqN zs;!@_udb!Av$Be)hqj2giMocoi?p}GyTrf7guq(Je#(=~e9o7#)V0;azRA#b(w^4e z*w@9`&D&q*Vd!J(W$b6}Y4B_EZS-&Uarkrkb>z|fc>wP5$4y`$gM$d3Q<#q7I*08b zzLOY_;yjD>Fy7OckK;a%{lpyu8Ia^ak=jiE9#okSWjU6O5XOZ02;4ZA|7cdysYzzd za5hKcEXb2n(NIT80bP1CXv(1rp*EEIkZMG$6R}p*dXZ~JuN%R36#J2ENT)B&mQ;HZ zZBDi;;kI;3RPIc>KbtZYN;hiXseh{mzB)K-;jM?eCjPoOY~!(y%SJxC_vz%dm)llO zn>lXhxtrg9zB@WE-_UhS@5H-Wb}V7VelhWaE;N zQ`XD;baTtfF-O<@obztWcQhVOA0pNI2- zSf7aZk(i%}`=Qt$fGkefB7!Os7^8tNIyj?(H!@gbg*#r@V}?I&7-WY-epqCPM~;|e ziA$c?WQtF&=;D+xMk%9}G*W3JmN;^$qn12^>7$rHk}0H_M51Y=nn<##q?=5_>7<-c z(kW$?c3zohmU#BL<(^#v`lX*?5;~@#Wg>c}qG>X^rlV~_`lh6DQaY!lbz*wwpPK5~ zDW9B%TBxXplA5Tgi=x`7s*kc7sjHL1TB)p;(weEQn~th$sk@%qYpTDl8f>e>zFKUo z$IhB;t;^opY_7aU>#MZDQY)#o1>0xYk<^b%~Z!T9d0aK8)x+i<`S4;*p96CYf0!VG8Z zu*MK`EV0KFgKV+L7;kKH$0vWBa>y%>+;Yh%$E>ov(`UzO|;iXgPk;}O_Tk!*-@iCwc1s) zeYM+J!@afKUDN%w-C^TBcA%f~y|mt92M+k)ewSVN*@vf{_}YuN-T2#&#~u0HlhqF1QL)xtK^SHd2d=6yqbkI7u)@5{{K5V0^jhCcjDD5~(JeE?A zr{rTQ{kTd%wo;Igkmfw_RIB7XfTb2`-&(!5PdAUwsrW2U$6lOe$ z`A%cb6Pfo^W;0i~OlS6!pZi2(J*7ENY8KR*2gPPWwYgAkHq@IB1!qLXIZ<*})SMSZ z=RXCyQ8i}&l${@SXGc95QhAn?o+E|kN%6T-edfZS0rhA~)!9-xCex<*#A!`8sneOl zbEh}usZfJT)SM30s6_=TQkSaKrux*LPK_x^pGr`w8q}%?#i~NJ%22L4)Te61o^rZj=EJyJQRlfF=uvJCu zRTZ06#%|TIU4`sdB^y@Cj@7bd#q3!%n^w-QRj@Mk>{~?}SI|zCv~@-8T}|6o)$Y}` zeGLXPSvyzQ9+tLwwe3-(ird2KHmQc)ZE%76Tc!@zxW(nIUjw_`!S*(>&s}VE8#~>{ zRyVT$*PU#3E4$sxb~m%%-E4R}JKoPWH?-v)ZF)<4-qWr(weMYRds`dd*VZ?-%b4wa zYkS|@?l-sn6>f5mt6bUs^}oIiFmV-(Tm~07zXvujb0zFt1Vh)t(#0@!HEdlDW7osl z1u=I;>|GLr*TmvQF?m&NUJ9d^#p;DIdtK~a8N=7c@})6-aco~6|Y@R zn8*TlFoBmm;3g~C$w*#slp8$d2Ln065T03 z<`1_y#BUyPoJ&0C6W2M#cV2OxTfF5L?>WYQo^hXR9OxStI>&?F@u7RX=pRo*%U6bk z^rN|)=pi?{$dx|wrIS2nF>hMRpQduCtvqQzXWGl726LxZooX_l+RU#;bF9@oYc|)~ z&9{bguI0RII``Vnzs9o(1ONd`FyH}}2mk>rQGf_2Alb{7!~q20082<<0st6*BnAM0 h1t6dSl1Kmm3_yW$oBQ18PPe+x-HCR)yWJrG06VR#wdeo< diff --git a/src/nhttpd/web/images/body-trans-r.gif b/src/nhttpd/web/images/body-trans-r.gif deleted file mode 100644 index ed091687eacf44fa3fcc59031d68112e4fa44eac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6861 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 diff --git a/src/nhttpd/web/images/head-blue-l.gif b/src/nhttpd/web/images/head-blue-l.gif deleted file mode 100644 index 9e763cf0398cbf017472fe450aacc0c810ec1e0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 649 zcmV;40(SjJNk%w1VJraI0K@)Q^YbH!-(Q)_mZ-R~v9a;-@y5o+ySuxruCP6j z*08X!Nt4nhiQbv1wl|L1=jZ1niQjOZ#r*vI(b3VrzrSFa%F@!(udlEF|NkL~-~a#s z000000000000000A^8LV00000EC2ui04xC6000I5U?z@aX`X1Ru59bRa2WvAg57wo z?>v4^0Ea~(&=`-%q;h#QK@O4zb4p#x5{#;LTcQlMU@FN#D2C5T(&dY88%cFw+6?xpZ(_k`-}`G@HE|Mbb5*AGlVMf=_b^q0`yLW2(x z4&)cHQN=0;EjC1T5z7H&Nlv zc=b5`1UOV+P>?+x7G;=JXj7y|MLv}pmE=^bRZU*inib_%uU%Ds6&sf2ShHnao>iL` z=32LHWxkagm*!l%b#30&n-}L^zkPN76&#pnVW9IgWW?BUQe!5IJq|XUII`oV5HU+U zOms40f{!g}*66u2XQP!vXHuPp^|{fEVM{*Ely>IQs6orVjJtN~-H=_I0xr7uZQGlF z8&9r#Icen2l|zs1oci?H(z7?e&YOF1;;X^87XP|B_U+m!k{@oqdwQSkzsE1`o&I~J j^TX#KzrTEa{r~Y7pnvx{H6VKj(o-M?R0~p-SO@?+zDQLJ diff --git a/src/nhttpd/web/images/head-blue-r.gif b/src/nhttpd/web/images/head-blue-r.gif deleted file mode 100644 index a998161c8aa694a414562043d5d42a0ed5d3d59c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1880 zcmV-e2dDT)Nk%w1VND0w0K@{&u(0#< z^KhQUnW?tt=jZhF^q8r)tgf)p(a}AS*0i*=IF8uH#>PpL()|4V|Ns9Xh~NMK00000 z000000000000000A^8LV00000EC2ui08Izk000I5ASRAvX`X1Ru59bRa4gSsZQppV z?|kq7z@TtQEE1!7jE#2?YTPDH+bs(9zP<)YaD4*xB0K+}+;a z;NjxqjW6GRKv!>0PICJXU$+M@= zpFo2OC1?SHgAzlNDqYI7sne%Wqe`7hwW`&t5(Pv+inXiPuVBN99ZR;X*|TWVf*kPR z0135lC>o_0{EP|wd>cgW6PdRyLPnIBW&y5&AYen-@t=2#Vta(@#Dyo zD__pMIXdDPoJ*fhy}I@5*eOHL&b_<$@8H9W_qlz%`Sa-0t6$IlUHSI#NG9nI zkxDk{0+o{`R%+>`22G0Trkr-_ zDLa~eD(a}DmMTrCrlzXus*s|}>Z`EEny0I>)@tjmVA6`~uDte|q^`aOE9|f`0!!?% z$R^vNvC1~+io)@eA<41Q*F*@WLh`%<#hyM_iG^5?5^T#r#l= z@x~l?ypF~mhb;2Q+JH>*$taU-a>^{XZ1Ku2$1JnKFwboB&G^=g^Uge@t8>pl2d(YT zLKkhcvP2)P^wPX0&Ggeyv+8uzR9Efk)K+J$b*qeS?e*8mVh#4#WY;Nn*=VPI=Gkhu z?RJ)Izb*INO~y_4-FW|Kciw#W9pm192QGMtfDdl?;bC@-_~MLLS$N}+NABO_l2>lI ze3W0V`R3+j&iUt{W9NDQ=%kmv+~}sKuDWliukQNmv9%8S?6i|6d+oUAZrSa+_wGAl zy#Frz@OlML{PD=cWqk6?Hy_sW&POkOz=}_A{q>_kkNx)C@1%YA;DF6H-2S~tg2(W+%Okgz*sK5p`kbw@2 zAORsL!3yq=f)>mm{V=G(4z7=b9t@%QKq$fzZjXc}Ori8psKOQ|kA*Ibq3~cR!y4v} zhBnM0>~N^V9;S|mJ`5u0fGETwUXF-HOd{lvsKh27j)_i;qTiq>#VX#7idM{`+pws` zE|!gpUJRqxz$nK5GFFX@W=tc~(5S{X7LAQ=j3dwBD91X^jE;89Bg^op$3BjXkA4g! z#{enFLRO5BhD;>G5UI#U7L1XOjHJIHDalISi;|Yiq`NSw$xfb&lb#GExIih&Qf7;k zrc5QYP^rpRhHZYXjO7(!Da%@Jk(Rd1_PL1l9m@3t(I)|!O&1!P6s@1LrhpS!`4JD*ut)qu!c?S zOA)Ks#?F+Xj*aY%@G9BL#)Yz$&Fon)tJ%(qg|nUwZC5}m+R{>mw5Cn%Q&6kg)+&Xy Su8l2FU@P0&dXEGl00298#UY;n diff --git a/src/nhttpd/web/images/head-orange-l.gif b/src/nhttpd/web/images/head-orange-l.gif deleted file mode 100644 index 6adb3fc941b467cb23962913c571134b8b793829..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 656 zcmV;B0&o3CNk%w1VJraL0K@k-M&$pnE!otGN&d&U32IqM&s;a90|NsAH00000 z000000000000000A^8LV00000EC2ui04xC9000I5U?z@aX`X1Ru59bRa4frna6nkD z?|kp;r-xwTPyjT@q;kn@CQT8F!Q!l1o25bGa_xFcm4J6_B_Rq&vU*99h}Uo=X~Brc zNrZ+SPQvW@BYuBseS?I7hGd0_UxFfMXCg@+XgAK!*7o zCX~3);6I9xFkVrZ5#lP1lRPdH*^J~flhIKBPE%QpK%)hTjszMJ=|iSPp)OTgQfgJIC#`11no?_5t}DHU1=~_=S+Xz9rbQc5 zZCkc8-NuDmQ*K?lH|^%dn^SLJzB~N}2HaC{VZuKV54ER(<3^B{AUkm!(r{wNlp{Nx zxVfU@qm~yRl$@z^$IzfZC&f&fQ)@P_)tP=gyRz!1w>hI;J-W8$-MCr%o*X;X@Y29_ z=k_c-IrHAmPcN6=d^+vu*R9*G&K41ejE#0PICJ{DP~m|D z6FP$m9ZIyQ(W6L{DqYI7sne%Wqe`WCV1b1aQ?qK_%C)Q4uVBN99ZR;X*|Q=8K){N& zt=qS7z`y|sy?_G?9!$8f;lqd%D_*QGfPlY@BTJr4xw7TUm@{kM z3@<_h$ecrq9!C>oFt5#UR0O-}QW6PdRySDAyxU&Lyox8X1-@tQ6>KMF>A5Xr#`Sa*WgHO-Cz5Dm@5f($n3AZG|ZDB*+@R%qdcT}6oDh8%Y2;fEk% zq+y68mT2OMD5hx6h$^<|;)^iG2q23x)@b96IOg~qjXL(|NG3TK zk4iS_piD(Iku3I}MRh$gD&qM;qi=%bKEDyd$MPHO3;m}WX1k(zeu z>8GGFRcWZCmTKy$7LAJPs;su^DnF{eD(kGY)+$b{w&tqquAt(|>#x8Do2akC7HjOW za1x8`vdlJ{rLxXOEA6yGLQC!cwb*9cqP5y~>+QD|atrRbcC9%%{bF+bIv^XZ1T=N2Q9S4 zKo4#7(Fhlf^wLb@t8~*)N3HJDQde!Ywp3rO_14U0&Gpw{^XhfjWS8yg*k-4#cCVbS z?e^Q*q7C=lbQdaj-FWAH=iPeu?RT1d|1J37T?S70;fOzJc;bvV9^~SVM=p7dkWX&; z<#D!+`R1ILS$XH6hwkA2=c1Qxx`3pguKMcsrOx{6u%qXC?6lXu-R!pKuDf%%@9z8W z!SxRO@Wj(5eDTO9Z`$$7H}5=V%s(&v^om7K{q@)bW_|YDcOTdG-iI%K#F~$9{`s?k zkN*1XFQtC_@W(%8`SRCq|6=doumAoi<g1`kj@PYYg zAOt5!!FNcof*8zTIWDNd4t9`(9tS5UI#U&Ww?cj3mn-DalHfjFOhjB*!qR$xc>`lb#Hv!$2v@QXY(y zrc9;3P^rpR-iwv4j3vBaDa%@>i;)kkM&1!tGs@1Nxi>O`=>zlYL z*0OqstY%GXcF?NUwnm4oZjCE*;40U;5{IsK&1=5Es@J|E39o()Z2I^r*uwS*u!c?S z@(8Qg#?F+nj*aY1AuHL+?v%2Y&FoJxtJ%&Dm7|^w?U4{G+R_Gww5Cn%T~Mpq*2;yo zu8nP5U@P0&l7+Um&FxoktJ~gcg}1&9E>wUk+~T^Av&Ky>cZjRp<_ZNoApih7V(KX) diff --git a/src/nhttpd/web/images/head-trans-l.gif b/src/nhttpd/web/images/head-trans-l.gif deleted file mode 100644 index 035aa26f02804b61ce5f941aa444b8a5441f3e3f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 433 zcmZ?wbhEHb)M41gaD;*3)2B}tE?ii%X3eczx3+KJ{_o$vKY#u_efo6w?%jX?{(blE z-MMq;RkUq;hhpb>3zpON_9u< zG-P6s5mq^|fzxVl-OAf*&1+QWFMst-*e?FoXZN~#k;eL#nzqW0vaaHug1+1d*^@G+ zq)bbg5i=`%PVhXx1s;oxml!QGT#?hHwkmJU+6}dvRMzQjE8NnsOKFGBzLGu7hYn~R zEkAN{&vA`2Ri}2H+j#oImP?zj+`M>o)Ag-)Hr(5N>)L}gkM=%mdU5#4-B+z2+CO!E z>HgOHqyN{$Ka>AWWr!1+(fL5Fd9FZRkVMx*jrOGq^Cr#cdbBF{-J!^usUPngiG8elkJ%vEI@-+c(9XuGas2^p5%F__Ouq%+F+YY)&}eY%k0fYq2HqV!OMt+T0ym Nk}h{QIWaI;0|3+I+zj}xx4XN$udlDd!otqZ&hGB+|Ns900000000000000000000000000 z000000000000000A^8LV00000EC2ui08IzF000I5ASI4uX`X1Ru59bRa4gSsZQppV z?|kq7z@TtQEE41ejE#kx69Nta1nTnh^!4`l`1$(#{QWcp0U|W;N3fv5g9sBUT*$DY!xjt< zEO0PI7J8ukh7=H zpFo2O9ZK|2fdNI6DqYI7sne%WZ6tsYwW`&tShH%~>JR|euVBN99ZR+>Ag^ZAs$I*r zt=qRh(88Tdx31m0c%914%eSxJzkmZT+$*@S;lqd%D_%r+vE#>(BTJr~r7`8pm@{kM z%=v`n&Y(k!9!=Wq=hCQCt6t6e=jqn4W6PdRo8jx)xO3~?%{$ZW-oS$kA5NUk@8Zal zD__q1$?@jUqf4JoUB&b2*t2Wjp8GoY@8H9WzwCXy`Sa-0*DbHUz5Dm@tFn(zzrOwZ zGUwyp&%eL_hWh;{;D7`ccus%@CaB>5f($a&;DZoGDB&RpPH5qU7-on?g&KC~;fEml zz+s3amT2OMB#emSiY&GWp^7fXDC3Oy!ARqcIOZ6hjXL(|Xr>91nQFG_=9?I?3Fn-2 z*6EL&cIK()p61}m=bwNEI*Ffx7Ha6Bf)I-6qKq~ghoX)~D(R$PKuYPQm}csnrkr-_ zsT!7kD(a}Dx)5rqsHR%#sj9Z>DyFQyD(kF>#!Bn0xaw(ZuDtfD=B~a5D=e454r}bO zOcsmmvdsFZY_rft>*BN0R%+ZYT zwF~dO^fo7Nz4+!E+`ant>+g~O1}rdt{0?mJ!I~9}@WKo`rf|a$M-14*5?5?7T@+ue z@y2Fl%<;z{YvpmsB$wRO$R?+(GEgY5?DESqwG8vjG?yfE%{b>Ar_Mb0%+}352Q4%| zKo4#7(ef0H^wLa+qjb|yM_tL&Qde!YgI8y*HAz%&?e*7qbPe{{WV<1D*=VOt#@TAO z?Y0(dzb*INP{d95-FO>eciw#W&BNY)2QIh_fDdl?;V2Z2_~M8w&iLbjI}Z8ecuP+C z^RF#`|U5=j{EK=>(2Y{ zANvmc@D>YC{P7JNkNolmE6@D%{yGo+^z}+l{q^ozkNx)LYR~=m+d*iGobn$42S_Oa67YbHG9UsMXeb3T@PU7F zAOt69CkayUf^V`Q1~-T%4RY{K@#$isWBuX7bzM=GV+m|aU>)sNf}8}@{*6SBqleB7)^5WlY#LhC`ZW`QIhhM p>p`U|iDb%Ex>7Bze5EYM63bcIk}I{mr7o|M%U$~NDSHV406RzYPRRfO diff --git a/src/nhttpd/web/languages/Deutsch b/src/nhttpd/web/languages/Deutsch index 1958127c3..b047ddf96 100644 --- a/src/nhttpd/web/languages/Deutsch +++ b/src/nhttpd/web/languages/Deutsch @@ -16,19 +16,19 @@ url=URL server=Server refreshing=aktualisieren ... refresh=Aktualisieren -record=aufnehmen -zap=umschalten -lookup=nachschlagen -save_values_desc=senden und speichern der Werte +record=Aufnehmen +zap=Umschalten +lookup=Nachschlagen +save_values_desc=Senden und Speichern der Werte save_values=Werte werden übernommen ... administration=Administration normal=Normal management=Management uninstaller=Deinstallation -send=senden -save=speichern +send=Senden +save=Speichern save_all=Alle Änderungen speichern -cancel=abbrechen +cancel=Abbrechen answer=Antwort reboot=Neustart shutdown=Ausschalten @@ -47,7 +47,7 @@ description=Beschreibung color=Farbe tag=Bezeichnung empty=leer -check=prüfen +check=Prüfen help=Hilfe attention=Achtung! directory=Verzeichnis @@ -366,10 +366,10 @@ set.ap.start_dir=Start-Verzeichnis set.ap.parse_shoutcast=Shoutcast Meta-Daten ========Settings Timer -set.timer.header=Timer Settings +set.timer.header=Timer Einstellungen set.timer.username=Benutzername set.timer.password=Passwort -set.timer.klack.url_desc=("&" wir beim Speichern zu ";" konvertiert) +set.timer.klack.url_desc=("&" wird beim Speichern zu ";" konvertiert) set.timer.klack.url=Persönliche RSS TV-Planer URL set.timer.klack.security_code_desc=Klack Sicherheits Code set.timer.klack.security_code=Sicherheits Code From bc8128d8d7cde9b77cfdc57a436e340c493aa328 Mon Sep 17 00:00:00 2001 From: micha-bbg Date: Tue, 24 Jul 2012 21:25:28 +0200 Subject: [PATCH 147/317] * CComponentsInfoBox: Small display bug fixed --- src/gui/widget/components.h | 2 +- src/gui/widget/menue.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gui/widget/components.h b/src/gui/widget/components.h index 9d17015d7..78f2bed53 100644 --- a/src/gui/widget/components.h +++ b/src/gui/widget/components.h @@ -103,7 +103,7 @@ class CComponentsInfoBox : public CComponents void paint(bool do_save_bg = true, bool fullPaint = false); void hide(); - void restore(bool clear_); + void restore(bool clear_ = true); void setColor(fb_pixel_t color_frame, fb_pixel_t color_body, fb_pixel_t color_shadow){col_frame = color_frame; col_body = color_body; col_shadow = color_shadow;}; }; diff --git a/src/gui/widget/menue.cpp b/src/gui/widget/menue.cpp index 4419918db..dd0b00cc1 100644 --- a/src/gui/widget/menue.cpp +++ b/src/gui/widget/menue.cpp @@ -1079,7 +1079,7 @@ void CMenuWidget::paintHint(int pos) /* clear info box */ if (info_box != NULL) if (pos == -1) - info_box->restore(true); + info_box->restore(); hint_painted = false; } if (pos < 0) @@ -1090,7 +1090,7 @@ void CMenuWidget::paintHint(int pos) if (item->hintIcon.empty() && item->hint == NONEXISTANT_LOCALE) { if (info_box != NULL) - info_box->restore(false); + info_box->restore(); return; } From b28c0698372f5e7b98551a16d4f4b54472509fea Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Wed, 25 Jul 2012 08:46:53 +0200 Subject: [PATCH 148/317] -yweb: fix 957d9c65558e3e6752b21f92dd59153469d32637 --- src/nhttpd/web/images/Makefile.am | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/nhttpd/web/images/Makefile.am b/src/nhttpd/web/images/Makefile.am index 96d7d896a..01bcdc88b 100644 --- a/src/nhttpd/web/images/Makefile.am +++ b/src/nhttpd/web/images/Makefile.am @@ -11,8 +11,6 @@ install_DATA = accept.png \ arrowup.png \ audiobar.gif \ blank.gif \ - body-trans-l.gif \ - body-trans-r.gif \ check_green.gif \ chmod.gif \ comment.gif \ @@ -41,12 +39,6 @@ install_DATA = accept.png \ ftype_link.gif \ fullscreen.png \ hd1.jpg \ - head-blue-l.gif \ - head-blue-r.gif \ - head-orange-l.gif \ - head-orange-r.gif \ - head-trans-l.gif \ - head-trans-r.gif \ help.gif \ help_white.gif \ hidden.gif \ From a4d82f0ddba67a4d965a1c3d62bc5e730b533cff Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Wed, 25 Jul 2012 11:25:05 +0200 Subject: [PATCH 149/317] - yweb: fix 'df'-output to determinate space on mtd --- src/nhttpd/web/Y_Ext_Update.js | 8 +++++--- src/nhttpd/web/Y_Ext_Update.yhtm | 2 +- src/nhttpd/web/Y_Tools_Installer.yhtm | 4 ++-- src/nhttpd/web/languages/Deutsch | 10 +++++----- src/nhttpd/web/languages/English | 10 +++++----- src/nhttpd/web/languages/Portuguese | 10 +++++----- src/nhttpd/web/scripts/Y_Tools.sh | 11 +++++++++-- 7 files changed, 32 insertions(+), 23 deletions(-) diff --git a/src/nhttpd/web/Y_Ext_Update.js b/src/nhttpd/web/Y_Ext_Update.js index c0eb21905..53ace0604 100644 --- a/src/nhttpd/web/Y_Ext_Update.js +++ b/src/nhttpd/web/Y_Ext_Update.js @@ -156,19 +156,21 @@ function do_set_updates2(){ } var avaiable=0; function show_free(){ - var res=dbox_exec_tools("var_space"); + var res=dbox_exec_tools("mtd_space"); var Ausdruck = /([^ ]*)[ ]*([^ ]*)[ ]*([^ ]*)[ ]*([^ ]*)[ ]*([^ ]*)[ ]*([^ ]*).*$/; Ausdruck.exec(res); + var mtd = RegExp.$1; var total = RegExp.$2; var used = RegExp.$3; avaiable = RegExp.$4; var percentage = RegExp.$5; + var mtpt = RegExp.$6; if (total != "") { - str = "Sapce in /var Total: " + total + "k used: " + used + "k Free: " + avaiable + "k part used: " + percentage; + str = "Space in " + mtd + " (mounted on " + mtpt + ") Total: " + total + "kB; Used: " + used + "kB; Free: " + avaiable + "kB (" + percentage + ")"; $('avaiable').update(avaiable); } else - str = "Can not determine free space /var is no partition! JFFS2 oder YADD?"; + str = "Can not determine free space."; $("free").update(str); } /*uninstall*/ diff --git a/src/nhttpd/web/Y_Ext_Update.yhtm b/src/nhttpd/web/Y_Ext_Update.yhtm index 87caa4876..eff7c7ee0 100644 --- a/src/nhttpd/web/Y_Ext_Update.yhtm +++ b/src/nhttpd/web/Y_Ext_Update.yhtm @@ -34,7 +34,7 @@
    ?
    - {=L:ext.free=}: ?k + {=L:ext.free=}: ?k
    Log
    diff --git a/src/nhttpd/web/Y_Tools_Installer.yhtm b/src/nhttpd/web/Y_Tools_Installer.yhtm index 901d8d0df..b63273213 100644 --- a/src/nhttpd/web/Y_Tools_Installer.yhtm +++ b/src/nhttpd/web/Y_Tools_Installer.yhtm @@ -19,7 +19,7 @@ function do_submit() alert("{=L:tools.yinstaller.no_file_given=}"); } function init(){ - var res=dbox_exec_tools("var_space"); + var res=dbox_exec_tools("mtd_space"); var Ausdruck = /([^ ]*)[ ]*([^ ]*)[ ]*([^ ]*)[ ]*([^ ]*)[ ]*([^ ]*)[ ]*([^ ]*).*$/; Ausdruck.exec(res); var total = RegExp.$2; @@ -27,7 +27,7 @@ function init(){ var avaiable = RegExp.$4; var percentage = RegExp.$5; if(total != "") - str="{=L:tools.yinstaller.space.var=}: "+total+"{=L:tools.yinstaller.space.used=}: "+used+"{=L:tools.yinstaller.space.free=}: "+avaiable+"{=L:tools.yinstaller.space.percentage=}: "+percentage; + str="{=L:tools.yinstaller.space.mtd=}: "+total+"kB; {=L:tools.yinstaller.space.used=}: "+used+"kB; {=L:tools.yinstaller.space.free=}: "+avaiable+"kB; {=L:tools.yinstaller.space.percentage=}: "+percentage; else str="{=L:tools.yinstaller.not_determine=}"; id("free").innerHTML=str; diff --git a/src/nhttpd/web/languages/Deutsch b/src/nhttpd/web/languages/Deutsch index b047ddf96..370755962 100644 --- a/src/nhttpd/web/languages/Deutsch +++ b/src/nhttpd/web/languages/Deutsch @@ -395,11 +395,11 @@ tools.info.version=Version ============ Tools yInstaller tools.yinstaller.no_file_given=Keine Datei angegeben! -tools.yinstaller.space.var=Platz in /var Gesamt -tools.yinstaller.space.used=k Benutzt -tools.yinstaller.space.free=k Frei -tools.yinstaller.space.percentage=k Anteil benutzt -tools.yinstaller.not_determine=Kann freien Speicherplatz nicht ermitteln /var ist keine Partition! JFFS2 oder YADD? +tools.yinstaller.space.mtd=Platz gesamt +tools.yinstaller.space.used=Benutzt +tools.yinstaller.space.free=Frei +tools.yinstaller.space.percentage=Anteil benutzt +tools.yinstaller.not_determine=Kann freien Speicherplatz nicht ermitteln. tools.yinstaller.head=yInstaller tools.yinstaller.tar_file=tar-Datei tools.yinstaller.upload_install=hochladen und installieren diff --git a/src/nhttpd/web/languages/English b/src/nhttpd/web/languages/English index 85c0c6657..05e56d40c 100644 --- a/src/nhttpd/web/languages/English +++ b/src/nhttpd/web/languages/English @@ -398,11 +398,11 @@ tools.info.version=Version ============ Tools yInstaller tools.yinstaller.no_file_given=No file given! -tools.yinstaller.space.var=Space in /var total -tools.yinstaller.space.used=k used -tools.yinstaller.space.free=k free -tools.yinstaller.space.percentage=k percentage used -tools.yinstaller.not_determine=Can not determine free space. /var is no partition! JFFS2, YADD or USB? +tools.yinstaller.space.mtd=Space total +tools.yinstaller.space.used=used +tools.yinstaller.space.free=free +tools.yinstaller.space.percentage=percentage used +tools.yinstaller.not_determine=Can not determine free space. tools.yinstaller.head=yInstaller tools.yinstaller.tar_file=tar-File tools.yinstaller.upload_install=upload and install diff --git a/src/nhttpd/web/languages/Portuguese b/src/nhttpd/web/languages/Portuguese index a455b84f1..62a51d998 100644 --- a/src/nhttpd/web/languages/Portuguese +++ b/src/nhttpd/web/languages/Portuguese @@ -382,11 +382,11 @@ tools.info.version=Versão ============ Ferramentas yInstaller tools.yinstaller.no_file_given=Nenhum ficheiro selecionado! -tools.yinstaller.space.var=Total de Espaço em /var -tools.yinstaller.space.used=k usados -tools.yinstaller.space.free=k livres -tools.yinstaller.space.percentage=k percentagem usada -tools.yinstaller.not_determine=Sem puder determinar o espaço livre. /var não é uma partição! JFFS2, YADD ou USB? +tools.yinstaller.space.mtd=Total de espaço +tools.yinstaller.space.used=usados +tools.yinstaller.space.free=livres +tools.yinstaller.space.percentage=percentagem usada +tools.yinstaller.not_determine=Sem puder determinar o espaço livre. tools.yinstaller.head=yInstaller tools.yinstaller.tar_file=tar-Ficheiro tools.yinstaller.upload_install=upload e instalar diff --git a/src/nhttpd/web/scripts/Y_Tools.sh b/src/nhttpd/web/scripts/Y_Tools.sh index dd26fece1..d6aae89c1 100755 --- a/src/nhttpd/web/scripts/Y_Tools.sh +++ b/src/nhttpd/web/scripts/Y_Tools.sh @@ -622,8 +622,15 @@ case "$1" in echo "on" fi ;; - var_space) - df |grep mtd2 + mtd_space|var_space) + df | while read fs rest; do + case ${fs:0:3} in + mtd) + echo "$fs" "$rest" + break + ;; + esac + done ;; tmp_space) df /tmp|grep /tmp From 874dd3f3da5cc259ec86d7e4b8f12fffae40b9af Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Wed, 25 Jul 2012 11:51:39 +0200 Subject: [PATCH 150/317] - yweb: increase version (i urgently need an automatism for that.) --- src/nhttpd/web/Y_Version.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/nhttpd/web/Y_Version.txt b/src/nhttpd/web/Y_Version.txt index 8548da598..86ff9fe3c 100644 --- a/src/nhttpd/web/Y_Version.txt +++ b/src/nhttpd/web/Y_Version.txt @@ -1,4 +1,4 @@ -version=2.8.0.22 +version=2.8.0.23 date=25.07.2012 type=Release info=Port Coolstream From 7d3f40d2909b99f8ec9e1c06979767a06473c42a Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Wed, 25 Jul 2012 14:32:08 +0200 Subject: [PATCH 151/317] - yweb: remove obsolete and non-working code from boxcontrol --- src/nhttpd/web/Y_Tools_Boxcontrol.yhtm | 29 ++------------------------ src/nhttpd/web/Y_Version.txt | 2 +- src/nhttpd/web/languages/Deutsch | 4 ---- src/nhttpd/web/languages/English | 4 ---- src/nhttpd/web/languages/Portuguese | 4 ---- src/nhttpd/web/scripts/Y_Live.sh | 6 ------ src/nhttpd/web/scripts/Y_Tools.sh | 9 -------- 7 files changed, 3 insertions(+), 55 deletions(-) diff --git a/src/nhttpd/web/Y_Tools_Boxcontrol.yhtm b/src/nhttpd/web/Y_Tools_Boxcontrol.yhtm index 10a1cae8d..d4b1b6fec 100644 --- a/src/nhttpd/web/Y_Tools_Boxcontrol.yhtm +++ b/src/nhttpd/web/Y_Tools_Boxcontrol.yhtm @@ -34,11 +34,7 @@ function goUrl(_url){ @@ -54,49 +50,28 @@ function goUrl(_url){ - {=if-not-equal:{=global-var-get:boxtype=}~coolstream~ - + - ~=} - {=if-not-equal:{=global-var-get:boxtype=}~coolstream~ - - - - - - ~=}
    - {=if-equal:{=global-var-get:boxtype=}~coolstream~ - ~ - - =}
    {=L:bc.control.playback=}{=L:bc.control.recording_mode=}
    {=L:bc.control.epg_sectiond=}{=L:bc.control.spts=}
    {=L:bc.control.epg_sectiond=} 
    - - - - - +  
    {=L:bc.control.remote=}{=L:bc.control.live_lock=}
    -
    {=L:bc.control.optical_output=}{=L:bc.control.esound_server=}
    - - - - - - -
    diff --git a/src/nhttpd/web/Y_Version.txt b/src/nhttpd/web/Y_Version.txt index 86ff9fe3c..620a9ce73 100644 --- a/src/nhttpd/web/Y_Version.txt +++ b/src/nhttpd/web/Y_Version.txt @@ -1,4 +1,4 @@ -version=2.8.0.23 +version=2.8.0.24 date=25.07.2012 type=Release info=Port Coolstream diff --git a/src/nhttpd/web/languages/Deutsch b/src/nhttpd/web/languages/Deutsch index 370755962..54c919d3e 100644 --- a/src/nhttpd/web/languages/Deutsch +++ b/src/nhttpd/web/languages/Deutsch @@ -105,17 +105,13 @@ bc.menue.volumen_display=Lautstärke Anzeige bc.control.freemem=FreeMem bc.control.lock=sperren bc.control.unlock=freigeben -bc.control.lcd_unlock=LCD freigeben bc.control.standby_mode=Standby Modus bc.control.recording_mode=Aufnahmemodus bc.control.box=Box bc.control.remote=Fernbedienung bc.control.playback=Abspielen bc.control.epg_sectiond=EPG Sectiond -bc.control.spts=SPTS bc.control.live_lock=Live sperren -bc.control.optical_output=Optischer Ausgang -bc.control.esound_server=ESound Server bc.control.reboot.ask=Box wirklich neu starten? bc.control.reboot=Neustart bc.control.shutdown.ask=Box wirklich ausschalten? diff --git a/src/nhttpd/web/languages/English b/src/nhttpd/web/languages/English index 05e56d40c..b4a2e43e9 100644 --- a/src/nhttpd/web/languages/English +++ b/src/nhttpd/web/languages/English @@ -107,17 +107,13 @@ bc.menue.volumen_display=volumen display bc.control.freemem=FreeMem bc.control.lock=lock bc.control.unlock=unlock -bc.control.lcd_unlock=LCD unlock bc.control.standby_mode=standby mode bc.control.recording_mode=recording mode bc.control.box=box bc.control.remote=remote bc.control.playback=playback bc.control.epg_sectiond=EPG Sectiond -bc.control.spts=SPTS bc.control.live_lock=live lock -bc.control.optical_output=optical output -bc.control.esound_server=ESound Server bc.control.reboot.ask=Really restart the Box? bc.control.reboot=reboot bc.control.shutdown.ask=Really shutdown the Box? diff --git a/src/nhttpd/web/languages/Portuguese b/src/nhttpd/web/languages/Portuguese index 62a51d998..cab847312 100644 --- a/src/nhttpd/web/languages/Portuguese +++ b/src/nhttpd/web/languages/Portuguese @@ -106,17 +106,13 @@ bc.menue.volumen_display=visualizar volume bc.control.freemem=FreeMem bc.control.lock=bloquear bc.control.unlock=desbloquear -bc.control.lcd_unlock=Bloqueio do LCD bc.control.standby_mode=modo em standby bc.control.recording_mode=modo de gravação bc.control.box=box bc.control.remote=remote bc.control.playback=playback bc.control.epg_sectiond=EPG Sectiond -bc.control.spts=SPTS bc.control.live_lock=bloqueio do live -bc.control.optical_output=saída optica -bc.control.esound_server=Servidor ESound bc.control.reboot.ask=Quer realmente reiniciar a sua Box? bc.control.reboot=reiniciar bc.control.shutdown.ask=Quer realmente desligar a sua Box? diff --git a/src/nhttpd/web/scripts/Y_Live.sh b/src/nhttpd/web/scripts/Y_Live.sh index 1aa505f8f..e10efdce9 100755 --- a/src/nhttpd/web/scripts/Y_Live.sh +++ b/src/nhttpd/web/scripts/Y_Live.sh @@ -11,18 +11,12 @@ # ----------------------------------------------------------- live_lock() { - if [ "$boxtype" != "coolstream" ]; then - call_webserver "control/lcd?lock=1&clear=1&rect=10,10,110,50,1,0&xpos=20&ypos=27&size=22&font=2&text=%20%20%20%20yWeb%0A%20%20LiveView&update=1" >/dev/null - fi call_webserver "control/rc?lock" >/dev/null call_webserver "control/zapto?stopplayback" >/dev/null } # ----------------------------------------------------------- live_unlock() { - if [ "$boxtype" != "coolstream" ]; then - call_webserver "control/lcd?lock=0" >/dev/null - fi call_webserver "control/rc?unlock" >/dev/null call_webserver "control/zapto?startplayback" >/dev/null } diff --git a/src/nhttpd/web/scripts/Y_Tools.sh b/src/nhttpd/web/scripts/Y_Tools.sh index d6aae89c1..921e8669c 100755 --- a/src/nhttpd/web/scripts/Y_Tools.sh +++ b/src/nhttpd/web/scripts/Y_Tools.sh @@ -613,15 +613,6 @@ case "$1" in cat /tmp/$2 ;; - standby_status) - status=`switch -s|grep "FNC: 0"` - if [ "$status" = "" ] - then - echo "off" - else - echo "on" - fi - ;; mtd_space|var_space) df | while read fs rest; do case ${fs:0:3} in From a53320fb4d40a46d5a669e9df685d72efdba6297 Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Wed, 25 Jul 2012 14:52:57 +0200 Subject: [PATCH 152/317] - yweb: rework buttons --- src/nhttpd/web/Y_Main.css | 8 +++----- src/nhttpd/web/Y_Version.txt | 2 +- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/nhttpd/web/Y_Main.css b/src/nhttpd/web/Y_Main.css index ce40619fa..d750c8ce0 100644 --- a/src/nhttpd/web/Y_Main.css +++ b/src/nhttpd/web/Y_Main.css @@ -48,20 +48,20 @@ button[ytype="edit"]{background-image:url(/images/modify.png);} button[ytype="flash"]{background-image:url(/images/flash.png);} button[ytype="no"] { - height: 21px; padding-left: 5px } /*TODO: input file*/ button,input[type="button"],input[type="submit"]/*,input[type="file"],input[type="file"] > input[type="button"],input[type="file"] > input[type="text"]*/ { + height: 22px; border: 1px solid #888888; background-color: transparent; + border-radius: 3px; } button:hover,input[type="button"]:hover,input[type="submit"]:hover/*,input[type="file"]:hover*/ { position:relative; left:1px; top:1px; - border: 1px solid #888888; } div { margin:0; @@ -394,12 +394,10 @@ tr { width: 100%; } .y_live_button { -/* font-size: 8pt; - height: 22px;*/ padding: 0; color: #555555; margin:0; - + border: 0 none; } .y_live_bouquets { diff --git a/src/nhttpd/web/Y_Version.txt b/src/nhttpd/web/Y_Version.txt index 620a9ce73..3b9791250 100644 --- a/src/nhttpd/web/Y_Version.txt +++ b/src/nhttpd/web/Y_Version.txt @@ -1,4 +1,4 @@ -version=2.8.0.24 +version=2.8.0.25 date=25.07.2012 type=Release info=Port Coolstream From 596b64b410167366ab03ce9813081cf076dad4ed Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Wed, 25 Jul 2012 15:06:49 +0200 Subject: [PATCH 153/317] - yweb: remove ftpfs-option from mount-settings --- src/nhttpd/web/Y_Settings_mount.yhtm | 1 - src/nhttpd/web/Y_Version.txt | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/nhttpd/web/Y_Settings_mount.yhtm b/src/nhttpd/web/Y_Settings_mount.yhtm index 926ee0fa7..47046bfac 100644 --- a/src/nhttpd/web/Y_Settings_mount.yhtm +++ b/src/nhttpd/web/Y_Settings_mount.yhtm @@ -32,7 +32,6 @@ function do_submit() NFS  CIFS  - FTPFS diff --git a/src/nhttpd/web/Y_Version.txt b/src/nhttpd/web/Y_Version.txt index 3b9791250..862e52883 100644 --- a/src/nhttpd/web/Y_Version.txt +++ b/src/nhttpd/web/Y_Version.txt @@ -1,4 +1,4 @@ -version=2.8.0.25 +version=2.8.0.26 date=25.07.2012 type=Release info=Port Coolstream From 84e94ad4ca4c4948a088d3f840962b9df2a15ce4 Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Wed, 25 Jul 2012 18:09:49 +0200 Subject: [PATCH 154/317] - yweb: get version-info from http://git.coolstreamtech.de --- src/nhttpd/web/Y_Info_Updates.yhtm | 10 +++------- src/nhttpd/web/Y_Version.txt | 2 +- src/nhttpd/web/scripts/Y_Tools.sh | 3 +-- 3 files changed, 5 insertions(+), 10 deletions(-) diff --git a/src/nhttpd/web/Y_Info_Updates.yhtm b/src/nhttpd/web/Y_Info_Updates.yhtm index d53fbe5bd..839f2054b 100644 --- a/src/nhttpd/web/Y_Info_Updates.yhtm +++ b/src/nhttpd/web/Y_Info_Updates.yhtm @@ -4,11 +4,7 @@ // @@ -21,7 +17,7 @@ function check_updates()
    - - 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 From 434ac74066ba8adcc8fe931524fc582004ceff72 Mon Sep 17 00:00:00 2001 From: satbaby Date: Wed, 8 Aug 2012 22:05:33 +0200 Subject: [PATCH 197/317] sectionsd.cpp: fix possible segfault --- src/eitd/sectionsd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/eitd/sectionsd.cpp b/src/eitd/sectionsd.cpp index 854641324..802ffacea 100644 --- a/src/eitd/sectionsd.cpp +++ b/src/eitd/sectionsd.cpp @@ -1164,7 +1164,7 @@ static void commandReadSIfromXML(int connfd, char *data, const unsigned dataLeng static void commandWriteSI2XML(int connfd, char *data, const unsigned dataLength) { sendEmptyResponse(connfd, NULL, 0); - if ((!reader_ready) || (dataLength > 100)){ + if (mySIeventsOrderUniqueKey.empty() || (!reader_ready) || (dataLength > 100)){ eventServer->sendEvent(CSectionsdClient::EVT_WRITE_SI_FINISHED, CEventServer::INITID_SECTIONSD); return; } From d1850d6e90e360c61e762f8f2748136f502eafdc Mon Sep 17 00:00:00 2001 From: satbaby Date: Thu, 9 Aug 2012 14:29:11 +0200 Subject: [PATCH 198/317] neutrino.cpp:skip saveepg if box start to standby --- src/neutrino.cpp | 10 +++++----- src/neutrino.h | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 4cb81a2e4..63e6c5b25 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -2007,7 +2007,7 @@ void CNeutrinoApp::RealRun(CMenuWidget &mainMenu) } g_RCInput->clearRCMsg(); if(g_settings.power_standby || init_cec_setting) - standbyMode(true); + standbyMode(true, true); InfoClock = CInfoClock::getInstance(); if(g_settings.mode_clock) @@ -2926,7 +2926,6 @@ void CNeutrinoApp::ExitRun(const bool /*write_si*/, int retcode) //SDTreloadChannels = false; } - CVFD::getInstance()->setMode(CVFD::MODE_SHUTDOWN); delete CRecordManager::getInstance(); @@ -2940,6 +2939,7 @@ void CNeutrinoApp::ExitRun(const bool /*write_si*/, int retcode) if(g_settings.epg_save /* && timeset && g_Sectionsd->getIsTimeSet ()*/) { saveEpg(true);// true CVFD::MODE_SHUTDOWN } + CVFD::getInstance()->setMode(CVFD::MODE_SHUTDOWN); stop_daemons(true /*retcode*/);//need here for timer_is_rec before saveSetup g_settings.shutdown_timer_record_type = timer_is_rec; @@ -3178,7 +3178,7 @@ void CNeutrinoApp::scartMode( bool bOnOff ) } } -void CNeutrinoApp::standbyMode( bool bOnOff ) +void CNeutrinoApp::standbyMode( bool bOnOff, bool fromDeepStandby ) { static bool wasshift = false; INFO("%s", bOnOff ? "ON" : "OFF" ); @@ -3211,9 +3211,9 @@ void CNeutrinoApp::standbyMode( bool bOnOff ) g_Sectionsd->setPauseScanning(true); g_Sectionsd->setServiceChanged(0, false); - if(!CRecordManager::getInstance()->RecordingStatus()) { + if(!CRecordManager::getInstance()->RecordingStatus() ) { //only save epg when not recording - if(g_settings.epg_save) { + if(g_settings.epg_save && !fromDeepStandby) { saveEpg(false);//false CVFD::MODE_STANDBY } } diff --git a/src/neutrino.h b/src/neutrino.h index 6cb1ce72b..97b483a7c 100644 --- a/src/neutrino.h +++ b/src/neutrino.h @@ -134,7 +134,7 @@ private: void tvMode( bool rezap = true ); void radioMode( bool rezap = true ); void scartMode( bool bOnOff ); - void standbyMode( bool bOnOff ); + void standbyMode( bool bOnOff, bool fromDeepStandby = false ); void saveEpg(bool cvfd_mode); void ExitRun(const bool write_si = true, int retcode = 0); From dd8b3e5f801562e860aa985a2427f6d96d733c09 Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Fri, 10 Aug 2012 21:17:25 +0200 Subject: [PATCH 199/317] - locales: some very little changes/fixes --- data/locale/deutsch.locale | 8 ++++---- data/locale/english.locale | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index ca69467fb..7cd2cd625 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -1456,9 +1456,9 @@ rclock.lockmsg Die Fernbedienung der Coolstream wird gesperrt.\n Um die Sperre a rclock.menueadd FB sperren rclock.title Fernbedienung sperren rclock.unlockmsg Fernbedienung reaktiviert... -recording.is_running Aufzeichung auf diesem Kanal läuft bereits! -recording.start Starte Aufzeichnung, bitte warten...! -recording.stop Beende Aufzeichnung, bitte warten...! +recording.is_running Folgende Aufnahme läuft bereits! Neue Aufnahme starten? +recording.start Starte Aufnahme, bitte warten...! +recording.stop Beende Aufnahme, bitte warten...! recordingmenu.apids Tonspuren recordingmenu.apids_ac3 AC3 Tonspuren aufnehmen recordingmenu.apids_alt Alternative Tonspuren aufn. @@ -1479,7 +1479,7 @@ recordingmenu.record_is_not_running Keine laufende Aufnahme verfügbar! recordingmenu.record_is_running Aufnahme läuft! recordingmenu.save_in_channeldir Speichere im Kanalverzeichnis recordingmenu.server Server -recordingmenu.server_mac Mac Adresse +recordingmenu.server_mac MAC-Adresse recordingmenu.setupnow Einstellungen jetzt übernehmen recordingmenu.timeshift Timeshift recordingmenu.tsdir Timeshift Aufnahmeverzeichnis diff --git a/data/locale/english.locale b/data/locale/english.locale index a0aa13693..2bc9512af 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -1456,7 +1456,7 @@ rclock.lockmsg Your box remote control will be locked.\n To unlock it, press Date: Sat, 11 Aug 2012 01:13:30 +0200 Subject: [PATCH 200/317] * 'locale' targets: Fix 'sort-locals' --- data/locale/Makefile.am | 1 + 1 file changed, 1 insertion(+) diff --git a/data/locale/Makefile.am b/data/locale/Makefile.am index c45acb32c..50d9e1356 100644 --- a/data/locale/Makefile.am +++ b/data/locale/Makefile.am @@ -26,6 +26,7 @@ locals: sort-locals locals.h locals_intern.h install-locals sort-locals: $(top_srcdir)/data/locale/deutsch.locale $(top_srcdir)/data/locale/english.locale cat $(top_srcdir)/data/locale/deutsch.locale | LC_ALL=C sort | uniq > deutsch.locale cat $(top_srcdir)/data/locale/english.locale | LC_ALL=C sort | uniq > english.locale + cp -f deutsch.locale english.locale $(top_srcdir)/data/locale ordercheck: $(top_srcdir)/data/locale/deutsch.locale cut -d' ' -f1 $(top_srcdir)/data/locale/deutsch.locale | LC_ALL=C sort | uniq > /tmp/log From bb4682125f6ebb74622a331d6e7b07d433ff163f Mon Sep 17 00:00:00 2001 From: micha-bbg Date: Fri, 10 Aug 2012 18:20:33 +0200 Subject: [PATCH 201/317] * Use dynamic text for software update online/local --- data/locale/deutsch.locale | 3 ++- data/locale/english.locale | 3 ++- src/gui/update_menue.cpp | 24 ++++++++++++++---------- src/gui/update_menue.h | 1 + src/gui/update_settings.cpp | 10 +++++++--- src/gui/update_settings.h | 6 ++++-- src/system/locals.h | 3 ++- src/system/locals_intern.h | 3 ++- 8 files changed, 34 insertions(+), 19 deletions(-) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index 7cd2cd625..6dea5c2f1 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -436,7 +436,8 @@ filesystem.is.utf8.option.utf8 UTF-8 flashupdate.actionreadflash lese Flash flashupdate.cantopenfile kann Datei nicht öffnen flashupdate.cantopenmtd kann das MTD-Device nicht öffnen -flashupdate.checkupdate Nach Updates suchen +flashupdate.checkupdate_internet Online nach Updates suchen +flashupdate.checkupdate_local Lokales Update flashupdate.currentversion_sep Installierte Version flashupdate.currentversiondate Datum flashupdate.currentversiontime Uhrzeit diff --git a/data/locale/english.locale b/data/locale/english.locale index 2bc9512af..7ecafdb44 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -436,7 +436,8 @@ filesystem.is.utf8.option.utf8 UTF-8 flashupdate.actionreadflash reading flashupdate.cantopenfile can't open file flashupdate.cantopenmtd can't open mtd-device -flashupdate.checkupdate Check for updates +flashupdate.checkupdate_internet Check for online updates +flashupdate.checkupdate_local Local update flashupdate.currentversion_sep Current version flashupdate.currentversiondate Date flashupdate.currentversiontime Time diff --git a/src/gui/update_menue.cpp b/src/gui/update_menue.cpp index aeb7f471c..729897c76 100644 --- a/src/gui/update_menue.cpp +++ b/src/gui/update_menue.cpp @@ -51,11 +51,13 @@ CSoftwareUpdate::CSoftwareUpdate() { width = w_max (40, 10); fe = new CFlashExpert(); + update_item = NULL; } CSoftwareUpdate::~CSoftwareUpdate() { delete fe; + delete update_item; } int CSoftwareUpdate::exec(CMenuTarget* parent, const std::string &/*actionKey*/) @@ -79,19 +81,21 @@ int CSoftwareUpdate::showSoftwareUpdate() //flashing CFlashUpdate flash; - softUpdate.addItem(new CMenuForwarder(LOCALE_FLASHUPDATE_CHECKUPDATE, true, NULL, &flash, NULL, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED)); - + neutrino_locale_t up_text = (g_settings.softupdate_mode == 0) ? LOCALE_FLASHUPDATE_CHECKUPDATE_LOCAL : LOCALE_FLASHUPDATE_CHECKUPDATE_INTERNET; + update_item = new CMenuForwarder(up_text, true, NULL, &flash, NULL, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED); + softUpdate.addItem(update_item); + + //settings + CUpdateSettings update_settings(update_item); + softUpdate.addItem(new CMenuForwarder(LOCALE_FLASHUPDATE_SETTINGS, true, NULL, &update_settings, NULL, CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN)); + + softUpdate.addItem(GenericMenuSeparatorLine); + //expert-functions CMenuWidget mtdexpert(LOCALE_FLASHUPDATE_EXPERTFUNCTIONS, NEUTRINO_ICON_UPDATE, width, MN_WIDGET_ID_MTDEXPERT); showSoftwareUpdateExpert(&mtdexpert); - softUpdate.addItem(new CMenuForwarder(LOCALE_FLASHUPDATE_EXPERTFUNCTIONS, true, NULL, &mtdexpert, NULL, CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN)); - - softUpdate.addItem(GenericMenuSeparatorLine); - - //settings - CUpdateSettings update_settings; - softUpdate.addItem(new CMenuForwarder(LOCALE_FLASHUPDATE_SETTINGS, true, NULL, &update_settings, NULL, CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW )); - + softUpdate.addItem(new CMenuForwarder(LOCALE_FLASHUPDATE_EXPERTFUNCTIONS, true, NULL, &mtdexpert, NULL, CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW)); + int res = softUpdate.exec (NULL, ""); return res; } diff --git a/src/gui/update_menue.h b/src/gui/update_menue.h index 5b86a9dc7..683bdae0e 100644 --- a/src/gui/update_menue.h +++ b/src/gui/update_menue.h @@ -40,6 +40,7 @@ class CSoftwareUpdate : public CMenuTarget { private: int width; + CMenuForwarder * update_item; int showSoftwareUpdate(); void showSoftwareUpdateExpert(CMenuWidget *w_mtd_expert); diff --git a/src/gui/update_settings.cpp b/src/gui/update_settings.cpp index bf187c935..c6a432bd7 100644 --- a/src/gui/update_settings.cpp +++ b/src/gui/update_settings.cpp @@ -43,9 +43,10 @@ #include -CUpdateSettings::CUpdateSettings() +CUpdateSettings::CUpdateSettings(CMenuForwarder * update_item) { width = w_max (40, 10); + updateItem = update_item; #ifdef USE_SMS_INPUT input_url_file = new CStringInputSMS(LOCALE_FLASHUPDATE_URL_FILE, g_settings.softupdate_url_file, 30, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, "abcdefghijklmnopqrstuvwxyz0123456789!""$%&/()=?-. "); #endif @@ -113,7 +114,7 @@ int CUpdateSettings::initMenu() #endif CMenuForwarder * fw_update_dir = new CMenuForwarder(LOCALE_EXTRA_UPDATE_DIR, !g_settings.softupdate_mode, g_settings.update_dir , this, "update_dir", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED); - CUrlConfigSetupNotifier url_setup_notifier(fw_url, fw_update_dir); + CUrlConfigSetupNotifier url_setup_notifier(fw_url, fw_update_dir, updateItem); CMenuOptionChooser *oj_mode = new CMenuOptionChooser(LOCALE_FLASHUPDATE_UPDATEMODE, &g_settings.softupdate_mode, FLASHUPDATE_UPDATEMODE_OPTIONS, FLASHUPDATE_UPDATEMODE_OPTION_COUNT, true, &url_setup_notifier); @@ -128,10 +129,11 @@ int CUpdateSettings::initMenu() } -CUrlConfigSetupNotifier::CUrlConfigSetupNotifier( CMenuItem* i1, CMenuItem* i2) +CUrlConfigSetupNotifier::CUrlConfigSetupNotifier( CMenuItem* i1, CMenuItem* i2, CMenuForwarder * f1) { toDisable[0] = i1; toDisable[1] = i2; + updateItem = f1; } bool CUrlConfigSetupNotifier::changeNotify(const neutrino_locale_t, void *) @@ -139,9 +141,11 @@ bool CUrlConfigSetupNotifier::changeNotify(const neutrino_locale_t, void *) if (g_settings.softupdate_mode){ toDisable[0]->setActive(true); toDisable[1]->setActive(false); + updateItem->setTextLocale(LOCALE_FLASHUPDATE_CHECKUPDATE_INTERNET); }else{ toDisable[0]->setActive(false); toDisable[1]->setActive(true); + updateItem->setTextLocale(LOCALE_FLASHUPDATE_CHECKUPDATE_LOCAL); } return false; } diff --git a/src/gui/update_settings.h b/src/gui/update_settings.h index 11537b7c8..1c9b44198 100644 --- a/src/gui/update_settings.h +++ b/src/gui/update_settings.h @@ -49,8 +49,9 @@ class CUrlConfigSetupNotifier : public CChangeObserver { private: CMenuItem* toDisable[2]; + CMenuForwarder * updateItem; public: - CUrlConfigSetupNotifier( CMenuItem*, CMenuItem*); + CUrlConfigSetupNotifier( CMenuItem*, CMenuItem*, CMenuForwarder *); bool changeNotify(const neutrino_locale_t = NONEXISTANT_LOCALE, void *data = NULL); }; @@ -58,6 +59,7 @@ class CUpdateSettings : public CMenuTarget { private: int width; + CMenuForwarder * updateItem; int initMenu(); CFlashExpert *fe; @@ -66,7 +68,7 @@ class CUpdateSettings : public CMenuTarget #endif public: - CUpdateSettings(); + CUpdateSettings(CMenuForwarder * update_item); ~CUpdateSettings(); int exec(CMenuTarget* parent, const std::string & actionKey); }; diff --git a/src/system/locals.h b/src/system/locals.h index 909a45f2b..89ef79675 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -463,7 +463,8 @@ typedef enum LOCALE_FLASHUPDATE_ACTIONREADFLASH, LOCALE_FLASHUPDATE_CANTOPENFILE, LOCALE_FLASHUPDATE_CANTOPENMTD, - LOCALE_FLASHUPDATE_CHECKUPDATE, + LOCALE_FLASHUPDATE_CHECKUPDATE_INTERNET, + LOCALE_FLASHUPDATE_CHECKUPDATE_LOCAL, LOCALE_FLASHUPDATE_CURRENTVERSION_SEP, LOCALE_FLASHUPDATE_CURRENTVERSIONDATE, LOCALE_FLASHUPDATE_CURRENTVERSIONTIME, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index 6d7c0d38d..2b1c170d3 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -463,7 +463,8 @@ const char * locale_real_names[] = "flashupdate.actionreadflash", "flashupdate.cantopenfile", "flashupdate.cantopenmtd", - "flashupdate.checkupdate", + "flashupdate.checkupdate_internet", + "flashupdate.checkupdate_local", "flashupdate.currentversion_sep", "flashupdate.currentversiondate", "flashupdate.currentversiontime", From 569725ff44d25faa29feff1593b215cfa16101e4 Mon Sep 17 00:00:00 2001 From: micha-bbg Date: Sat, 11 Aug 2012 00:49:56 +0200 Subject: [PATCH 202/317] * gui/update_menue.cpp: add menu hints --- data/locale/deutsch.locale | 5 +++++ data/locale/english.locale | 5 +++++ src/gui/update_menue.cpp | 19 +++++++++++++++---- src/system/locals.h | 5 +++++ src/system/locals_intern.h | 5 +++++ 5 files changed, 35 insertions(+), 4 deletions(-) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index 6dea5c2f1..d09ead308 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -1024,6 +1024,11 @@ menu.hint_shutdown_rcdelay Aktiviert den Deep-Standby, wenn der Powerknopf\nlän menu.hint_shutdown_real Aktivieren des Soft-Standby-Modus, wenn diese Option\ndeaktiviert ist, geht die Box in den Deep-Standby menu.hint_sleeptimer Zeitschaltuhr auf Ihrer Box aktivieren.\nDie Box geht dann in den Standby-Modus menu.hint_soft_restart Neustarten von Neutrino-HD ohne zu Rebooten +menu.hint_softupdate_check Im Internet oder lokal nach verfügbaren Updates suchen +menu.hint_softupdate_expert Einzelne Partitionen aus dem Flash lesen / in den Flash schreiben +menu.hint_softupdate_expert_read Einzelne Partitionen (U-Boot, Splash, Kernel, SystemFS) aus dem Flash lesen +menu.hint_softupdate_expert_write Einzelne Partitionen (Splash, Kernel, SystemFS) in den Flash schreiben +menu.hint_softupdate_settings Den Updatemodus, das lokale Verzeichnis und die Konfigurationsdatei festlegen menu.hint_start_tostandby Aktiviert den Standby-Modus nach dem starten der Box menu.hint_streaminfo Aktuelle Sender-Informationen: PIDs, SNR-Verhältnis\nBitrate grafisch menu.hint_subchannel_pos Hier können Sie die Anzeigeposition der Untertitel auswählen diff --git a/data/locale/english.locale b/data/locale/english.locale index 7ecafdb44..10e8c4549 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -1024,6 +1024,11 @@ menu.hint_shutdown_rcdelay Enable deep-standby, if power button\npressed more th menu.hint_shutdown_real Enable soft-standby mode\nIf disabled, power button put box to deep-standby menu.hint_sleeptimer Set timer to put your box\nin sleep mode menu.hint_soft_restart Restart Neutrino-HD without reboot +menu.hint_softupdate_check In the Internet or local check for available updates +menu.hint_softupdate_expert Separate partitions from the flash read / write to the flash +menu.hint_softupdate_expert_read Separate partitions (U-Boot, Splash, Kernel, SystemFS) from the flash read +menu.hint_softupdate_expert_write Separate partitions (Splash, Kernel, SystemFS) write to the flash +menu.hint_softupdate_settings Update mode, the local directory and the configuration file to set menu.hint_start_tostandby Enter standby mode after boot menu.hint_streaminfo Current channel info: pids, signal and noise ratio\nBitrate graphs menu.hint_subchannel_pos Select subchannels menu position diff --git a/src/gui/update_menue.cpp b/src/gui/update_menue.cpp index 729897c76..e5f38e0e9 100644 --- a/src/gui/update_menue.cpp +++ b/src/gui/update_menue.cpp @@ -75,6 +75,7 @@ int CSoftwareUpdate::exec(CMenuTarget* parent, const std::string &/*actionKey*/) int CSoftwareUpdate::showSoftwareUpdate() /* shows the menue and options for software update */ { + CMenuForwarder * mf; CMenuWidget softUpdate(LOCALE_MAINMENU_SERVICE, NEUTRINO_ICON_UPDATE, width, MN_WIDGET_ID_SOFTWAREUPDATE); softUpdate.addIntroItems(LOCALE_SERVICEMENU_UPDATE); @@ -83,18 +84,23 @@ int CSoftwareUpdate::showSoftwareUpdate() CFlashUpdate flash; neutrino_locale_t up_text = (g_settings.softupdate_mode == 0) ? LOCALE_FLASHUPDATE_CHECKUPDATE_LOCAL : LOCALE_FLASHUPDATE_CHECKUPDATE_INTERNET; update_item = new CMenuForwarder(up_text, true, NULL, &flash, NULL, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED); + update_item->setHint("", LOCALE_MENU_HINT_SOFTUPDATE_CHECK); softUpdate.addItem(update_item); //settings CUpdateSettings update_settings(update_item); - softUpdate.addItem(new CMenuForwarder(LOCALE_FLASHUPDATE_SETTINGS, true, NULL, &update_settings, NULL, CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN)); + mf = new CMenuForwarder(LOCALE_FLASHUPDATE_SETTINGS, true, NULL, &update_settings, NULL, CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN); + mf->setHint("", LOCALE_MENU_HINT_SOFTUPDATE_SETTINGS); + softUpdate.addItem(mf); softUpdate.addItem(GenericMenuSeparatorLine); //expert-functions CMenuWidget mtdexpert(LOCALE_FLASHUPDATE_EXPERTFUNCTIONS, NEUTRINO_ICON_UPDATE, width, MN_WIDGET_ID_MTDEXPERT); showSoftwareUpdateExpert(&mtdexpert); - softUpdate.addItem(new CMenuForwarder(LOCALE_FLASHUPDATE_EXPERTFUNCTIONS, true, NULL, &mtdexpert, NULL, CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW)); + mf = new CMenuForwarder(LOCALE_FLASHUPDATE_EXPERTFUNCTIONS, true, NULL, &mtdexpert, NULL, CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW); + mf->setHint("", LOCALE_MENU_HINT_SOFTUPDATE_EXPERT); + softUpdate.addItem(mf); int res = softUpdate.exec (NULL, ""); return res; @@ -103,8 +109,13 @@ int CSoftwareUpdate::showSoftwareUpdate() /* shows experts-functions to read/write to the mtd */ void CSoftwareUpdate::showSoftwareUpdateExpert(CMenuWidget *w_mtd_expert) { + CMenuForwarder * mf; w_mtd_expert->addIntroItems(); - w_mtd_expert->addItem(new CMenuForwarder(LOCALE_FLASHUPDATE_READFLASHMTD , true, NULL, fe, "readflashmtd" , CRCInput::RC_red , NEUTRINO_ICON_BUTTON_RED)); - w_mtd_expert->addItem(new CMenuForwarder(LOCALE_FLASHUPDATE_WRITEFLASHMTD, true, NULL, fe, "writeflashmtd", CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN)); + mf = new CMenuForwarder(LOCALE_FLASHUPDATE_READFLASHMTD , true, NULL, fe, "readflashmtd" , CRCInput::RC_red , NEUTRINO_ICON_BUTTON_RED); + mf->setHint("", LOCALE_MENU_HINT_SOFTUPDATE_EXPERT_READ); + w_mtd_expert->addItem(mf); + mf = new CMenuForwarder(LOCALE_FLASHUPDATE_WRITEFLASHMTD, true, NULL, fe, "writeflashmtd", CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN); + mf->setHint("", LOCALE_MENU_HINT_SOFTUPDATE_EXPERT_WRITE); + w_mtd_expert->addItem(mf); } diff --git a/src/system/locals.h b/src/system/locals.h index 89ef79675..2924e2be1 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -1051,6 +1051,11 @@ typedef enum LOCALE_MENU_HINT_SHUTDOWN_REAL, LOCALE_MENU_HINT_SLEEPTIMER, LOCALE_MENU_HINT_SOFT_RESTART, + LOCALE_MENU_HINT_SOFTUPDATE_CHECK, + LOCALE_MENU_HINT_SOFTUPDATE_EXPERT, + LOCALE_MENU_HINT_SOFTUPDATE_EXPERT_READ, + LOCALE_MENU_HINT_SOFTUPDATE_EXPERT_WRITE, + LOCALE_MENU_HINT_SOFTUPDATE_SETTINGS, LOCALE_MENU_HINT_START_TOSTANDBY, LOCALE_MENU_HINT_STREAMINFO, LOCALE_MENU_HINT_SUBCHANNEL_POS, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index 2b1c170d3..0b444b03a 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -1051,6 +1051,11 @@ const char * locale_real_names[] = "menu.hint_shutdown_real", "menu.hint_sleeptimer", "menu.hint_soft_restart", + "menu.hint_softupdate_check", + "menu.hint_softupdate_expert", + "menu.hint_softupdate_expert_read", + "menu.hint_softupdate_expert_write", + "menu.hint_softupdate_settings", "menu.hint_start_tostandby", "menu.hint_streaminfo", "menu.hint_subchannel_pos", From da40a11023eda003aff6e6dd36745517305fd3c7 Mon Sep 17 00:00:00 2001 From: micha-bbg Date: Sun, 12 Aug 2012 10:32:03 +0200 Subject: [PATCH 203/317] * src/gui/scan_setup.cpp: Add missing menu hint --- src/gui/scan_setup.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gui/scan_setup.cpp b/src/gui/scan_setup.cpp index e1d3c62d9..e92b3211e 100644 --- a/src/gui/scan_setup.cpp +++ b/src/gui/scan_setup.cpp @@ -958,6 +958,7 @@ void CScanSetup::addScanMenuCable(CMenuWidget *menu) //---------------------------------------------------------------------- CMenuOptionStringChooser * select = new CMenuOptionStringChooser(satprov_locale, scansettings.satNameNoDiseqc, true, this, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED, true); fillCableSelect(select); + select->setHint("", LOCALE_MENU_HINT_SCAN_CABLE); menu->addItem(select); mf = new CMenuForwarder(LOCALE_SATSETUP_CABLE_NID, true, nid->getValue(), nid); From 8ba7cf1a95cffc9b8b2a1ba8193f0432852bcafe Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Sun, 12 Aug 2012 21:56:07 +0200 Subject: [PATCH 204/317] - yweb: fix margin of boxes --- src/nhttpd/web/Y_Main.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/nhttpd/web/Y_Main.css b/src/nhttpd/web/Y_Main.css index d750c8ce0..3fb27ca2d 100644 --- a/src/nhttpd/web/Y_Main.css +++ b/src/nhttpd/web/Y_Main.css @@ -168,7 +168,7 @@ tr { } /* secondary Navigation */ .y_menu_sec_box { - margin: 0 5px 5px; + margin: 0 0 5px 5px; padding: 0; font-size: 100.01%; border: 1px solid #a0a0a0; @@ -249,7 +249,7 @@ tr { /*work*/ .work_box { - margin: 0 5px 5px 0; + margin: 0 5px 5px 5px; padding: 0; font-size: 100.01%; border: 1px solid #a0a0a0; From ca0733d8ea801b012af8e8b3d4a4163eb2e99c09 Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Sun, 12 Aug 2012 22:02:09 +0200 Subject: [PATCH 205/317] - yweb: rework align in Y_Boxcontrol_Bouquets.yhtm --- src/nhttpd/web/Y_Boxcontrol_Bouquets.yhtm | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/nhttpd/web/Y_Boxcontrol_Bouquets.yhtm b/src/nhttpd/web/Y_Boxcontrol_Bouquets.yhtm index 25f3c273e..9ef89d701 100644 --- a/src/nhttpd/web/Y_Boxcontrol_Bouquets.yhtm +++ b/src/nhttpd/web/Y_Boxcontrol_Bouquets.yhtm @@ -5,10 +5,14 @@
    {=var-set:help_url=Help-BoxControl-Bouquet=}{=var-set:menu=Bouquet=}{=include-block:Y_Blocks.txt;work_menu=}
    - + + scrolling="auto" marginheight="1" marginwidth="1" frameborder="0" name="content" + style="height: 600px; width: 74%; float: right;"> +
    From 8fd5a12ef5c3e609af0ea6c3c6e79bd831e6bd87 Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Sun, 12 Aug 2012 22:15:37 +0200 Subject: [PATCH 206/317] - yweb: increase version (for two commits) --- src/nhttpd/web/Y_Version.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/nhttpd/web/Y_Version.txt b/src/nhttpd/web/Y_Version.txt index 29d352368..c5fea8aff 100644 --- a/src/nhttpd/web/Y_Version.txt +++ b/src/nhttpd/web/Y_Version.txt @@ -1,4 +1,4 @@ -version=2.8.0.27 -date=25.07.2012 +version=2.8.0.29 +date=12.08.2012 type=Release info=Port Coolstream From 721ba0b47f3c28cf1381785e0bfe582a9bfbb086 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Wed, 15 Aug 2012 09:47:59 +0400 Subject: [PATCH 207/317] Revert "neutrino.cpp:use yes in shutdown message as default" - it breaks inactivity standby This reverts commit af74eb4f7e1ba9b56a3ebe7a157295e7b8134754. --- src/neutrino.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 63e6c5b25..b822dac89 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -2728,7 +2728,7 @@ _repeat: if(data) { skipShutdownTimer = (ShowLocalizedMessage(LOCALE_MESSAGEBOX_INFO, LOCALE_SHUTDOWNTIMER_ANNOUNCE, - CMessageBox::mbrYes, CMessageBox::mbYes | CMessageBox::mbNo, NULL, 450, 30, true) == CMessageBox::mbrYes);//FIXME + CMessageBox::mbrNo, CMessageBox::mbYes | CMessageBox::mbNo, NULL, 450, 30, true) == CMessageBox::mbrYes);//FIXME if(skipShutdownTimer) { printf("NeutrinoMessages::SLEEPTIMER: skiping\n"); skipShutdownTimer = false; @@ -2774,7 +2774,7 @@ _repeat: } else if( msg == NeutrinoMessages::ANNOUNCE_SHUTDOWN) { if( mode != mode_scart ) - skipShutdownTimer = (ShowLocalizedMessage(LOCALE_MESSAGEBOX_INFO, LOCALE_SHUTDOWNTIMER_ANNOUNCE, CMessageBox::mbrYes, CMessageBox::mbYes | CMessageBox::mbNo, NULL, 450, 5) == CMessageBox::mbrYes); + skipShutdownTimer = (ShowLocalizedMessage(LOCALE_MESSAGEBOX_INFO, LOCALE_SHUTDOWNTIMER_ANNOUNCE, CMessageBox::mbrNo, CMessageBox::mbYes | CMessageBox::mbNo, NULL, 450, 5) == CMessageBox::mbrYes); } else if( msg == NeutrinoMessages::SHUTDOWN ) { if(!skipShutdownTimer) { From 7d723aa44f8127bb91cbafd65b80f2686dc23245 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Thu, 16 Aug 2012 15:47:24 +0400 Subject: [PATCH 208/317] gui/movieinfo.cpp: fix channel id loading --- src/gui/movieinfo.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/movieinfo.cpp b/src/gui/movieinfo.cpp index e5c4f0912..373bf5da4 100644 --- a/src/gui/movieinfo.cpp +++ b/src/gui/movieinfo.cpp @@ -608,7 +608,7 @@ int find_next_char(char to_find, char *text, int start_pos, int end_pos) _pos_ += sizeof(_tag_) ;\ int pos_prev = _pos_;\ while(_pos_ < bytes && _text_[_pos_] != '<' ) pos++;\ - _dest_ = atoll(&_text_[pos_prev]);\ + _dest_ = strtoull(&_text_[pos_prev], NULL, 10); /*atoll(&_text_[pos_prev]);*/\ continue;\ } From b7a9d81a500f5a76c8c3cac2bc2d339e4936b19e Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Thu, 16 Aug 2012 15:51:32 +0400 Subject: [PATCH 209/317] zapit/src/zapit.cpp: add support for adjusting volume per channel/pid --- src/zapit/include/zapit/zapit.h | 27 +++++- src/zapit/src/zapit.cpp | 149 ++++++++++++++++++++++++++++---- 2 files changed, 158 insertions(+), 18 deletions(-) diff --git a/src/zapit/include/zapit/zapit.h b/src/zapit/include/zapit/zapit.h index 880ddcae0..2c77eb030 100644 --- a/src/zapit/include/zapit/zapit.h +++ b/src/zapit/include/zapit/zapit.h @@ -21,11 +21,21 @@ #define PAL 0 #define NTSC 1 #define AUDIO_CONFIG_FILE "/var/tuxbox/config/zapit/audio.conf" +#define VOLUME_CONFIG_FILE "/var/tuxbox/config/zapit/volume.conf" typedef std::map audio_map_t; typedef audio_map_t::iterator audio_map_iterator_t; typedef std::map sdt_tp_map_t; +typedef std::pair pid_pair_t; +typedef std::pair volume_pair_t; +typedef std::multimap volume_map_t; +typedef volume_map_t::iterator volume_map_iterator_t; +typedef std::pair volume_map_range_t; + +#define VOLUME_PERCENT_AC3 100 +#define VOLUME_PERCENT_PCM 75 + /* complete zapit start thread-parameters in a struct */ typedef struct ZAPIT_start_arg { @@ -33,6 +43,7 @@ typedef struct ZAPIT_start_arg t_channel_id startchannelradio_id; int uselastchannel; int video_mode; + int volume; int ci_clock; } Z_start_arg; @@ -89,6 +100,7 @@ class CZapit : public OpenThreads::Thread RECORD_MODE = 0x04 }; + OpenThreads::Mutex mutex; bool started; bool event_mode; bool firstzap; @@ -99,10 +111,12 @@ class CZapit : public OpenThreads::Thread int def_audio_mode; int aspectratio; int mode43; +#if 0 unsigned int volume_left; unsigned int volume_right; - unsigned int def_volume_left; - unsigned int def_volume_right; +#endif + int current_volume; + int volume_percent; int currentMode; bool playbackStopForced; @@ -121,6 +135,7 @@ class CZapit : public OpenThreads::Thread CFrontend * live_fe; audio_map_t audio_map; + volume_map_t vol_map; //bool current_is_nvod; //bool standby; t_channel_id lastChannelRadio; @@ -130,6 +145,7 @@ class CZapit : public OpenThreads::Thread //void LoadAudioMap(); void SaveAudioMap(); + void SaveVolumeMap(); void SaveSettings(bool write_conf); //void SaveChannelPids(CZapitChannel* channel); void RestoreChannelPids(CZapitChannel* channel); @@ -171,6 +187,7 @@ class CZapit : public OpenThreads::Thread Zapit_config config; CZapitSdtMonitor SdtMonitor; void LoadAudioMap(); + void LoadVolumeMap(); void SaveChannelPids(CZapitChannel* channel); virtual void ConfigFrontend(); bool StopPlayBack(bool send_pmt); @@ -224,5 +241,11 @@ class CZapit : public OpenThreads::Thread void SetCurrentChannelID(const t_channel_id channel_id) { live_channel_id = channel_id; }; void SetLiveFrontend(CFrontend * fe) { if(fe) live_fe = fe; } CFrontend * GetLiveFrontend() { return live_fe; }; + + int GetPidVolume(t_channel_id channel_id, int pid, bool ac3 = false); + void SetPidVolume(t_channel_id channel_id, int pid, int percent); + void SetVolume(int vol); + int GetVolume() { return current_volume; }; + int SetVolumePercent(int percent); }; #endif /* __zapit_h__ */ diff --git a/src/zapit/src/zapit.cpp b/src/zapit/src/zapit.cpp index a7ae43bfd..143ee9ef3 100644 --- a/src/zapit/src/zapit.cpp +++ b/src/zapit/src/zapit.cpp @@ -109,8 +109,7 @@ CZapit::CZapit() { started = false; pmt_update_fd = -1; - volume_left = 0, volume_right = 0; - def_volume_left = 0, def_volume_right = 0; + //volume_left = 0, volume_right = 0; audio_mode = 0; aspectratio=0; mode43=0; @@ -122,6 +121,8 @@ CZapit::CZapit() playing = false; list_changed = false; // flag to indicate, allchans was changed currentMode = 0; + current_volume = 100; + volume_percent = 0; } CZapit::~CZapit() @@ -240,6 +241,38 @@ void CZapit::SaveAudioMap() fclose(audio_config_file); } +void CZapit::LoadVolumeMap() +{ + vol_map.clear(); + FILE *volume_config_file = fopen(VOLUME_CONFIG_FILE, "r"); + if (!volume_config_file) { + perror(VOLUME_CONFIG_FILE); + return; + } + t_channel_id chan; + int apid = 0; + int volume = 0; + char s[1000]; + while (fgets(s, 1000, volume_config_file)) { + if (sscanf(s, "%llx %d %d", &chan, &apid, &volume) == 3) + vol_map.insert(volume_pair_t(chan, pid_pair_t(apid, volume))); + } + fclose(volume_config_file); +} + +void CZapit::SaveVolumeMap() +{ + FILE *volume_config_file = fopen(VOLUME_CONFIG_FILE, "w"); + if (!volume_config_file) { + perror(VOLUME_CONFIG_FILE); + return; + } + for (volume_map_iterator_t it = vol_map.begin(); it != vol_map.end(); ++it) + fprintf(volume_config_file, "%llx %d %d\n", (uint64_t) it->first, it->second.first, it->second.second); + + fdatasync(fileno(volume_config_file)); + fclose(volume_config_file); +} void CZapit::LoadSettings() { @@ -285,6 +318,7 @@ void CZapit::LoadSettings() /**/ LoadAudioMap(); + LoadVolumeMap(); } void CZapit::ConfigFrontend() @@ -324,10 +358,10 @@ void CZapit::SaveChannelPids(CZapitChannel* channel) if(channel == NULL) return; - printf("[zapit] saving channel, apid %x sub pid %x mode %d volume %d\n", channel->getAudioPid(), dvbsub_getpid(), audio_mode, volume_right); + printf("[zapit] saving channel, apid %x sub pid %x mode %d volume %d\n", channel->getAudioPid(), dvbsub_getpid(), audio_mode, current_volume); audio_map[channel->getChannelID()].apid = channel->getAudioPid(); audio_map[channel->getChannelID()].mode = audio_mode; - audio_map[channel->getChannelID()].volume = audioDecoder->getVolume(); + audio_map[channel->getChannelID()].volume = current_volume; audio_map[channel->getChannelID()].subpid = dvbsub_getpid(); tuxtx_subtitle_running(&audio_map[channel->getChannelID()].ttxpid, &audio_map[channel->getChannelID()].ttxpage, NULL); } @@ -344,19 +378,9 @@ void CZapit::RestoreChannelPids(CZapitChannel * channel) if (channel->getAudioChannel(i)->pid == pidmap->apid ) { DBG("***** Setting audio!\n"); channel->setAudioChannel(i); -#if 0 - if(we_playing && (channel->getAudioChannel(i)->audioChannelType != CZapitAudioChannel::MPEG)) - ChangeAudioPid(i); -#endif } } } -#if 0 // to restore saved volume per channel if needed. after first zap its done by neutrino - if(firstzap) { - audioDecoder->setVolume(audio_map_it->second.volume, audio_map_it->second.volume); - } -#endif - volume_left = volume_right = pidmap->volume; audio_mode = pidmap->mode; dvbsub_setpid(pidmap->subpid); @@ -374,12 +398,10 @@ void CZapit::RestoreChannelPids(CZapitChannel * channel) else tuxtx_set_pid(pidmap->ttxpid, pidmap->ttxpage, (char *) tmplang.c_str()); } else { - volume_left = volume_right = def_volume_left; audio_mode = def_audio_mode; tuxtx_set_pid(0, 0, (char *) channel->getTeletextLang()); } /* restore saved stereo / left / right channel mode */ - //audioDecoder->setVolume(volume_left, volume_right); audioDecoder->setChannel(audio_mode); } @@ -552,6 +574,85 @@ bool CZapit::ZapForRecord(const t_channel_id channel_id) return true; } +/* set channel/pid volume percent, using current channel_id and pid, if those params is 0 */ +void CZapit::SetPidVolume(t_channel_id channel_id, int pid, int percent) +{ + if (!channel_id) + channel_id = live_channel_id; + + if (!pid && (channel_id == live_channel_id) && current_channel) + pid = current_channel->getAudioPid(); + +INFO("############################### channel %llx pid %x map size %d percent %d", channel_id, pid, vol_map.size(), percent); + volume_map_range_t pids = vol_map.equal_range(channel_id); + for (volume_map_iterator_t it = pids.first; it != pids.second; ++it) { + if (it->second.first == pid) { + it->second.second = percent; + return; + } + } + vol_map.insert(volume_pair_t(channel_id, pid_pair_t(pid, percent))); +} + +/* return channel/pid volume percent, using current channel_id and pid, if those params is 0 */ +int CZapit::GetPidVolume(t_channel_id channel_id, int pid, bool ac3) +{ + int percent = -1; + + if (!channel_id) + channel_id = live_channel_id; + + if (!pid && (channel_id == live_channel_id) && current_channel) + pid = current_channel->getAudioPid(); + + volume_map_range_t pids = vol_map.equal_range(channel_id); + for (volume_map_iterator_t it = pids.first; it != pids.second; ++it) { + if (it->second.first == pid) { + percent = it->second.second; + break; + } + } + if (percent < 0) { + percent = ac3 ? VOLUME_PERCENT_AC3 : VOLUME_PERCENT_PCM; + if ((channel_id == live_channel_id) && current_channel) { + for (int i = 0; i < current_channel->getAudioChannelCount(); i++) { + if (pid == current_channel->getAudioPid(i)) { + percent = current_channel->getAudioChannel(i)->audioChannelType == CZapitAudioChannel::AC3 ? + VOLUME_PERCENT_AC3 : VOLUME_PERCENT_PCM; + break; + } + } + } + } +INFO("############################### channel %llx pid %x map size %d percent %d", channel_id, pid, vol_map.size(), percent); + return percent; +} + +void CZapit::SetVolume(int vol) +{ + current_volume = vol; + if (current_volume < 0) + current_volume = 0; + if (current_volume > 100) + current_volume = 100; + + int value = (current_volume * volume_percent) / 100; +INFO("############ volume %d percent %d -> %d ############", current_volume, volume_percent, value); + audioDecoder->setVolume(value, value); + //volume_left = volume_right = current_volume; +} + +int CZapit::SetVolumePercent(int percent) +{ + int ret = volume_percent; + + if (volume_percent != percent) { + volume_percent = percent; + SetVolume(current_volume); + } + return ret; +} + void CZapit::SetAudioStreamType(CZapitAudioChannel::ZapitAudioChannelType audioChannelType) { const char *audioStr = "UNKNOWN"; @@ -581,6 +682,10 @@ void CZapit::SetAudioStreamType(CZapitAudioChannel::ZapitAudioChannelType audioC break; } + /* FIXME: bigger percent for AC3 only, what about AAC etc ? */ + int newpercent = GetPidVolume(0, 0, audioChannelType == CZapitAudioChannel::AC3); + SetVolumePercent(newpercent); + printf("[zapit] starting %s audio\n", audioStr); } @@ -1471,15 +1576,21 @@ bool CZapit::ParseCommand(CBasicMessage::Header &rmsg, int connfd) case CZapitMessages::CMD_SET_VOLUME: { CZapitMessages::commandVolume msgVolume; CBasicServer::receive_data(connfd, &msgVolume, sizeof(msgVolume)); +#if 0 audioDecoder->setVolume(msgVolume.left, msgVolume.right); volume_left = msgVolume.left; volume_right = msgVolume.right; +#endif + SetVolume(msgVolume.left); break; } case CZapitMessages::CMD_GET_VOLUME: { CZapitMessages::commandVolume msgVolume; +#if 0 msgVolume.left = volume_left; msgVolume.right = volume_right; +#endif + msgVolume.left = msgVolume.right = current_volume; CBasicServer::send_data(connfd, &msgVolume, sizeof(msgVolume)); break; } @@ -1808,6 +1919,9 @@ bool CZapit::StopPlayBack(bool send_pmt) else dvbsub_stop(); + /* reset volume percent to 100% i.e. for media playback, should be safe + * because StartPlayBack will use defaults or saved value */ + SetVolumePercent(100); return true; } @@ -1821,6 +1935,7 @@ void CZapit::enterStandby(void) SaveSettings(true); SaveAudioMap(); + SaveVolumeMap(); StopPlayBack(true); if(!(currentMode & RECORD_MODE)) { @@ -1912,6 +2027,7 @@ bool CZapit::Start(Z_start_arg *ZapStart_arg) live_fe = CFEManager::getInstance()->getFE(0); /* load configuration or set defaults if no configuration file exists */ video_mode = ZapStart_arg->video_mode; + current_volume = ZapStart_arg->volume; videoDemux = new cDemux(); videoDemux->Open(DMX_VIDEO_CHANNEL); @@ -2088,6 +2204,7 @@ void CZapit::run() SaveChannelPids(current_channel); SaveSettings(true); SaveAudioMap(); + SaveVolumeMap(); StopPlayBack(true); CFEManager::getInstance()->saveSettings(true); From a00a4ba99b3f3c8b6e05c7afad1f498297acb4c2 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Thu, 16 Aug 2012 15:52:38 +0400 Subject: [PATCH 210/317] locals: add locale for volume percent adjustment --- data/locale/english.locale | 1 + src/system/locals.h | 1 + src/system/locals_intern.h | 1 + 3 files changed, 3 insertions(+) diff --git a/data/locale/english.locale b/data/locale/english.locale index 10e8c4549..cf1b82a6b 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -125,6 +125,7 @@ audiomenu.pref_subs Prefered subtitle language audiomenu.pref_subs_head Subtitle language preferences audiomenu.spdif_dd Encoded DD on SPDIF audiomenu.stereo stereo +audiomenu.volume_adjust Volume adjustment, in % audiomenu.volume_step Volume step audioplayer.add Add audioplayer.add_ic Icecast diff --git a/src/system/locals.h b/src/system/locals.h index 2924e2be1..e8604244c 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -152,6 +152,7 @@ typedef enum LOCALE_AUDIOMENU_PREF_SUBS_HEAD, LOCALE_AUDIOMENU_SPDIF_DD, LOCALE_AUDIOMENU_STEREO, + LOCALE_AUDIOMENU_VOLUME_ADJUST, LOCALE_AUDIOMENU_VOLUME_STEP, LOCALE_AUDIOPLAYER_ADD, LOCALE_AUDIOPLAYER_ADD_IC, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index 0b444b03a..e7418153a 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -152,6 +152,7 @@ const char * locale_real_names[] = "audiomenu.pref_subs_head", "audiomenu.spdif_dd", "audiomenu.stereo", + "audiomenu.volume_adjust", "audiomenu.volume_step", "audioplayer.add", "audioplayer.add_ic", From 7d0be6d58d8da9652d731fd294274756c651a6a8 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Thu, 16 Aug 2012 15:53:12 +0400 Subject: [PATCH 211/317] neutrino.cpp: pass initial volume to zapit at startup --- src/neutrino.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/neutrino.cpp b/src/neutrino.cpp index b822dac89..3ea3be5cf 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -1798,13 +1798,14 @@ TIMER_START(); ZapStart_arg.uselastchannel = g_settings.uselastchannel; ZapStart_arg.video_mode = g_settings.video_Mode; ZapStart_arg.ci_clock = g_settings.ci_clock; + ZapStart_arg.volume = g_settings.current_volume; /* create decoders, read channels */ CZapit::getInstance()->Start(&ZapStart_arg); // init audio settings audioDecoder->SetSRS(g_settings.srs_enable, g_settings.srs_nmgr_enable, g_settings.srs_algo, g_settings.srs_ref_volume); - audioDecoder->setVolume(g_settings.current_volume, g_settings.current_volume); + //audioDecoder->setVolume(g_settings.current_volume, g_settings.current_volume); audioDecoder->SetHdmiDD((HDMI_ENCODED_MODE)g_settings.hdmi_dd); audioDecoder->SetSpdifDD(g_settings.spdif_dd ? true : false); audioDecoder->EnableAnalogOut(g_settings.analog_out ? true : false); From 49f67b02f43009a5fdbdeb3d4bfb834408b4b9ad Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Thu, 16 Aug 2012 15:54:10 +0400 Subject: [PATCH 212/317] driver/volume.cpp: inherit from CChangeObserver; add changeNotify() for adjusting volume percent --- src/driver/volume.cpp | 24 +++++++++++++++++++++++- src/driver/volume.h | 10 ++++++++-- 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/src/driver/volume.cpp b/src/driver/volume.cpp index a5534d80d..c0049d514 100644 --- a/src/driver/volume.cpp +++ b/src/driver/volume.cpp @@ -38,6 +38,7 @@ #include #include #include +#include #if HAVE_COOL_HARDWARE #include @@ -62,6 +63,8 @@ CVolume::CVolume() ShadowOffset = 4; mute_ay = 0; m_mode = CNeutrinoApp::getInstance()->getMode(); + channel_id = 0; + apid = 0; Init(); } @@ -212,7 +215,8 @@ void CVolume::AudioMute(int newValue, bool isEvent) void CVolume::setvol(int vol) { - audioDecoder->setVolume(vol, vol); + //audioDecoder->setVolume(vol, vol); + CZapit::getInstance()->SetVolume(vol); } void CVolume::setVolume(const neutrino_msg_t key, const bool bDoPaint, bool nowait) @@ -366,3 +370,21 @@ void CVolume::refreshVolumebar(int current_volume) g_Font[VolumeFont]->RenderString(digit_x, digit_y, digit_w, buff, colContent); } } + +bool CVolume::changeNotify(const neutrino_locale_t OptionName, void * data) +{ + bool ret = false; + if (ARE_LOCALES_EQUAL(OptionName, NONEXISTANT_LOCALE)) { + int percent = *(int *) data; + int vol = CZapit::getInstance()->GetVolume(); + /* keep resulting volume = (vol * percent)/100 not more than 115 */ + if (vol * percent > 11500) + percent = 11500 / vol; + + printf("CVolume::changeNotify: percent %d\n", percent); + CZapit::getInstance()->SetPidVolume(channel_id, apid, percent); + CZapit::getInstance()->SetVolumePercent(percent); + *(int *) data = percent; + } + return ret; +} diff --git a/src/driver/volume.h b/src/driver/volume.h index 797d9ccb1..fe10a2ea7 100644 --- a/src/driver/volume.h +++ b/src/driver/volume.h @@ -30,7 +30,7 @@ #define ROUNDED g_settings.rounded_corners ? vbar_h/2 : 0 -class CVolume +class CVolume : public CChangeObserver { private: void refreshVolumebar(int current_volume); @@ -47,6 +47,9 @@ class CVolume int rounded; int m_mode; bool paintShadow, paintDigits, MuteIconFrame; + /* volume adjustment variables */ + t_channel_id channel_id; + int apid; public: CVolume(); @@ -60,7 +63,10 @@ class CVolume void setVolume(const neutrino_msg_t key, const bool bDoPaint = true, bool nowait = false); int getStartPosTop(){ return sy; } int getEndPosRight(){ return sw; } + + void SetCurrentPid(int pid) { apid = pid; } + void SetCurrentChannel(t_channel_id id) { channel_id = id; } + bool changeNotify(const neutrino_locale_t OptionName, void *); }; - #endif // __CVOLUME__ From b8f78e9c5d64b0a71d44a2333b9e676a08cc0ad1 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Thu, 16 Aug 2012 15:55:59 +0400 Subject: [PATCH 213/317] gui/audio_select.cpp: add PID volume adjusting --- src/gui/audio_select.cpp | 69 ++++++++++++++++++++++++---------------- 1 file changed, 41 insertions(+), 28 deletions(-) diff --git a/src/gui/audio_select.cpp b/src/gui/audio_select.cpp index e75e74742..ab66db7b6 100644 --- a/src/gui/audio_select.cpp +++ b/src/gui/audio_select.cpp @@ -40,6 +40,8 @@ #include #include #include +#include +#include extern CRemoteControl * g_RemoteControl; /* neutrino.cpp */ extern CAudioSetupNotifier * audioSetupNotifier; @@ -83,7 +85,7 @@ int CAudioSelectMenuHandler::exec(CMenuTarget* parent, const std::string &action return menu_return::RETURN_EXIT; } - if (parent) + if (parent) parent->hide(); return doMenu (); @@ -94,7 +96,7 @@ int CAudioSelectMenuHandler::doMenu () CMenuWidget AudioSelector(LOCALE_AUDIOSELECTMENUE_HEAD, NEUTRINO_ICON_AUDIO, width); CSubtitleChangeExec SubtitleChanger; - + //show cancel button if configured in usermenu settings if (g_settings.personalize[SNeutrinoSettings::P_UMENU_SHOW_CANCEL]) AudioSelector.addIntroItems(NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, CMenuWidget::BTN_TYPE_CANCEL); @@ -103,34 +105,31 @@ int CAudioSelectMenuHandler::doMenu () unsigned int shortcut_num = 1; + uint p_count = g_RemoteControl->current_PIDs.APIDs.size(); // -- setup menue due to Audio PIDs - if (g_RemoteControl->current_PIDs.APIDs.size() > 1) + for( uint i=0; i < p_count; i++ ) { - uint p_count = g_RemoteControl->current_PIDs.APIDs.size(); - CMenuForwarderNonLocalized* fw[p_count]; - - for( uint i=0; i < p_count; i++ ) - { - char apid[5]; - sprintf(apid, "%d", i); - fw[i] = new CMenuForwarderNonLocalized(g_RemoteControl->current_PIDs.APIDs[i].desc, true, NULL, this, apid, CRCInput::convertDigitToKey(i + 1)); - fw[i]->setItemButton(NEUTRINO_ICON_BUTTON_OKAY, true); - AudioSelector.addItem(fw[i], (i == g_RemoteControl->current_PIDs.PIDs.selected_apid)); - shortcut_num = i+1; - } - AudioSelector.addItem(GenericMenuSeparatorLine); + char apid[5]; + sprintf(apid, "%d", i); + CMenuForwarderNonLocalized *fw = new CMenuForwarderNonLocalized(g_RemoteControl->current_PIDs.APIDs[i].desc, + true, NULL, this, apid, CRCInput::convertDigitToKey(i + 1)); + fw->setItemButton(NEUTRINO_ICON_BUTTON_OKAY, true); + AudioSelector.addItem(fw, (i == g_RemoteControl->current_PIDs.PIDs.selected_apid)); + shortcut_num = i+1; } - + if (p_count) + AudioSelector.addItem(GenericMenuSeparatorLine); + // -- setup menue for to Dual Channel Stereo CMenuOptionChooser* oj = new CMenuOptionChooser(LOCALE_AUDIOMENU_ANALOG_MODE, - &g_settings.audio_AnalogMode, - AUDIOMENU_ANALOGOUT_OPTIONS, AUDIOMENU_ANALOGOUT_OPTION_COUNT, + &g_settings.audio_AnalogMode, + AUDIOMENU_ANALOGOUT_OPTIONS, AUDIOMENU_ANALOGOUT_OPTION_COUNT, true, audioSetupNotifier, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED); AudioSelector.addItem( oj ); oj = new CMenuOptionChooser(LOCALE_AUDIOMENU_ANALOG_OUT, &g_settings.analog_out, - OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, + OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, audioSetupNotifier, CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN); AudioSelector.addItem( oj ); @@ -140,15 +139,15 @@ int CAudioSelectMenuHandler::doMenu () CZapitChannel * cc = channelList->getChannel(curnum); bool sep_added = false; - if(cc) + if(cc) { - for (int i = 0 ; i < (int)cc->getSubtitleCount() ; ++i) + for (int i = 0 ; i < (int)cc->getSubtitleCount() ; ++i) { CZapitAbsSub* s = cc->getChannelSub(i); if (s->thisSubType == CZapitAbsSub::DVB) { CZapitDVBSub* sd = reinterpret_cast(s); printf("[neutrino] adding DVB subtitle %s pid %x\n", sd->ISO639_language_code.c_str(), sd->pId); - if(!sep_added) + if(!sep_added) { sep_added = true; AudioSelector.addItem(new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_SUBTITLES_HEAD)); @@ -160,11 +159,11 @@ int CAudioSelectMenuHandler::doMenu () AudioSelector.addItem(new CMenuForwarderNonLocalized(item /*sd->ISO639_language_code.c_str()*/, sd->pId != dvbsub_getpid(), NULL, &SubtitleChanger, spid, CRCInput::convertDigitToKey(++shortcut_num))); } - if (s->thisSubType == CZapitAbsSub::TTX) + if (s->thisSubType == CZapitAbsSub::TTX) { CZapitTTXSub* sd = reinterpret_cast(s); printf("[neutrino] adding TTX subtitle %s pid %x mag %X page %x\n", sd->ISO639_language_code.c_str(), sd->pId, sd->teletext_magazine_number, sd->teletext_page_number); - if(!sep_added) + if(!sep_added) { sep_added = true; AudioSelector.addItem(new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_SUBTITLES_HEAD)); @@ -172,17 +171,31 @@ int CAudioSelectMenuHandler::doMenu () char spid[64]; int page = ((sd->teletext_magazine_number & 0xFF) << 8) | sd->teletext_page_number; int pid = sd->pId; - snprintf(spid,sizeof(spid), "TTX:%d:%03X:%s", sd->pId, page, sd->ISO639_language_code.c_str()); + snprintf(spid,sizeof(spid), "TTX:%d:%03X:%s", sd->pId, page, sd->ISO639_language_code.c_str()); char item[64]; snprintf(item,sizeof(item), "TTX: %s (pid %x page %03X)", sd->ISO639_language_code.c_str(), sd->pId, page); AudioSelector.addItem(new CMenuForwarderNonLocalized(item /*sd->ISO639_language_code.c_str()*/, !tuxtx_subtitle_running(&pid, &page, NULL), NULL, &SubtitleChanger, spid, CRCInput::convertDigitToKey(++shortcut_num))); } } - - if(sep_added) + + if(sep_added) AudioSelector.addItem(new CMenuForwarder(LOCALE_SUBTITLES_STOP, true, NULL, &SubtitleChanger, "off", CRCInput::RC_stop)); } + AudioSelector.addItem(new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_AUDIOMENU_VOLUME_ADJUST)); + + /* setting volume percent to zapit with channel_id/apid = 0 means current channel and pid */ + CVolume::getInstance()->SetCurrentChannel(0); + CVolume::getInstance()->SetCurrentPid(0); + int percent[p_count]; + for (uint i=0; i < p_count; i++) { + percent[i] = CZapit::getInstance()->GetPidVolume(0, g_RemoteControl->current_PIDs.APIDs[i].pid); + AudioSelector.addItem(new CMenuOptionNumberChooser(NONEXISTANT_LOCALE, &percent[i], + i == g_RemoteControl->current_PIDs.PIDs.selected_apid, + 0, 999, CVolume::getInstance(), 0, 0, NONEXISTANT_LOCALE, + g_RemoteControl->current_PIDs.APIDs[i].desc)); + } + return AudioSelector.exec(NULL, ""); } From e621f644f811d8411d4a708ed1f1fece366e2314 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Thu, 16 Aug 2012 15:56:17 +0400 Subject: [PATCH 214/317] gui/movieplayer.cpp: add PID volume adjusting --- src/gui/movieplayer.cpp | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/gui/movieplayer.cpp b/src/gui/movieplayer.cpp index 373e2e031..a542c066a 100644 --- a/src/gui/movieplayer.cpp +++ b/src/gui/movieplayer.cpp @@ -39,6 +39,7 @@ #include #include #include +#include #include #include @@ -422,8 +423,11 @@ void CMoviePlayerGui::PlayFile(void) printf("IS FILE PLAYER: %s\n", is_file_player ? "true": "false" ); - if(p_movie_info != NULL) + if(p_movie_info != NULL) { duration = p_movie_info->length * 60 * 1000; + int percent = CZapit::getInstance()->GetPidVolume(p_movie_info->epgId, currentapid, currentac3 == 1); + CZapit::getInstance()->SetVolumePercent(percent); + } file_prozent = 0; if(!playback->Start((char *) full_name.c_str(), vpid, vtype, currentapid, currentac3, duration)) { @@ -787,6 +791,21 @@ void CMoviePlayerGui::selectAudioPid(bool file_player) APIDSelector.addItem(item, defpid); } + if (p_movie_info) { + APIDSelector.addItem(new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_AUDIOMENU_VOLUME_ADJUST)); + + CVolume::getInstance()->SetCurrentChannel(p_movie_info->epgId); + CVolume::getInstance()->SetCurrentPid(currentapid); + int percent[numpida]; + for (uint i=0; i < numpida; i++) { + percent[i] = CZapit::getInstance()->GetPidVolume(p_movie_info->epgId, apids[i], ac3flags[i]); + APIDSelector.addItem(new CMenuOptionNumberChooser(NONEXISTANT_LOCALE, &percent[i], + currentapid == apids[i], + 0, 999, CVolume::getInstance(), 0, 0, NONEXISTANT_LOCALE, + g_RemoteControl->current_PIDs.APIDs[i].desc)); + } + } + APIDSelector.exec(NULL, ""); delete selector; printf("CMoviePlayerGui::selectAudioPid: selected %d (%x) current %x\n", select, (select >= 0) ? apids[select] : -1, currentapid); From c8c932bdc9bc6efeb847a257c2e0cc6edb84d0e2 Mon Sep 17 00:00:00 2001 From: micha-bbg Date: Fri, 17 Aug 2012 00:22:10 +0200 Subject: [PATCH 215/317] * Update deutsch.locale --- data/locale/deutsch.locale | 1 + 1 file changed, 1 insertion(+) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index d09ead308..9fe90755b 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -125,6 +125,7 @@ audiomenu.pref_subs Sprache audiomenu.pref_subs_head Untertitelwahl audiomenu.spdif_dd Dolby Digital über S/PDIF audiomenu.stereo stereo +audiomenu.volume_adjust Lautstärke ändern, in % audiomenu.volume_step Lautstärke Schrittweite audioplayer.add Hinzufügen audioplayer.add_ic Icecast From c93b3cb4897cb200a160680516b712f94262c197 Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Sat, 18 Aug 2012 15:26:07 +0200 Subject: [PATCH 216/317] - yweb: fix border-radius for old browsers --- src/nhttpd/web/Y_Boxcontrol_Bouquets.yhtm | 2 +- src/nhttpd/web/Y_Main.css | 70 +++++++++++++++++++++-- src/nhttpd/web/Y_Version.txt | 4 +- 3 files changed, 69 insertions(+), 7 deletions(-) diff --git a/src/nhttpd/web/Y_Boxcontrol_Bouquets.yhtm b/src/nhttpd/web/Y_Boxcontrol_Bouquets.yhtm index 9ef89d701..d2ebb7421 100644 --- a/src/nhttpd/web/Y_Boxcontrol_Bouquets.yhtm +++ b/src/nhttpd/web/Y_Boxcontrol_Bouquets.yhtm @@ -11,7 +11,7 @@ diff --git a/src/nhttpd/web/Y_Main.css b/src/nhttpd/web/Y_Main.css index 3fb27ca2d..7f48c980d 100644 --- a/src/nhttpd/web/Y_Main.css +++ b/src/nhttpd/web/Y_Main.css @@ -57,6 +57,9 @@ button,input[type="button"],input[type="submit"]/*,input[type="file"],input[type border: 1px solid #888888; background-color: transparent; border-radius: 3px; + + -webkit-border-radius: 3px; + -moz-border-radius: 3px; } button:hover,input[type="button"]:hover,input[type="submit"]:hover/*,input[type="file"]:hover*/ { position:relative; @@ -114,6 +117,9 @@ tr { font-size: 100.01%; border: 1px solid #a0a0a0; border-radius: 5px; + + -webkit-border-radius: 5px; + -moz-border-radius: 5px; } .y_menu_prim_box_head { margin: 0; @@ -121,6 +127,11 @@ tr { text-align: center; background: #ffffff; border-radius: 4px 4px 0 0; + + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; } .y_menu_prim_box_head_h2 { margin: 0; @@ -131,6 +142,11 @@ tr { padding: 0 20px 5px; background-color: #ffffff; border-radius: 0 0 4px 4px; + + -webkit-border-bottom-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -moz-border-radius-bottomright: 4px; + -moz-border-radius-bottomleft: 4px; } .y_menu_item { margin: 0; @@ -173,12 +189,20 @@ tr { font-size: 100.01%; border: 1px solid #a0a0a0; border-radius: 5px; + + -webkit-border-radius: 5px; + -moz-border-radius: 5px; } .y_menu_sec_box_head { margin: 0; padding: 0; background: #ff6600; border-radius: 4px 4px 0 0; + + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; } .y_menu_sec_box_head h2 { margin: 0; @@ -194,6 +218,11 @@ tr { padding: 5px 0 10px; background-color: #ffffff; border-radius: 0 0 4px 4px; + + -webkit-border-bottom-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -moz-border-radius-bottomright: 4px; + -moz-border-radius-bottomleft: 4px; } .y_menu_sec { display: block; @@ -254,6 +283,9 @@ tr { font-size: 100.01%; border: 1px solid #a0a0a0; border-radius: 5px; + + -webkit-border-radius: 5px; + -moz-border-radius: 5px; } .work_box_head { margin: 0; @@ -261,6 +293,11 @@ tr { text-align: center; background-color: #2188e0; border-radius: 4px 4px 0 0; + + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; } .work_box_head h2,.work_box_head_h2 { margin: 0; @@ -276,6 +313,11 @@ tr { padding: 5px 30px 10px 30px; background-color: #ffffff; border-radius: 0 0 4px 4px; + + -webkit-border-bottom-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -moz-border-radius-bottomright: 4px; + -moz-border-radius-bottomleft: 4px; } .work_box_help { float:right; @@ -336,6 +378,9 @@ tr { z-index : 500; border: 1px solid #a0a0a0; border-radius: 5px; + + -webkit-border-radius: 5px; + -moz-border-radius: 5px; } .y_wait_box_visible { margin: 0; @@ -347,12 +392,20 @@ tr { z-index : 500; border: 1px solid #a0a0a0; border-radius: 5px; + + -webkit-border-radius: 5px; + -moz-border-radius: 5px; } .y_wait_box_head { margin: 0; padding: 0; background: #ff6600; border-radius: 4px 4px 0 0; + + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; } .y_wait_box_head h2 { margin: 0; @@ -367,6 +420,11 @@ tr { padding: 5px 15px 20px; background-color: #ffffff; border-radius: 0 0 4px 4px; + + -webkit-border-bottom-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -moz-border-radius-bottomright: 4px; + -moz-border-radius-bottomleft: 4px; } .y_wait_box_main { color: #666666; @@ -540,9 +598,11 @@ tr { height: 100%; font-size:8pt; z-index:10; - -moz-opacity: 0.2; opacity:.20; - filter: alpha(opacity=20); + + -webkit-opacity: 0.2; + -moz-opacity: 0.2; + filter: alpha(opacity=20); } .ep_bouquet_zap { border-right : #BBBBBB solid 1px; @@ -554,9 +614,11 @@ tr { height: 100%; font-size:8pt; z-index:10; - -moz-opacity: 0.2; opacity:.20; - filter: alpha(opacity=20); + + -webkit-opacity: 0.2; + -moz-opacity: 0.2; + filter: alpha(opacity=20); } .ep_bouquet_item:hover { background-color : #DDDDDD; diff --git a/src/nhttpd/web/Y_Version.txt b/src/nhttpd/web/Y_Version.txt index c5fea8aff..770a0d8f8 100644 --- a/src/nhttpd/web/Y_Version.txt +++ b/src/nhttpd/web/Y_Version.txt @@ -1,4 +1,4 @@ -version=2.8.0.29 -date=12.08.2012 +version=2.8.0.30 +date=18.08.2012 type=Release info=Port Coolstream From ec7ed403a1e8aadebf97521c3e993c69fdcf00c1 Mon Sep 17 00:00:00 2001 From: satbaby Date: Sun, 19 Aug 2012 19:54:55 +0200 Subject: [PATCH 217/317] channellist.cpp: -fix clear background --- src/gui/channellist.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/channellist.cpp b/src/gui/channellist.cpp index 06f6226e1..7a4d42231 100644 --- a/src/gui/channellist.cpp +++ b/src/gui/channellist.cpp @@ -1574,7 +1574,7 @@ void CChannelList::paintItem2DetailsLine (int pos, int /*ch_index*/) fb_pixel_t col1 = COL_MENUCONTENT_PLUS_6; // Clear - frameBuffer->paintBackgroundBoxRel(xpos,y, ConnectLineBox_Width, height+info_height); + frameBuffer->paintBackgroundBoxRel(xpos,y, ConnectLineBox_Width, height+info_height + 1); // paint Line if detail info (and not valid list pos) if (pos >= 0) { //pos >= 0 && chanlist[ch_index]->currentEvent.description != "") { From f3ac0b9fd92c6c06c3a33b4451e877bbc537aeed Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Sun, 29 Jul 2012 22:31:24 +0200 Subject: [PATCH 218/317] *CVolume: move static g_volscale to volscale - Is only needed in this class, not global. - move scope of variable x_corr. (style) scope of the variable x_corr can be limited - move declaration of framebuffer into header file --- src/driver/volume.cpp | 22 +++++++++++----------- src/driver/volume.h | 6 +++++- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/src/driver/volume.cpp b/src/driver/volume.cpp index c0049d514..35f75ea4e 100644 --- a/src/driver/volume.cpp +++ b/src/driver/volume.cpp @@ -36,7 +36,6 @@ #include #include #include -#include #include #include @@ -44,14 +43,13 @@ #include #endif -CFrameBuffer * frameBuffer; extern CRemoteControl * g_RemoteControl; extern cAudio * audioDecoder; -static CProgressBar *g_volscale = NULL; CVolume::CVolume() { frameBuffer = CFrameBuffer::getInstance(); + volscale = NULL; #if 0 g_Zapit = new CZapitClient; g_RCInput = new CRCInput; @@ -71,8 +69,7 @@ CVolume::CVolume() CVolume::~CVolume() { - if (g_volscale) - delete g_volscale; + delete volscale; } void CVolume::Init() @@ -82,7 +79,7 @@ void CVolume::Init() int faktor_h = 18; // scale * 10 int clock_height= 0; int clock_width = 0; - int x_corr = 0; + pB = 2; // progress border spacer = 8; @@ -108,8 +105,9 @@ void CVolume::Init() progress_h = std::max(icon_h, digit_h) - 2*pB; vbar_w += digit_w; } - delete g_volscale; - g_volscale = new CProgressBar(true, progress_w, progress_h, 50, 100, 80, true); + if (volscale) + delete volscale; + volscale = new CProgressBar(true, progress_w, progress_h, 50, 100, 80, true); // mute icon mute_icon_dx = 0; @@ -143,7 +141,8 @@ void CVolume::Init() //printf("\n##### [volume.cpp Zeile %d] mute_ax %d, mute_dx %d\n \n", __LINE__, mute_ax, mute_dx); switch (g_settings.volume_pos) { - case 0:// upper right + case 0:{// upper right + int x_corr = 0; if (( neutrino->getMode() != CNeutrinoApp::mode_scart ) && ( neutrino->getMode() != CNeutrinoApp::mode_audio) && ( neutrino->getMode() != CNeutrinoApp::mode_pic)) { if ((neutrino->isMuted()) && (!g_settings.mode_clock)) x_corr = mute_dx + spacer; @@ -152,6 +151,7 @@ void CVolume::Init() } x = sw - vbar_w - x_corr; break; + } case 1:// upper left break; case 2:// bottom left @@ -251,7 +251,7 @@ void CVolume::setVolume(const neutrino_msg_t key, const bool bDoPaint, bool nowa // volume icon frameBuffer->paintIcon(NEUTRINO_ICON_VOLUME, icon_x, icon_y, 0, colBar); - g_volscale->reset(); + volscale->reset(); refreshVolumebar(vol); } @@ -357,7 +357,7 @@ void CVolume::setVolume(const neutrino_msg_t key, const bool bDoPaint, bool nowa void CVolume::refreshVolumebar(int current_volume) { // progressbar - g_volscale->paintProgressBar2(progress_x, progress_y, current_volume); + volscale->paintProgressBar2(progress_x, progress_y, current_volume); if (paintDigits) { // shadow for erase digits if (paintShadow) diff --git a/src/driver/volume.h b/src/driver/volume.h index fe10a2ea7..1acb333b1 100644 --- a/src/driver/volume.h +++ b/src/driver/volume.h @@ -28,11 +28,15 @@ #ifndef __CVOLUME__ #define __CVOLUME__ +#include + #define ROUNDED g_settings.rounded_corners ? vbar_h/2 : 0 class CVolume : public CChangeObserver { private: + CFrameBuffer * frameBuffer; + CProgressBar *volscale; void refreshVolumebar(int current_volume); int x, y, sy, sw, sh; @@ -55,7 +59,7 @@ class CVolume : public CChangeObserver CVolume(); ~CVolume(); static CVolume* getInstance(); - + int spacer, mute_dx; void Init(); void AudioMute(int newValue, bool isEvent= false); From 260af3fb6535c3530d2ac11d319b736f48841299 Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Sun, 29 Jul 2012 22:56:32 +0200 Subject: [PATCH 219/317] *COsdSetup: change order of includes - typo fix in member name showOsdScreenshottSetup->showOsdScreenShotSetup --- src/gui/osd_setup.cpp | 13 ++++++------- src/gui/osd_setup.h | 2 +- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/gui/osd_setup.cpp b/src/gui/osd_setup.cpp index f00c98c38..688c37c87 100644 --- a/src/gui/osd_setup.cpp +++ b/src/gui/osd_setup.cpp @@ -33,6 +33,10 @@ #include #endif +#include +#include +#include +#include #include "osd_setup.h" #include "themes.h" @@ -40,11 +44,6 @@ #include "osdlang_setup.h" #include "filebrowser.h" -#include -#include -#include -#include - #include #include #include @@ -434,7 +433,7 @@ int COsdSetup::showOsdSetup() //screenshot CMenuWidget osd_menu_screenshot(LOCALE_MAINMENU_SETTINGS, NEUTRINO_ICON_SETTINGS, width, MN_WIDGET_ID_OSDSETUP_SCREENSHOT); - showOsdScreenshottSetup(&osd_menu_screenshot); + showOsdScreenShotSetup(&osd_menu_screenshot); mf = new CMenuForwarder(LOCALE_SCREENSHOT_MENU, true, NULL, &osd_menu_screenshot, NULL, CRCInput::RC_3); mf->setHint("", LOCALE_MENU_HINT_SCREENSHOT_SETUP); osd_menu->addItem(mf); @@ -923,7 +922,7 @@ const CMenuOptionChooser::keyval SCREENSHOT_OPTIONS[SCREENSHOT_OPTION_COUNT] = { 1, LOCALE_SCREENSHOT_OSD } }; -void COsdSetup::showOsdScreenshottSetup(CMenuWidget *menu_screenshot) +void COsdSetup::showOsdScreenShotSetup(CMenuWidget *menu_screenshot) { menu_screenshot->addIntroItems(LOCALE_SCREENSHOT_MENU); if((uint)g_settings.key_screenshot == CRCInput::RC_nokey) diff --git a/src/gui/osd_setup.h b/src/gui/osd_setup.h index 7690f41c9..65429d9dc 100644 --- a/src/gui/osd_setup.h +++ b/src/gui/osd_setup.h @@ -56,7 +56,7 @@ class COsdSetup : public CMenuTarget, public CChangeObserver void showOsdTimeoutSetup(CMenuWidget *menu_timeout); void showOsdInfobarSetup(CMenuWidget *menu_infobar); void showOsdChanlistSetup(CMenuWidget *menu_chanlist); - void showOsdScreenshottSetup(CMenuWidget *menu_screenshot); + void showOsdScreenShotSetup(CMenuWidget *menu_screenshot); void AddFontSettingItem(CMenuWidget &font_Settings, const SNeutrinoSettings::FONT_TYPES number_of_fontsize_entry); From d1f22aa20c7a71752f1bc043cca2e25afa304208 Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Wed, 15 Aug 2012 23:01:34 +0200 Subject: [PATCH 220/317] *includes: add global.h --- src/gui/moviebrowser.cpp | 2 ++ src/gui/movieinfo.cpp | 2 ++ src/gui/widget/listframe.cpp | 2 ++ src/gui/widget/listframe.h | 4 ++-- src/gui/widget/msgbox.cpp | 2 ++ src/gui/widget/textbox.cpp | 2 ++ src/gui/widget/textbox.h | 3 ++- 7 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/gui/moviebrowser.cpp b/src/gui/moviebrowser.cpp index 219d90c2f..243a870e2 100644 --- a/src/gui/moviebrowser.cpp +++ b/src/gui/moviebrowser.cpp @@ -47,6 +47,8 @@ #include #endif +#include + #include #include #include "moviebrowser.h" diff --git a/src/gui/movieinfo.cpp b/src/gui/movieinfo.cpp index 373bf5da4..004a573bc 100644 --- a/src/gui/movieinfo.cpp +++ b/src/gui/movieinfo.cpp @@ -46,6 +46,8 @@ #include #endif +#include + #include #include #include diff --git a/src/gui/widget/listframe.cpp b/src/gui/widget/listframe.cpp index a124d993a..b5c79b107 100644 --- a/src/gui/widget/listframe.cpp +++ b/src/gui/widget/listframe.cpp @@ -49,6 +49,8 @@ #include #endif +#include + #include "stdlib.h" #include "listframe.h" #include diff --git a/src/gui/widget/listframe.h b/src/gui/widget/listframe.h index bbabc1b59..0f5a40195 100644 --- a/src/gui/widget/listframe.h +++ b/src/gui/widget/listframe.h @@ -44,8 +44,8 @@ Nov 2005 Günther initial implementation ****************************************************************************/ -#if !defined(LISTFRAME_H_) -#define LISTFRAME_H_ +#ifndef __LISTFRAME_H__ +#define __LISTFRAME_H__ #ifdef HAVE_CONFIG_H #include diff --git a/src/gui/widget/msgbox.cpp b/src/gui/widget/msgbox.cpp index 704d7a77e..032b4877e 100644 --- a/src/gui/widget/msgbox.cpp +++ b/src/gui/widget/msgbox.cpp @@ -48,6 +48,8 @@ #include #endif +#include + #include "msgbox.h" #include diff --git a/src/gui/widget/textbox.cpp b/src/gui/widget/textbox.cpp index bba0b0d63..938633d2d 100644 --- a/src/gui/widget/textbox.cpp +++ b/src/gui/widget/textbox.cpp @@ -55,6 +55,8 @@ #include #endif +#include + #include "textbox.h" #include diff --git a/src/gui/widget/textbox.h b/src/gui/widget/textbox.h index b639b75b9..09338c6d2 100644 --- a/src/gui/widget/textbox.h +++ b/src/gui/widget/textbox.h @@ -59,8 +59,9 @@ #include #include -#include #include +#include +#include #define TRACE printf #define TRACE_1 printf From 39306221b1d75acb6e9d8bb506b3d5e433913672 Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Thu, 16 Aug 2012 17:38:43 +0200 Subject: [PATCH 221/317] *CTextbox: Required functions for CCompoments - Add member to disable background box - Add setter for text an background color - Add setTextBorderWidth() & setTextFont() - Calculate y-position of text in refreshText() --- src/gui/widget/textbox.cpp | 72 +++++++++++++++++++++++--------------- src/gui/widget/textbox.h | 13 ++++++- 2 files changed, 55 insertions(+), 30 deletions(-) diff --git a/src/gui/widget/textbox.cpp b/src/gui/widget/textbox.cpp index 938633d2d..3bab0f7ce 100644 --- a/src/gui/widget/textbox.cpp +++ b/src/gui/widget/textbox.cpp @@ -60,7 +60,6 @@ #include "textbox.h" #include -#define TEXT_BORDER_WIDTH 8 #define SCROLL_FRAME_WIDTH 10 #define SCROLL_MARKER_BORDER 2 @@ -165,6 +164,7 @@ void CTextBox::initVar(void) m_nLinesPerPage = 0; m_nCurrentLine = 0; m_nCurrentPage = 0; + text_border_width = 8; m_cFrame.iX = g_settings.screen_StartX + ((g_settings.screen_EndX - g_settings.screen_StartX - MIN_WINDOW_WIDTH) >>1); m_cFrame.iWidth = MIN_WINDOW_WIDTH; @@ -174,16 +174,37 @@ void CTextBox::initVar(void) m_nMaxHeight = MAX_WINDOW_HEIGHT; m_nMaxWidth = MAX_WINDOW_WIDTH; - m_textBackgroundColor = COL_MENUCONTENT_PLUS_0; - + m_textBackgroundColor = COL_MENUCONTENT_PLUS_0; + m_textColor = COL_MENUCONTENT; + m_nPaintBackground = true; + m_nBgRadius = 0; + m_nBgRadiusType = CORNER_ALL; + m_cLineArray.clear(); } +void CTextBox::setTextFont(Font* font_text) +{ + if ((m_pcFontText != font_text) && (font_text != NULL)) { + m_pcFontText = font_text; + m_nFontTextHeight = m_pcFontText->getHeight(); + initFramesRel(); + refreshTextLineArray(); + } +} + +void CTextBox::setTextBorderWidth(int border) +{ + text_border_width = border; + initFramesRel(); + refreshTextLineArray(); +} + void CTextBox::reSizeMainFrameWidth(int textWidth) { //TRACE("[CTextBox]->ReSizeMainFrameWidth: %d, current: %d\r\n",textWidth,m_cFrameTextRel.iWidth); - int iNewWindowWidth = textWidth + m_cFrameScrollRel.iWidth + 2*TEXT_BORDER_WIDTH; + int iNewWindowWidth = textWidth + m_cFrameScrollRel.iWidth + 2*text_border_width; if( iNewWindowWidth > m_nMaxWidth) iNewWindowWidth = m_nMaxWidth; if( iNewWindowWidth < MIN_WINDOW_WIDTH) iNewWindowWidth = MIN_WINDOW_WIDTH; @@ -198,8 +219,7 @@ void CTextBox::reSizeMainFrameHeight(int textHeight) { TRACE("[CTextBox]->ReSizeMainFrameHeight: %d, current: %d\r\n",textHeight,m_cFrameTextRel.iHeight); - int iNewWindowHeight = textHeight - + 2*TEXT_BORDER_WIDTH; + int iNewWindowHeight = textHeight + 2*text_border_width; if( iNewWindowHeight > m_nMaxHeight) iNewWindowHeight = m_nMaxHeight; if( iNewWindowHeight < MIN_WINDOW_HEIGHT) iNewWindowHeight = MIN_WINDOW_HEIGHT; @@ -235,7 +255,7 @@ void CTextBox::initFramesRel(void) m_cFrameTextRel.iWidth = m_cFrame.iWidth - m_cFrameScrollRel.iWidth; - m_nLinesPerPage = std::max(1, (m_cFrameTextRel.iHeight - (2*TEXT_BORDER_WIDTH)) / m_nFontTextHeight); + m_nLinesPerPage = std::max(1, (m_cFrameTextRel.iHeight - (2*text_border_width)) / m_nFontTextHeight); #if 0 TRACE_1("Frames\r\n\tScren:\t%3d,%3d,%3d,%3d\r\n\tMain:\t%3d,%3d,%3d,%3d\r\n\tText:\t%3d,%3d,%3d,%3d \r\n\tScroll:\t%3d,%3d,%3d,%3d \r\n", @@ -280,15 +300,11 @@ void CTextBox::refreshTextLineArray(void) m_nNrOfLines = 0; if( m_nMode & AUTO_WIDTH) - { /* In case of autowidth, we calculate the max allowed width of the textbox */ - lineBreakWidth = MAX_WINDOW_WIDTH - m_cFrameScrollRel.iWidth - 2*TEXT_BORDER_WIDTH; - } + lineBreakWidth = MAX_WINDOW_WIDTH - m_cFrameScrollRel.iWidth - 2*text_border_width; else - { /* If not autowidth, we just take the actuall textframe width */ - lineBreakWidth = m_cFrameTextRel.iWidth - 2*TEXT_BORDER_WIDTH; - } + lineBreakWidth = m_cFrameTextRel.iWidth - 2*text_border_width; if(max_width) lineBreakWidth = max_width; //printf("TextBox: lineBreakWidth %d\n", lineBreakWidth); @@ -299,13 +315,9 @@ void CTextBox::refreshTextLineArray(void) while(loop) { if(m_nMode & NO_AUTO_LINEBREAK) - { pos = m_cText.find_first_of("\n",pos_prev); - } else - { - pos = m_cText.find_first_of("\n-. ",pos_prev); - } + pos = m_cText.find_first_of("\n/-. ",pos_prev); //TRACE_1(" pos: %d pos_prev: %d\r\n",pos,pos_prev); @@ -371,7 +383,7 @@ void CTextBox::refreshTextLineArray(void) reSizeMainFrameHeight(m_nNrOfLines * m_nFontTextHeight); } - m_nLinesPerPage = std::max(1, (m_cFrameTextRel.iHeight - (2*TEXT_BORDER_WIDTH)) / m_nFontTextHeight); + m_nLinesPerPage = std::max(1, (m_cFrameTextRel.iHeight - (2*text_border_width)) / m_nFontTextHeight); m_nNrOfPages = ((m_nNrOfLines-1) / m_nLinesPerPage) + 1; if(m_nCurrentPage >= m_nNrOfPages) @@ -429,26 +441,28 @@ void CTextBox::refreshText(void) if( frameBuffer == NULL) return; //TRACE(" CTextBox::refreshText: %d,%s\r\n",m_nCurrentLine,m_cLineArray[m_nCurrentLine].c_str()); //Paint Text Background - frameBuffer->paintBoxRel(m_cFrameTextRel.iX+m_cFrame.iX, m_cFrameTextRel.iY+m_cFrame.iY, - m_cFrameTextRel.iWidth, m_cFrameTextRel.iHeight, m_textBackgroundColor); - + if (m_nPaintBackground) + frameBuffer->paintBoxRel(m_cFrameTextRel.iX+m_cFrame.iX, /*m_cFrameTextRel.iY+*/m_cFrame.iY, + m_cFrameTextRel.iWidth, m_cFrameTextRel.iHeight, m_textBackgroundColor, m_nBgRadius, m_nBgRadiusType); + if( m_nNrOfLines <= 0) return; - int y = m_cFrameTextRel.iY + TEXT_BORDER_WIDTH; + int y = m_cFrameTextRel.iY + text_border_width; int i; int x_center = 0; +// y += m_nFontTextHeight + ((m_cFrameTextRel.iHeight - m_nFontTextHeight * std::min(m_nLinesPerPage, m_nNrOfLines)) >> 1) - text_border_width; + y += m_nFontTextHeight + ((m_cFrameTextRel.iHeight - m_nFontTextHeight * m_nLinesPerPage) >> 1) - text_border_width; for(i = m_nCurrentLine; i < m_nNrOfLines && i < m_nCurrentLine + m_nLinesPerPage; i++) { - y += m_nFontTextHeight; - + + //calculate centered xpos if( m_nMode & CENTER ) - { x_center = (m_cFrameTextRel.iWidth - m_pcFontText->getRenderWidth(m_cLineArray[i], true))>>1; - } - m_pcFontText->RenderString(m_cFrameTextRel.iX + TEXT_BORDER_WIDTH + x_center+m_cFrame.iX, + m_pcFontText->RenderString(m_cFrameTextRel.iX + text_border_width + x_center+m_cFrame.iX, y+m_cFrame.iY, m_cFrameTextRel.iWidth, m_cLineArray[i].c_str(), - COL_MENUCONTENT, 0, true); // UTF-8 + m_textColor, 0, true); // UTF-8 + y += m_nFontTextHeight; } } diff --git a/src/gui/widget/textbox.h b/src/gui/widget/textbox.h index 09338c6d2..a308d05f9 100644 --- a/src/gui/widget/textbox.h +++ b/src/gui/widget/textbox.h @@ -118,12 +118,18 @@ class CTextBox int m_nCurrentLine; int m_nCurrentPage; + int m_nBgRadius; + int m_nBgRadiusType; + bool m_nPaintBackground; + Font* m_pcFontText; int m_nFontTextHeight; CFBWindow::color_t m_textBackgroundColor; + fb_pixel_t m_textColor; CFrameBuffer * frameBuffer; int max_width; + int text_border_width; public: /* Constructor */ CTextBox(); @@ -139,8 +145,13 @@ class CTextBox /* Functions */ void refresh(void); void scrollPageDown(const int pages); - void scrollPageUp(const int pages); + void scrollPageUp(const int pages); + void enableBackgroundPaint(bool mode = true){m_nPaintBackground = mode;}; bool setText(const std::string* newText, int _max_width = 0); + void setTextColor(fb_pixel_t color_text){ m_textColor = color_text;}; + void setBackGroundRadius(const int radius, const int type){m_nBgRadius = radius; m_nBgRadiusType = type;}; + void setTextBorderWidth(int border); + void setTextFont(Font* font_text); inline bool isPainted(void) {if( frameBuffer == NULL) return (false); else return (true);}; inline CBox getWindowsPos(void) {return(m_cFrame);}; From 9a889e1496fef789021b5443476c78d4d885cefc Mon Sep 17 00:00:00 2001 From: satbaby Date: Tue, 21 Aug 2012 14:06:18 +0200 Subject: [PATCH 222/317] tuxtxt.h: remove unnecessary header --- lib/libtuxtxt/tuxtxt.h | 4 ---- 1 file changed, 4 deletions(-) diff --git a/lib/libtuxtxt/tuxtxt.h b/lib/libtuxtxt/tuxtxt.h index a02125b81..fb639bb7d 100644 --- a/lib/libtuxtxt/tuxtxt.h +++ b/lib/libtuxtxt/tuxtxt.h @@ -32,10 +32,6 @@ #include -#ifndef NEW_CST_KERNEL -#include -#endif - #include #include From abed344501d93bc1437ec8bcb94f154fe2bdfbaf Mon Sep 17 00:00:00 2001 From: satbaby Date: Wed, 22 Aug 2012 09:37:46 +0200 Subject: [PATCH 223/317] plugins.cpp: use popen2 with vfork for script plugins --- src/gui/plugins.cpp | 53 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 52 insertions(+), 1 deletion(-) diff --git a/src/gui/plugins.cpp b/src/gui/plugins.cpp index de8b7fbb0..d04e0b9a5 100644 --- a/src/gui/plugins.cpp +++ b/src/gui/plugins.cpp @@ -47,6 +47,8 @@ #include #include #include +#include +#include #include #include @@ -313,6 +315,53 @@ void CPlugins::startPlugin(const char * const name) else printf("[CPlugins] could not find %s\n", name); +} + #include + +FILE* popen2( pid_t& pid, const char *cmdstring, const char *type) { + int pfd[2] ={-1,-1}; + FILE *fp = NULL; + + /* only allow "r" or "w" */ + if ((type[0] != 'r' && type[0] != 'w') || type[1] != 0) { + errno = EINVAL; /* required by POSIX */ + return(NULL); + } + + if (pipe(pfd) < 0) + return(NULL); /* errno set by pipe() */ + + if ((pid = vfork()) < 0) { + return(NULL); /* errno set by vfork() */ + } else if (pid == 0) { /* child */ + if (*type == 'r') { + close(pfd[0]); + if (pfd[1] != STDOUT_FILENO) { + dup2(pfd[1], STDOUT_FILENO); + close(pfd[1]); + } + } else { + close(pfd[1]); + if (pfd[0] != STDIN_FILENO) { + dup2(pfd[0], STDIN_FILENO); + close(pfd[0]); + } + } + execl("/bin/sh", "sh", "-c", cmdstring, (char *)0); + exit(0); + } + + /* parent continues... */ + if (*type == 'r') { + close(pfd[1]); + if ((fp = fdopen(pfd[0], type)) == NULL) + return(NULL); + } else { + close(pfd[0]); + if ((fp = fdopen(pfd[1], type)) == NULL) + return(NULL); + } + return(fp); } void CPlugins::startScriptPlugin(int number) @@ -325,7 +374,8 @@ void CPlugins::startScriptPlugin(int number) script, plugin_list[number].cfgfile.c_str()); return; } - FILE *f = popen(script,"r"); + pid_t pid = 0; + FILE *f = popen2(pid,script,"r"); if (f != NULL) { char *output=NULL; @@ -335,6 +385,7 @@ void CPlugins::startScriptPlugin(int number) { scriptOutput += output; } + kill(pid, SIGINT ); pclose(f); if(output) free(output); From a6d0331ed9d98aa6368bdd0dfacdd31e776acdf6 Mon Sep 17 00:00:00 2001 From: satbaby Date: Wed, 22 Aug 2012 09:39:08 +0200 Subject: [PATCH 224/317] plugins.cpp: use popen2 with vfork for script plugins --- src/gui/plugins.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/plugins.cpp b/src/gui/plugins.cpp index d04e0b9a5..0cfb0287b 100644 --- a/src/gui/plugins.cpp +++ b/src/gui/plugins.cpp @@ -49,6 +49,7 @@ #include #include #include +#include #include #include @@ -316,7 +317,6 @@ void CPlugins::startPlugin(const char * const name) printf("[CPlugins] could not find %s\n", name); } - #include FILE* popen2( pid_t& pid, const char *cmdstring, const char *type) { int pfd[2] ={-1,-1}; From d284f5fce5713d2abd8fca0cdb40a75979894b03 Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Sat, 25 Aug 2012 15:00:32 +0200 Subject: [PATCH 225/317] - locales: very tiny typo --- data/locale/deutsch.locale | 2 +- data/locale/english.locale | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index 9fe90755b..8330c1220 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -867,7 +867,7 @@ menu.hint_misc_zapit Behandlung der Start-TV/Start-Radio Kanäle menu.hint_movie Wiedergabe von Filmen menu.hint_net_broadcast Hier können Sie die Broadcast-Adresse ändern,\nwenn Sie unsicher sind, verwenden Sie zuletzt .255 menu.hint_net_dhcp Verwenden Sie einen DHCP-Server für die automatische\nKonfiguration können Sie es hier einstellen -menu.hint_net_djmount Mountet UPnP-Geräte als Dateisystem\nunter / media/00upnp +menu.hint_net_djmount Mountet UPnP-Geräte als Dateisystem\nunter /media/00upnp menu.hint_net_ftpd Aktivieren Sie die Dateiübertragung über FTP menu.hint_net_gateway Hier können Sie die Gateway-Adresse des Routers eingeben menu.hint_net_hostname Hier kann man den Hostnamen der Box ändern diff --git a/data/locale/english.locale b/data/locale/english.locale index cf1b82a6b..d774de83a 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -867,7 +867,7 @@ menu.hint_misc_zapit Initial TV/Radio channels menu.hint_movie Play movies menu.hint_net_broadcast Enter broadcast address\nif unsure, use IP address with last .255 menu.hint_net_dhcp Use DHCP server to auto-configure -menu.hint_net_djmount mount uPnp devices as filesystem\nunder /media/00upnp +menu.hint_net_djmount Mount UPnP devices as filesystem\nunder /media/00upnp menu.hint_net_ftpd Enable file transfer using FTP menu.hint_net_gateway Enter gateway/router IP address menu.hint_net_hostname Change your box hostname From fe0f7ad28e4ea464bec079376bfa5cfa4dfa1039 Mon Sep 17 00:00:00 2001 From: swing99 Date: Tue, 28 Aug 2012 17:17:17 +0200 Subject: [PATCH 226/317] - cables.xml: update Kabel Deutschland - Offensive 2012 --- data/cables.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/data/cables.xml b/data/cables.xml index b0b9f8965..619c3279a 100644 --- a/data/cables.xml +++ b/data/cables.xml @@ -1337,6 +1337,7 @@ + From b92660259c59af1daec4ee936fa59750d01fa4ac Mon Sep 17 00:00:00 2001 From: FlatTV Date: Thu, 30 Aug 2012 07:19:52 +0200 Subject: [PATCH 227/317] Add global helpers my_system() and my_popen() --- src/gui/plugins.cpp | 7 +- src/system/Makefile.am | 15 ++-- src/system/configure_network.cpp | 26 ------- src/system/helpers.cpp | 115 +++++++++++++++++++++++++++++++ src/system/helpers.h | 39 +++++++++++ 5 files changed, 169 insertions(+), 33 deletions(-) create mode 100644 src/system/helpers.cpp create mode 100644 src/system/helpers.h diff --git a/src/gui/plugins.cpp b/src/gui/plugins.cpp index 0cfb0287b..8a0e1c7e9 100644 --- a/src/gui/plugins.cpp +++ b/src/gui/plugins.cpp @@ -54,6 +54,8 @@ #include #include +#include + #include #include "plugins.h" @@ -375,7 +377,7 @@ void CPlugins::startScriptPlugin(int number) return; } pid_t pid = 0; - FILE *f = popen2(pid,script,"r"); + FILE *f = my_popen(pid,script,"r"); if (f != NULL) { char *output=NULL; @@ -396,7 +398,6 @@ void CPlugins::startScriptPlugin(int number) } } -int mysystem(const char * cmd,const char * arg1,const char * arg2); void CPlugins::startPlugin(int number,int /*param*/) { // always delete old output @@ -643,7 +644,7 @@ void CPlugins::startPlugin(int number,int /*param*/) g_RCInput->stopInput(); //frameBuffer->setMode(720, 576, 8 * sizeof(fb_pixel_t)); printf("Starting %s\n", plugin_list[number].pluginfile.c_str()); - mysystem(plugin_list[number].pluginfile.c_str(), NULL, NULL); + my_system(plugin_list[number].pluginfile.c_str(), NULL, NULL); //frameBuffer->setMode(720, 576, 8 * sizeof(fb_pixel_t)); frameBuffer->paintBackground(); g_RCInput->restartInput(); diff --git a/src/system/Makefile.am b/src/system/Makefile.am index 32b13667e..1e42f4a63 100644 --- a/src/system/Makefile.am +++ b/src/system/Makefile.am @@ -24,7 +24,14 @@ endif noinst_LIBRARIES = libneutrino_system.a libneutrino_system_a_SOURCES = \ - localize.cpp setting_helpers.cpp debug.cpp \ - ping.c flashtool.cpp httptool.cpp \ - settings.cpp lastchannel.cpp \ - configure_network.cpp fsmounter.cpp + configure_network.cpp \ + debug.cpp \ + flashtool.cpp \ + fsmounter.cpp \ + httptool.cpp \ + lastchannel.cpp \ + localize.cpp \ + helpers.cpp \ + ping.c \ + settings.cpp \ + setting_helpers.cpp diff --git a/src/system/configure_network.cpp b/src/system/configure_network.cpp index 06f144b38..ead2b3227 100644 --- a/src/system/configure_network.cpp +++ b/src/system/configure_network.cpp @@ -216,32 +216,6 @@ void CNetworkConfig::commitConfig(void) } } -int mysystem(const char * cmd, const char * arg1, const char * arg2) -{ - int i; - pid_t pid; - int maxfd = getdtablesize();// sysconf(_SC_OPEN_MAX); - switch (pid = vfork()) - { - case -1: /* can't fork */ - perror("vfork"); - return -1; - - case 0: /* child process */ - for(i = 3; i < maxfd; i++) - close(i); - if(execlp(cmd, cmd, arg1, arg2, NULL)) - { - perror("exec"); - } - exit(0); - default: /* parent returns to calling process */ - break; - } - waitpid(pid, 0, 0); - return 0; -} - void CNetworkConfig::startNetwork(void) { std::string cmd = "/sbin/ifup " + ifname; diff --git a/src/system/helpers.cpp b/src/system/helpers.cpp new file mode 100644 index 000000000..410dd1294 --- /dev/null +++ b/src/system/helpers.cpp @@ -0,0 +1,115 @@ +/* + Neutrino-GUI - DBoxII-Project + + Copyright (C) 2001 Steffen Hehn 'McClean' + Homepage: http://dbox.cyberphoria.org/ + + Kommentar: + + Diese GUI wurde von Grund auf neu programmiert und sollte nun vom + Aufbau und auch den Ausbaumoeglichkeiten gut aussehen. Neutrino basiert + auf der Client-Server Idee, diese GUI ist also von der direkten DBox- + Steuerung getrennt. Diese wird dann von Daemons uebernommen. + + + License: GPL + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include +#include +#include +#include +#include + +#include + +int my_system(const char * cmd, const char * arg1, const char * arg2) +{ + int i; + pid_t pid; + int maxfd = getdtablesize();// sysconf(_SC_OPEN_MAX); + switch (pid = vfork()) + { + case -1: /* can't vfork */ + perror("vfork"); + return -1; + case 0: /* child process */ + for(i = 3; i < maxfd; i++) + close(i); + if(execlp(cmd, cmd, arg1, arg2, NULL)) + { + perror("exec"); + } + exit(0); + default: /* parent returns to calling process */ + break; + } + waitpid(pid, 0, 0); + return 0; +} + +FILE* my_popen( pid_t& pid, const char *cmdstring, const char *type) +{ + int pfd[2] ={-1,-1}; + FILE *fp = NULL; + + /* only allow "r" or "w" */ + if ((type[0] != 'r' && type[0] != 'w') || type[1] != 0) { + errno = EINVAL; /* required by POSIX */ + return(NULL); + } + + if (pipe(pfd) < 0) + return(NULL); /* errno set by pipe() */ + + if ((pid = vfork()) < 0) { + return(NULL); /* errno set by vfork() */ + } else if (pid == 0) { /* child */ + if (*type == 'r') { + close(pfd[0]); + if (pfd[1] != STDOUT_FILENO) { + dup2(pfd[1], STDOUT_FILENO); + close(pfd[1]); + } + } else { + close(pfd[1]); + if (pfd[0] != STDIN_FILENO) { + dup2(pfd[0], STDIN_FILENO); + close(pfd[0]); + } + } + execl("/bin/sh", "sh", "-c", cmdstring, (char *)0); + exit(0); + } + + /* parent continues... */ + if (*type == 'r') { + close(pfd[1]); + if ((fp = fdopen(pfd[0], type)) == NULL) + return(NULL); + } else { + close(pfd[0]); + if ((fp = fdopen(pfd[1], type)) == NULL) + return(NULL); + } + return(fp); +} diff --git a/src/system/helpers.h b/src/system/helpers.h new file mode 100644 index 000000000..d041cdcae --- /dev/null +++ b/src/system/helpers.h @@ -0,0 +1,39 @@ + +#ifndef __system_helpers__ +#define __system_helpers__ + +/* + Neutrino-GUI - DBoxII-Project + + Copyright (C) 2001 Steffen Hehn 'McClean' + Homepage: http://dbox.cyberphoria.org/ + + Kommentar: + + Diese GUI wurde von Grund auf neu programmiert und sollte nun vom + Aufbau und auch den Ausbaumoeglichkeiten gut aussehen. Neutrino basiert + auf der Client-Server Idee, diese GUI ist also von der direkten DBox- + Steuerung getrennt. Diese wird dann von Daemons uebernommen. + + + License: GPL + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +int my_system(const char * cmd, const char * arg1, const char * arg2); +FILE* my_popen( pid_t& pid, const char *cmdstring, const char *type); + +#endif From ae73a950ebf012d48216fa3be7b776b1bf417f1d Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Thu, 30 Aug 2012 09:30:14 +0200 Subject: [PATCH 228/317] - system/helpers.h|cpp: change header --- src/system/helpers.cpp | 13 +------------ src/system/helpers.h | 13 +------------ 2 files changed, 2 insertions(+), 24 deletions(-) diff --git a/src/system/helpers.cpp b/src/system/helpers.cpp index 410dd1294..4e3758ad4 100644 --- a/src/system/helpers.cpp +++ b/src/system/helpers.cpp @@ -1,16 +1,5 @@ /* - Neutrino-GUI - DBoxII-Project - - Copyright (C) 2001 Steffen Hehn 'McClean' - Homepage: http://dbox.cyberphoria.org/ - - Kommentar: - - Diese GUI wurde von Grund auf neu programmiert und sollte nun vom - Aufbau und auch den Ausbaumoeglichkeiten gut aussehen. Neutrino basiert - auf der Client-Server Idee, diese GUI ist also von der direkten DBox- - Steuerung getrennt. Diese wird dann von Daemons uebernommen. - + Neutrino-HD License: GPL diff --git a/src/system/helpers.h b/src/system/helpers.h index d041cdcae..9fd335f3b 100644 --- a/src/system/helpers.h +++ b/src/system/helpers.h @@ -3,18 +3,7 @@ #define __system_helpers__ /* - Neutrino-GUI - DBoxII-Project - - Copyright (C) 2001 Steffen Hehn 'McClean' - Homepage: http://dbox.cyberphoria.org/ - - Kommentar: - - Diese GUI wurde von Grund auf neu programmiert und sollte nun vom - Aufbau und auch den Ausbaumoeglichkeiten gut aussehen. Neutrino basiert - auf der Client-Server Idee, diese GUI ist also von der direkten DBox- - Steuerung getrennt. Diese wird dann von Daemons uebernommen. - + Neutrino-HD License: GPL From ba051aaf41a6ba4e2abcab4e22979be82ade04b0 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Thu, 30 Aug 2012 11:31:05 +0400 Subject: [PATCH 229/317] gui/user_menue.cpp: comment unused code --- src/gui/user_menue.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/gui/user_menue.cpp b/src/gui/user_menue.cpp index f36e5f40d..e9c7c0c7b 100644 --- a/src/gui/user_menue.cpp +++ b/src/gui/user_menue.cpp @@ -82,12 +82,14 @@ CUserMenu::~CUserMenu() } +#if 0 #define MAINMENU_RECORDING_OPTION_COUNT 2 const CMenuOptionChooser::keyval MAINMENU_RECORDING_OPTIONS[MAINMENU_RECORDING_OPTION_COUNT] = { { 0, LOCALE_MAINMENU_RECORDING_START }, { 1, LOCALE_MAINMENU_RECORDING_STOP } }; +#endif // USERMENU bool CUserMenu::showUserMenu(int button) @@ -461,6 +463,7 @@ bool CUserMenu::showUserMenu(int button) **************************************************************************************/ bool CUserMenu::changeNotify(const neutrino_locale_t OptionName, void * Data) { +#if 0 bool res = !CRecordManager::getInstance()->RecordingStatus() ? false:true; if ((ARE_LOCALES_EQUAL(OptionName, LOCALE_MAINMENU_RECORDING_START)) || (ARE_LOCALES_EQUAL(OptionName, LOCALE_MAINMENU_RECORDING))) @@ -471,9 +474,11 @@ bool CUserMenu::changeNotify(const neutrino_locale_t OptionName, void * Data) res = false; else res = true; - } else if (ARE_LOCALES_EQUAL(OptionName, LOCALE_MAINMENU_PAUSESECTIONSD)) { + } else +#endif + if (ARE_LOCALES_EQUAL(OptionName, LOCALE_MAINMENU_PAUSESECTIONSD)) { g_Sectionsd->setPauseScanning((*((int *)Data)) == 0); } - return res; + return false; } From fb68bff086df80e814fbd0c8f7758c16822b6458 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Thu, 30 Aug 2012 11:32:29 +0400 Subject: [PATCH 230/317] eitd/sectionsd.cpp: move public functions to CEitManager class --- src/eitd/sectionsd.cpp | 136 +++++++++++++++++++---------------------- src/eitd/sectionsd.h | 18 +++--- 2 files changed, 75 insertions(+), 79 deletions(-) diff --git a/src/eitd/sectionsd.cpp b/src/eitd/sectionsd.cpp index 802ffacea..a30162cd5 100644 --- a/src/eitd/sectionsd.cpp +++ b/src/eitd/sectionsd.cpp @@ -60,7 +60,6 @@ #define DEBUG_SECTION_THREADS #define DEBUG_CN_THREAD -static bool sectionsd_ready = false; /*static*/ bool reader_ready = true; static unsigned int max_events; static bool notify_complete = false; @@ -142,7 +141,7 @@ static CFreeSatThread threadFSEIT; CSdtThread threadSDT; #endif -int sectionsd_stop = 0; +static int sectionsd_stop = 0; static bool slow_addevent = true; @@ -2107,8 +2106,6 @@ printf("SIevent size: %d\n", sizeof(SIevent)); if (sections_debug) dump_sched_info("main"); - sectionsd_ready = true; - while (running && sectionsd_server.run(sectionsd_parse_command, sectionsd::ACTVERSION, true)) { sched_yield(); if (threadCN.checkUpdate()) { @@ -2170,65 +2167,69 @@ printf("SIevent size: %d\n", sizeof(SIevent)); } /* was: commandAllEventsChannelID sendAllEvents */ -void sectionsd_getEventsServiceKey(t_channel_id serviceUniqueKey, CChannelEventList &eList, char search = 0, std::string search_text = "") +void CEitManager::getEventsServiceKey(t_channel_id serviceUniqueKey, CChannelEventList &eList, char search, std::string search_text) { dprintf("sendAllEvents for " PRINTF_CHANNEL_ID_TYPE "\n", serviceUniqueKey); - if ((serviceUniqueKey& 0xFFFFFFFFFFFFULL) != 0) { //0xFFFFFFFFFFFFULL for CREATE_CHANNEL_ID64 - // service Found - readLockEvents(); - int serviceIDfound = 0; + eList.clear(); + serviceUniqueKey &= 0xFFFFFFFFFFFFULL; //0xFFFFFFFFFFFFULL for CREATE_CHANNEL_ID64 + if(serviceUniqueKey == 0) + return; - if (search_text.length()) - std::transform(search_text.begin(), search_text.end(), search_text.begin(), tolower); - for (MySIeventsOrderServiceUniqueKeyFirstStartTimeEventUniqueKey::iterator e = mySIeventsOrderServiceUniqueKeyFirstStartTimeEventUniqueKey.begin(); e != mySIeventsOrderServiceUniqueKeyFirstStartTimeEventUniqueKey.end(); ++e) - { - if ((*e)->get_channel_id() == (serviceUniqueKey& 0xFFFFFFFFFFFFULL)) { //0xFFFFFFFFFFFFULL for CREATE_CHANNEL_ID64 - serviceIDfound = 1; + // service Found + readLockEvents(); + int serviceIDfound = 0; - bool copy = true; - if(search == 0); // nothing to do here - else if(search == 1) { - std::string eName = (*e)->getName(); - std::transform(eName.begin(), eName.end(), eName.begin(), tolower); - if(eName.find(search_text) == std::string::npos) - copy = false; - } - else if(search == 2) { - std::string eText = (*e)->getText(); - std::transform(eText.begin(), eText.end(), eText.begin(), tolower); - if(eText.find(search_text) == std::string::npos) - copy = false; - } - else if(search == 3) { - std::string eExtendedText = (*e)->getExtendedText(); - std::transform(eExtendedText.begin(), eExtendedText.end(), eExtendedText.begin(), tolower); - if(eExtendedText.find(search_text) == std::string::npos) - copy = false; - } + if (search_text.length()) + std::transform(search_text.begin(), search_text.end(), search_text.begin(), tolower); - if(copy) { - for (SItimes::iterator t = (*e)->times.begin(); t != (*e)->times.end(); ++t) - { - CChannelEvent aEvent; - aEvent.eventID = (*e)->uniqueKey(); - aEvent.startTime = t->startzeit; - aEvent.duration = t->dauer; - aEvent.description = (*e)->getName(); - if (((*e)->getText()).empty()) - aEvent.text = (*e)->getExtendedText().substr(0, 120); - else - aEvent.text = (*e)->getText(); - aEvent.channelID = serviceUniqueKey; - eList.push_back(aEvent); - } - } // if = serviceID + for (MySIeventsOrderServiceUniqueKeyFirstStartTimeEventUniqueKey::iterator e = mySIeventsOrderServiceUniqueKeyFirstStartTimeEventUniqueKey.begin(); e != mySIeventsOrderServiceUniqueKeyFirstStartTimeEventUniqueKey.end(); ++e) + { + if ((*e)->get_channel_id() == serviceUniqueKey) { + serviceIDfound = 1; + + bool copy = true; + if(search == 0); // nothing to do here + else if(search == 1) { + std::string eName = (*e)->getName(); + std::transform(eName.begin(), eName.end(), eName.begin(), tolower); + if(eName.find(search_text) == std::string::npos) + copy = false; } - else if ( serviceIDfound ) - break; // sind nach serviceID und startzeit sortiert -> nicht weiter suchen + else if(search == 2) { + std::string eText = (*e)->getText(); + std::transform(eText.begin(), eText.end(), eText.begin(), tolower); + if(eText.find(search_text) == std::string::npos) + copy = false; + } + else if(search == 3) { + std::string eExtendedText = (*e)->getExtendedText(); + std::transform(eExtendedText.begin(), eExtendedText.end(), eExtendedText.begin(), tolower); + if(eExtendedText.find(search_text) == std::string::npos) + copy = false; + } + + if(copy) { + for (SItimes::iterator t = (*e)->times.begin(); t != (*e)->times.end(); ++t) + { + CChannelEvent aEvent; + aEvent.eventID = (*e)->uniqueKey(); + aEvent.startTime = t->startzeit; + aEvent.duration = t->dauer; + aEvent.description = (*e)->getName(); + if (((*e)->getText()).empty()) + aEvent.text = (*e)->getExtendedText().substr(0, 120); + else + aEvent.text = (*e)->getText(); + aEvent.channelID = serviceUniqueKey; + eList.push_back(aEvent); + } + } // if = serviceID } - unlockEvents(); + else if ( serviceIDfound ) + break; // sind nach serviceID und startzeit sortiert -> nicht weiter suchen } + unlockEvents(); } /* send back the current and next event for the channel id passed to it @@ -2242,7 +2243,7 @@ void sectionsd_getEventsServiceKey(t_channel_id serviceUniqueKey, CChannelEventL * TODO: the handling of "flag" should be vastly simplified. */ /* was: commandCurrentNextInfoChannelID */ -void sectionsd_getCurrentNextServiceKey(t_channel_id uniqueServiceKey, CSectionsdClient::responseGetCurrentNextInfoChannelID& current_next ) +void CEitManager::getCurrentNextServiceKey(t_channel_id uniqueServiceKey, CSectionsdClient::responseGetCurrentNextInfoChannelID& current_next ) { dprintf("[sectionsd] Request of current/next information for " PRINTF_CHANNEL_ID_TYPE "\n", uniqueServiceKey); @@ -2434,7 +2435,7 @@ void sectionsd_getCurrentNextServiceKey(t_channel_id uniqueServiceKey, CSections } /* commandEPGepgIDshort */ -bool sectionsd_getEPGidShort(event_id_t epgID, CShortEPGData * epgdata) +bool CEitManager::getEPGidShort(event_id_t epgID, CShortEPGData * epgdata) { bool ret = false; dprintf("Request of current EPG for 0x%llx\n", epgID); @@ -2459,7 +2460,7 @@ bool sectionsd_getEPGidShort(event_id_t epgID, CShortEPGData * epgdata) /*was getEPGid commandEPGepgID(int connfd, char *data, const unsigned dataLength) */ /* TODO item / itemDescription */ -bool sectionsd_getEPGid(const event_id_t epgID, const time_t startzeit, CEPGData * epgdata) +bool CEitManager::getEPGid(const event_id_t epgID, const time_t startzeit, CEPGData * epgdata) { bool ret = false; dprintf("Request of actual EPG for 0x%llx 0x%lx\n", epgID, startzeit); @@ -2503,7 +2504,7 @@ bool sectionsd_getEPGid(const event_id_t epgID, const time_t startzeit, CEPGData return ret; } /* was commandActualEPGchannelID(int connfd, char *data, const unsigned dataLength) */ -bool sectionsd_getActualEPGServiceKey(const t_channel_id uniqueServiceKey, CEPGData * epgdata) +bool CEitManager::getActualEPGServiceKey(const t_channel_id uniqueServiceKey, CEPGData * epgdata) { bool ret = false; SIevent evt; @@ -2573,7 +2574,7 @@ bool channel_in_requested_list(t_channel_id * clist, t_channel_id chid, int len) } /* was static void sendEventList(int connfd, const unsigned char serviceTyp1, const unsigned char serviceTyp2 = 0, int sendServiceName = 1, t_channel_id * chidlist = NULL, int clen = 0) */ -void sectionsd_getChannelEvents(CChannelEventList &eList, const bool tv_mode = true, t_channel_id *chidlist = NULL, int clen = 0) +void CEitManager::getChannelEvents(CChannelEventList &eList, const bool tv_mode, t_channel_id *chidlist, int clen) { clen = clen / sizeof(t_channel_id); @@ -2632,7 +2633,7 @@ showProfiling("sectionsd_getChannelEvents end"); } /*was static void commandComponentTagsUniqueKey(int connfd, char *data, const unsigned dataLength) */ -bool sectionsd_getComponentTagsUniqueKey(const event_id_t uniqueKey, CSectionsdClient::ComponentTagList& tags) +bool CEitManager::getComponentTagsUniqueKey(const event_id_t uniqueKey, CSectionsdClient::ComponentTagList& tags) { bool ret = false; dprintf("Request of ComponentTags for 0x%llx\n", uniqueKey); @@ -2662,7 +2663,7 @@ bool sectionsd_getComponentTagsUniqueKey(const event_id_t uniqueKey, CSectionsdC } /* was static void commandLinkageDescriptorsUniqueKey(int connfd, char *data, const unsigned dataLength) */ -bool sectionsd_getLinkageDescriptorsUniqueKey(const event_id_t uniqueKey, CSectionsdClient::LinkageDescriptorList& descriptors) +bool CEitManager::getLinkageDescriptorsUniqueKey(const event_id_t uniqueKey, CSectionsdClient::LinkageDescriptorList& descriptors) { bool ret = false; dprintf("Request of LinkageDescriptors for 0x%llx\n", uniqueKey); @@ -2693,7 +2694,7 @@ bool sectionsd_getLinkageDescriptorsUniqueKey(const event_id_t uniqueKey, CSecti } /* was static void commandTimesNVODservice(int connfd, char *data, const unsigned dataLength) */ -bool sectionsd_getNVODTimesServiceKey(const t_channel_id uniqueServiceKey, CSectionsdClient::NVODTimesList& nvod_list) +bool CEitManager::getNVODTimesServiceKey(const t_channel_id uniqueServiceKey, CSectionsdClient::NVODTimesList& nvod_list) { bool ret = false; dprintf("Request of NVOD times for " PRINTF_CHANNEL_ID_TYPE "\n", uniqueServiceKey); @@ -2732,17 +2733,8 @@ bool sectionsd_getNVODTimesServiceKey(const t_channel_id uniqueServiceKey, CSect return ret; } -void sectionsd_setPrivatePid(unsigned short /*pid*/) -{ -} - -void sectionsd_set_languages(const std::vector& newLanguages) +void CEitManager::setLanguages(const std::vector& newLanguages) { SIlanguage::setLanguages(newLanguages); SIlanguage::saveLanguages(); } - -bool sectionsd_isReady(void) -{ - return sectionsd_ready; -} diff --git a/src/eitd/sectionsd.h b/src/eitd/sectionsd.h index b0db88026..45db009f4 100644 --- a/src/eitd/sectionsd.h +++ b/src/eitd/sectionsd.h @@ -32,13 +32,6 @@ #include #include #include -#include "dmx.h" - -//#include "SIutils.hpp" -//#include "SIservices.hpp" -//#include "SIevents.hpp" -//#include "SIsections.hpp" -//#include "SIlanguage.hpp" class CEitManager : public OpenThreads::Thread, public OpenThreads::Mutex { @@ -61,6 +54,17 @@ class CEitManager : public OpenThreads::Thread, public OpenThreads::Mutex bool Start(); bool Stop(); void SetConfig(CSectionsdClient::epg_config &cfg) { config = cfg; }; + + void getEventsServiceKey(t_channel_id serviceUniqueKey, CChannelEventList &eList, char search = 0, std::string search_text = ""); + void getCurrentNextServiceKey(t_channel_id uniqueServiceKey, CSectionsdClient::responseGetCurrentNextInfoChannelID& current_next ); + bool getEPGidShort(event_id_t epgID, CShortEPGData * epgdata); + bool getEPGid(const event_id_t epgID, const time_t startzeit, CEPGData * epgdata); + bool getActualEPGServiceKey(const t_channel_id uniqueServiceKey, CEPGData * epgdata); + void getChannelEvents(CChannelEventList &eList, const bool tv_mode = true, t_channel_id *chidlist = NULL, int clen = 0); + bool getComponentTagsUniqueKey(const event_id_t uniqueKey, CSectionsdClient::ComponentTagList& tags); + bool getLinkageDescriptorsUniqueKey(const event_id_t uniqueKey, CSectionsdClient::LinkageDescriptorList& descriptors); + bool getNVODTimesServiceKey(const t_channel_id uniqueServiceKey, CSectionsdClient::NVODTimesList& nvod_list); + void setLanguages(const std::vector& newLanguages); }; #endif From 27d47c52c064ffd5112408a86feef295d3824c72 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Thu, 30 Aug 2012 11:32:54 +0400 Subject: [PATCH 231/317] timerd/Makefile.am: add include path --- src/timerd/Makefile.am | 1 + 1 file changed, 1 insertion(+) diff --git a/src/timerd/Makefile.am b/src/timerd/Makefile.am index b446dd7d4..76c1954c4 100644 --- a/src/timerd/Makefile.am +++ b/src/timerd/Makefile.am @@ -3,6 +3,7 @@ AM_CPPFLAGS = -fno-rtti -fno-exceptions INCLUDES = \ -I$(top_builddir) \ -I$(top_srcdir) \ + -I$(top_srcdir)/src \ -I$(top_srcdir)/src/zapit/include \ -I$(top_srcdir)/lib \ -I$(top_srcdir)/lib/libconfigfile \ From 6c9a949c692e990ad766df74b4d5955dfdeff169 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Thu, 30 Aug 2012 11:38:46 +0400 Subject: [PATCH 232/317] cross-configure.cool.debug: change prefix --- cross-configure.cool.debug | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cross-configure.cool.debug b/cross-configure.cool.debug index 6ce9ebed1..4ae70b853 100755 --- a/cross-configure.cool.debug +++ b/cross-configure.cool.debug @@ -1,6 +1,6 @@ #!/bin/sh -PREFIX=/opt/newcross/arm-cx2450x-linux-gnueabi/arm-cx2450x-linux-gnueabi/sys-root/usr +PREFIX=/opt/arm/arm-cx2450x-linux-gnueabi/arm-cx2450x-linux-gnueabi/sys-root/usr CCPATH= HOST=arm-cx2450x-linux-gnueabi From 74a761ef50aa1acc68c00bdd778b0a37f1f9396d Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Thu, 30 Aug 2012 11:40:02 +0400 Subject: [PATCH 233/317] use CEitManager to get EIT data --- src/daemonc/remotecontrol.cpp | 17 +++------- src/driver/record.cpp | 16 ++++----- src/driver/screenshot.cpp | 7 ++-- src/gui/channellist.cpp | 12 +++---- src/gui/epgplus.cpp | 10 +++--- src/gui/epgview.cpp | 20 +++-------- src/gui/eventlist.cpp | 29 +++++----------- src/gui/infoviewer.cpp | 14 +++----- src/gui/osdlang_setup.cpp | 6 ++-- src/gui/timerlist.cpp | 10 +++--- src/neutrino.cpp | 14 +------- .../tuxboxapi/coolstream/controlapi.cpp | 34 ++++++++----------- .../tuxboxapi/coolstream/neutrinoapi.cpp | 5 ++- .../tuxboxapi/coolstream/neutrinoyparser.cpp | 20 +++++------ src/timerd/timermanager.cpp | 14 ++++---- 15 files changed, 76 insertions(+), 152 deletions(-) diff --git a/src/daemonc/remotecontrol.cpp b/src/daemonc/remotecontrol.cpp index d6659148d..fbc608f64 100644 --- a/src/daemonc/remotecontrol.cpp +++ b/src/daemonc/remotecontrol.cpp @@ -48,6 +48,7 @@ #include #include #include +#include #define ZAP_GUARD_TIME 2000 // ms @@ -55,11 +56,6 @@ extern CBouquetManager *g_bouquetManager; extern uint32_t scrambled_timer; -bool sectionsd_getComponentTagsUniqueKey(const event_id_t uniqueKey, CSectionsdClient::ComponentTagList& tags); -bool sectionsd_getLinkageDescriptorsUniqueKey(const event_id_t uniqueKey, CSectionsdClient::LinkageDescriptorList& descriptors); -bool sectionsd_getNVODTimesServiceKey(const t_channel_id uniqueServiceKey, CSectionsdClient::NVODTimesList& nvod_list); -void sectionsd_setPrivatePid(unsigned short pid); - CSubService::CSubService(const t_original_network_id anoriginal_network_id, const t_service_id aservice_id, const t_transport_stream_id atransport_stream_id, const std::string &asubservice_name) { service.original_network_id = anoriginal_network_id; @@ -293,8 +289,6 @@ int CRemoteControl::handleMsg(const neutrino_msg_t msg, neutrino_msg_data_t data { CVFD::getInstance()->showServicename(current_channel_name); // UTF-8 g_Zapit->getPIDS( current_PIDs ); - //g_Sectionsd->setPrivatePid( current_PIDs.PIDs.privatepid ); - sectionsd_setPrivatePid( current_PIDs.PIDs.privatepid ); //tuxtxt #if 1 tuxtxt_stop(); @@ -369,8 +363,7 @@ void CRemoteControl::getSubChannels() if ( subChannels.empty() ) { CSectionsdClient::LinkageDescriptorList linkedServices; - //if ( g_Sectionsd->getLinkageDescriptorsUniqueKey( current_EPGid, linkedServices ) ) - if ( sectionsd_getLinkageDescriptorsUniqueKey( current_EPGid, linkedServices ) ) + if (CEitManager::getInstance()->getLinkageDescriptorsUniqueKey( current_EPGid, linkedServices)) { if ( linkedServices.size()> 1 ) { @@ -403,8 +396,7 @@ void CRemoteControl::getNVODs() if ( subChannels.empty() ) { CSectionsdClient::NVODTimesList NVODs; - //if ( g_Sectionsd->getNVODTimesServiceKey( current_channel_id & 0xFFFFFFFFFFFFULL, NVODs ) ) - if ( sectionsd_getNVODTimesServiceKey( current_channel_id & 0xFFFFFFFFFFFFULL, NVODs ) ) + if (CEitManager::getInstance()->getNVODTimesServiceKey( current_channel_id & 0xFFFFFFFFFFFFULL, NVODs)) { are_subchannels = false; //printf("CRemoteControl::getNVODs NVODs.size %d\n", NVODs.size()); @@ -534,8 +526,7 @@ void CRemoteControl::processAPIDnames() if ( current_EPGid != 0 ) { CSectionsdClient::ComponentTagList tags; - //if ( g_Sectionsd->getComponentTagsUniqueKey( current_EPGid, tags ) ) - if ( sectionsd_getComponentTagsUniqueKey( current_EPGid, tags ) ) + if (CEitManager::getInstance()->getComponentTagsUniqueKey(current_EPGid, tags)) { has_unresolved_ctags = false; diff --git a/src/driver/record.cpp b/src/driver/record.cpp index 269a4b442..2436db6b3 100644 --- a/src/driver/record.cpp +++ b/src/driver/record.cpp @@ -54,6 +54,7 @@ #include #include #include +#include /* TODO: * nextRecording / pending recordings - needs testing @@ -63,11 +64,6 @@ extern CRemoteControl * g_RemoteControl; /* neutrino.cpp */ -bool sectionsd_getActualEPGServiceKey(const t_channel_id uniqueServiceKey, CEPGData * epgdata); -bool sectionsd_getEPGidShort(event_id_t epgID, CShortEPGData * epgdata); -bool sectionsd_getEPGid(const event_id_t epgID, const time_t startzeit, CEPGData * epgdata); -bool sectionsd_getComponentTagsUniqueKey(const event_id_t uniqueKey, CSectionsdClient::ComponentTagList& tags); - extern "C" { #include } @@ -353,7 +349,7 @@ void CRecordInstance::ProcessAPIDnames() if(has_unresolved_ctags && (epgid != 0)) { CSectionsdClient::ComponentTagList tags; - if(sectionsd_getComponentTagsUniqueKey(epgid, tags)) { + if(CEitManager::getInstance()->getComponentTagsUniqueKey(epgid, tags)) { for(unsigned int i=0; i< tags.size(); i++) { for(unsigned int j=0; j< allpids.APIDs.size(); j++) { if(allpids.APIDs[j].component_tag == tags[i].componentTag) { @@ -403,7 +399,7 @@ record_error_msg_t CRecordInstance::Record() CEPGData epgData; epgData.epg_times.startzeit = 0; epgData.epg_times.dauer = 0; - if (sectionsd_getActualEPGServiceKey(channel_id&0xFFFFFFFFFFFFULL, &epgData )) { + if (CEitManager::getInstance()->getActualEPGServiceKey(channel_id&0xFFFFFFFFFFFFULL, &epgData )) { g_Timerd->getRecordingSafety(pre, post); if (epgData.epg_times.startzeit > 0) record_end = epgData.epg_times.startzeit + epgData.epg_times.dauer + post; @@ -508,7 +504,7 @@ void CRecordInstance::FillMovieInfo(CZapitChannel * channel, APIDList & apid_lis tmpstring = "not available"; if (epgid != 0) { CEPGData epgdata; - if (sectionsd_getEPGid(epgid, epg_time, &epgdata)) { + if (CEitManager::getInstance()->getEPGid(epgid, epg_time, &epgdata)) { tmpstring = epgdata.title; info1 = epgdata.info1; info2 = epgdata.info2; @@ -614,7 +610,7 @@ record_error_msg_t CRecordInstance::MakeFileName(CZapitChannel * channel) if (g_settings.recording_epg_for_filename) { if(epgid != 0) { CShortEPGData epgdata; - if(sectionsd_getEPGidShort(epgid, &epgdata)) { + if(CEitManager::getInstance()->getEPGidShort(epgid, &epgdata)) { if (!(epgdata.title.empty())) { strcpy(&(filename[pos]), epgdata.title.c_str()); ZapitTools::replace_char(&filename[pos]); @@ -803,7 +799,7 @@ bool CRecordManager::Record(const t_channel_id channel_id, const char * dir, boo eventinfo.eventID = 0; eventinfo.channel_id = channel_id; - if (sectionsd_getActualEPGServiceKey(channel_id&0xFFFFFFFFFFFFULL, &epgData )) { + if (CEitManager::getInstance()->getActualEPGServiceKey(channel_id&0xFFFFFFFFFFFFULL, &epgData )) { eventinfo.epgID = epgData.eventID; eventinfo.epg_starttime = epgData.epg_times.startzeit; strncpy(eventinfo.epgTitle, epgData.title.c_str(), EPG_TITLE_MAXLEN-1); diff --git a/src/driver/screenshot.cpp b/src/driver/screenshot.cpp index 7aea07577..c24ca5437 100644 --- a/src/driver/screenshot.cpp +++ b/src/driver/screenshot.cpp @@ -40,6 +40,7 @@ #include #include #include +#include #include #include @@ -345,8 +346,6 @@ bool CScreenShot::SaveBmp() return true; } -bool sectionsd_getActualEPGServiceKey(const t_channel_id uniqueServiceKey, CEPGData * epgdata); -bool sectionsd_getEPGidShort(event_id_t epgID, CShortEPGData * epgdata); /* * create filename member from channel name and its current EPG data, @@ -370,9 +369,9 @@ void CScreenShot::MakeFileName(const t_channel_id channel_id) } pos = strlen(fname); - if(sectionsd_getActualEPGServiceKey(channel_id&0xFFFFFFFFFFFFULL, &epgData)) { + if(CEitManager::getInstance()->getActualEPGServiceKey(channel_id&0xFFFFFFFFFFFFULL, &epgData)) { CShortEPGData epgdata; - if(sectionsd_getEPGidShort(epgData.eventID, &epgdata)) { + if(CEitManager::getInstance()->getEPGidShort(epgData.eventID, &epgdata)) { if (!(epgdata.title.empty())) { strcpy(&(fname[pos]), epgdata.title.c_str()); ZapitTools::replace_char(&fname[pos]); diff --git a/src/gui/channellist.cpp b/src/gui/channellist.cpp index 7a4d42231..0d52faf6e 100644 --- a/src/gui/channellist.cpp +++ b/src/gui/channellist.cpp @@ -73,6 +73,8 @@ #include #include +#include + extern CBouquetList * bouquetList; /* neutrino.cpp */ extern CRemoteControl * g_RemoteControl; /* neutrino.cpp */ extern CPictureViewer * g_PicViewer; @@ -88,10 +90,6 @@ extern CBouquetList * RADIOallList; extern bool autoshift; extern CBouquetManager *g_bouquetManager; -void sectionsd_getChannelEvents(CChannelEventList &eList, const bool tv_mode, t_channel_id *chidlist, int clen); -void sectionsd_getEventsServiceKey(t_channel_id serviceUniqueKey, CChannelEventList &eList, char search = 0, std::string search_text = ""); -void sectionsd_getCurrentNextServiceKey(t_channel_id uniqueServiceKey, CSectionsdClient::responseGetCurrentNextInfoChannelID& current_next ); - extern int old_b_id; CChannelList::CChannelList(const char * const pName, bool phistoryMode, bool _vlist, bool ) @@ -175,7 +173,7 @@ void CChannelList::updateEvents(unsigned int from, unsigned int to) unsigned int count; for (count = from; count < to; count++) { events.clear(); - sectionsd_getEventsServiceKey(chanlist[count]->channel_id, events); + CEitManager::getInstance()->getEventsServiceKey(chanlist[count]->channel_id, events); chanlist[count]->nextEvent.startTime = (long)0x7fffffff; for ( CChannelEventList::iterator e= events.begin(); e != events.end(); ++e ) { if ((long)e->startTime > atime && @@ -198,7 +196,7 @@ void CChannelList::updateEvents(unsigned int from, unsigned int to) p_requested_channels[count] = chanlist[count + from]->channel_id&0xFFFFFFFFFFFFULL; } CChannelEventList levents; - sectionsd_getChannelEvents(levents, (CNeutrinoApp::getInstance()->getMode()) != NeutrinoMessages::mode_radio, p_requested_channels, size_requested_channels); + CEitManager::getInstance()->getChannelEvents(levents, (CNeutrinoApp::getInstance()->getMode()) != NeutrinoMessages::mode_radio, p_requested_channels, size_requested_channels); for (uint32_t count=0; count < chanlist_size; count++) { chanlist[count]->currentEvent = CChannelEvent(); for (CChannelEventList::iterator e = levents.begin(); e != levents.end(); ++e) { @@ -1544,7 +1542,7 @@ void CChannelList::paintDetails(int index) char buf[128] = {0}; char cFrom[50] = {0}; // UTF-8 CSectionsdClient::CurrentNextInfo CurrentNext; - sectionsd_getCurrentNextServiceKey(chanlist[index]->channel_id & 0xFFFFFFFFFFFFULL, CurrentNext); + CEitManager::getInstance()->getCurrentNextServiceKey(chanlist[index]->channel_id & 0xFFFFFFFFFFFFULL, CurrentNext); if (!CurrentNext.next_name.empty()) { struct tm *pStartZeit = localtime (& CurrentNext.next_zeit.startzeit); snprintf(cFrom, sizeof(cFrom), "%s %02d:%02d",g_Locale->getText(LOCALE_WORD_FROM),pStartZeit->tm_hour, pStartZeit->tm_min ); diff --git a/src/gui/epgplus.cpp b/src/gui/epgplus.cpp index 35bbcaca7..386285bcf 100644 --- a/src/gui/epgplus.cpp +++ b/src/gui/epgplus.cpp @@ -45,6 +45,7 @@ #include #include #include +#include #include #include @@ -290,7 +291,6 @@ bool EpgPlus::ChannelEventEntry::isSelected (time_t selectedTime) const return (selectedTime >= this->channelEvent.startTime) && (selectedTime < this->channelEvent.startTime + time_t (this->channelEvent.duration)); } -bool sectionsd_getEPGidShort(event_id_t epgID, CShortEPGData * epgdata); void EpgPlus::ChannelEventEntry::paint (bool pisSelected, bool toggleColor) { this->frameBuffer->paintBoxRel (this->x, this->y, this->width, this->font->getHeight() @@ -315,7 +315,8 @@ void EpgPlus::ChannelEventEntry::paint (bool pisSelected, bool toggleColor) CShortEPGData shortEpgData; - this->footer->paintEventDetails (this->channelEvent.description, sectionsd_getEPGidShort(this->channelEvent.eventID, &shortEpgData) ? shortEpgData.info1 : ""); + bool ret = CEitManager::getInstance()->getEPGidShort(this->channelEvent.eventID, &shortEpgData); + this->footer->paintEventDetails (this->channelEvent.description, ret ? shortEpgData.info1 : ""); this->timeLine->paintGrid(); } @@ -522,8 +523,6 @@ EpgPlus::~EpgPlus() this->free(); } -void sectionsd_getEventsServiceKey(t_channel_id serviceUniqueKey, CChannelEventList &eList, char search = 0, std::string search_text = ""); - void EpgPlus::createChannelEntries (int selectedChannelEntryIndex) { for (TChannelEntries::iterator It = this->displayedChannelEntries.begin(); @@ -557,9 +556,8 @@ void EpgPlus::createChannelEntries (int selectedChannelEntryIndex) ChannelEntry *channelEntry = new ChannelEntry (channel, i, this->frameBuffer, this->footer, this->bouquetList, this->channelsTableX + 2, yPosChannelEntry, this->channelsTableWidth); //printf("Going to get getEventsServiceKey for %llx\n", (channel->channel_id & 0xFFFFFFFFFFFFULL)); - //CChannelEventList channelEventList = g_Sectionsd->getEventsServiceKey (channel->channel->channel_id & 0xFFFFFFFFFFFFULL); CChannelEventList channelEventList; - sectionsd_getEventsServiceKey(channel->channel_id, channelEventList); + CEitManager::getInstance()->getEventsServiceKey(channel->channel_id, channelEventList); //printf("channelEventList size %d\n", channelEventList.size()); int xPosEventEntry = this->eventsTableX; diff --git a/src/gui/epgview.cpp b/src/gui/epgview.cpp index 40f6616be..9bf54faa6 100644 --- a/src/gui/epgview.cpp +++ b/src/gui/epgview.cpp @@ -55,6 +55,7 @@ #include #include +#include extern CPictureViewer * g_PicViewer; @@ -445,9 +446,6 @@ static bool sortByDateTime (const CChannelEvent& a, const CChannelEvent& b) return a.startTime< b.startTime; } -//extern char recDir[255]; -void sectionsd_getEventsServiceKey(t_channel_id serviceUniqueKey, CChannelEventList &eList, char search = 0, std::string search_text = ""); -bool sectionsd_getComponentTagsUniqueKey(const event_id_t uniqueKey, CSectionsdClient::ComponentTagList& tags); int CEpgData::show(const t_channel_id channel_id, uint64_t a_id, time_t* a_startzeit, bool doLoop ) { int res = menu_return::RETURN_REPAINT; @@ -470,9 +468,7 @@ int CEpgData::show(const t_channel_id channel_id, uint64_t a_id, time_t* a_start } bigFonts = g_settings.bigFonts; start(); - //evtlist = g_Sectionsd->getEventsServiceKey(channel_id&0xFFFFFFFFFFFFULL); - evtlist.clear(); - sectionsd_getEventsServiceKey(channel_id, evtlist); + CEitManager::getInstance()->getEventsServiceKey(channel_id, evtlist); // Houdini added for Private Premiere EPG start sorted by start date/time 2005-08-15 sort(evtlist.begin(),evtlist.end(),sortByDateTime); } @@ -640,7 +636,7 @@ int CEpgData::show(const t_channel_id channel_id, uint64_t a_id, time_t* a_start int dummy_h,dummy_w; frameBuffer->getIconSize(NEUTRINO_ICON_16_9_GREY, &dummy_w, &dummy_h); if (dummy_h == 16 && dummy_w == 26){ // show only standard icon size - if ( sectionsd_getComponentTagsUniqueKey( epgData.eventID, tags ) ) + if (CEitManager::getInstance()->getComponentTagsUniqueKey( epgData.eventID, tags)) { for (unsigned int i=0; i< tags.size(); i++) { @@ -941,9 +937,6 @@ void CEpgData::hide() showTimerEventBar (false); } -bool sectionsd_getEPGid(const event_id_t epgID, const time_t startzeit, CEPGData * epgdata); -bool sectionsd_getActualEPGServiceKey(const t_channel_id uniqueServiceKey, CEPGData * epgdata); - void CEpgData::GetEPGData(const t_channel_id channel_id, uint64_t id, time_t* startzeit, bool clear ) { if(clear) @@ -953,11 +946,9 @@ void CEpgData::GetEPGData(const t_channel_id channel_id, uint64_t id, time_t* st bool res; if ( id!= 0 ) - //res = g_Sectionsd->getEPGid( id, *startzeit, &epgData ); - res = sectionsd_getEPGid(id, *startzeit, &epgData); + res = CEitManager::getInstance()->getEPGid(id, *startzeit, &epgData); else - //res = g_Sectionsd->getActualEPGServiceKey(channel_id&0xFFFFFFFFFFFFULL, &epgData ); - res = sectionsd_getActualEPGServiceKey(channel_id&0xFFFFFFFFFFFFULL, &epgData ); + res = CEitManager::getInstance()->getActualEPGServiceKey(channel_id&0xFFFFFFFFFFFFULL, &epgData ); if ( res ) { @@ -1057,7 +1048,6 @@ int CEpgData::FollowScreenings (const t_channel_id /*channel_id*/, const std::st char tmpstr[256]={0}; screening_dates = screening_nodual = ""; - // alredy read: evtlist = g_Sectionsd->getEventsServiceKey( channel_id&0xFFFFFFFFFFFFULL ); for (e = followlist.begin(); e != followlist.end(); ++e) { diff --git a/src/gui/eventlist.cpp b/src/gui/eventlist.cpp index 496f545cf..141631200 100644 --- a/src/gui/eventlist.cpp +++ b/src/gui/eventlist.cpp @@ -57,6 +57,7 @@ #include #include #include +#include #include @@ -65,10 +66,6 @@ extern CRemoteControl *g_RemoteControl; /* neutrino.cpp */ extern CPictureViewer * g_PicViewer; -void sectionsd_getEventsServiceKey(t_channel_id serviceUniqueKey, CChannelEventList &eList, char search = 0, std::string search_text = ""); -bool sectionsd_getActualEPGServiceKey(const t_channel_id uniqueServiceKey, CEPGData * epgdata); -bool sectionsd_getLinkageDescriptorsUniqueKey(const event_id_t uniqueKey, CSectionsdClient::LinkageDescriptorList& descriptors); - #if 0 // sort operators bool sortById (const CChannelEvent& a, const CChannelEvent& b) @@ -151,9 +148,7 @@ bool CNeutrinoEventList::HasTimerConflicts(time_t starttime, time_t duration, ev void CNeutrinoEventList::readEvents(const t_channel_id channel_id) { - //evtlist = g_Sectionsd->getEventsServiceKey(channel_id &0xFFFFFFFFFFFFULL); - evtlist.clear(); - sectionsd_getEventsServiceKey(channel_id , evtlist); + CEitManager::getInstance()->getEventsServiceKey(channel_id , evtlist); time_t azeit=time(NULL); CChannelEventList::iterator e; @@ -161,14 +156,12 @@ void CNeutrinoEventList::readEvents(const t_channel_id channel_id) CEPGData epgData; // todo: what if there are more than one events in the Portal - //if (g_Sectionsd->getActualEPGServiceKey(channel_id&0xFFFFFFFFFFFFULL, &epgData )) - if (sectionsd_getActualEPGServiceKey(channel_id&0xFFFFFFFFFFFFULL, &epgData )) + if (CEitManager::getInstance()->getActualEPGServiceKey(channel_id&0xFFFFFFFFFFFFULL, &epgData )) { // epgData.eventID; // epgData.epg_times.startzeit; CSectionsdClient::LinkageDescriptorList linkedServices; - //if ( g_Sectionsd->getLinkageDescriptorsUniqueKey( epgData.eventID, linkedServices ) ) - if ( sectionsd_getLinkageDescriptorsUniqueKey( epgData.eventID, linkedServices ) ) + if (CEitManager::getInstance()->getLinkageDescriptorsUniqueKey( epgData.eventID, linkedServices ) ) { if ( linkedServices.size()> 1 ) { @@ -193,9 +186,7 @@ void CNeutrinoEventList::readEvents(const t_channel_id channel_id) // do not add parent events if (channel_id != channel_id2) { - //evtlist2 = g_Sectionsd->getEventsServiceKey(channel_id2); - evtlist2.clear(); - sectionsd_getEventsServiceKey(channel_id2 , evtlist2); + CEitManager::getInstance()->getEventsServiceKey(channel_id2 , evtlist2); for (unsigned int loop=0 ; loopgetEventsServiceKeySearchAdd(evtlist,m_search_channel_id & 0xFFFFFFFFFFFFULL,m_search_epg_item,m_search_keyword); - sectionsd_getEventsServiceKey(m_search_channel_id, evtlist, m_search_epg_item,m_search_keyword); + CEitManager::getInstance()->getEventsServiceKey(m_search_channel_id, evtlist, m_search_epg_item,m_search_keyword); } else if(m_search_list == SEARCH_LIST_BOUQUET) { @@ -1035,8 +1024,7 @@ bool CNeutrinoEventList::findEvents(void) for(int channel = 0; channel < channel_nr; channel++) { channel_id = bouquetList->Bouquets[m_search_bouquet_id]->channelList->getChannelFromIndex(channel)->channel_id; - //g_Sectionsd->getEventsServiceKeySearchAdd(evtlist,channel_id & 0xFFFFFFFFFFFFULL,m_search_epg_item,m_search_keyword); - sectionsd_getEventsServiceKey(channel_id, evtlist, m_search_epg_item,m_search_keyword); + CEitManager::getInstance()->getEventsServiceKey(channel_id, evtlist, m_search_epg_item,m_search_keyword); } } else if(m_search_list == SEARCH_LIST_ALL) @@ -1050,8 +1038,7 @@ bool CNeutrinoEventList::findEvents(void) for(int channel = 0; channel < channel_nr; channel++) { channel_id = bouquetList->Bouquets[bouquet]->channelList->getChannelFromIndex(channel)->channel_id; - //g_Sectionsd->getEventsServiceKeySearchAdd(evtlist,channel_id & 0xFFFFFFFFFFFFULL,m_search_epg_item,m_search_keyword); - sectionsd_getEventsServiceKey(channel_id,evtlist, m_search_epg_item,m_search_keyword); + CEitManager::getInstance()->getEventsServiceKey(channel_id,evtlist, m_search_epg_item,m_search_keyword); } } box.hide(); diff --git a/src/gui/infoviewer.cpp b/src/gui/infoviewer.cpp index 595044fc6..ab75da82b 100644 --- a/src/gui/infoviewer.cpp +++ b/src/gui/infoviewer.cpp @@ -62,11 +62,9 @@ #include #include #include +#include #include -void sectionsd_getEventsServiceKey(t_channel_id serviceUniqueKey, CChannelEventList &eList, char search = 0, std::string search_text = ""); -void sectionsd_getCurrentNextServiceKey(t_channel_id uniqueServiceKey, CSectionsdClient::responseGetCurrentNextInfoChannelID& current_next ); - extern CRemoteControl *g_RemoteControl; /* neutrino.cpp */ extern CBouquetList * bouquetList; /* neutrino.cpp */ extern CPictureViewer * g_PicViewer; @@ -386,8 +384,7 @@ void CInfoViewer::paintBackground(int col_NumBox) void CInfoViewer::show_current_next(bool new_chan, int epgpos) { - //info_CurrentNext = getEPG (channel_id); - sectionsd_getCurrentNextServiceKey(channel_id & 0xFFFFFFFFFFFFULL, info_CurrentNext); + CEitManager::getInstance()->getCurrentNextServiceKey(channel_id & 0xFFFFFFFFFFFFULL, info_CurrentNext); if (!evtlist.empty()) { if (new_chan) { for ( eli=evtlist.begin(); eli!=evtlist.end(); ++eli ) { @@ -600,9 +597,7 @@ void CInfoViewer::showTitle (const int ChanNum, const std::string & Channel, con col_NumBoxText = COL_MENUHEAD; } if ((channel_id != new_channel_id) || (evtlist.empty())) { - evtlist.clear(); - //evtlist = g_Sectionsd->getEventsServiceKey(new_channel_id & 0xFFFFFFFFFFFFULL); - sectionsd_getEventsServiceKey(new_channel_id, evtlist); + CEitManager::getInstance()->getEventsServiceKey(new_channel_id, evtlist); if (!evtlist.empty()) sort(evtlist.begin(),evtlist.end(), sortByDateTime); new_chan = true; @@ -1270,8 +1265,7 @@ CSectionsdClient::CurrentNextInfo CInfoViewer::getEPG (const t_channel_id for_ch { static CSectionsdClient::CurrentNextInfo oldinfo; - //g_Sectionsd->getCurrentNextServiceKey (for_channel_id & 0xFFFFFFFFFFFFULL, info); - sectionsd_getCurrentNextServiceKey(for_channel_id & 0xFFFFFFFFFFFFULL, info); + CEitManager::getInstance()->getCurrentNextServiceKey(for_channel_id & 0xFFFFFFFFFFFFULL, info); //printf("CInfoViewer::getEPG: old uniqueKey %llx new %llx\n", oldinfo.current_uniqueKey, info.current_uniqueKey); diff --git a/src/gui/osdlang_setup.cpp b/src/gui/osdlang_setup.cpp index 5e07e270c..7aec3d37d 100644 --- a/src/gui/osdlang_setup.cpp +++ b/src/gui/osdlang_setup.cpp @@ -50,6 +50,7 @@ #include #include +#include @@ -240,8 +241,6 @@ bool COsdLangSetup::changeNotify(const neutrino_locale_t, void *) return true; } -void sectionsd_set_languages(const std::vector& newLanguages); - bool CLangSelectNotifier::changeNotify(const neutrino_locale_t, void *) { std::vector v_languages; @@ -267,8 +266,7 @@ bool CLangSelectNotifier::changeNotify(const neutrino_locale_t, void *) } } } - //if(found) - sectionsd_set_languages(v_languages); + CEitManager::getInstance()->setLanguages(v_languages); return false; } diff --git a/src/gui/timerlist.cpp b/src/gui/timerlist.cpp index 45803538a..b5c2605c0 100644 --- a/src/gui/timerlist.cpp +++ b/src/gui/timerlist.cpp @@ -51,7 +51,6 @@ #include #include - #include #include #include @@ -69,6 +68,8 @@ #include #include +#include + extern CBouquetManager *g_bouquetManager; #include @@ -648,7 +649,6 @@ void CTimerList::hide() } } -bool sectionsd_getEPGid(const event_id_t epgID, const time_t startzeit, CEPGData * epgdata); void CTimerList::paintItem(int pos) { int ypos = y+ theight+0 + pos*fheight*2; @@ -744,8 +744,7 @@ void CTimerList::paintItem(int pos) if (timer.epgID!=0) { CEPGData epgdata; - //if (g_Sectionsd->getEPGid(timer.epgID, timer.epg_starttime, &epgdata)) - if (sectionsd_getEPGid(timer.epgID, timer.epg_starttime, &epgdata)) + if (CEitManager::getInstance()->getEPGid(timer.epgID, timer.epg_starttime, &epgdata)) { zAddData += " : "; zAddData += epgdata.title; @@ -1227,8 +1226,7 @@ bool askUserOnTimerConflict(time_t announceTime, time_t stopTime) if (it->epgID != 0) { CEPGData epgdata; - //if (g_Sectionsd->getEPGid(it->epgID, it->epg_starttime, &epgdata)) - if (sectionsd_getEPGid(it->epgID, it->epg_starttime, &epgdata)) + if (CEitManager::getInstance()->getEPGid(it->epgID, it->epg_starttime, &epgdata)) { timerbuf += ":"; timerbuf += epgdata.title; diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 3ea3be5cf..3b333b3e7 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -140,12 +140,6 @@ void * nhttpd_main_thread(void *data); static pthread_t nhttpd_thread ; //#define DISABLE_SECTIONSD -extern int sectionsd_stop; -#ifndef DISABLE_SECTIONSD -//static pthread_t sections_thread; -#endif -void * sectionsd_main_thread(void *data); -extern bool timeset; // sectionsd extern cVideo * videoDecoder; extern cDemux *videoDemux; @@ -1575,9 +1569,6 @@ void CNeutrinoApp::SetupTiming() } -bool sectionsd_getEPGid(const event_id_t epgID, const time_t startzeit, CEPGData * epgdata); -bool sectionsd_isReady(void); - #define LCD_UPDATE_TIME_RADIO_MODE (6 * 1000 * 1000) #define LCD_UPDATE_TIME_TV_MODE (60 * 1000 * 1000) @@ -2669,8 +2660,7 @@ _repeat: if(timer.epgID!=0) { CEPGData epgdata; zAddData += " :\n"; - //if (g_Sectionsd->getEPGid(timer.epgID, timer.epg_starttime, &epgdata)) - if (sectionsd_getEPGid(timer.epgID, timer.epg_starttime, &epgdata)) { + if (CEitManager::getInstance()->getEPGid(timer.epgID, timer.epg_starttime, &epgdata)) { zAddData += epgdata.title; } else if(strlen(timer.epgTitle)!=0) { @@ -3550,7 +3540,6 @@ bool CNeutrinoApp::changeNotify(const neutrino_locale_t OptionName, void * /*dat void stop_daemons(bool stopall) { streamts_stop = 1; - sectionsd_stop = 1; dvbsub_close(); tuxtxt_stop(); tuxtxt_close(); @@ -3568,7 +3557,6 @@ void stop_daemons(bool stopall) } #ifndef DISABLE_SECTIONSD printf("sectionsd shutdown\n"); - //pthread_join(sections_thread, NULL); CEitManager::getInstance()->Stop(); printf("sectionsd shutdown done\n"); #endif diff --git a/src/nhttpd/tuxboxapi/coolstream/controlapi.cpp b/src/nhttpd/tuxboxapi/coolstream/controlapi.cpp index e53469824..f5e496eaa 100644 --- a/src/nhttpd/tuxboxapi/coolstream/controlapi.cpp +++ b/src/nhttpd/tuxboxapi/coolstream/controlapi.cpp @@ -29,6 +29,7 @@ #include #include #include +#include #include #include #include @@ -45,13 +46,6 @@ #include "neutrinoapi.h" #include "controlapi.h" -bool sectionsd_getEPGidShort(event_id_t epgID, CShortEPGData * epgdata); -bool sectionsd_getEPGid(const event_id_t epgID, const time_t startzeit, CEPGData * epgdata); -void sectionsd_getEventsServiceKey(t_channel_id serviceUniqueKey, CChannelEventList &eList, char search = 0, std::string search_text = ""); -void sectionsd_getCurrentNextServiceKey(t_channel_id uniqueServiceKey, CSectionsdClient::responseGetCurrentNextInfoChannelID& current_next ); -bool sectionsd_getLinkageDescriptorsUniqueKey(const event_id_t uniqueKey, CSectionsdClient::LinkageDescriptorList& descriptors); -bool sectionsd_getComponentTagsUniqueKey(const event_id_t uniqueKey, CSectionsdClient::ComponentTagList& tags); - extern CPlugins *g_PluginList;//for relodplugins extern CBouquetManager *g_bouquetManager; #define EVENTDEV "/dev/input/input0" @@ -899,7 +893,7 @@ std::string CControlAPI::_GetBouquetActualEPGItem(CyhookHandler *hh, CZapitChann if (event) { if (event->duration > 0) percentage = 100 * (time(NULL) - event->startTime) / event->duration; - sectionsd_getCurrentNextServiceKey(channel->channel_id & 0xFFFFFFFFFFFFULL, currentNextInfo); + CEitManager::getInstance()->getCurrentNextServiceKey(channel->channel_id & 0xFFFFFFFFFFFFULL, currentNextInfo); timestr = timeString(event->startTime); firstEPG += hh->outPair("startTime", timestr, true); @@ -1198,7 +1192,7 @@ void CControlAPI::GetBouquetsCGI(CyhookHandler *hh) { std::string CControlAPI::channelEPGformated(CyhookHandler *hh, int bouquetnr, t_channel_id channel_id, int max, long stoptime) { std::string result = ""; std::string channelData = ""; - sectionsd_getEventsServiceKey(channel_id, NeutrinoAPI->eList); + CEitManager::getInstance()->getEventsServiceKey(channel_id, NeutrinoAPI->eList); channelData += hh->outPair("channel_id", string_printf(PRINTF_CHANNEL_ID_TYPE_NO_LEADING_ZEROS, channel_id), true); channelData += hh->outPair("channel_short_id", string_printf(PRINTF_CHANNEL_ID_TYPE_NO_LEADING_ZEROS, channel_id & 0xFFFFFFFFFFFFULL), true); channelData += hh->outPair("channel_name", hh->outValue(NeutrinoAPI->GetServiceName(channel_id)), false); @@ -1232,7 +1226,7 @@ std::string CControlAPI::channelEPGformated(CyhookHandler *hh, int bouquetnr, t_ if (!(hh->ParamList["details"].empty())) { CShortEPGData epg; - if (sectionsd_getEPGidShort(eventIterator->eventID, &epg)) { + if (CEitManager::getInstance()->getEPGidShort(eventIterator->eventID, &epg)) { prog += hh->outPair("info1", hh->outValue(epg.info1), true); prog += hh->outPair("info2", hh->outValue(epg.info2), true); } @@ -1389,7 +1383,7 @@ void CControlAPI::EpgCGI(CyhookHandler *hh) { uint64_t epgid; sscanf(hh->ParamList["eventid"].c_str(), "%llu", &epgid); CShortEPGData epg; - if (sectionsd_getEPGidShort(epgid, &epg)) { + if (CEitManager::getInstance()->getEPGidShort(epgid, &epg)) { hh->WriteLn(epg.title); hh->WriteLn(epg.info1); hh->WriteLn(epg.info2); @@ -1402,7 +1396,7 @@ void CControlAPI::EpgCGI(CyhookHandler *hh) { sscanf(hh->ParamList["fskid"].c_str(), "%llu", &epgid); sscanf(hh->ParamList["starttime"].c_str(), "%lu", &starttime); CEPGData longepg; - if (sectionsd_getEPGid(epgid, starttime, &longepg)) { + if (CEitManager::getInstance()->getEPGid(epgid, starttime, &longepg)) { hh->printf("%u\n", longepg.fsk); return; } @@ -1413,11 +1407,11 @@ void CControlAPI::EpgCGI(CyhookHandler *hh) { else if (!(hh->ParamList["id"].empty())) { t_channel_id channel_id; sscanf(hh->ParamList["id"].c_str(), SCANF_CHANNEL_ID_TYPE, &channel_id); - sectionsd_getEventsServiceKey(channel_id, NeutrinoAPI->eList); + CEitManager::getInstance()->getEventsServiceKey(channel_id, NeutrinoAPI->eList); CChannelEventList::iterator eventIterator; for (eventIterator = NeutrinoAPI->eList.begin(); eventIterator != NeutrinoAPI->eList.end(); ++eventIterator) { CShortEPGData epg; - if (sectionsd_getEPGidShort(eventIterator->eventID, &epg)) { + if (CEitManager::getInstance()->getEPGidShort(eventIterator->eventID, &epg)) { hh->printf("%llu %ld %d\n", eventIterator->eventID, eventIterator->startTime, eventIterator->duration); hh->printf("%s\n", epg.title.c_str()); hh->printf("%s\n", epg.info1.c_str()); @@ -1508,8 +1502,8 @@ void CControlAPI::ZaptoCGI(CyhookHandler *hh) t_channel_id current_channel = NeutrinoAPI->Zapit->getCurrentServiceID(); CSectionsdClient::LinkageDescriptorList desc; CSectionsdClient::responseGetCurrentNextInfoChannelID currentNextInfo; - sectionsd_getCurrentNextServiceKey(current_channel&0xFFFFFFFFFFFFULL, currentNextInfo); - if (sectionsd_getLinkageDescriptorsUniqueKey(currentNextInfo.current_uniqueKey,desc)) + CEitManager::getInstance()->getCurrentNextServiceKey(current_channel&0xFFFFFFFFFFFFULL, currentNextInfo); + if (CEitManager::getInstance()->getLinkageDescriptorsUniqueKey(currentNextInfo.current_uniqueKey,desc)) { for(unsigned int i=0; i< desc.size(); i++) { @@ -1583,7 +1577,7 @@ void CControlAPI::LCDAction(CyhookHandler *hh) void CControlAPI::SendEventList(CyhookHandler *hh, t_channel_id channel_id) { int pos = 0; - sectionsd_getEventsServiceKey(channel_id, NeutrinoAPI->eList); + CEitManager::getInstance()->getEventsServiceKey(channel_id, NeutrinoAPI->eList); CChannelEventList::iterator eventIterator; for (eventIterator = NeutrinoAPI->eList.begin(); eventIterator != NeutrinoAPI->eList.end(); ++eventIterator, pos++) @@ -1648,8 +1642,8 @@ void CControlAPI::SendAllCurrentVAPid(CyhookHandler *hh) t_channel_id current_channel = NeutrinoAPI->Zapit->getCurrentServiceID(); CSectionsdClient::responseGetCurrentNextInfoChannelID currentNextInfo; - sectionsd_getCurrentNextServiceKey(current_channel&0xFFFFFFFFFFFFULL, currentNextInfo); - if (sectionsd_getComponentTagsUniqueKey(currentNextInfo.current_uniqueKey,tags)) + CEitManager::getInstance()->getCurrentNextServiceKey(current_channel&0xFFFFFFFFFFFFULL, currentNextInfo); + if (CEitManager::getInstance()->getComponentTagsUniqueKey(currentNextInfo.current_uniqueKey,tags)) { for (unsigned int i=0; i< tags.size(); i++) { @@ -1896,7 +1890,7 @@ void CControlAPI::SendTimersXML(CyhookHandler *hh) std::string title = timer->epgTitle; if(timer->epgID!=0) { CEPGData epgdata; - if (sectionsd_getEPGid(timer->epgID, timer->epg_starttime, &epgdata)) + if (CEitManager::getInstance()->getEPGid(timer->epgID, timer->epg_starttime, &epgdata)) title = epgdata.title; } diff --git a/src/nhttpd/tuxboxapi/coolstream/neutrinoapi.cpp b/src/nhttpd/tuxboxapi/coolstream/neutrinoapi.cpp index ddef565df..2ca05cfd4 100644 --- a/src/nhttpd/tuxboxapi/coolstream/neutrinoapi.cpp +++ b/src/nhttpd/tuxboxapi/coolstream/neutrinoapi.cpp @@ -39,6 +39,7 @@ #include #include #include +#include extern CBouquetManager *g_bouquetManager; extern CFrontend * frontend; @@ -54,8 +55,6 @@ extern CZapitClient::SatelliteList satList; // nhttpd #include "neutrinoapi.h" -void sectionsd_getChannelEvents(CChannelEventList &eList, const bool tv_mode = true, t_channel_id *chidlist = NULL, int clen = 0); - //============================================================================= // No Class Helpers //============================================================================= @@ -259,7 +258,7 @@ bool CNeutrinoAPI::GetStreamInfo(int bitInfo[10]) bool CNeutrinoAPI::GetChannelEvents(void) { - sectionsd_getChannelEvents(eList); + CEitManager::getInstance()->getChannelEvents(eList); CChannelEventList::iterator eventIterator; ChannelListEvents.clear(); diff --git a/src/nhttpd/tuxboxapi/coolstream/neutrinoyparser.cpp b/src/nhttpd/tuxboxapi/coolstream/neutrinoyparser.cpp index a7b5d0653..0ce62cf6d 100644 --- a/src/nhttpd/tuxboxapi/coolstream/neutrinoyparser.cpp +++ b/src/nhttpd/tuxboxapi/coolstream/neutrinoyparser.cpp @@ -29,16 +29,12 @@ #include #include #include +#include #include #include extern CBouquetManager *g_bouquetManager; -bool sectionsd_getNVODTimesServiceKey(const t_channel_id uniqueServiceKey, CSectionsdClient::NVODTimesList& nvod_list); -void sectionsd_getCurrentNextServiceKey(t_channel_id uniqueServiceKey, CSectionsdClient::responseGetCurrentNextInfoChannelID& current_next ); -bool sectionsd_getComponentTagsUniqueKey(const event_id_t uniqueKey, CSectionsdClient::ComponentTagList& tags); -bool sectionsd_getActualEPGServiceKey(const t_channel_id uniqueServiceKey, CEPGData * epgdata); -bool sectionsd_getEPGid(const event_id_t epgID, const time_t startzeit, CEPGData * epgdata); //============================================================================= // Constructor & Destructor & Initialization //============================================================================= @@ -291,7 +287,7 @@ std::string CNeutrinoYParser::func_get_channels_as_dropdown(CyhookHandler *, st sprintf(id,PRINTF_CHANNEL_ID_TYPE_NO_LEADING_ZEROS,channel->channel_id); std::string _sid = std::string(id); sel = (_sid == achannel_id) ? "selected=\"selected\"" : ""; - sectionsd_getActualEPGServiceKey(channel->channel_id&0xFFFFFFFFFFFFULL, &epg); + CEitManager::getInstance()->getActualEPGServiceKey(channel->channel_id&0xFFFFFFFFFFFFULL, &epg); sprintf(buf,"\n", channel->channel_id, sel.c_str(), channel->getName().c_str(),epg.title.c_str()); yresult += buf; } @@ -396,7 +392,7 @@ std::string CNeutrinoYParser::func_get_bouquets_with_epg(CyhookHandler *hh, std: if (channel->getServiceType() == ST_NVOD_REFERENCE_SERVICE) { CSectionsdClient::NVODTimesList nvod_list; - if (sectionsd_getNVODTimesServiceKey(channel->channel_id&0xFFFFFFFFFFFFULL, nvod_list)) + if (CEitManager::getInstance()->getNVODTimesServiceKey(channel->channel_id&0xFFFFFFFFFFFFULL, nvod_list)) { CZapitClient::subServiceList subServiceList; @@ -413,7 +409,7 @@ std::string CNeutrinoYParser::func_get_bouquets_with_epg(CyhookHandler *hh, std: t_channel_id channel_id = CREATE_CHANNEL_ID(cmd.service_id, cmd.original_network_id, cmd.transport_stream_id); timestr = timeString(ni->zeit.startzeit); // FIXME: time is wrong (at least on little endian)! - sectionsd_getActualEPGServiceKey(channel_id&0xFFFFFFFFFFFFULL, &epg); // FIXME: der scheissendreck geht nit!!! + CEitManager::getInstance()->getActualEPGServiceKey(channel_id&0xFFFFFFFFFFFFULL, &epg); // FIXME: der scheissendreck geht nit!!! yresult += string_printf("
    \n", classname); yresult += string_printf("\n", classname); yresult += string_printf("
    + {=L:info.your_version=}

    {=ini-get:Y_Version.txt;version=}
    @@ -30,7 +26,7 @@ function check_updates() {=ini-get:Y_Version.txt;info=}

    + {=L:info.actual_version=}

    {=ini-get:/tmp/version.txt;version=}
    diff --git a/src/nhttpd/web/Y_Version.txt b/src/nhttpd/web/Y_Version.txt index 862e52883..29d352368 100644 --- a/src/nhttpd/web/Y_Version.txt +++ b/src/nhttpd/web/Y_Version.txt @@ -1,4 +1,4 @@ -version=2.8.0.26 +version=2.8.0.27 date=25.07.2012 type=Release info=Port Coolstream diff --git a/src/nhttpd/web/scripts/Y_Tools.sh b/src/nhttpd/web/scripts/Y_Tools.sh index 921e8669c..bd81a8b0e 100755 --- a/src/nhttpd/web/scripts/Y_Tools.sh +++ b/src/nhttpd/web/scripts/Y_Tools.sh @@ -548,8 +548,7 @@ case "$1" in fbshot) shift 1; do_fbshot $* ;; fbshot_clear) do_fbshot_clear ;; tvshot_clear) rm -f /tmp/screenshot.png ;; - get_update_version_dbox) wget -O /tmp/version.txt "http://www.yjogol.com/download/Y_Version.txt" ;; - get_update_version_coolstream) wget -O /tmp/version.txt "http://www.yjogol.com/download/coolstream/Y_Version.txt" ;; + get_update_version) wget -O /tmp/version.txt "http://git.coolstreamtech.de/?p=cst-public-gui-neutrino.git;a=blob_plain;f=src/nhttpd/web/Y_Version.txt" ;; settings_backup_restore) shift 1; do_settings_backup_restore $* ;; exec_cmd) shift 1; $* ;; automount_list) shift 1; do_automount_list $* ;; From 03132b1f95dc2bc4e963a62aa2a1a3a3d85d7748 Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Thu, 26 Jul 2012 21:45:15 +0200 Subject: [PATCH 155/317] - mod_yparser: add a command to create comments --- src/nhttpd/yhttpd_mods/mod_yparser.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/nhttpd/yhttpd_mods/mod_yparser.cpp b/src/nhttpd/yhttpd_mods/mod_yparser.cpp index fc8a5c48b..9ad6eb7e6 100644 --- a/src/nhttpd/yhttpd_mods/mod_yparser.cpp +++ b/src/nhttpd/yhttpd_mods/mod_yparser.cpp @@ -353,6 +353,7 @@ std::string CyParser::cgi_cmd_parsing(CyhookHandler *hh, //----------------------------------------------------------------------------- // ycgi : cmd executing +// comment:~ // script: // include: // func: (funcname to be implemented in CyParser::YWeb_cgi_func) @@ -377,7 +378,13 @@ std::string CyParser::YWeb_cgi_cmd(CyhookHandler *hh, std::string ycmd) { if (ySplitString(ycmd, ":", ycmd_type, ycmd_name)) { if (ycmd_type == "L") yresult = CLanguage::getInstance()->getTranslation(ycmd_name); - else if (ycmd_type == "script") + else if (ycmd_type == "comment") { + std::string comment_y, comment_html; + if (ySplitString(ycmd_name, "~", comment_y, comment_html)) { + if (comment_html != "") + yresult = ""; + } + } else if (ycmd_type == "script") yresult = YexecuteScript(hh, ycmd_name); else if (ycmd_type == "if-empty") { std::string if_value, if_then, if_else; From f7e4caac7aa6fd1e6f7399002fed06c210ca40ca Mon Sep 17 00:00:00 2001 From: satbaby Date: Mon, 30 Jul 2012 19:41:30 +0200 Subject: [PATCH 156/317] -fix CEC (timer record) --- src/neutrino.cpp | 41 +++++++++++++++++++++++++++++++++++-- src/timerd/timerd.cpp | 3 ++- src/timerd/timermanager.cpp | 35 ------------------------------- src/timerd/timermanager.h | 2 +- 4 files changed, 42 insertions(+), 39 deletions(-) diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 69c0ff441..113f9c0f9 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -1719,7 +1719,42 @@ void CNeutrinoApp::InitSectiondClient() g_Sectionsd->registerEvent(CSectionsdClient::EVT_WRITE_SI_FINISHED, 222, NEUTRINO_UDS_NAME); } -extern bool timer_wakeup;//timermanager.cpp +#if HAVE_COOL_HARDWARE +#include +#endif + +void wake_up( bool &wakeup) +{ +#if HAVE_COOL_HARDWARE +#ifndef FP_IOCTL_CLEAR_WAKEUP_TIMER +#define FP_IOCTL_CLEAR_WAKEUP_TIMER 10 +#endif + +#define FP_IOCTL_SET_RTC 0x101 +#define FP_IOCTL_GET_RTC 0x102 + + int fd = open("/dev/display", O_RDONLY); + if (fd < 0) { + perror("/dev/display"); + } else { + wakeup_data_t wk; + memset(&wk, 0, sizeof(wk)); + int ret = ioctl(fd, IOC_VFD_GET_WAKEUP, &wk); + if(ret >= 0) + wakeup = ((wk.source == WAKEUP_SOURCE_TIMER) /* || (wk.source == WAKEUP_SOURCE_PWLOST)*/); + close(fd); + } + printf("[timerd] wakeup from standby: %s\n", wakeup ? "yes" : "no"); + if(!wakeup){ + const char *neutrino_leave_deepstandby_script = CONFIGDIR "/deepstandby.off"; + printf("[%s] executing %s\n",__FILE__ ,neutrino_leave_deepstandby_script); + if (system(neutrino_leave_deepstandby_script) != 0) + perror( neutrino_leave_deepstandby_script ); + } +#endif + +} + int CNeutrinoApp::run(int argc, char **argv) { CmdParser(argc, argv); @@ -1788,7 +1823,9 @@ TIMER_START(); g_Zapit->setStandby(false); //timer start - pthread_create (&timer_thread, NULL, timerd_main_thread, (void *) NULL); + bool timer_wakeup = false; + wake_up( timer_wakeup ); + pthread_create (&timer_thread, NULL, timerd_main_thread, (void *) timer_wakeup); init_cec_setting = true; if(!(g_settings.shutdown_timer_record_type && timer_wakeup && g_settings.hdmi_cec_mode)){ diff --git a/src/timerd/timerd.cpp b/src/timerd/timerd.cpp index 4fa540ce2..db1e2c5da 100644 --- a/src/timerd/timerd.cpp +++ b/src/timerd/timerd.cpp @@ -461,7 +461,7 @@ bool timerd_parse_command(CBasicMessage::Header &rmsg, int connfd) return true; } -int timerd_main_thread(void */*data*/) +int timerd_main_thread(void *data) { pthread_setcanceltype (PTHREAD_CANCEL_ASYNCHRONOUS, 0); @@ -474,6 +474,7 @@ int timerd_main_thread(void */*data*/) // Start timer thread CTimerManager::getInstance(); + CTimerManager::getInstance()->wakeup =(bool)data; timerd_server.run(timerd_parse_command, CTimerdMsg::ACTVERSION); printf("timerd shutdown complete\n"); diff --git a/src/timerd/timermanager.cpp b/src/timerd/timermanager.cpp index d02c93644..9a34d4f89 100644 --- a/src/timerd/timermanager.cpp +++ b/src/timerd/timermanager.cpp @@ -33,9 +33,6 @@ #include #include #include -#if HAVE_COOL_HARDWARE -#include -#endif #include #include @@ -43,17 +40,10 @@ #include "debug.h" #include "timermanager.h" -#ifndef FP_IOCTL_CLEAR_WAKEUP_TIMER -#define FP_IOCTL_CLEAR_WAKEUP_TIMER 10 -#endif - -#define FP_IOCTL_SET_RTC 0x101 -#define FP_IOCTL_GET_RTC 0x102 extern bool timeset; time_t timer_minutes; bool timer_is_rec; -bool timer_wakeup; static pthread_mutex_t tm_eventsMutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP; void sectionsd_getEventsServiceKey(t_channel_id serviceUniqueKey, CChannelEventList &eList, char search = 0, std::string search_text = ""); @@ -72,31 +62,6 @@ void CTimerManager::Init(void) m_saveEvents = false; m_isTimeSet = false; wakeup = 0; - timer_wakeup = false; -#if HAVE_COOL_HARDWARE - int fd = open("/dev/display", O_RDONLY); - - if (fd < 0) { - perror("/dev/display"); - } else { - wakeup_data_t wk; - memset(&wk, 0, sizeof(wk)); - int ret = ioctl(fd, IOC_VFD_GET_WAKEUP, &wk); - if(ret >= 0) - wakeup = ((wk.source == WAKEUP_SOURCE_TIMER) /* || (wk.source == WAKEUP_SOURCE_PWLOST)*/); - close(fd); - } - printf("[timerd] wakeup from standby: %s\n", wakeup ? "yes" : "no"); - if(wakeup){ - creat("/tmp/.wakeup", 0); - timer_wakeup = true; - }else{ - const char *neutrino_leave_deepstandby_script = CONFIGDIR "/deepstandby.off"; - printf("[%s] executing %s\n",__FILE__ ,neutrino_leave_deepstandby_script); - if (system(neutrino_leave_deepstandby_script) != 0) - perror( neutrino_leave_deepstandby_script ); - } -#endif loadRecordingSafety(); //thread starten diff --git a/src/timerd/timermanager.h b/src/timerd/timermanager.h index 6fc29e661..db2224311 100644 --- a/src/timerd/timermanager.h +++ b/src/timerd/timermanager.h @@ -219,13 +219,13 @@ private: bool m_isTimeSet; int m_extraTimeStart; int m_extraTimeEnd; - char wakeup; CTimerManager(); static void* timerThread(void *arg); CTimerEvent *nextEvent(); public: + bool wakeup; static CTimerManager* getInstance(); From 0229887ac0d104953235e20b60ad64d12a1a941e Mon Sep 17 00:00:00 2001 From: satbaby Date: Mon, 30 Jul 2012 23:13:59 +0200 Subject: [PATCH 157/317] record.cpp-fix possible segfalt --- src/driver/record.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/driver/record.cpp b/src/driver/record.cpp index 507c23677..5b20ad938 100644 --- a/src/driver/record.cpp +++ b/src/driver/record.cpp @@ -295,7 +295,7 @@ bool CRecordInstance::Update() EPG_AUDIO_PIDS audio_pids; audio_pids.epgAudioPid = allpids.APIDs[i].pid; - audio_pids.epgAudioPidName = g_RemoteControl->current_PIDs.APIDs[i].desc; + audio_pids.epgAudioPidName = g_RemoteControl->current_PIDs.APIDs.empty() ? allpids.APIDs[i].desc : g_RemoteControl->current_PIDs.APIDs[i].desc; audio_pids.atype = allpids.APIDs[i].is_ac3 ? 1 : allpids.APIDs[i].is_aac ? 5 : 0; audio_pids.selected = 0; recMovieInfo->audioPids.push_back(audio_pids); @@ -547,7 +547,7 @@ void CRecordInstance::FillMovieInfo(CZapitChannel * channel, APIDList & apid_lis for(it = apid_list.begin(); it != apid_list.end(); ++it) { if(allpids.APIDs[i].pid == it->apid) { audio_pids.epgAudioPid = allpids.APIDs[i].pid; - audio_pids.epgAudioPidName = g_RemoteControl->current_PIDs.APIDs[i].desc; + audio_pids.epgAudioPidName = g_RemoteControl->current_PIDs.APIDs.empty() ? allpids.APIDs[i].desc : g_RemoteControl->current_PIDs.APIDs[i].desc; audio_pids.atype = allpids.APIDs[i].is_ac3 ? 1 : allpids.APIDs[i].is_aac ? 5 : 0; audio_pids.selected = (audio_pids.epgAudioPid == channel->getAudioPid()) ? 1 : 0; recMovieInfo->audioPids.push_back(audio_pids); @@ -558,7 +558,7 @@ void CRecordInstance::FillMovieInfo(CZapitChannel * channel, APIDList & apid_lis if(recMovieInfo->audioPids.empty() && !allpids.APIDs.empty()) { int i = 0; audio_pids.epgAudioPid = allpids.APIDs[i].pid; - audio_pids.epgAudioPidName = g_RemoteControl->current_PIDs.APIDs[i].desc; + audio_pids.epgAudioPidName = g_RemoteControl->current_PIDs.APIDs.empty() ? allpids.APIDs[i].desc : g_RemoteControl->current_PIDs.APIDs[i].desc; audio_pids.atype = allpids.APIDs[i].is_ac3 ? 1 : allpids.APIDs[i].is_aac ? 5 : 0; audio_pids.selected = 1; recMovieInfo->audioPids.push_back(audio_pids); From 77f249c249bb79952055258b4e020cf460ebda87 Mon Sep 17 00:00:00 2001 From: "[CST] Micha" Date: Tue, 31 Jul 2012 06:56:03 +0000 Subject: [PATCH 158/317] added CST laboratory cable headend as cable provider --- data/cables.xml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/data/cables.xml b/data/cables.xml index 909d4293f..40e003c49 100644 --- a/data/cables.xml +++ b/data/cables.xml @@ -1338,4 +1338,20 @@ + + + + + + + + + + + + + + + + From b7cc224fa234531574455fa61abeb5ac9bed7652 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Tue, 31 Jul 2012 18:12:43 +0400 Subject: [PATCH 159/317] zapit/include/zapit/satconfig.h: add cable NID struct member --- src/zapit/include/zapit/satconfig.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/zapit/include/zapit/satconfig.h b/src/zapit/include/zapit/satconfig.h index b5bac4989..28921dee5 100644 --- a/src/zapit/include/zapit/satconfig.h +++ b/src/zapit/include/zapit/satconfig.h @@ -37,6 +37,7 @@ typedef struct sat_config { int have_channels; int input; int configured; + int cable_nid; } sat_config_t; typedef enum diseqc_cmd_order { From 066cdd0e278c31da7214a9d51e49b73e3ec6050f Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Tue, 31 Jul 2012 18:13:21 +0400 Subject: [PATCH 160/317] zapit/src/getservices.cpp: load cable NID from cables.xml --- src/zapit/src/getservices.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/zapit/src/getservices.cpp b/src/zapit/src/getservices.cpp index 12ce8c80d..a71235695 100644 --- a/src/zapit/src/getservices.cpp +++ b/src/zapit/src/getservices.cpp @@ -580,6 +580,7 @@ bool CServiceManager::InitSatPosition(t_satellite_position position, char * name satellitePositions[position].use_usals = 0; satellitePositions[position].input = 0; satellitePositions[position].configured = 0; + satellitePositions[position].cable_nid = 0; if(name) satellitePositions[position].name = name; return true; @@ -624,6 +625,7 @@ bool CServiceManager::LoadServices(bool only_current) } else if(!(strcmp(xmlGetName(search), "cable"))) { char * name = xmlGetAttribute(search, "name"); InitSatPosition(position, name); + satellitePositions[position].cable_nid = xmlGetNumericAttribute(search, "nid", 0); } ParseSatTransponders(frontendType, search, position); position++; From 14a920a196dc57674524d9bec1855baf22097af4 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Tue, 31 Jul 2012 18:14:05 +0400 Subject: [PATCH 161/317] zapit/include/zapit/scan.h: add SCAN_LOGICAL_HD flag --- src/zapit/include/zapit/scan.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/zapit/include/zapit/scan.h b/src/zapit/include/zapit/scan.h index 674ed94f1..80678f460 100644 --- a/src/zapit/include/zapit/scan.h +++ b/src/zapit/include/zapit/scan.h @@ -54,7 +54,8 @@ class CServiceScan : public OpenThreads::Thread SCAN_RADIO = 0x40, SCAN_TVRADIO = 0x60, SCAN_DATA = 0x80, - SCAN_ALL = 0xE0 + SCAN_ALL = 0xE0, + SCAN_LOGICAL_HD = 0x100, } scan_flags_t; private: From fa14f84333a1271642b89c2838dbef8dedf96d9f Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Tue, 31 Jul 2012 18:15:08 +0400 Subject: [PATCH 162/317] zapit/src/scan.cpp: use SCAN_LOGICAL_HD flag to prefer HD channel numbers --- src/zapit/src/scan.cpp | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/zapit/src/scan.cpp b/src/zapit/src/scan.cpp index b7df5e27c..991003980 100644 --- a/src/zapit/src/scan.cpp +++ b/src/zapit/src/scan.cpp @@ -321,7 +321,7 @@ _repeat: if((flags & SCAN_NIT) && AddFromNit()) goto _repeat; - if (flags & (SCAN_NIT/*|SCAN_LOGICAL_NUMBERS*/) && !nit_logical_map.empty()) { + if ((flags & SCAN_LOGICAL_NUMBERS /*(SCAN_NIT|SCAN_LOGICAL_NUMBERS)*/) && !nit_logical_map.empty()) { std::string pname = networkName; INFO("network [%s] %d logical channels (%d hd)\n", pname.c_str(), nit_logical_map.size(), nit_hd_logical_map.size()); g_bouquetManager->loadBouquets(true); @@ -333,13 +333,15 @@ _repeat: else bouquet = g_bouquetManager->Bouquets[bouquetId]; - for(channel_number_map_t::iterator cit = nit_hd_logical_map.begin(); cit != nit_hd_logical_map.end(); ++cit) { - //nit_logical_map.erase(cit->first); - CZapitChannel * channel = CServiceManager::getInstance()->FindChannel48(cit->first); - if (channel) { - channel->number = cit->second; - if (!bouquet->getChannelByChannelID(channel->getChannelID())) - bouquet->addService(channel); + if (flags & SCAN_LOGICAL_HD) { + for(channel_number_map_t::iterator cit = nit_hd_logical_map.begin(); cit != nit_hd_logical_map.end(); ++cit) { + //nit_logical_map.erase(cit->first); + CZapitChannel * channel = CServiceManager::getInstance()->FindChannel48(cit->first); + if (channel) { + channel->number = cit->second; + if (!bouquet->getChannelByChannelID(channel->getChannelID())) + bouquet->addService(channel); + } } } for(channel_number_map_t::iterator cit = nit_logical_map.begin(); cit != nit_logical_map.end(); ++cit) { From 8ca988725c060f2bf2a25885f2999aa4f8da1d12 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Tue, 31 Jul 2012 18:16:11 +0400 Subject: [PATCH 163/317] system/settings.cpp: add scan_logical_hd option, with 1 as default --- src/system/settings.cpp | 2 ++ src/system/settings.h | 1 + 2 files changed, 3 insertions(+) diff --git a/src/system/settings.cpp b/src/system/settings.cpp index aa455a387..15c32b6cb 100644 --- a/src/system/settings.cpp +++ b/src/system/settings.cpp @@ -132,6 +132,7 @@ bool CScanSettings::loadSettings(const char * const fileName, const delivery_sys scan_bat = configfile.getInt32("scan_bat", 0); scan_reset_numbers = configfile.getInt32("scan_reset_numbers", 0); scan_logical_numbers = configfile.getInt32("scan_logical_numbers", 0); + scan_logical_hd = configfile.getInt32("scan_logical_hd", 1); TP_fec = configfile.getInt32("TP_fec", 1); TP_pol = configfile.getInt32("TP_pol", 0); TP_mod = configfile.getInt32("TP_mod", 3); @@ -166,6 +167,7 @@ bool CScanSettings::saveSettings(const char * const fileName) configfile.setInt32("scan_bat", scan_bat); configfile.setInt32("scan_reset_numbers", scan_reset_numbers); configfile.setInt32("scan_logical_numbers", scan_logical_numbers); + configfile.setInt32("scan_logical_hd", scan_logical_hd); configfile.setInt32("TP_fec", TP_fec); configfile.setInt32("TP_pol", TP_pol); configfile.setInt32("TP_mod", TP_mod); diff --git a/src/system/settings.h b/src/system/settings.h index 88ded2fea..d3f04a3e5 100644 --- a/src/system/settings.h +++ b/src/system/settings.h @@ -677,6 +677,7 @@ public: int scan_fta_flag; int scan_reset_numbers; int scan_logical_numbers; + int scan_logical_hd; int TP_fec; int TP_pol; int TP_mod; From f363cf7f0eec686b0110ce4135479e67ad215c27 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Tue, 31 Jul 2012 18:17:30 +0400 Subject: [PATCH 164/317] gui/widget/stringinput_ext.h: add CIntInput method to force char* value update --- src/gui/widget/stringinput_ext.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/gui/widget/stringinput_ext.h b/src/gui/widget/stringinput_ext.h index a237cf6e0..42b632391 100644 --- a/src/gui/widget/stringinput_ext.h +++ b/src/gui/widget/stringinput_ext.h @@ -226,8 +226,7 @@ class CIntInput : public CExtendedInput char* getValue() { return myValueStringOutput; } + void updateValue() { onBeforeExec(); } }; - - #endif From 88410576c34433b54d37a37284c4948be2d06d6f Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Tue, 31 Jul 2012 18:17:55 +0400 Subject: [PATCH 165/317] neutrino_menue.h: add menu ID for cable scan --- src/neutrino_menue.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/neutrino_menue.h b/src/neutrino_menue.h index 4f33e72ca..6677e080a 100644 --- a/src/neutrino_menue.h +++ b/src/neutrino_menue.h @@ -163,6 +163,7 @@ enum MN_WIDGET_ID MN_WIDGET_ID_SCAN_AUTO_SCAN_ALL, MN_WIDGET_ID_SCAN_MANUAL_SCAN, MN_WIDGET_ID_SCAN_FAST_SCAN, + MN_WIDGET_ID_SCAN_CABLE_SCAN, MN_WIDGET_ID_MAX }; From 3a3c154cd5107c2525608b573631e3c5a942e946 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Tue, 31 Jul 2012 18:19:22 +0400 Subject: [PATCH 166/317] locales: add locals for cable scan menu --- data/locale/english.locale | 5 +++++ src/system/locals.h | 5 +++++ src/system/locals_intern.h | 5 +++++ 3 files changed, 15 insertions(+) diff --git a/data/locale/english.locale b/data/locale/english.locale index e593f2351..88701d9ab 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -947,6 +947,7 @@ menu.hint_scan_autoall_select Add selected satellites to scan menu.hint_scan_auto Auto-scan selected provider menu.hint_scan_bouquet Update: add to current bouquets, erase:\nremove old bouquets, leave: dont add or change menu.hint_scan_cable Select cable network to scan +menu.hint_scan_cable_simple Cable scan with optional\nprovider channel numbering menu.hint_scan_commited Select commited input for\nthis satellite menu.hint_scan_diseqcrepeat Diseqc repeat for cascaded switches menu.hint_scan_diseqc Select diseqc switch input for\nthis satellite @@ -967,6 +968,8 @@ menu.hint_scan_lodirection Select longtitude direction menu.hint_scan_lofh High banb LNB frequency menu.hint_scan_lofl Low band LNB frequency menu.hint_scan_lofs Band switch LNB frequency +menu.hint_scan_logical Use provider's channel numbering +menu.hint_scan_logical_hd If both SD and HD channel versions present\nput HD to the top of list menu.hint_scan_longitude Enter your longtitude menu.hint_scan_manual Manual transponder scan using\nselected parameters menu.hint_scan_mod Select transponder modulation @@ -1490,6 +1493,7 @@ reset_confirm Are you sure ? reset_settings Reset settings to defaults satsetup.auto_scan_all Auto-Scan multiple Satellites satsetup.auto_scan Auto-Scan selected %s +satsetup.cable Cable scan satsetup.cable_nid Network ID satsetup.comm_input Commited input satsetup.diseqc10 DiSEqC 1.0 @@ -1521,6 +1525,7 @@ satsetup.fe_setup Setup tuner satsetup.lofh LNB High Offset satsetup.lofl LNB Low Offset satsetup.lofs LNB switch Offset +satsetup.logical_hd Prefer HD channels satsetup.logical_numbers Use logical numbers satsetup.manual_scan Manual frequency scan satsetup.minidiseqc Mini-DiSEqC diff --git a/src/system/locals.h b/src/system/locals.h index ded816293..10786c2ff 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -974,6 +974,7 @@ typedef enum LOCALE_MENU_HINT_SCAN_AUTOALL_SELECT, LOCALE_MENU_HINT_SCAN_BOUQUET, LOCALE_MENU_HINT_SCAN_CABLE, + LOCALE_MENU_HINT_SCAN_CABLE_SIMPLE, LOCALE_MENU_HINT_SCAN_COMMITED, LOCALE_MENU_HINT_SCAN_DISEQC, LOCALE_MENU_HINT_SCAN_DISEQCREPEAT, @@ -994,6 +995,8 @@ typedef enum LOCALE_MENU_HINT_SCAN_LOFH, LOCALE_MENU_HINT_SCAN_LOFL, LOCALE_MENU_HINT_SCAN_LOFS, + LOCALE_MENU_HINT_SCAN_LOGICAL, + LOCALE_MENU_HINT_SCAN_LOGICAL_HD, LOCALE_MENU_HINT_SCAN_LONGITUDE, LOCALE_MENU_HINT_SCAN_MANUAL, LOCALE_MENU_HINT_SCAN_MOD, @@ -1517,6 +1520,7 @@ typedef enum LOCALE_RESET_SETTINGS, LOCALE_SATSETUP_AUTO_SCAN, LOCALE_SATSETUP_AUTO_SCAN_ALL, + LOCALE_SATSETUP_CABLE, LOCALE_SATSETUP_CABLE_NID, LOCALE_SATSETUP_COMM_INPUT, LOCALE_SATSETUP_DISEQC, @@ -1548,6 +1552,7 @@ typedef enum LOCALE_SATSETUP_LOFH, LOCALE_SATSETUP_LOFL, LOCALE_SATSETUP_LOFS, + LOCALE_SATSETUP_LOGICAL_HD, LOCALE_SATSETUP_LOGICAL_NUMBERS, LOCALE_SATSETUP_MANUAL_SCAN, LOCALE_SATSETUP_MINIDISEQC, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index af045b09a..9421139d1 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -974,6 +974,7 @@ const char * locale_real_names[] = "menu.hint_scan_autoall_select", "menu.hint_scan_bouquet", "menu.hint_scan_cable", + "menu.hint_scan_cable_simple", "menu.hint_scan_commited", "menu.hint_scan_diseqc", "menu.hint_scan_diseqcrepeat", @@ -994,6 +995,8 @@ const char * locale_real_names[] = "menu.hint_scan_lofh", "menu.hint_scan_lofl", "menu.hint_scan_lofs", + "menu.hint_scan_logical", + "menu.hint_scan_logical_hd", "menu.hint_scan_longitude", "menu.hint_scan_manual", "menu.hint_scan_mod", @@ -1517,6 +1520,7 @@ const char * locale_real_names[] = "reset_settings", "satsetup.auto_scan", "satsetup.auto_scan_all", + "satsetup.cable", "satsetup.cable_nid", "satsetup.comm_input", "satsetup.diseqc", @@ -1548,6 +1552,7 @@ const char * locale_real_names[] = "satsetup.lofh", "satsetup.lofl", "satsetup.lofs", + "satsetup.logical_hd", "satsetup.logical_numbers", "satsetup.manual_scan", "satsetup.minidiseqc", From a0091469544c4275ffad73e27f2bff603278553f Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Tue, 31 Jul 2012 18:20:01 +0400 Subject: [PATCH 167/317] gui/scan.cpp: set SCAN_LOGICAL_HD in scan flags --- src/gui/scan.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gui/scan.cpp b/src/gui/scan.cpp index 87fd2009c..ec6c133a5 100644 --- a/src/gui/scan.cpp +++ b/src/gui/scan.cpp @@ -159,6 +159,8 @@ int CScanTs::exec(CMenuTarget* /*parent*/, const std::string & actionKey) scan_flags |= CServiceScan::SCAN_RESET_NUMBERS; if(scansettings.scan_logical_numbers) scan_flags |= CServiceScan::SCAN_LOGICAL_NUMBERS; + if(scansettings.scan_logical_hd) + scan_flags |= CServiceScan::SCAN_LOGICAL_HD; /* channel types to scan, TV/RADIO/ALL */ scan_flags |= scansettings.scanType; From 3fd7a24c89d19d758f61d136cca5987418f265d0 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Tue, 31 Jul 2012 18:28:44 +0400 Subject: [PATCH 168/317] gui/scan_setup.cpp: update NID menu item, if NID found for cable provider; add simplified cable scan menu - not tested yet --- src/gui/scan_setup.cpp | 149 +++++++++++++++++++++++++++++++++-------- src/gui/scan_setup.h | 8 ++- 2 files changed, 128 insertions(+), 29 deletions(-) diff --git a/src/gui/scan_setup.cpp b/src/gui/scan_setup.cpp index 28bc1c6f9..e1d3c62d9 100644 --- a/src/gui/scan_setup.cpp +++ b/src/gui/scan_setup.cpp @@ -45,7 +45,6 @@ #include "gui/widget/hintbox.h" #include "gui/widget/stringinput.h" -#include "gui/widget/stringinput_ext.h" #include #include @@ -221,6 +220,7 @@ CScanSetup::CScanSetup(bool wizard_mode) satSelect = NULL; frontendSetup = NULL; + nid = NULL; } CScanSetup* CScanSetup::getInstance() @@ -281,6 +281,21 @@ int CScanSetup::exec(CMenuTarget* parent, const std::string &actionKey) } //starting scan + if(actionKey=="cable") { + printf("[neutrino] CScanSetup::%s: simple cable scan\n", __FUNCTION__); + saveScanSetup(); + /* for simple cable scan, force some options */ + scansettings.scan_reset_numbers = 0; + scansettings.scan_nit_manual = 1; + scansettings.scan_fta_flag = 0; + if (scansettings.scan_logical_numbers) { + g_settings.keep_channel_numbers = 1; + CServiceManager::getInstance()->KeepNumbers(g_settings.keep_channel_numbers); + } + CScanTs scanTs; + scanTs.exec(NULL, "manual"); + return res; + } std::string scants_key[] = {"all", "manual", "test", "fast", "auto"/*doesn't exists in CScanTs!*/}; for (uint i=0; i< (sizeof(scants_key)/sizeof(scants_key[0])); i++) @@ -363,7 +378,7 @@ int CScanSetup::showScanMenu() settings->addItem(mc); //sat/provider selector - satSelect = new CMenuOptionStringChooser(satprov_locale, scansettings.satNameNoDiseqc, true, NULL, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED, true); + satSelect = new CMenuOptionStringChooser(satprov_locale, scansettings.satNameNoDiseqc, true, this, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED, true); satOnOff = new CMenuWidget(satprov_locale, NEUTRINO_ICON_SETTINGS, width); if (r_system == DVB_S) //sat @@ -376,7 +391,7 @@ int CScanSetup::showScanMenu() mf->setHint("", LOCALE_MENU_HINT_SCAN_FESETUP); settings->addItem(mf); /* add configured satellites to satSelect */ - fillSatSelect(); + fillSatSelect(satSelect); } else if (r_system == DVB_C) //cable { @@ -384,7 +399,7 @@ int CScanSetup::showScanMenu() //-------------------------------------------------------------- settings->addItem(GenericMenuSeparatorLine); //-------------------------------------------------------------- - fillCableSelect(); + fillCableSelect(satSelect); //tune timeout CMenuOptionNumberChooser * nc = new CMenuOptionNumberChooser(LOCALE_EXTRA_ZAPIT_FE_TIMEOUT, (int *)&zapitCfg.feTimeout, true, 6, 100); nc->setHint("", LOCALE_MENU_HINT_SCAN_FETIMEOUT); @@ -395,6 +410,7 @@ int CScanSetup::showScanMenu() mc->setHint("", LOCALE_MENU_HINT_SCAN_FEMODE); settings->addItem(mc); } + nid = new CIntInput(LOCALE_SATSETUP_CABLE_NID, (int&) scansettings.cable_nid, 5, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE); } //-------------------------------------------------------------- settings->addItem(new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_SCANTS_PREVERENCES_SCAN)); @@ -438,12 +454,21 @@ int CScanSetup::showScanMenu() settings->addItem(mf); #endif /*ENABLE_FASTSCAN*/ } + else if (r_system == DVB_C) //cable + { + CMenuWidget * cableScan = new CMenuWidget(LOCALE_SATSETUP_CABLE, NEUTRINO_ICON_SETTINGS, w/*width*/, MN_WIDGET_ID_SCAN_CABLE_SCAN); + addScanMenuCable(cableScan); + CMenuForwarder * fcableScan = new CMenuDForwarder(LOCALE_SATSETUP_CABLE, true, NULL, cableScan, "", CRCInput::RC_blue, NEUTRINO_ICON_BUTTON_BLUE); + fcableScan->setHint("", LOCALE_MENU_HINT_SCAN_CABLE_SIMPLE); + settings->addItem(fcableScan); + } int res = settings->exec(NULL, ""); //delete satSelect; delete satOnOff; delete settings; + delete nid; return res; } @@ -577,7 +602,7 @@ int CScanSetup::showFrontendSetup(int number) feselected = setupMenu->getSelected(); /* add configured satellites to satSelect in case they changed */ - fillSatSelect(); + fillSatSelect(satSelect); delete setupMenu; return res; @@ -635,12 +660,12 @@ int CScanSetup::showScanMenuLnbSetup() return res; } -void CScanSetup::fillSatSelect() +void CScanSetup::fillSatSelect(CMenuOptionStringChooser * select) { std::set satpos; std::set::iterator tmpit; - satSelect->removeOptions(); + select->removeOptions(); satOnOff->resetWidget(true); satOnOff->addIntroItems(); @@ -654,7 +679,7 @@ void CScanSetup::fillSatSelect() tmpit = satpos.find(sit->first); if(sit->second.configured && tmpit == satpos.end()) { std::string satname = CServiceManager::getInstance()->GetSatelliteName(sit->first); - satSelect->addOption(satname.c_str()); + select->addOption(satname.c_str()); satpos.insert(sit->first); if (!sfound && strcmp(scansettings.satNameNoDiseqc, satname.c_str()) == 0) @@ -681,7 +706,7 @@ void CScanSetup::fillSatSelect() } //init cable provider menu -void CScanSetup::fillCableSelect() +void CScanSetup::fillCableSelect(CMenuOptionStringChooser * select) { printf("[neutrino] CScanSetup call %s...\n", __FUNCTION__); //don't misunderstand the name "satSelect", in this context it's actually for cable providers @@ -690,7 +715,7 @@ void CScanSetup::fillCableSelect() for (sat_iterator_t sit = satmap.begin(); sit != satmap.end(); sit++) { printf("Adding cable menu for %s position %d\n", sit->second.name.c_str(), sit->first); - satSelect->addOption(sit->second.name.c_str()); + select->addOption(sit->second.name.c_str()); if (!sfound && strcmp(scansettings.satNameNoDiseqc, sit->second.name.c_str()) == 0) sfound = true; @@ -808,8 +833,11 @@ void CScanSetup::addScanMenuManualScan(CMenuWidget *manual_Scan) //---------------------------------------------------------------------- manual_Scan->addItem(satSelect); if (r_system == DVB_C) { //cable +#if 0 CIntInput* nid = new CIntInput(LOCALE_SATSETUP_CABLE_NID, (int&) scansettings.cable_nid, 5, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE); mf = new CMenuDForwarder(LOCALE_SATSETUP_CABLE_NID, true, nid->getValue(), nid); +#endif + mf = new CMenuForwarder(LOCALE_SATSETUP_CABLE_NID, true, nid->getValue(), nid); mf->setHint("", LOCALE_MENU_HINT_SCAN_NID); manual_Scan->addItem(mf); } @@ -901,8 +929,11 @@ void CScanSetup::addScanMenuAutoScan(CMenuWidget *auto_Scan) auto_Scan->addItem(satSelect); if (r_system == DVB_C) { //cable +#if 0 CIntInput* nid = new CIntInput(LOCALE_SATSETUP_CABLE_NID, (int&) scansettings.cable_nid, 5, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE); mf = new CMenuDForwarder(LOCALE_SATSETUP_CABLE_NID, true, nid->getValue(), nid); +#endif + mf = new CMenuForwarder(LOCALE_SATSETUP_CABLE_NID, true, nid->getValue(), nid); mf->setHint("", LOCALE_MENU_HINT_SCAN_NID); auto_Scan->addItem(mf); } @@ -916,6 +947,63 @@ void CScanSetup::addScanMenuAutoScan(CMenuWidget *auto_Scan) auto_Scan->addItem(mf); } +//init simple cable scan menu +void CScanSetup::addScanMenuCable(CMenuWidget *menu) +{ + printf("[neutrino] CScanSetup call %s...\n", __FUNCTION__); + int shortCut = 1; + CMenuForwarder * mf; + + menu->addIntroItems(); + //---------------------------------------------------------------------- + CMenuOptionStringChooser * select = new CMenuOptionStringChooser(satprov_locale, scansettings.satNameNoDiseqc, true, this, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED, true); + fillCableSelect(select); + menu->addItem(select); + + mf = new CMenuForwarder(LOCALE_SATSETUP_CABLE_NID, true, nid->getValue(), nid); + mf->setHint("", LOCALE_MENU_HINT_SCAN_NID); + menu->addItem(mf); + + mf = new CMenuDForwarder(LOCALE_SCANTS_SELECT_TP, true, NULL, new CTPSelectHandler(), "test", CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN); + mf->setHint("", LOCALE_MENU_HINT_SCAN_TPSELECT); + menu->addItem(mf); + + menu->addItem(GenericMenuSeparatorLine); + + CStringInput *freq = new CStringInput(LOCALE_EXTRA_TP_FREQ, (char *) scansettings.TP_freq, freq_length, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, "0123456789"); + CMenuForwarder *Freq = new CMenuDForwarder(LOCALE_EXTRA_TP_FREQ, true, scansettings.TP_freq, freq, "", CRCInput::convertDigitToKey(shortCut++)); + Freq->setHint("", LOCALE_MENU_HINT_SCAN_FREQ); + + CStringInput *rate = new CStringInput(LOCALE_EXTRA_TP_RATE, (char *) scansettings.TP_rate, 8, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, "0123456789"); + CMenuForwarder *Rate = new CMenuDForwarder(LOCALE_EXTRA_TP_RATE, true, scansettings.TP_rate, rate, "", CRCInput::convertDigitToKey(shortCut++)); + Rate->setHint("", LOCALE_MENU_HINT_SCAN_RATE); + + CMenuOptionChooser * mod_pol = new CMenuOptionChooser(LOCALE_EXTRA_TP_MOD, (int *)&scansettings.TP_mod, SATSETUP_SCANTP_MOD, SATSETUP_SCANTP_MOD_COUNT, true, NULL, CRCInput::convertDigitToKey(shortCut++)); + mod_pol->setHint("", LOCALE_MENU_HINT_SCAN_MOD); + + menu->addItem(Freq); + menu->addItem(Rate); + menu->addItem(mod_pol); + + CMenuOptionChooser *lcn = new CMenuOptionChooser(LOCALE_SATSETUP_LOGICAL_NUMBERS, (int *)&scansettings.scan_logical_numbers, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, this, CRCInput::convertDigitToKey(shortCut++)); + lcn->setHint("", LOCALE_MENU_HINT_SCAN_LOGICAL); + menu->addItem(lcn); + + lcnhd = new CMenuOptionChooser(LOCALE_SATSETUP_LOGICAL_HD, (int *)&scansettings.scan_logical_hd, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, scansettings.scan_logical_numbers, NULL, CRCInput::convertDigitToKey(shortCut++)); + lcnhd->setHint("", LOCALE_MENU_HINT_SCAN_LOGICAL_HD); + menu->addItem(lcnhd); + + menu->addItem(GenericMenuSeparatorLine); +#if 0 + mf = new CMenuForwarder(LOCALE_SCANTS_TEST, allow_start, NULL, this, "test", CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW); + mf->setHint("", LOCALE_MENU_HINT_SCAN_TEST); + menu->addItem(mf); +#endif + mf = new CMenuForwarder(LOCALE_SCANTS_STARTNOW, allow_start, NULL, this, "cable", CRCInput::RC_blue, NEUTRINO_ICON_BUTTON_BLUE); + mf->setHint("", LOCALE_MENU_HINT_SCAN_START); + menu->addItem(mf); +} + //create scan options items int CScanSetup::addScanOptionsItems(CMenuWidget *options_menu, const int &shortcut) { @@ -1012,6 +1100,8 @@ void CScanSetup::saveScanSetup() bool CScanSetup::changeNotify(const neutrino_locale_t OptionName, void * /*data*/) { + bool ret = false; + if(ARE_LOCALES_EQUAL(OptionName, LOCALE_SATSETUP_USE_USALS)) { CFrontend * fe = CFEManager::getInstance()->getFE(fenumber); printf("[neutrino] CScanSetup::%s: all usals %d \n", __FUNCTION__, all_usals); @@ -1026,27 +1116,12 @@ bool CScanSetup::changeNotify(const neutrino_locale_t OptionName, void * /*data* fautoScanAll->setActive(dmode != NO_DISEQC); if(dmode == NO_DISEQC) { ojDiseqcRepeats->setActive(false); -#if 0 - itemsForAnyDiseqc.Activate(false); - itemsForAdvancedDiseqc.Activate(false); - itemsForNonAdvancedDiseqc.Activate(false); -#endif } else if(dmode < DISEQC_ADVANCED) { ojDiseqcRepeats->setActive(true); -#if 0 - itemsForAnyDiseqc.Activate(true); - itemsForAdvancedDiseqc.Activate(false); - itemsForNonAdvancedDiseqc.Activate(true); -#endif } else if(dmode == DISEQC_ADVANCED) { ojDiseqcRepeats->setActive(true); -#if 0 - itemsForAnyDiseqc.Activate(true); - itemsForAdvancedDiseqc.Activate(true); - itemsForNonAdvancedDiseqc.Activate(false); -#endif } CFrontend * fe = CFEManager::getInstance()->getFE(fenumber); fe->setDiseqcType((diseqc_t) dmode); @@ -1061,9 +1136,29 @@ bool CScanSetup::changeNotify(const neutrino_locale_t OptionName, void * /*data* if(femode != CFEManager::FE_MODE_ALONE) CFEManager::getInstance()->saveSettings(true); if (r_system == DVB_S) //sat - fillSatSelect(); + fillSatSelect(satSelect); } - return false; + else if(ARE_LOCALES_EQUAL(OptionName, LOCALE_CABLESETUP_PROVIDER)) { + printf("[neutrino] CScanSetup::%s: new provider: [%s]\n", __FUNCTION__, scansettings.satNameNoDiseqc); + satellite_map_t & satmap = CServiceManager::getInstance()->SatelliteList(); + for (sat_iterator_t sit = satmap.begin(); sit != satmap.end(); sit++) + { + if (strcmp(scansettings.satNameNoDiseqc, sit->second.name.c_str()) == 0) { + if(sit->second.cable_nid > 0) { + scansettings.cable_nid = sit->second.cable_nid; + nid->updateValue(); + ret = true; + } + + break; + } + } + } + else if(ARE_LOCALES_EQUAL(OptionName, LOCALE_SATSETUP_LOGICAL_NUMBERS)) { +printf("[neutrino] CScanSetup::%s: logical numbers %d\n", __FUNCTION__, scansettings.scan_logical_numbers); + lcnhd->setActive(scansettings.scan_logical_numbers); + } + return ret; } void CScanSetup::updateManualSettings() diff --git a/src/gui/scan_setup.h b/src/gui/scan_setup.h index 7fb75c6df..bdc7655e8 100644 --- a/src/gui/scan_setup.h +++ b/src/gui/scan_setup.h @@ -32,6 +32,7 @@ #include #include +#include #include #include @@ -57,6 +58,8 @@ class CScanSetup : public CMenuTarget, public CChangeObserver CMenuForwarder *frontendSetup; CMenuForwarder *fsatSetup; CMenuOptionNumberChooser * ojDiseqcRepeats; + CIntInput * nid; + CMenuOptionChooser * lcnhd; /* variables for selected frontend */ /* diseqc mode */ @@ -82,8 +85,8 @@ class CScanSetup : public CMenuTarget, public CChangeObserver int showFrontendSetup(int number); int showScanMenuLnbSetup(); int showScanMenuSatFind(); - void fillSatSelect(); - void fillCableSelect(); + void fillSatSelect(CMenuOptionStringChooser *select); + void fillCableSelect(CMenuOptionStringChooser *select); void addScanMenuFrontendSetup(CMenuWidget *settings); void addScanMenuTempSat(CMenuWidget *temp_sat, sat_config_t &satconfig); @@ -93,6 +96,7 @@ class CScanSetup : public CMenuTarget, public CChangeObserver void addScanMenuFastScan(CMenuWidget *fast_ScanMenu); #endif void addScanMenuAutoScan(CMenuWidget *auto_Scan); + void addScanMenuCable(CMenuWidget *menu); int addScanOptionsItems(CMenuWidget *options_menu, const int &shortcut = 1); int addListFlagsItems(CMenuWidget *listflags_menu, const int &shortcut = 1, bool manual = false); From 062fb5d56829ff17b35242200901555dd7e3ac11 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Wed, 1 Aug 2012 12:32:31 +0400 Subject: [PATCH 169/317] data/cables.xml: add Ziggo with one transponder --- data/cables.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/data/cables.xml b/data/cables.xml index 40e003c49..b0b9f8965 100644 --- a/data/cables.xml +++ b/data/cables.xml @@ -1354,4 +1354,7 @@ + + + From 9d8fb591845f08853dd832e0cbddb824c4ecc7c4 Mon Sep 17 00:00:00 2001 From: satbaby Date: Wed, 1 Aug 2012 20:02:34 +0200 Subject: [PATCH 170/317] use only allpids.APIDs in record.cpp & fix compil in netfile.cpp --- src/driver/netfile.cpp | 2 +- src/driver/record.cpp | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/driver/netfile.cpp b/src/driver/netfile.cpp index 71d61d2f2..e42e310d6 100644 --- a/src/driver/netfile.cpp +++ b/src/driver/netfile.cpp @@ -1101,7 +1101,7 @@ FILE *f_open(const char *filename, const char *acctype) /* magic, if there is any */ for (int i = 0; i < known_magic_count; i++) { - if (((*(uint32_t *)&(magic[0])) & *(uint32_t *)&(known_magic[i].mask[0])) == *(uint32_t *)&(known_magic[i].mode[0])) + if (((*(unsigned char *)&(magic[0])) & *(unsigned char *)&(known_magic[i].mask[0])) == *(unsigned char *)&(known_magic[i].mode[0])) { f_type(fd, known_magic[i].type); goto magic_found; diff --git a/src/driver/record.cpp b/src/driver/record.cpp index 5b20ad938..8dd8407f9 100644 --- a/src/driver/record.cpp +++ b/src/driver/record.cpp @@ -295,7 +295,7 @@ bool CRecordInstance::Update() EPG_AUDIO_PIDS audio_pids; audio_pids.epgAudioPid = allpids.APIDs[i].pid; - audio_pids.epgAudioPidName = g_RemoteControl->current_PIDs.APIDs.empty() ? allpids.APIDs[i].desc : g_RemoteControl->current_PIDs.APIDs[i].desc; + audio_pids.epgAudioPidName = allpids.APIDs[i].desc; audio_pids.atype = allpids.APIDs[i].is_ac3 ? 1 : allpids.APIDs[i].is_aac ? 5 : 0; audio_pids.selected = 0; recMovieInfo->audioPids.push_back(audio_pids); @@ -547,7 +547,7 @@ void CRecordInstance::FillMovieInfo(CZapitChannel * channel, APIDList & apid_lis for(it = apid_list.begin(); it != apid_list.end(); ++it) { if(allpids.APIDs[i].pid == it->apid) { audio_pids.epgAudioPid = allpids.APIDs[i].pid; - audio_pids.epgAudioPidName = g_RemoteControl->current_PIDs.APIDs.empty() ? allpids.APIDs[i].desc : g_RemoteControl->current_PIDs.APIDs[i].desc; + audio_pids.epgAudioPidName = allpids.APIDs[i].desc; audio_pids.atype = allpids.APIDs[i].is_ac3 ? 1 : allpids.APIDs[i].is_aac ? 5 : 0; audio_pids.selected = (audio_pids.epgAudioPid == channel->getAudioPid()) ? 1 : 0; recMovieInfo->audioPids.push_back(audio_pids); @@ -558,7 +558,7 @@ void CRecordInstance::FillMovieInfo(CZapitChannel * channel, APIDList & apid_lis if(recMovieInfo->audioPids.empty() && !allpids.APIDs.empty()) { int i = 0; audio_pids.epgAudioPid = allpids.APIDs[i].pid; - audio_pids.epgAudioPidName = g_RemoteControl->current_PIDs.APIDs.empty() ? allpids.APIDs[i].desc : g_RemoteControl->current_PIDs.APIDs[i].desc; + audio_pids.epgAudioPidName = allpids.APIDs[i].desc; audio_pids.atype = allpids.APIDs[i].is_ac3 ? 1 : allpids.APIDs[i].is_aac ? 5 : 0; audio_pids.selected = 1; recMovieInfo->audioPids.push_back(audio_pids); From 4a670716d845e993cdaf26e89ae40ca7ff0b9ce6 Mon Sep 17 00:00:00 2001 From: micha-bbg Date: Thu, 2 Aug 2012 04:37:48 +0200 Subject: [PATCH 171/317] * Menu hints: Update deutsch.locale - German Translations Part 9 (THX Tomworld) --- data/locale/deutsch.locale | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index 5bc9d15eb..888ff8995 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -947,6 +947,7 @@ menu.hint_scan_autoall Scannen Sie ihre ausgewählten Anbieter auf einmal menu.hint_scan_autoall_select Nur in ausgewählten Satelliten scannen menu.hint_scan_bouquet erneuern: hinzufügen zu den Bouquets, löschen: entfernt alte Bouquets, nicht ändern: Neue werden in 'Andere' angefügt menu.hint_scan_cable Wählen Sie ihr Kabelnetz zum scannen +menu.hint_scan_cable_simple Kabel-Scan mit optionaler Anbieter- und Kanal-Nummerierung menu.hint_scan_commited Wählen Sie ihre Einstellungen für diesen Satelliten menu.hint_scan_diseqc Wählen Sie DiSEqC-Schalter-Eingangssignal für diesen Satelliten menu.hint_scan_diseqcrepeat Diseqc Wiederholungen für kaskadierte Schaltungen,\nnutzen Sie die links/rechs Tasten @@ -967,6 +968,8 @@ menu.hint_scan_lodirection Wählen Sie ihre Längengrad-Ausrichtung menu.hint_scan_lofh High-Banb LNB-Frequenz menu.hint_scan_lofl Low-Band LNB-Frequenz menu.hint_scan_lofs LNB-Band-Umschalter Frequenz +menu.hint_scan_logical Verwenden Sie die Anbieter Kanal-Nummerierung +menu.hint_scan_logical_hd Wenn sowohl der Kanal in SD und in HD verfügbar ist,\nwird HD nach oben in der Liste gesetzt menu.hint_scan_longitude Geben Sie ihren Längengrad ein menu.hint_scan_manual Manueller Transponder-Scan mit ausgewählten Parametern menu.hint_scan_mod Select transponder modulation @@ -1490,6 +1493,7 @@ reset_confirm Sind Sie sich sicher? reset_settings Einstellungen auf Standardwerte satsetup.auto_scan Automatisch einen gewählten %s satsetup.auto_scan_all Automatisch alle Satelliten +satsetup.cable Kabel-Scan satsetup.cable_nid Netzwerk ID satsetup.comm_input Committed Input satsetup.diseqc DiSEqC @@ -1521,6 +1525,7 @@ satsetup.fe_setup Setup Tuner satsetup.lofh LNB High Offset satsetup.lofl LNB Low Offset satsetup.lofs LNB Switch Offset +satsetup.logical_hd Bevorzugete HD-Kanäle satsetup.logical_numbers Nutze logische Nummern satsetup.manual_scan Manueller Frequenzscan satsetup.minidiseqc Mini-DiSEqC From fcad9f266f4ca1ffa1ca072f4093f35f452e50a4 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Thu, 2 Aug 2012 16:09:36 +0400 Subject: [PATCH 172/317] driver/record.cpp: cleanup unused code --- src/driver/record.cpp | 91 +------------------------------------------ 1 file changed, 1 insertion(+), 90 deletions(-) diff --git a/src/driver/record.cpp b/src/driver/record.cpp index 8dd8407f9..de94ca7f4 100644 --- a/src/driver/record.cpp +++ b/src/driver/record.cpp @@ -175,7 +175,7 @@ record_error_msg_t CRecordInstance::Start(CZapitChannel * channel /*, APIDList & record->Open(); - if(!record->Start(fd, (unsigned short ) allpids.PIDs.vpid, (unsigned short *) apids, numpids)) { + if(!record->Start(fd, (unsigned short ) allpids.PIDs.vpid, (unsigned short *) apids, numpids, channel_id)) { /* Stop do close fd */ record->Stop(); delete record; @@ -1193,59 +1193,7 @@ int CRecordManager::exec(CMenuTarget* parent, const std::string & actionKey ) CMessageBox::mbrYes, CMessageBox::mbYes | CMessageBox::mbNo, NULL, 450, 30, false) == CMessageBox::mbrYes) { snprintf(rec_msg1, sizeof(rec_msg1)-1, "%s", g_Locale->getText(LOCALE_RECORDINGMENU_MULTIMENU_INFO_STOP_ALL)); -// focus: i think no sense for 2 loops, because this code run in the same thread as neutrino, -// so neutrino dont have a chance to handle RECORD_STOP before this function returns -#if 0 - int i = 0; - int recording_ids[RECORD_MAX_COUNT]; - t_channel_id channel_ids[RECORD_MAX_COUNT]; - t_channel_id channel_id; - recmap_iterator_t it; - mutex.lock(); - for(it = recmap.begin(); it != recmap.end(); it++) - { - recording_ids[i] = 0; - channel_id = it->first; - CRecordInstance * inst = it->second; - - snprintf(rec_msg, sizeof(rec_msg)-1, rec_msg1, records-i, records); - inst-> SetStopMessage(rec_msg); - - if(inst) - { - channel_ids[i] = channel_id; - recording_ids[i] = inst->GetRecordingId(); - printf("CRecordManager::exec(ExitAll line %d) found channel %llx recording_id %d\n", __LINE__, channel_ids[i], recording_ids[i]); - i++; - } - if (i >= RECORD_MAX_COUNT) - break; - } - mutex.unlock(); - if (i > 0 && i < RECORD_MAX_COUNT) - { - for(int i2 = 0; i2 < i; i2++) - { - mutex.lock(); - CRecordInstance * inst = FindInstance(channel_ids[i2]); - - snprintf(rec_msg, sizeof(rec_msg)-1, rec_msg1, records-i2, records); - inst-> SetStopMessage(rec_msg); - - if(inst == NULL || recording_ids[i2] != inst->GetRecordingId()) - { - printf("CRecordManager::exec(ExitAll line %d) channel %llx event id %d not found\n", __LINE__, channel_ids[i2], recording_ids[i2]); - }else - { - usleep(500000); - printf("CRecordManager::exec(ExitAll line %d) stop channel %llx recording_id %d\n", __LINE__, channel_ids[i2], recording_ids[i2]); - g_Timerd->stopTimerEvent(recording_ids[i2]); - } - mutex.unlock(); - } - } -#endif int i = 0; mutex.lock(); for(recmap_iterator_t it = recmap.begin(); it != recmap.end(); it++) @@ -1468,32 +1416,6 @@ bool CRecordManager::CutBackNeutrino(const t_channel_id channel_id, const int mo g_Zapit->setStandby(false); // this zap to live_channel_id t_channel_id live_channel_id = CZapit::getInstance()->GetCurrentChannelID(); -#if 0 - if(live_channel_id != channel_id) { - if(SAME_TRANSPONDER(live_channel_id, channel_id)) { - printf("%s zapTo_record channel_id %llx\n", __FUNCTION__, channel_id); - ret = g_Zapit->zapTo_record(channel_id) > 0; - } else if(!recmap.empty()) { - ret = false; - } else { - if (mode != last_mode && (last_mode != NeutrinoMessages::mode_standby || mode != CNeutrinoApp::getInstance()->getLastMode())) { - CNeutrinoApp::getInstance()->handleMsg( NeutrinoMessages::CHANGEMODE , mode | NeutrinoMessages::norezap ); - // When we were on standby, then we need not wake up for streaming - if(last_mode == NeutrinoMessages::mode_standby) - CNeutrinoApp::getInstance()->handleMsg( NeutrinoMessages::CHANGEMODE , NeutrinoMessages::mode_standby); - } - ret = g_Zapit->zapTo_serviceID(channel_id) > 0; - printf("%s zapTo_serviceID channel_id %llx result %d\n", __FUNCTION__, channel_id, ret); - - if(!ret) - CNeutrinoApp::getInstance()->handleMsg( NeutrinoMessages::CHANGEMODE , last_mode); - else if(last_mode == NeutrinoMessages::mode_standby) - g_Zapit->stopPlayBack(); - } - if(!ret) - printf("%s: failed to change channel\n", __FUNCTION__); - } -#endif bool mode_changed = false; if(live_channel_id != channel_id) { @@ -1552,17 +1474,6 @@ void CRecordManager::RestoreNeutrino(void) /* after this zapit send EVT_RECORDMODE_DEACTIVATED, so neutrino getting NeutrinoMessages::EVT_RECORDMODE */ g_Zapit->setRecordMode( false ); -#if 0 - /* if current mode not standby and current mode not mode saved at record start - * and mode saved not standby - switch to saved mode. - * Sounds wrong, because user can switch between radio and tv while record in progress ? */ - - if(CNeutrinoApp::getInstance()->getMode() != last_mode && - CNeutrinoApp::getInstance()->getMode() != NeutrinoMessages::mode_standby && - last_mode != NeutrinoMessages::mode_standby) - if(!autoshift) - g_RCInput->postMsg( NeutrinoMessages::CHANGEMODE , last_mode); -#endif if((CNeutrinoApp::getInstance()->getMode() != NeutrinoMessages::mode_standby) && StopSectionsd) g_Sectionsd->setPauseScanning(false); } From 35832868901e69382db2fb1a2178d1f4926abc98 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Fri, 3 Aug 2012 16:15:43 +0400 Subject: [PATCH 173/317] zapit/src/zapit.cpp: cleanup unused code --- src/zapit/src/zapit.cpp | 70 +++++++++++------------------------------ 1 file changed, 19 insertions(+), 51 deletions(-) diff --git a/src/zapit/src/zapit.cpp b/src/zapit/src/zapit.cpp index 646515a06..ed27b65ac 100644 --- a/src/zapit/src/zapit.cpp +++ b/src/zapit/src/zapit.cpp @@ -317,9 +317,6 @@ void CZapit::SendPMT(bool forupdate) return; CCamManager::getInstance()->Start(current_channel->getChannelID(), CCamManager::PLAY, forupdate); - int len; - unsigned char * pmt = current_channel->getRawPmt(len); - ca->SendPMT(DEMUX_SOURCE_0, pmt, len); } void CZapit::SaveChannelPids(CZapitChannel* channel) @@ -397,43 +394,28 @@ audio_map_set_t * CZapit::GetSavedPids(const t_channel_id channel_id) bool CZapit::TuneChannel(CFrontend * frontend, CZapitChannel * channel, bool &transponder_change) { - //CFrontend * frontend = CFEManager::getInstance()->allocateFE(channel); - if(frontend == NULL) { - ERROR("Cannot get frontend\n"); - return false; - } - transponder_change = false; -#if 0 - if (!(currentMode & RECORD_MODE)) -#endif - { - transponder_change = frontend->setInput(channel, current_is_nvod); - if(transponder_change && !current_is_nvod) { - int waitForMotor = frontend->driveToSatellitePosition(channel->getSatellitePosition()); - if(waitForMotor > 0) { - printf("[zapit] waiting %d seconds for motor to turn satellite dish.\n", waitForMotor); - SendEvent(CZapitClient::EVT_ZAP_MOTOR, &waitForMotor, sizeof(waitForMotor)); - for(int i = 0; i < waitForMotor; i++) { - sleep(1); - if(abort_zapit) { - abort_zapit = 0; - return false; - } + transponder_change = frontend->setInput(channel, current_is_nvod); + if(transponder_change && !current_is_nvod) { + int waitForMotor = frontend->driveToSatellitePosition(channel->getSatellitePosition()); + if(waitForMotor > 0) { + printf("[zapit] waiting %d seconds for motor to turn satellite dish.\n", waitForMotor); + SendEvent(CZapitClient::EVT_ZAP_MOTOR, &waitForMotor, sizeof(waitForMotor)); + for(int i = 0; i < waitForMotor; i++) { + sleep(1); + if(abort_zapit) { + abort_zapit = 0; + return false; } } } + } - /* if channel's transponder does not match frontend's tuned transponder ... */ - if (transponder_change /* || current_is_nvod*/) { - if (frontend->tuneChannel(channel, current_is_nvod) == false) { - return false; - } + /* if channel's transponder does not match frontend's tuned transponder ... */ + if (transponder_change /* || current_is_nvod*/) { + if (frontend->tuneChannel(channel, current_is_nvod) == false) { + return false; } - } -#if 0 - else if(!SAME_TRANSPONDER(channel->getChannelID(), live_channel_id)) - return false; -#endif + } return true; } @@ -488,7 +470,6 @@ bool CZapit::ZapIt(const t_channel_id channel_id, bool forupdate, bool startplay pmt_stop_update_filter(&pmt_update_fd); - ca->SendPMT(0, (unsigned char*) "", 0, CA_SLOT_TYPE_CI); StopPlayBack(!forupdate); if(!forupdate && current_channel) @@ -679,11 +660,6 @@ void CZapit::SetRecordMode(bool enable) event = CZapitClient::EVT_RECORDMODE_ACTIVATED; } else { currentMode &= ~RECORD_MODE; - - int demux = 2; - if(current_channel) - demux = current_channel->getRecordDemux(); - ca->SendPMT(demux /*DEMUX_SOURCE_2*/, (unsigned char*) "", 0, CA_SLOT_TYPE_SMARTCARD); event = CZapitClient::EVT_RECORDMODE_DEACTIVATED; } SendEvent(event); @@ -1803,17 +1779,9 @@ bool CZapit::StartPlayBack(CZapitChannel *thisChannel) bool CZapit::StopPlayBack(bool send_pmt) { -#if 1 - if(send_pmt) { + if(send_pmt) CCamManager::getInstance()->Stop(live_channel_id, CCamManager::PLAY); - ca->SendPMT(0, (unsigned char*) "", 0, CA_SLOT_TYPE_SMARTCARD); - } -#endif -#if 0 - if (send_pmt && !(currentMode & RECORD_MODE)) - ca->SendPMT(0, (unsigned char*) "", 0, CA_SLOT_TYPE_SMARTCARD); - CCamManager::getInstance()->Stop(live_channel_id, CCamManager::PLAY); -#endif + INFO("standby %d playing %d forced %d", standby, playing, playbackStopForced); if (!playing) From f8aa4262cb2d80c76d6f43736552474feb7d96c1 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Fri, 3 Aug 2012 19:57:45 +0400 Subject: [PATCH 174/317] recording: testing support for multi-record of the same channel, new libs required --- data/locale/english.locale | 2 +- lib/libcoolstream/record_cs.h | 7 +- src/driver/record.cpp | 223 ++++++++++++++++++---------------- src/driver/record.h | 15 ++- 4 files changed, 133 insertions(+), 114 deletions(-) diff --git a/data/locale/english.locale b/data/locale/english.locale index 88701d9ab..f0debb45b 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -1455,7 +1455,7 @@ rclock.lockmsg Your box remote control will be locked.\n To unlock it, press #include -#include #include #include #include @@ -64,7 +62,6 @@ */ extern CRemoteControl * g_RemoteControl; /* neutrino.cpp */ -t_channel_id rec_channel_id; bool sectionsd_getActualEPGServiceKey(const t_channel_id uniqueServiceKey, CEPGData * epgdata); bool sectionsd_getEPGidShort(event_id_t epgID, CShortEPGData * epgdata); @@ -134,7 +131,7 @@ void CRecordInstance::WaitRecMsg(time_t StartTime, time_t WaitTime) usleep(100000); } -record_error_msg_t CRecordInstance::Start(CZapitChannel * channel /*, APIDList &apid_list*/) +record_error_msg_t CRecordInstance::Start(CZapitChannel * channel) { int fd; std::string tsfile; @@ -142,7 +139,7 @@ record_error_msg_t CRecordInstance::Start(CZapitChannel * channel /*, APIDList & time_t msg_start_time = time(0); CHintBox hintBox(LOCALE_MESSAGEBOX_INFO, g_Locale->getText(LOCALE_RECORDING_START)); hintBox.paint(); - + tsfile = std::string(filename) + ".ts"; printf("%s: file %s vpid %x apid %x\n", __FUNCTION__, tsfile.c_str(), allpids.PIDs.vpid, apids[0]); @@ -193,11 +190,6 @@ record_error_msg_t CRecordInstance::Start(CZapitChannel * channel /*, APIDList & CCamManager::getInstance()->Start(channel->getChannelID(), CCamManager::RECORD); - int len; - unsigned char * pmt = channel->getRawPmt(len); - cCA * ca = cCA::GetInstance(); - ca->SendPMT(channel->getRecordDemux() /*DEMUX_SOURCE_2*/, pmt, len); - //CVFD::getInstance()->ShowIcon(VFD_ICON_CAM1, true); WaitRecMsg(msg_start_time, 2); hintBox.hide(); @@ -219,7 +211,7 @@ bool CRecordInstance::Stop(bool remove_event) time_t end_time = time(0); recMovieInfo->length = (int) round((double) (end_time - start_time) / (double) 60); - + CHintBox hintBox(LOCALE_MESSAGEBOX_INFO, rec_stop_msg.c_str()); hintBox.paint(); @@ -609,7 +601,7 @@ record_error_msg_t CRecordInstance::MakeFileName(CZapitChannel * channel) strncat(filename,"/",FILENAMEBUFFERSIZE - strlen(filename)); else perror("[vcrcontrol] mkdir"); - } else + } else perror("[vcrcontrol] stat"); } else // directory exists @@ -652,7 +644,9 @@ void CRecordInstance::GetRecordString(std::string &str) str = "Unknown channel : " + GetEpgTitle(); return; } - str = channel->getName() + ": " + GetEpgTitle(); + char stime[15]; + strftime(stime, sizeof(stime), "%H:%M:%S ", localtime(&start_time)); + str = stime + channel->getName() + ": " + GetEpgTitle(); } //------------------------------------------------------------------------- @@ -699,9 +693,19 @@ CRecordManager * CRecordManager::getInstance() CRecordInstance * CRecordManager::FindInstance(t_channel_id channel_id) { - recmap_iterator_t it = recmap.find(channel_id); - if(it != recmap.end()) - return it->second; + for (recmap_iterator_t it = recmap.begin(); it != recmap.end(); it++) { + if (it->second->GetChannelId() == channel_id) + return it->second; + } + return NULL; +} + +CRecordInstance * CRecordManager::FindInstanceID(int recid) +{ + for (recmap_iterator_t it = recmap.begin(); it != recmap.end(); it++) { + if (it->second->GetRecordingId() == recid) + return it->second; + } return NULL; } @@ -742,7 +746,7 @@ int CRecordManager::GetRecordMode(const t_channel_id channel_id) return RECMODE_REC_TSHIFT; else return RECMODE_OFF; - }else + } else { if (IsTimeshift(channel_id)) return RECMODE_TSHIFT; @@ -771,7 +775,7 @@ bool CRecordManager::Record(const t_channel_id channel_id, const char * dir, boo } eventinfo.apids = TIMERD_APIDS_CONF; eventinfo.recordingDir[0] = 0; - + return Record(&eventinfo, dir, timeshift); } @@ -797,24 +801,25 @@ bool CRecordManager::Record(const CTimerd::RecordingInfo * const eventinfo, cons RunStartScript(); mutex.lock(); - recmap_iterator_t it = recmap.find(eventinfo->channel_id); - if(it != recmap.end()) { - //inst = it->second; +#if 0 + inst = FindInstance(eventinfo->channel_id); + if(inst) { if(direct_record) { error_msg = RECORD_BUSY; } else { - //nextmap.push_back((CTimerd::RecordingInfo *)eventinfo); CTimerd::RecordingInfo * evt = new CTimerd::RecordingInfo(*eventinfo); printf("%s add %llx : %s to pending\n", __FUNCTION__, evt->channel_id, evt->epgTitle); nextmap.push_back((CTimerd::RecordingInfo *)evt); } - } else if(recmap.size() < RECORD_MAX_COUNT) { -#if 1//FIXME test + } else +#endif + if(recmap.size() < RECORD_MAX_COUNT) { CZapitChannel * channel = CServiceManager::getInstance()->FindChannel(eventinfo->channel_id); CFrontend * frontend = CFEManager::getInstance()->allocateFE(channel); + int mode = channel->getServiceType() != ST_DIGITAL_RADIO_SOUND_SERVICE ? NeutrinoMessages::mode_tv : NeutrinoMessages::mode_radio; -#endif + if(frontend && CutBackNeutrino(eventinfo->channel_id, mode)) { std::string newdir; if(dir && strlen(dir)) @@ -824,21 +829,18 @@ bool CRecordManager::Record(const CTimerd::RecordingInfo * const eventinfo, cons else newdir = Directory; - if (inst == NULL) - inst = new CRecordInstance(eventinfo, newdir, timeshift, StreamVTxtPid, StreamPmtPid); + inst = new CRecordInstance(eventinfo, newdir, timeshift, StreamVTxtPid, StreamPmtPid); inst->frontend = frontend; error_msg = inst->Record(); if(error_msg == RECORD_OK) { - recmap.insert(std::pair(eventinfo->channel_id, inst)); + recmap.insert(recmap_pair_t(inst->GetRecordingId(), inst)); if(timeshift) autoshift = true; // mimic old behavior for start/stop menu option chooser, still actual ? t_channel_id live_channel_id = CZapit::getInstance()->GetCurrentChannelID(); - if(eventinfo->channel_id == live_channel_id) { + if(eventinfo->channel_id == live_channel_id) recordingstatus = 1; - rec_channel_id = live_channel_id;//FIXME - } } else { delete inst; } @@ -867,7 +869,7 @@ bool CRecordManager::Record(const CTimerd::RecordingInfo * const eventinfo, cons LOCALE_STREAMING_WRITE_ERROR )); // UTF-8 return false; } - + return true; } @@ -914,6 +916,7 @@ bool CRecordManager::CheckRecording(const CTimerd::RecordingInfo * const eventin return true; } +/* FIXME no check for multi-tuner */ void CRecordManager::StartNextRecording() { CTimerd::RecordingInfo * eventinfo = NULL; @@ -972,13 +975,14 @@ bool CRecordManager::TimeshiftOnly() return (autoshift && (count == 1)); } +/* FIXME no check for multi-tuner */ bool CRecordManager::SameTransponder(const t_channel_id channel_id) { bool same = true; mutex.lock(); int count = recmap.size(); if(count) { - if(autoshift && count == 1) + if(autoshift && count == 1) same = true; else { recmap_iterator_t fit = recmap.begin(); @@ -990,52 +994,54 @@ bool CRecordManager::SameTransponder(const t_channel_id channel_id) return same; } +void CRecordManager::StopInstance(CRecordInstance * inst, bool remove_event) +{ + inst->Stop(remove_event); + recmap.erase(inst->GetRecordingId()); + + if(inst->Timeshift()) + autoshift = false; + + t_channel_id live_channel_id = CZapit::getInstance()->GetCurrentChannelID(); + if(inst->GetChannelId() == live_channel_id) + recordingstatus = 0; + + delete inst; +} bool CRecordManager::Stop(const t_channel_id channel_id) { printf("%s: %llx\n", __FUNCTION__, channel_id); mutex.lock(); + + /* FIXME stop all ? show list ? */ CRecordInstance * inst = FindInstance(channel_id); - if(inst != NULL) { - inst->Stop(); - recmap.erase(channel_id); - if(inst->Timeshift()) - autoshift = false; - delete inst; - t_channel_id live_channel_id = CZapit::getInstance()->GetCurrentChannelID(); - if(channel_id == live_channel_id) { - recordingstatus = 0; - rec_channel_id = 0;//FIXME - } - } else + if(inst != NULL) + StopInstance(inst); + else printf("%s: channel %llx not recording\n", __FUNCTION__, channel_id); + mutex.unlock(); StopPostProcess(); - + return (inst != NULL); } bool CRecordManager::Stop(const CTimerd::RecordingStopInfo * recinfo) { bool ret = false; - + printf("%s: eventID %d channel_id %llx\n", __FUNCTION__, recinfo->eventID, recinfo->channel_id); mutex.lock(); - CRecordInstance * inst = FindInstance(recinfo->channel_id); + //CRecordInstance * inst = FindInstance(recinfo->channel_id); + CRecordInstance * inst = FindInstanceID(recinfo->eventID); if(inst != NULL && recinfo->eventID == inst->GetRecordingId()) { - inst->Stop(false); - recmap.erase(recinfo->channel_id); - if(inst->Timeshift()) - autoshift = false; - delete inst; + StopInstance(inst, false); ret = true; - t_channel_id live_channel_id = CZapit::getInstance()->GetCurrentChannelID(); - if(recinfo->channel_id == live_channel_id) - recordingstatus = 0; } else { for(nextmap_iterator_t it = nextmap.begin(); it != nextmap.end(); it++) { if((*it)->eventID == recinfo->eventID) { @@ -1054,7 +1060,7 @@ bool CRecordManager::Stop(const CTimerd::RecordingStopInfo * recinfo) mutex.unlock(); StopPostProcess(); - + return ret; } @@ -1111,12 +1117,11 @@ bool CRecordManager::IsTimeshift(t_channel_id channel_id) ret = true; else ret = false; - }else + } else { for(recmap_iterator_t it = recmap.begin(); it != recmap.end(); it++) { - inst = it->second; - if(inst && inst->tshift_mode) + if(it->second->tshift_mode) { mutex.unlock(); return true; @@ -1129,14 +1134,11 @@ bool CRecordManager::IsTimeshift(t_channel_id channel_id) void CRecordManager::SetTimeshiftMode(CRecordInstance * inst, int mode) { - CRecordInstance * tmp_inst; mutex.lock(); + /* reset all instances mode ? */ for(recmap_iterator_t it = recmap.begin(); it != recmap.end(); it++) - { - tmp_inst = it->second; - if (tmp_inst) - tmp_inst->tshift_mode = TSHIFT_MODE_OFF; - } + it->second->tshift_mode = TSHIFT_MODE_OFF; + mutex.unlock(); if (inst) inst->tshift_mode = mode; @@ -1154,13 +1156,13 @@ void CRecordManager::StartTimeshift() tmode = "ptimeshift"; // already recording, pause if(GetRecordMode(live_channel_id) == RECMODE_TSHIFT) SetTimeshiftMode(FindInstance(live_channel_id), TSHIFT_MODE_PAUSE); - }else + } else { if(g_settings.temp_timeshift) { res = StartAutoRecord(); SetTimeshiftMode(FindInstance(live_channel_id), TSHIFT_MODE_TEMPORAER); - }else + } else { res = Record(live_channel_id); SetTimeshiftMode(FindInstance(live_channel_id), TSHIFT_MODE_PERMANET); @@ -1186,7 +1188,7 @@ int CRecordManager::exec(CMenuTarget* parent, const std::string & actionKey ) char rec_msg[256]; char rec_msg1[256]; int records = recmap.size(); - + snprintf(rec_msg1, sizeof(rec_msg1)-1, "%s", g_Locale->getText(LOCALE_RECORDINGMENU_MULTIMENU_ASK_STOP_ALL)); snprintf(rec_msg, sizeof(rec_msg)-1, rec_msg1, records); if(ShowMsgUTF(LOCALE_SHUTDOWN_RECODING_QUERY, rec_msg, @@ -1198,12 +1200,13 @@ int CRecordManager::exec(CMenuTarget* parent, const std::string & actionKey ) mutex.lock(); for(recmap_iterator_t it = recmap.begin(); it != recmap.end(); it++) { - t_channel_id channel_id = it->first; + //t_channel_id channel_id = it->first; CRecordInstance * inst = it->second; - + t_channel_id channel_id = inst->GetChannelId(); + snprintf(rec_msg, sizeof(rec_msg)-1, rec_msg1, records-i, records); inst->SetStopMessage(rec_msg); - + printf("CRecordManager::exec(ExitAll line %d) found channel %llx recording_id %d\n", __LINE__, channel_id, inst->GetRecordingId()); g_Timerd->stopTimerEvent(inst->GetRecordingId()); i++; @@ -1211,34 +1214,44 @@ int CRecordManager::exec(CMenuTarget* parent, const std::string & actionKey ) mutex.unlock(); } return menu_return::RETURN_EXIT_ALL; - }else if(actionKey == "Record") + } else if(actionKey == "Record") { printf("[neutrino] direct record\n"); t_channel_id live_channel_id = CZapit::getInstance()->GetCurrentChannelID(); + + //if(!CRecordManager::getInstance()->RecordingStatus(live_channel_id)) - if(!CRecordManager::getInstance()->RecordingStatus(live_channel_id)) - { + bool tostart = true; + CRecordInstance * inst = FindInstance(live_channel_id); + if (inst) { + std::string title; + inst->GetRecordString(title); + tostart = (ShowMsgUTF(LOCALE_RECORDING_IS_RUNNING, title.c_str(), + CMessageBox::mbrYes, CMessageBox::mbYes | CMessageBox::mbNo, NULL, 450, 30, false) == CMessageBox::mbrYes); + } + if (tostart) { CRecordManager::getInstance()->Record(live_channel_id); - + if(!g_InfoViewer->is_visible) // show Infoviewer CNeutrinoApp::getInstance()->showInfo(); - - return menu_return::RETURN_EXIT_ALL; + + return menu_return::RETURN_EXIT_ALL; } +#if 0 else DisplayInfoMessage(g_Locale->getText(LOCALE_RECORDING_IS_RUNNING)); - }else if(actionKey == "Timeshift") +#endif + } else if(actionKey == "Timeshift") { StartTimeshift(); return menu_return::RETURN_EXIT_ALL; - }else if(actionKey == "Stop_record") + } else if(actionKey == "Stop_record") { if(!CRecordManager::getInstance()->RecordingStatus()) { ShowHintUTF(LOCALE_MAINMENU_RECORDING_STOP, g_Locale->getText(LOCALE_RECORDINGMENU_RECORD_IS_NOT_RUNNING), 450, 2); return menu_return::RETURN_EXIT_ALL; - } + } } - ShowMenu(); return menu_return::RETURN_REPAINT; @@ -1262,23 +1275,23 @@ bool CRecordManager::ShowMenu(void) t_channel_id live_channel_id = CZapit::getInstance()->GetCurrentChannelID(); bool status_ts = IsTimeshift(live_channel_id); bool status_rec = RecordingStatus(live_channel_id) && !status_ts; - + //record item - iteml = new CMenuForwarder(LOCALE_RECORDINGMENU_MULTIMENU_REC_AKT, (!status_rec && !status_ts), NULL, + iteml = new CMenuForwarder(LOCALE_RECORDINGMENU_MULTIMENU_REC_AKT, (!status_rec && !status_ts), NULL, this, "Record", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED); //if no recordings are running, set the focus to the record menu item menu.addItem(iteml, rec_count == 0 ? true: false); - + //timeshift item - iteml = new CMenuForwarder(LOCALE_RECORDINGMENU_MULTIMENU_TIMESHIFT, !status_ts, NULL, + iteml = new CMenuForwarder(LOCALE_RECORDINGMENU_MULTIMENU_TIMESHIFT, !status_ts, NULL, this, "Timeshift", CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW); menu.addItem(iteml, false); - - if(rec_count > 0) + + if(rec_count > 0) { menu.addItem(new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_MAINMENU_RECORDING_STOP)); mutex.lock(); - + int i = 0 , shortcut = 1; for(recmap_iterator_t it = recmap.begin(); it != recmap.end(); it++) { t_channel_id channel_id = it->first; @@ -1286,10 +1299,10 @@ bool CRecordManager::ShowMenu(void) channel_ids[i] = channel_id; recording_ids[i] = inst->GetRecordingId(); - + std::string title; inst->GetRecordString(title); - + const char* mode_icon = NULL; if (inst->tshift_mode) mode_icon = NEUTRINO_ICON_AUTO_SHIFT; @@ -1301,10 +1314,10 @@ bool CRecordManager::ShowMenu(void) if (rec_count == 1){ rc_key = CRCInput::RC_stop; btn_icon = NEUTRINO_ICON_BUTTON_STOP; - } + } item = new CMenuForwarderNonLocalized(title.c_str(), true, NULL, selector, cnt, rc_key, NULL, mode_icon); item->setItemButton(btn_icon, true); - + //if only one recording is running, set the focus to this menu item menu.addItem(item, rec_count == 1 ? true: false); i++; @@ -1314,10 +1327,10 @@ bool CRecordManager::ShowMenu(void) if(i > 1) //menu item "stopp all records" { menu.addItem(GenericMenuSeparatorLine); - iteml = new CMenuForwarder(LOCALE_RECORDINGMENU_MULTIMENU_STOP_ALL, true, NULL, + iteml = new CMenuForwarder(LOCALE_RECORDINGMENU_MULTIMENU_STOP_ALL, true, NULL, this, "StopAll", CRCInput::RC_stop); iteml->setItemButton(NEUTRINO_ICON_BUTTON_STOP, true); - + //if more than one recording is running, set the focus to menu item 'stopp all records' menu.addItem(iteml, rec_count > 1 ? true: false); } @@ -1330,7 +1343,8 @@ bool CRecordManager::ShowMenu(void) if (select >= 0 && select < RECORD_MAX_COUNT) { /* in theory, timer event can expire while we in menu ? lock and check again */ mutex.lock(); - CRecordInstance * inst = FindInstance(channel_ids[select]); + //CRecordInstance * inst = FindInstance(channel_ids[select]); + CRecordInstance * inst = FindInstanceID(recording_ids[select]); if(inst == NULL || recording_ids[select] != inst->GetRecordingId()) { printf("%s: channel %llx event id %d not found\n", __FUNCTION__, channel_ids[select], recording_ids[select]); mutex.unlock(); @@ -1338,18 +1352,23 @@ bool CRecordManager::ShowMenu(void) } mutex.unlock(); //return Stop(channel_ids[select]); - return AskToStop(channel_ids[select]); + return AskToStop(channel_ids[select], recording_ids[select]); } return false; } -bool CRecordManager::AskToStop(const t_channel_id channel_id) +bool CRecordManager::AskToStop(const t_channel_id channel_id, const int recid) { int recording_id = 0; std::string title; + CRecordInstance * inst; mutex.lock(); - CRecordInstance * inst = FindInstance(channel_id); + if (recid) + inst = FindInstanceID(recid); + else + inst = FindInstance(channel_id); + if(inst) { recording_id = inst->GetRecordingId(); inst->GetRecordString(title); @@ -1551,7 +1570,7 @@ bool CRecordManager::ChooseRecDir(std::string &dir) dir = g_settings.network_nfs_local_dir[userDecision]; doRecord = MountDirectory(dir.c_str()); } - } else + } else printf("%s: no network devices available\n", __FUNCTION__); } return doRecord; diff --git a/src/driver/record.h b/src/driver/record.h index c9ccf7716..a29906e5e 100644 --- a/src/driver/record.h +++ b/src/driver/record.h @@ -4,12 +4,11 @@ Copyright (C) 2001 Steffen Hehn 'McClean' Copyright (C) 2011 CoolStream International Ltd - License: GPL + License: GPLv2 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. + the Free Software Foundation; This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -105,7 +104,7 @@ class CRecordInstance void FillMovieInfo(CZapitChannel * channel, APIDList & apid_lis); record_error_msg_t MakeFileName(CZapitChannel * channel); bool SaveXml(); - record_error_msg_t Start(CZapitChannel * channel /*, APIDList &apid_list*/); + record_error_msg_t Start(CZapitChannel * channel); void WaitRecMsg(time_t StartTime, time_t WaitTime); public: CRecordInstance(const CTimerd::RecordingInfo * const eventinfo, std::string &dir, bool timeshift = false, bool stream_vtxt_pid = false, bool stream_pmt_pid = false); @@ -117,6 +116,7 @@ class CRecordInstance void SetRecordingId(int id) { recording_id = id; }; int GetRecordingId(void) { return recording_id; }; + t_channel_id GetChannelId(void) { return channel_id; }; std::string GetEpgTitle(void) { return epgTitle; }; MI_MOVIE_INFO * GetMovieInfo(void) { return recMovieInfo; }; void GetRecordString(std::string& str); @@ -128,7 +128,8 @@ class CRecordInstance CFrontend * frontend; }; -typedef std::map recmap_t; +typedef std::pair recmap_pair_t; +typedef std::map recmap_t; typedef recmap_t::iterator recmap_iterator_t; typedef std::list nextmap_t; @@ -158,7 +159,9 @@ class CRecordManager : public CMenuTarget, public CChangeObserver bool CheckRecording(const CTimerd::RecordingInfo * const eventinfo); void StartNextRecording(); void StopPostProcess(); + void StopInstance(CRecordInstance * inst, bool remove_event = true); CRecordInstance * FindInstance(t_channel_id); + CRecordInstance * FindInstanceID(int recid); void SetTimeshiftMode(CRecordInstance * inst=NULL, int mode=TSHIFT_MODE_OFF); public: @@ -181,7 +184,7 @@ class CRecordManager : public CMenuTarget, public CChangeObserver bool Stop(const CTimerd::RecordingStopInfo * recinfo); bool Update(const t_channel_id channel_id); bool ShowMenu(void); - bool AskToStop(const t_channel_id channel_id); + bool AskToStop(const t_channel_id channel_id, const int recid = 0); int exec(CMenuTarget* parent, const std::string & actionKey); bool StartAutoRecord(); bool StopAutoRecord(); From 9124c20f3120887b64dbba1183e3681dc5e3f66c Mon Sep 17 00:00:00 2001 From: satbaby Date: Sat, 4 Aug 2012 10:03:19 +0200 Subject: [PATCH 175/317] comment out never used --- lib/libnet/libnet.c | 14 ++++++++----- lib/libtuxtxt/tuxtxt.cpp | 5 +++-- lib/sectionsdclient/sectionsdclient.cpp | 8 +++++-- src/driver/audiodec/flacdec.cpp | 5 +++-- src/driver/audiodec/int_fft.c | 12 ++++++++--- src/driver/framebuffer.cpp | 28 ++++++++++++++++--------- src/driver/rcinput.cpp | 9 +++++--- src/driver/record.cpp | 4 ++-- src/driver/screenshot.cpp | 4 +++- src/driver/streamts.cpp | 4 +++- src/eitd/SIevents.cpp | 4 +++- src/eitd/sectionsd.cpp | 4 ++-- src/gui/bookmarkmanager.cpp | 15 +++++++------ src/gui/moviebrowser.cpp | 5 +++-- src/gui/movieinfo.cpp | 8 +++++-- src/gui/widget/mountchooser.cpp | 5 +++-- src/system/flashtool.cpp | 4 +++- src/system/lastchannel.cpp | 5 +++-- src/zapit/lib/zapitclient.cpp | 13 ++++++++---- src/zapit/src/channel.cpp | 5 +++-- src/zapit/src/femanager.cpp | 6 ++++-- src/zapit/src/frontend.cpp | 25 +++++++++++++--------- src/zapit/src/getservices.cpp | 27 +++++++++++++----------- src/zapit/src/scan.cpp | 5 +++-- src/zapit/src/transponder.cpp | 5 +++-- src/zapit/src/zapit.cpp | 5 +++-- 26 files changed, 149 insertions(+), 85 deletions(-) diff --git a/lib/libnet/libnet.c b/lib/libnet/libnet.c index 9eb1cb679..a92487f5e 100644 --- a/lib/libnet/libnet.c +++ b/lib/libnet/libnet.c @@ -9,6 +9,8 @@ #include #include +#if 0 +//never used static void scanip( char *str, unsigned char *to ) { int val; @@ -80,7 +82,7 @@ abbruch: return rc; } - +#endif void netGetIP( char *dev, char *ip, char *mask, char *brdcast ) { int fd; @@ -114,7 +116,8 @@ void netGetIP( char *dev, char *ip, char *mask, char *brdcast ) close(fd); return; } - +#if 0 +//never used void netSetDefaultRoute( char *gw ) { struct rtentry re; @@ -149,7 +152,7 @@ void netSetDefaultRoute( char *gw ) close(fd); return; } - +#endif void netGetDefaultRoute( char *ip ) { FILE *fp; @@ -179,7 +182,8 @@ static char dombuf[256]; static char hostbuf[256]; static char domis=0; static char hostis=0; - +#if 0 +//never used char *netGetDomainname( void ) { if (!domis) @@ -194,7 +198,7 @@ void netSetDomainname( char *dom ) domis=1; setdomainname(dombuf,strlen(dombuf)+1); } - +#endif char *netGetHostname( void ) { if (!hostis) diff --git a/lib/libtuxtxt/tuxtxt.cpp b/lib/libtuxtxt/tuxtxt.cpp index 346210d4f..c629daa6a 100644 --- a/lib/libtuxtxt/tuxtxt.cpp +++ b/lib/libtuxtxt/tuxtxt.cpp @@ -236,12 +236,13 @@ void ClearFB(int /*color*/) //memset(lfb,0, var_screeninfo.yres*fix_screeninfo.line_length); CFrameBuffer::getInstance()->paintBackground(); } - +#if 0 +//never used void ClearB(int color) { FillRect(0,0,var_screeninfo.xres,var_screeninfo.yres*2,color); } - +#endif int GetCurFontWidth() { int mx = (displaywidth)%(40-nofirst); // # of unused pixels diff --git a/lib/sectionsdclient/sectionsdclient.cpp b/lib/sectionsdclient/sectionsdclient.cpp index 97eadb83d..6d6da6b4b 100644 --- a/lib/sectionsdclient/sectionsdclient.cpp +++ b/lib/sectionsdclient/sectionsdclient.cpp @@ -375,6 +375,8 @@ CChannelEventList CSectionsdClient::getChannelEvents(const bool tv_mode, t_chann 3: keyword search in EPG description (INFO2) In case of a match, the EPG event is added to the Eventlist eList. */ +#if 0 +//never used bool CSectionsdClient::getEventsServiceKeySearchAdd(CChannelEventList& eList,const t_channel_id channel_id,char search_typ,std::string& search_text) { int nBufSize=0; @@ -435,7 +437,7 @@ bool CSectionsdClient::getEventsServiceKeySearchAdd(CChannelEventList& eList,con close_connection(); return true; } - +#endif CChannelEventList CSectionsdClient::getEventsServiceKey(const t_channel_id channel_id) { CChannelEventList eList; @@ -479,6 +481,8 @@ CChannelEventList CSectionsdClient::getEventsServiceKey(const t_channel_id chann close_connection(); return eList; } +#if 0 +//never used void showhexdumpa (char *label, unsigned char * from, int len) { int i, j, k; @@ -519,7 +523,7 @@ void showhexdumpa (char *label, unsigned char * from, int len) } printf ("\n"); } - +#endif // 21.07.2005 - rainerk // Convert line-terminated extended events to vector of strings char * CSectionsdClient::parseExtendedEvents(char * dp, CEPGData * epgdata) { diff --git a/src/driver/audiodec/flacdec.cpp b/src/driver/audiodec/flacdec.cpp index ed114dc50..242337945 100644 --- a/src/driver/audiodec/flacdec.cpp +++ b/src/driver/audiodec/flacdec.cpp @@ -81,12 +81,13 @@ FLAC__StreamDecoderSeekStatus flac_seek(const FLAC__StreamDecoder *, FLAC__uint6 else return FLAC__STREAM_DECODER_SEEK_STATUS_OK; } - +#if 0 +//never used int flac_close(void *) { return 0; } - +#endif FLAC__StreamDecoderTellStatus flac_tell(const FLAC__StreamDecoder *, FLAC__uint64 *absolute_byte_offset, void *client_data) { CFlacDec * flacdec = (CFlacDec *)client_data; diff --git a/src/driver/audiodec/int_fft.c b/src/driver/audiodec/int_fft.c index 5f8a7f62d..d44aa66fe 100644 --- a/src/driver/audiodec/int_fft.c +++ b/src/driver/audiodec/int_fft.c @@ -84,6 +84,8 @@ fixed fix_mpy(fixed a, fixed b); size of data = 2**m set inverse to 0=dft, 1=idft */ +#if 0 +//never used int fix_fft(fixed fr[], fixed fi[], int m, int inverse) { int mr,nn,i,j,l,k,istep, n, scale, shift; @@ -180,7 +182,7 @@ fix_mpy(wi,fr[j]); return scale; } - +#endif /* window() - apply a Hanning window */ void window(fixed fr[], int n) @@ -203,6 +205,8 @@ void window(fixed fr[], int n) was obtained from an inverse FFT, 0 otherwise. loud[] is the loudness, in dB wrt 32767; will be +10 to -N_LOUD. */ +#if 0 +//never used void fix_loud(fixed loud[], fixed fr[], fixed fi[], int n, int scale_shift) { int i, max; @@ -218,7 +222,7 @@ void fix_loud(fixed loud[], fixed fr[], fixed fi[], int n, int scale_shift) loud[i] = max; } } - +#endif /* db_from_ampl() - find loudness (in dB) from the complex amplitude. */ @@ -258,6 +262,8 @@ fixed fix_mpy(fixed a, fixed b) /* iscale() - scale an integer value by (numer/denom) */ +#if 0 +//never used int iscale(int value, int numer, int denom) { #ifdef DOS @@ -338,7 +344,7 @@ overflow: #endif } - +#endif #if N_WAVE != 1024 ERROR: N_WAVE != 1024 diff --git a/src/driver/framebuffer.cpp b/src/driver/framebuffer.cpp index 0ff7020d7..ab4a80c3e 100644 --- a/src/driver/framebuffer.cpp +++ b/src/driver/framebuffer.cpp @@ -510,11 +510,12 @@ int CFrameBuffer::setMode(unsigned int /*nxRes*/, unsigned int /*nyRes*/, unsign } return 0; } - +#if 0 +//never used void CFrameBuffer::setTransparency( int /*tr*/ ) { } - +#endif void CFrameBuffer::setBlendMode(uint8_t mode) { #ifdef HAVE_COOL_HARDWARE @@ -539,14 +540,15 @@ void CFrameBuffer::setBlendLevel(int level) #endif #endif } - +#if 0 +//never used void CFrameBuffer::setAlphaFade(int in, int num, int tr) { for (int i=0; ilfb, 0, thiz->stride * thiz->yRes); } } +#endif void CFrameBuffer::Clear() { paintBackground(); //memset(getFrameBufferPointer(), 0, stride * yRes); } - +#if 0 +//never used void CFrameBuffer::showFrame(const std::string & filename) { std::string varpath = "/var/tuxbox/config/neutrino/icons/"; @@ -1611,7 +1619,7 @@ void CFrameBuffer::showFrame(const std::string & filename) else videoDecoder->ShowPicture((iconBasePath + filename).c_str()); } - +#endif bool CFrameBuffer::Lock() { if(locked) diff --git a/src/driver/rcinput.cpp b/src/driver/rcinput.cpp index a967ff0bc..30f970f71 100644 --- a/src/driver/rcinput.cpp +++ b/src/driver/rcinput.cpp @@ -284,7 +284,8 @@ void CRCInput::restartInput() close(); open(); } - +#if 0 +//never used int CRCInput::messageLoop( bool anyKeyCancels, int timeout ) { neutrino_msg_t msg; @@ -335,6 +336,7 @@ int CRCInput::messageLoop( bool anyKeyCancels, int timeout ) } return res; } +#endif int CRCInput::addTimer(uint64_t Interval, bool oneshot, bool correct_time ) { @@ -1557,7 +1559,8 @@ void CRCInput::close_click() void CRCInput::open_click() { } - +#if 0 +//never used void CRCInput::reset_dsp(int /*rate*/) { } @@ -1565,7 +1568,7 @@ void CRCInput::reset_dsp(int /*rate*/) void CRCInput::set_dsp() { } - +#endif void CRCInput::play_click() { } diff --git a/src/driver/record.cpp b/src/driver/record.cpp index 231501869..1291345df 100644 --- a/src/driver/record.cpp +++ b/src/driver/record.cpp @@ -1546,7 +1546,7 @@ bool CRecordManager::changeNotify(const neutrino_locale_t OptionName, void * /*d } return ret; } - +#if 0 /* this is saved copy of neutrino code which seems was not used for some time */ bool CRecordManager::ChooseRecDir(std::string &dir) { @@ -1575,7 +1575,7 @@ bool CRecordManager::ChooseRecDir(std::string &dir) } return doRecord; } - +#endif bool CRecordManager::MountDirectory(const char *recordingDir) { bool ret = true; diff --git a/src/driver/screenshot.cpp b/src/driver/screenshot.cpp index 6ae11889f..7aea07577 100644 --- a/src/driver/screenshot.cpp +++ b/src/driver/screenshot.cpp @@ -126,6 +126,8 @@ void CScreenShot::run() } /* save file in sync mode, return true if save ok, or false */ +#if 0 +//never used bool CScreenShot::StartSync() { bool ret = false; @@ -136,7 +138,7 @@ bool CScreenShot::StartSync() printf("CScreenShot::StartSync: %s finished: %d\n", filename.c_str(), ret); return ret; } - +#endif /* save file in selected format, free data received from video decoder */ bool CScreenShot::SaveFile() { diff --git a/src/driver/streamts.cpp b/src/driver/streamts.cpp index 9de6a2455..ec2633bc0 100644 --- a/src/driver/streamts.cpp +++ b/src/driver/streamts.cpp @@ -357,7 +357,8 @@ void * streamts_live_thread(void *data) close(fd); return 0; } - +#if 0 +//never used void streamts_file_thread(void *data) { int dvrfd; @@ -458,3 +459,4 @@ void streamts_file_thread(void *data) return; } +#endif \ No newline at end of file diff --git a/src/eitd/SIevents.cpp b/src/eitd/SIevents.cpp index 3e89ed875..78e60f5b6 100644 --- a/src/eitd/SIevents.cpp +++ b/src/eitd/SIevents.cpp @@ -561,7 +561,8 @@ void SIevent::dump(void) const for_each(ratings.begin(), ratings.end(), printSIparentalRating()); for_each(linkage_descs.begin(), linkage_descs.end(), printSIlinkage()); } - +#if 0 +//never used void SIevent::dumpSmall(void) const { for (std::map::const_iterator it = langName.begin() ; @@ -578,3 +579,4 @@ void SIevent::dumpSmall(void) const for_each(ratings.begin(), ratings.end(), printSIparentalRating()); for_each(linkage_descs.begin(), linkage_descs.end(), printSIlinkage()); } +#endif diff --git a/src/eitd/sectionsd.cpp b/src/eitd/sectionsd.cpp index 0d5bd2230..854641324 100644 --- a/src/eitd/sectionsd.cpp +++ b/src/eitd/sectionsd.cpp @@ -150,12 +150,12 @@ inline void readLockServices(void) { pthread_rwlock_rdlock(&servicesLock); } - +#ifdef ENABLE_SDT inline void writeLockServices(void) { pthread_rwlock_wrlock(&servicesLock); } - +#endif inline void unlockServices(void) { pthread_rwlock_unlock(&servicesLock); diff --git a/src/gui/bookmarkmanager.cpp b/src/gui/bookmarkmanager.cpp index 056799fbd..6f11db53e 100644 --- a/src/gui/bookmarkmanager.cpp +++ b/src/gui/bookmarkmanager.cpp @@ -90,7 +90,8 @@ int CBookmarkManager::createBookmark (const std::string & url, const std::string } //------------------------------------------------------------------------ - +#if 0 +//never used void CBookmarkManager::removeBookmark (unsigned int index) { std::vector::iterator p = bookmarks.begin()+index; bookmarks.erase(p); @@ -115,7 +116,7 @@ void CBookmarkManager::renameBookmark (unsigned int index) { bookmarksmodified=true; } } - +#endif #define BOOKMARKSTRINGLENGTH (10 + 1) #define BOOKMARKSTRINGMODIFICATIONPOINT 8 const char * const BOOKMARKSTRING = "bookmark0."; @@ -195,7 +196,8 @@ CBookmarkManager::~CBookmarkManager () { } //------------------------------------------------------------------------ - +#if 0 +//never used int CBookmarkManager::getBookmarkCount(void) const { return bookmarks.size(); } @@ -205,7 +207,7 @@ int CBookmarkManager::getBookmarkCount(void) const { int CBookmarkManager::getMaxBookmarkCount(void) const { return MAXBOOKMARKS; } - +#endif //------------------------------------------------------------------------ void CBookmarkManager::flush() { @@ -215,7 +217,8 @@ void CBookmarkManager::flush() { } //------------------------------------------------------------------------ - +#if 0 +//never used const CBookmark * CBookmarkManager::getBookmark(CMenuTarget* parent) { if (parent) @@ -360,7 +363,7 @@ const CBookmark * CBookmarkManager::getBookmark(CMenuTarget* parent) else return NULL; } - +#endif //------------------------------------------------------------------------ void CBookmarkManager::paintItem(int pos) { diff --git a/src/gui/moviebrowser.cpp b/src/gui/moviebrowser.cpp index 0563a3a85..976bb32c7 100644 --- a/src/gui/moviebrowser.cpp +++ b/src/gui/moviebrowser.cpp @@ -3841,7 +3841,8 @@ int find_gop(unsigned char *buf, int r) } return -1; } - +#if 0 +//never used off64_t fake_read(int fd, unsigned char *buf, size_t size, off64_t fsize) { off64_t cur = lseek64 (fd, 0, SEEK_CUR); @@ -3852,7 +3853,7 @@ off64_t fake_read(int fd, unsigned char *buf, size_t size, off64_t fsize) else return size; } - +#endif #define PSI_SIZE 188*3 static int read_psi(char * spart, unsigned char * buf) { diff --git a/src/gui/movieinfo.cpp b/src/gui/movieinfo.cpp index a455736b3..d9489cfa9 100644 --- a/src/gui/movieinfo.cpp +++ b/src/gui/movieinfo.cpp @@ -321,6 +321,8 @@ bool CMovieInfo::loadMovieInfo(MI_MOVIE_INFO * movie_info, CFile * file) /************************************************************************ ************************************************************************/ +#if 0 +//never used bool CMovieInfo::parseXmlTree(char */*text*/, MI_MOVIE_INFO * /*movie_info*/) { #ifndef XMLTREE_LIB @@ -413,7 +415,7 @@ bool CMovieInfo::parseXmlTree(char */*text*/, MI_MOVIE_INFO * /*movie_info*/) #endif /* XMLTREE_LIB */ return (true); } - +#endif /************************************************************************ ************************************************************************/ @@ -513,6 +515,8 @@ void CMovieInfo::showMovieInfo(MI_MOVIE_INFO & movie_info) /************************************************************************ ************************************************************************/ +#if 0 +//never used void CMovieInfo::printDebugMovieInfo(MI_MOVIE_INFO & movie_info) { TRACE(" FileName: %s", movie_info.file.Name.c_str()); @@ -561,7 +565,7 @@ void CMovieInfo::printDebugMovieInfo(MI_MOVIE_INFO & movie_info) } } } - +#endif /************************************************************************ ************************************************************************/ diff --git a/src/gui/widget/mountchooser.cpp b/src/gui/widget/mountchooser.cpp index a5d927709..b205b99d7 100644 --- a/src/gui/widget/mountchooser.cpp +++ b/src/gui/widget/mountchooser.cpp @@ -88,11 +88,12 @@ int CMountChooser::exec(CMenuTarget* parent, const std::string & actionKey) return CMenuWidget::exec(parent, actionKey); } } - +#if 0 +//never used void CMountChooser::setSelectedItem(int selection) { selected = selection; } - +#endif diff --git a/src/system/flashtool.cpp b/src/system/flashtool.cpp index ec9eff466..063827603 100644 --- a/src/system/flashtool.cpp +++ b/src/system/flashtool.cpp @@ -304,13 +304,15 @@ bool CFlashTool::erase(int globalProgressEnd) close(fd); return true; } - +#if 0 +//never used bool CFlashTool::check_cramfs( const std::string & /*filename*/ ) { int retVal = 0; //cramfs_crc( (char*) filename.c_str() ); printf("flashcheck returned: %d\n", retVal); return retVal==1; } +#endif #define FROMHEX(c) ((c)>='a' ? (c)-'a'+10 : ((c)>='A' ? (c)-'A'+10 : (c)-'0')) bool CFlashTool::check_md5( const std::string & filename, const std::string & smd5) { diff --git a/src/system/lastchannel.cpp b/src/system/lastchannel.cpp index 8898d77b8..787c22c4b 100644 --- a/src/system/lastchannel.cpp +++ b/src/system/lastchannel.cpp @@ -122,13 +122,14 @@ void CLastChannel::set_store_difftime (int secs) { secs_diff_before_store = secs; } - +#if 0 +//never used int CLastChannel::get_store_difftime (void) const { return secs_diff_before_store; } - +#endif int CLastChannel::get_mode(t_channel_id channel_id) { std::list<_LastCh>::iterator It; diff --git a/src/zapit/lib/zapitclient.cpp b/src/zapit/lib/zapitclient.cpp index bdf1e2a2c..a1aab9988 100644 --- a/src/zapit/lib/zapitclient.cpp +++ b/src/zapit/lib/zapitclient.cpp @@ -351,7 +351,8 @@ bool CZapitClient::receive_channel_list(BouquetChannelList& channels, const bool } return true; } - +#if 0 +//never used bool CZapitClient::receive_nchannel_list(BouquetNChannelList& channels) { CZapitMessages::responseGeneralInteger responseInteger; @@ -374,7 +375,7 @@ bool CZapitClient::receive_nchannel_list(BouquetNChannelList& channels) } return true; } - +#endif /* gets all channels that are in specified bouquet */ /* bouquets are numbered starting at 0 */ @@ -528,7 +529,8 @@ void CZapitClient::getVolume(unsigned int *left, unsigned int *right) close_connection(); } - +#if 0 +//never used delivery_system_t CZapitClient::getDeliverySystem(void) { send(CZapitMessages::CMD_GET_DELIVERY_SYSTEM, 0, 0); @@ -542,6 +544,7 @@ delivery_system_t CZapitClient::getDeliverySystem(void) return response.system; } +#endif #if 0 bool CZapitClient::get_current_TP(TP_params* TP) { @@ -1024,6 +1027,8 @@ void CZapitClient::setRecordMode(const bool activate) send(CZapitMessages::CMD_SET_RECORD_MODE, (char*)&msg, sizeof(msg)); close_connection(); } +#if 0 +//never used void CZapitClient::setEventMode(const bool activate) { CZapitMessages::commandSetRecordMode msg; @@ -1031,7 +1036,7 @@ void CZapitClient::setEventMode(const bool activate) send(CZapitMessages::CMD_SET_EVENT_MODE, (char*)&msg, sizeof(msg)); close_connection(); } - +#endif bool CZapitClient::isRecordModeActive() { send(CZapitMessages::CMD_GET_RECORD_MODE); diff --git a/src/zapit/src/channel.cpp b/src/zapit/src/channel.cpp index 991f978ce..72374d4ad 100644 --- a/src/zapit/src/channel.cpp +++ b/src/zapit/src/channel.cpp @@ -269,7 +269,8 @@ CZapitAbsSub* CZapitChannel::getChannelSub(int index) } return retval; } - +#if 0 +//never used void CZapitChannel::setChannelSub(int subIdx) { if (subIdx < (int)channelSubs.size()){ @@ -281,7 +282,7 @@ int CZapitChannel::getChannelSubIndex(void) { return currentSub < getSubtitleCount() ? currentSub : -1; } - +#endif #if 0 void CZapitChannel::setCaPmt(CCaPmt *pCaPmt) { diff --git a/src/zapit/src/femanager.cpp b/src/zapit/src/femanager.cpp index 6cb0a14b3..26e669fc1 100644 --- a/src/zapit/src/femanager.cpp +++ b/src/zapit/src/femanager.cpp @@ -185,10 +185,10 @@ bool CFEManager::loadSettings() char cfg_key[81]; sprintf(cfg_key, "fe%d_satellites", fe->fenumber); - std::vector satList = configfile.getInt32Vector(cfg_key); satellite_map_t & satmap = fe->getSatellites(); satmap.clear(); #if 0 + std::vector satList = configfile.getInt32Vector(cfg_key); for(unsigned int i = 0; i < satList.size(); i++) t_satellite_position position = satList[i]; #endif @@ -316,7 +316,8 @@ CFrontend * CFEManager::getFE(int index) INFO("Frontend #%d not found", index); return NULL; } - +#if 0 +//never used transponder * CFEManager::getChannelTransponder(CZapitChannel * channel) { transponder_list_t::iterator tpI = transponders.find(channel->getTransponderId()); @@ -326,6 +327,7 @@ transponder * CFEManager::getChannelTransponder(CZapitChannel * channel) INFO("Transponder %llx not found", channel->getTransponderId()); return NULL; } +#endif /* try to find fe with same tid, or unlocked. fe with same tid is preffered */ CFrontend * CFEManager::findFrontend(CZapitChannel * channel) diff --git a/src/zapit/src/frontend.cpp b/src/zapit/src/frontend.cpp index e71764a47..f96df7683 100644 --- a/src/zapit/src/frontend.cpp +++ b/src/zapit/src/frontend.cpp @@ -399,12 +399,13 @@ fe_status_t CFrontend::getStatus(void) const return status; #endif } - +#if 0 +//never used FrontendParameters CFrontend::getFrontend(void) const { return currentTransponder.feparams; } - +#endif uint32_t CFrontend::getBitErrorRate(void) const { uint32_t ber = 0; @@ -427,7 +428,8 @@ uint16_t CFrontend::getSignalNoiseRatio(void) const fop(ioctl, FE_READ_SNR, &snr); return snr; } - +#if 0 +//never used uint32_t CFrontend::getUncorrectedBlocks(void) const { uint32_t blocks = 0; @@ -435,7 +437,7 @@ uint32_t CFrontend::getUncorrectedBlocks(void) const return blocks; } - +#endif struct dvb_frontend_event CFrontend::getEvent(void) { struct dvb_frontend_event event; @@ -849,11 +851,12 @@ void CFrontend::secSetVoltage(const fe_sec_voltage_t voltage, const uint32_t ms) usleep(1000 * ms); // FIXME : is needed ? } } - +#if 0 +//never used void CFrontend::secResetOverload(void) { } - +#endif void CFrontend::sendDiseqcCommand(const struct dvb_diseqc_master_cmd *cmd, const uint32_t ms) { printf("[fe%d] Diseqc cmd: ", fenumber); @@ -865,12 +868,13 @@ void CFrontend::sendDiseqcCommand(const struct dvb_diseqc_master_cmd *cmd, const if (fop(ioctl, FE_DISEQC_SEND_MASTER_CMD, cmd) == 0) usleep(1000 * ms); } - +#if 0 +//never used uint32_t CFrontend::getDiseqcReply(const int /*timeout_ms*/) const { return 0; } - +#endif void CFrontend::sendToneBurst(const fe_sec_mini_cmd_t burst, const uint32_t ms) { if (slave || info.type != FE_QPSK) @@ -1094,7 +1098,8 @@ bool CFrontend::tuneChannel(CZapitChannel * /*channel*/, bool /*nvod*/) return false; return tuneFrequency(&transponder->second.feparams, transponder->second.polarization, false); } - +#if 0 +//never used bool CFrontend::retuneTP(bool nowait) { /* used in pip only atm */ @@ -1107,7 +1112,7 @@ bool CFrontend::retuneChannel(void) setFrontend(¤tTransponder.feparams); return 0; } - +#endif int CFrontend::tuneFrequency(FrontendParameters * feparams, uint8_t polarization, bool nowait) { TP_params TP; diff --git a/src/zapit/src/getservices.cpp b/src/zapit/src/getservices.cpp index a71235695..4255a35bf 100644 --- a/src/zapit/src/getservices.cpp +++ b/src/zapit/src/getservices.cpp @@ -79,7 +79,8 @@ bool CServiceManager::ParseScanXml(void) } return (scanInputParser != NULL); } - +#if 0 +//never used xmlDocPtr CServiceManager::ScanXml() { if(!scanInputParser) @@ -87,7 +88,7 @@ xmlDocPtr CServiceManager::ScanXml() return scanInputParser; } - +#endif bool CServiceManager::AddChannel(CZapitChannel * &channel) { channel_insert_res_t ret = allchans.insert ( @@ -160,12 +161,13 @@ void CServiceManager::RemoveAllChannels() { allchans.clear(); } - +#if 0 +//never used void CServiceManager::RemoveNVODChannels() { nvodchannels.clear(); } - +#endif void CServiceManager::RemoveCurrentChannels() { curchans.clear(); @@ -540,10 +542,10 @@ int CServiceManager::LoadMotorPositions(void) return 0; } - +#if 0 +//never used void CServiceManager::SaveMotorPositions() { -#if 0 FILE * fd; sat_iterator_t sit; printf("[getservices] saving motor positions...\n"); @@ -561,9 +563,8 @@ void CServiceManager::SaveMotorPositions() } fdatasync(fileno(fd)); fclose(fd); -#endif } - +#endif bool CServiceManager::InitSatPosition(t_satellite_position position, char * name, bool force) { if(force || (satellitePositions.find(position) == satellitePositions.end())) { @@ -1026,7 +1027,8 @@ bool CServiceManager::ReplaceProviderName(std::string &name, t_transport_stream_ } return false; } - +#if 0 +//never used int CServiceManager::GetFreeNumber(bool radio) { service_number_map_t * channel_numbers = radio ? &radio_numbers : &tv_numbers; @@ -1040,7 +1042,7 @@ int CServiceManager::GetFreeNumber(bool radio) } } } - +#endif int CServiceManager::GetMaxNumber(bool radio) { service_number_map_t * channel_numbers = radio ? &radio_numbers : &tv_numbers; @@ -1052,7 +1054,8 @@ int CServiceManager::GetMaxNumber(bool radio) } return i+1; } - +#if 0 +//never used void CServiceManager::FreeNumber(int number, bool radio) { service_number_map_t * channel_numbers = radio ? &radio_numbers : &tv_numbers; @@ -1064,7 +1067,7 @@ void CServiceManager::UseNumber(int number, bool radio) service_number_map_t * channel_numbers = radio ? &radio_numbers : &tv_numbers; channel_numbers->insert(number); } - +#endif bool CServiceManager::GetTransponder(transponder_id_t tid, transponder &t) { stiterator tI = transponders.find(tid); diff --git a/src/zapit/src/scan.cpp b/src/zapit/src/scan.cpp index 991003980..82172882e 100644 --- a/src/zapit/src/scan.cpp +++ b/src/zapit/src/scan.cpp @@ -625,7 +625,8 @@ bool CServiceScan::ScanTransponder() return (found_channels != 0); } - +#if 0 +//never used bool CServiceScan::ReplaceTransponderParams(freq_id_t freq, t_satellite_position satellitePosition, struct dvb_frontend_parameters * feparams, uint8_t polarization) { bool ret = false; @@ -643,7 +644,7 @@ bool CServiceScan::ReplaceTransponderParams(freq_id_t freq, t_satellite_position } return ret; } - +#endif void CServiceScan::SendTransponderInfo(transponder &t) { uint32_t actual_freq = t.feparams.dvb_feparams.frequency; diff --git a/src/zapit/src/transponder.cpp b/src/zapit/src/transponder.cpp index 0db0d34bb..aa51be576 100644 --- a/src/zapit/src/transponder.cpp +++ b/src/zapit/src/transponder.cpp @@ -120,13 +120,14 @@ void transponder::dump(std::string label) transponder_id, dvb_feparams->frequency, dvb_feparams->u.qpsk.symbol_rate, dvb_feparams->u.qpsk.fec_inner, polarization); } - +#if 0 +//never used void transponder::ddump(std::string label) { if (zapit_debug) dump(label); } - +#endif char transponder::pol(unsigned char p) { if (p == 0) diff --git a/src/zapit/src/zapit.cpp b/src/zapit/src/zapit.cpp index ed27b65ac..bc5b8aa94 100644 --- a/src/zapit/src/zapit.cpp +++ b/src/zapit/src/zapit.cpp @@ -2133,13 +2133,14 @@ void CZapit::SetConfig(Zapit_config * Cfg) SaveSettings(true); ConfigFrontend(); } - +#if 0 +//never used void CZapit::SendConfig(int connfd) { printf("[zapit] %s...\n", __FUNCTION__); CBasicServer::send_data(connfd, &config, sizeof(config)); } - +#endif void CZapit::GetConfig(Zapit_config &Cfg) { printf("[zapit] %s...\n", __FUNCTION__); From c5f4c53fb7ed323ea473d3452f75fab2a8393b23 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Sat, 4 Aug 2012 14:14:08 +0400 Subject: [PATCH 176/317] lib/libnet/libnet.c: fix unused variable warning --- lib/libnet/libnet.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/libnet/libnet.c b/lib/libnet/libnet.c index a92487f5e..87a0ef294 100644 --- a/lib/libnet/libnet.c +++ b/lib/libnet/libnet.c @@ -178,11 +178,11 @@ void netGetDefaultRoute( char *ip ) fclose(fp); } -static char dombuf[256]; static char hostbuf[256]; -static char domis=0; static char hostis=0; #if 0 +static char dombuf[256]; +static char domis=0; //never used char *netGetDomainname( void ) { From 5253b5ba1090a5d0181483fdf44736d370fdf026 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Sat, 4 Aug 2012 15:20:14 +0400 Subject: [PATCH 177/317] driver/record.cpp: bug fixes for multi-record of the same channel, WIP --- src/driver/record.cpp | 52 ++++++++++++++++++++++++------------------- 1 file changed, 29 insertions(+), 23 deletions(-) diff --git a/src/driver/record.cpp b/src/driver/record.cpp index 1291345df..d84facfdc 100644 --- a/src/driver/record.cpp +++ b/src/driver/record.cpp @@ -883,8 +883,6 @@ bool CRecordManager::StartAutoRecord() bool CRecordManager::StopAutoRecord() { - bool found = false; - printf("%s: autoshift %d\n", __FUNCTION__, autoshift); g_RCInput->killTimer (shift_timer); @@ -893,24 +891,26 @@ bool CRecordManager::StopAutoRecord() return false; mutex.lock(); - t_channel_id live_channel_id = CZapit::getInstance()->GetCurrentChannelID(); - CRecordInstance * inst = FindInstance(live_channel_id); - if(inst && inst->Timeshift()) - found = true; + CRecordInstance * inst = NULL; + for (recmap_iterator_t it = recmap.begin(); it != recmap.end(); it++) { + if (it->second->Timeshift()) { + inst = it->second; + break; + } + } + if (inst) + StopInstance(inst); + mutex.unlock(); - if(found) { - Stop(live_channel_id); - autoshift = false; - } - - return found; + return (inst != NULL); } bool CRecordManager::CheckRecording(const CTimerd::RecordingInfo * const eventinfo) { t_channel_id live_channel_id = CZapit::getInstance()->GetCurrentChannelID(); - if((eventinfo->channel_id == live_channel_id) || !SAME_TRANSPONDER(eventinfo->channel_id, live_channel_id)) + /* FIXME check if frontend used for timeshift the same and will zap ?? */ + if(/*(eventinfo->channel_id == live_channel_id) ||*/ !SAME_TRANSPONDER(eventinfo->channel_id, live_channel_id)) StopAutoRecord(); return true; @@ -923,8 +923,9 @@ void CRecordManager::StartNextRecording() printf("%s: pending count %d\n", __FUNCTION__, nextmap.size()); for(nextmap_iterator_t it = nextmap.begin(); it != nextmap.end(); it++) { - bool tested = true; eventinfo = *it; +#if 0 + bool tested = true; if( !recmap.empty() ) { CRecordInstance * inst = FindInstance(eventinfo->channel_id); /* same channel recording and not auto - skip */ @@ -936,16 +937,22 @@ void CRecordManager::StartNextRecording() else { /* there are some recordings, test any (first) for now */ recmap_iterator_t fit = recmap.begin(); - t_channel_id channel_id = fit->first; + t_channel_id channel_id = fit->second->GetChannelId(); tested = (SAME_TRANSPONDER(channel_id, eventinfo->channel_id)); } } - if(tested) { + if(tested) +#endif + CZapitChannel * channel = CServiceManager::getInstance()->FindChannel(eventinfo->channel_id); + if (channel && CFEManager::getInstance()->canTune(channel)) + { //MountDirectory(eventinfo->recordingDir);//FIXME in old neutrino startNextRecording commented bool ret = Record(eventinfo); if(ret) { - it = nextmap.erase(it); delete[] (unsigned char *) eventinfo; + it = nextmap.erase(it++); + if (it == nextmap.end()) + break; } } } @@ -986,7 +993,7 @@ bool CRecordManager::SameTransponder(const t_channel_id channel_id) same = true; else { recmap_iterator_t fit = recmap.begin(); - t_channel_id id = fit->first; + t_channel_id id = fit->second->GetChannelId(); same = (SAME_TRANSPONDER(channel_id, id)); } } @@ -996,8 +1003,9 @@ bool CRecordManager::SameTransponder(const t_channel_id channel_id) void CRecordManager::StopInstance(CRecordInstance * inst, bool remove_event) { - inst->Stop(remove_event); + /* first erase - then stop, because Stop() reset recording_id to 0 */ recmap.erase(inst->GetRecordingId()); + inst->Stop(remove_event); if(inst->Timeshift()) autoshift = false; @@ -1200,7 +1208,6 @@ int CRecordManager::exec(CMenuTarget* parent, const std::string & actionKey ) mutex.lock(); for(recmap_iterator_t it = recmap.begin(); it != recmap.end(); it++) { - //t_channel_id channel_id = it->first; CRecordInstance * inst = it->second; t_channel_id channel_id = inst->GetChannelId(); @@ -1294,10 +1301,9 @@ bool CRecordManager::ShowMenu(void) int i = 0 , shortcut = 1; for(recmap_iterator_t it = recmap.begin(); it != recmap.end(); it++) { - t_channel_id channel_id = it->first; CRecordInstance * inst = it->second; - channel_ids[i] = channel_id; + channel_ids[i] = inst->GetChannelId(); recording_ids[i] = inst->GetRecordingId(); std::string title; @@ -1443,7 +1449,7 @@ bool CRecordManager::CutBackNeutrino(const t_channel_id channel_id, const int mo found = true; } else { for(recmap_iterator_t it = recmap.begin(); it != recmap.end(); it++) { - if(SAME_TRANSPONDER(it->first, channel_id)) { + if(SAME_TRANSPONDER(it->second->GetChannelId(), channel_id)) { found = true; break; } From 55e31a89e7dab55659e1ab4fed95a94f0ad0fe7b Mon Sep 17 00:00:00 2001 From: micha-bbg Date: Sat, 4 Aug 2012 15:49:18 +0200 Subject: [PATCH 178/317] * Menu hints: Update deutsch.locale - German Translations Part 10 (THX Tomworld & Gaucho316) --- data/locale/deutsch.locale | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index 888ff8995..a0f82289f 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -968,11 +968,11 @@ menu.hint_scan_lodirection Wählen Sie ihre Längengrad-Ausrichtung menu.hint_scan_lofh High-Banb LNB-Frequenz menu.hint_scan_lofl Low-Band LNB-Frequenz menu.hint_scan_lofs LNB-Band-Umschalter Frequenz -menu.hint_scan_logical Verwenden Sie die Anbieter Kanal-Nummerierung -menu.hint_scan_logical_hd Wenn sowohl der Kanal in SD und in HD verfügbar ist,\nwird HD nach oben in der Liste gesetzt +menu.hint_scan_logical Verwenden Sie die Kanal-Nummerierung des Anbieters +menu.hint_scan_logical_hd Wenn der Kanal in SD und in HD verfügbar ist,\nwird HD nach oben in der Liste gesetzt menu.hint_scan_longitude Geben Sie ihren Längengrad ein menu.hint_scan_manual Manueller Transponder-Scan mit ausgewählten Parametern -menu.hint_scan_mod Select transponder modulation +menu.hint_scan_mod Wählen Sie eine Transponder-Modulation menu.hint_scan_motor_speed Rotor-Bewegungsgeschwindigkeit in 1/10 Grad pro Sekunde menu.hint_scan_motorpos Wählen Sie eine gespeicherten Positions-Nummer für diesen Satelliten menu.hint_scan_nid Hier können Sie ihre Kabelnetzwerk-Id in dezimal eingeben @@ -1525,7 +1525,7 @@ satsetup.fe_setup Setup Tuner satsetup.lofh LNB High Offset satsetup.lofl LNB Low Offset satsetup.lofs LNB Switch Offset -satsetup.logical_hd Bevorzugete HD-Kanäle +satsetup.logical_hd HD-Kanäle bevorzugen satsetup.logical_numbers Nutze logische Nummern satsetup.manual_scan Manueller Frequenzscan satsetup.minidiseqc Mini-DiSEqC From 89d81c6fd58c69555247abfcafabfdccce9ed1b1 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Sun, 5 Aug 2012 14:18:37 +0400 Subject: [PATCH 179/317] driver/record.cpp: testing record without live change, when possible --- src/driver/record.cpp | 10 ++++++++-- src/driver/record.h | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/driver/record.cpp b/src/driver/record.cpp index d84facfdc..46a373092 100644 --- a/src/driver/record.cpp +++ b/src/driver/record.cpp @@ -820,7 +820,7 @@ bool CRecordManager::Record(const CTimerd::RecordingInfo * const eventinfo, cons int mode = channel->getServiceType() != ST_DIGITAL_RADIO_SOUND_SERVICE ? NeutrinoMessages::mode_tv : NeutrinoMessages::mode_radio; - if(frontend && CutBackNeutrino(eventinfo->channel_id, mode)) { + if(frontend && CutBackNeutrino(eventinfo->channel_id, mode, frontend)) { std::string newdir; if(dir && strlen(dir)) newdir = std::string(dir); @@ -1430,7 +1430,7 @@ bool CRecordManager::RunStopScript(void) * if zap ok * set record mode */ -bool CRecordManager::CutBackNeutrino(const t_channel_id channel_id, const int mode) +bool CRecordManager::CutBackNeutrino(const t_channel_id channel_id, const int mode, CFrontend *frontend) { bool ret = true; printf("%s channel_id %llx mode %d\n", __FUNCTION__, channel_id, mode); @@ -1441,9 +1441,11 @@ bool CRecordManager::CutBackNeutrino(const t_channel_id channel_id, const int mo g_Zapit->setStandby(false); // this zap to live_channel_id t_channel_id live_channel_id = CZapit::getInstance()->GetCurrentChannelID(); + CFrontend *live_fe = CZapit::getInstance()->GetLiveFrontend(); bool mode_changed = false; if(live_channel_id != channel_id) { +#if 0 bool found = false; if(SAME_TRANSPONDER(live_channel_id, channel_id)) { found = true; @@ -1455,6 +1457,10 @@ bool CRecordManager::CutBackNeutrino(const t_channel_id channel_id, const int mo } } } +#endif + /* FIXME if we here, allocateFE was successful, full zapTo_serviceID + * needed, if record frontend same as live, and its on different TP */ + bool found = (live_fe != frontend) || SAME_TRANSPONDER(live_channel_id, channel_id); if(found) { ret = g_Zapit->zapTo_record(channel_id) > 0; printf("%s found same tp, zapTo_record channel_id %llx result %d\n", __FUNCTION__, channel_id, ret); diff --git a/src/driver/record.h b/src/driver/record.h index a29906e5e..bcd0a823b 100644 --- a/src/driver/record.h +++ b/src/driver/record.h @@ -154,7 +154,7 @@ class CRecordManager : public CMenuTarget, public CChangeObserver OpenThreads::Mutex mutex; static OpenThreads::Mutex sm; - bool CutBackNeutrino(const t_channel_id channel_id, const int mode); + bool CutBackNeutrino(const t_channel_id channel_id, const int mode, CFrontend *frontend); void RestoreNeutrino(void); bool CheckRecording(const CTimerd::RecordingInfo * const eventinfo); void StartNextRecording(); From 0a8307b8ef279e462b4bceb14d0a8e6df6cd0573 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Sun, 5 Aug 2012 15:43:45 +0400 Subject: [PATCH 180/317] gui/channellist.cpp: allow multi-record on channel. should we ask for confirm, if we have sign in list ? --- src/gui/channellist.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/gui/channellist.cpp b/src/gui/channellist.cpp index 9eabbd53e..ec97ae09b 100644 --- a/src/gui/channellist.cpp +++ b/src/gui/channellist.cpp @@ -585,6 +585,7 @@ int CChannelList::show() loop=false; } else if( msg == CRCInput::RC_record) { //start direct recording from channellist +#if 0 if(!CRecordManager::getInstance()->RecordingStatus(chanlist[selected]->channel_id)) { printf("[neutrino channellist] start direct recording...\n"); @@ -601,7 +602,17 @@ int CChannelList::show() } } +#endif + if(SameTP()) { + printf("[neutrino channellist] start direct recording...\n"); + hide(); + if (!CRecordManager::getInstance()->Record(chanlist[selected]->channel_id)) { + paintHead(); + paint(); + } else + loop=false; + } } else if( msg == CRCInput::RC_stop ) { //stopp recording if(CRecordManager::getInstance()->RecordingStatus()) From 36b5be520e72607bd3efa2c3e9fe6e35683e02f8 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Sun, 5 Aug 2012 15:44:37 +0400 Subject: [PATCH 181/317] driver/record.cpp: testing record without live change, when possible - another try --- src/driver/record.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/driver/record.cpp b/src/driver/record.cpp index 46a373092..22d3e3d5f 100644 --- a/src/driver/record.cpp +++ b/src/driver/record.cpp @@ -815,7 +815,18 @@ bool CRecordManager::Record(const CTimerd::RecordingInfo * const eventinfo, cons #endif if(recmap.size() < RECORD_MAX_COUNT) { CZapitChannel * channel = CServiceManager::getInstance()->FindChannel(eventinfo->channel_id); + + /* first try to get frontend for record with locked live */ + CFrontend *live_fe = CZapit::getInstance()->GetLiveFrontend(); + bool unlock = true; + CFEManager::getInstance()->lockFrontend(live_fe); CFrontend * frontend = CFEManager::getInstance()->allocateFE(channel); + if (frontend == NULL) { + /* no frontend, try again with unlocked live */ + unlock = false; + CFEManager::getInstance()->unlockFrontend(live_fe); + frontend = CFEManager::getInstance()->allocateFE(channel); + } int mode = channel->getServiceType() != ST_DIGITAL_RADIO_SOUND_SERVICE ? NeutrinoMessages::mode_tv : NeutrinoMessages::mode_radio; @@ -849,6 +860,8 @@ bool CRecordManager::Record(const CTimerd::RecordingInfo * const eventinfo, cons printf("%s add %llx : %s to pending\n", __FUNCTION__, evt->channel_id, evt->epgTitle); nextmap.push_back((CTimerd::RecordingInfo *)evt); } + if (unlock) + CFEManager::getInstance()->unlockFrontend(live_fe); } else error_msg = RECORD_BUSY; From 693ae8d9ffdf2673a7225317db7ea6d46aff4f5a Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Mon, 6 Aug 2012 11:42:16 +0400 Subject: [PATCH 182/317] driver/record.cpp: comment unused code --- src/driver/record.cpp | 46 +++++++++++++++++++++---------------------- src/driver/record.h | 16 ++++++++------- 2 files changed, 32 insertions(+), 30 deletions(-) diff --git a/src/driver/record.cpp b/src/driver/record.cpp index 22d3e3d5f..efb8b27ec 100644 --- a/src/driver/record.cpp +++ b/src/driver/record.cpp @@ -658,7 +658,7 @@ CRecordManager::CRecordManager() StreamVTxtPid = false; StreamPmtPid = false; StopSectionsd = false; - recordingstatus = 0; + //recordingstatus = 0; recmap.clear(); nextmap.clear(); autoshift = false; @@ -848,10 +848,12 @@ bool CRecordManager::Record(const CTimerd::RecordingInfo * const eventinfo, cons recmap.insert(recmap_pair_t(inst->GetRecordingId(), inst)); if(timeshift) autoshift = true; +#if 0 // mimic old behavior for start/stop menu option chooser, still actual ? t_channel_id live_channel_id = CZapit::getInstance()->GetCurrentChannelID(); if(eventinfo->channel_id == live_channel_id) recordingstatus = 1; +#endif } else { delete inst; } @@ -929,7 +931,6 @@ bool CRecordManager::CheckRecording(const CTimerd::RecordingInfo * const eventin return true; } -/* FIXME no check for multi-tuner */ void CRecordManager::StartNextRecording() { CTimerd::RecordingInfo * eventinfo = NULL; @@ -1023,10 +1024,11 @@ void CRecordManager::StopInstance(CRecordInstance * inst, bool remove_event) if(inst->Timeshift()) autoshift = false; +#if 0 t_channel_id live_channel_id = CZapit::getInstance()->GetCurrentChannelID(); if(inst->GetChannelId() == live_channel_id) recordingstatus = 0; - +#endif delete inst; } @@ -1058,7 +1060,6 @@ bool CRecordManager::Stop(const CTimerd::RecordingStopInfo * recinfo) mutex.lock(); - //CRecordInstance * inst = FindInstance(recinfo->channel_id); CRecordInstance * inst = FindInstanceID(recinfo->eventID); if(inst != NULL && recinfo->eventID == inst->GetRecordingId()) { StopInstance(inst, false); @@ -1239,8 +1240,6 @@ int CRecordManager::exec(CMenuTarget* parent, const std::string & actionKey ) printf("[neutrino] direct record\n"); t_channel_id live_channel_id = CZapit::getInstance()->GetCurrentChannelID(); - //if(!CRecordManager::getInstance()->RecordingStatus(live_channel_id)) - bool tostart = true; CRecordInstance * inst = FindInstance(live_channel_id); if (inst) { @@ -1362,7 +1361,6 @@ bool CRecordManager::ShowMenu(void) if (select >= 0 && select < RECORD_MAX_COUNT) { /* in theory, timer event can expire while we in menu ? lock and check again */ mutex.lock(); - //CRecordInstance * inst = FindInstance(channel_ids[select]); CRecordInstance * inst = FindInstanceID(recording_ids[select]); if(inst == NULL || recording_ids[select] != inst->GetRecordingId()) { printf("%s: channel %llx event id %d not found\n", __FUNCTION__, channel_ids[select], recording_ids[select]); @@ -1370,7 +1368,6 @@ bool CRecordManager::ShowMenu(void) return false; } mutex.unlock(); - //return Stop(channel_ids[select]); return AskToStop(channel_ids[select], recording_ids[select]); } return false; @@ -1522,6 +1519,21 @@ void CRecordManager::RestoreNeutrino(void) g_Sectionsd->setPauseScanning(false); } +bool CRecordManager::IsFileRecord(std::string file) +{ + mutex.lock(); + for(recmap_iterator_t it = recmap.begin(); it != recmap.end(); it++) { + CRecordInstance * inst = it->second; + if ((((std::string)inst->GetFileName()) + ".ts") == file) { + mutex.unlock(); + return true; + } + } + mutex.unlock(); + return false; +} + +#if 0 /* should return true, if recordingstatus changed in this function ? */ bool CRecordManager::doGuiRecord() { @@ -1571,6 +1583,7 @@ bool CRecordManager::changeNotify(const neutrino_locale_t OptionName, void * /*d } return ret; } +#endif #if 0 /* this is saved copy of neutrino code which seems was not used for some time */ bool CRecordManager::ChooseRecDir(std::string &dir) @@ -1600,7 +1613,7 @@ bool CRecordManager::ChooseRecDir(std::string &dir) } return doRecord; } -#endif + bool CRecordManager::MountDirectory(const char *recordingDir) { bool ret = true; @@ -1636,20 +1649,7 @@ bool CRecordManager::MountDirectory(const char *recordingDir) return ret; } - -bool CRecordManager::IsFileRecord(std::string file) -{ - mutex.lock(); - for(recmap_iterator_t it = recmap.begin(); it != recmap.end(); it++) { - CRecordInstance * inst = it->second; - if ((((std::string)inst->GetFileName()) + ".ts") == file) { - mutex.unlock(); - return true; - } - } - mutex.unlock(); - return false; -} +#endif #if 0 // not used, saved in case we needed it extern bool autoshift_delete; diff --git a/src/driver/record.h b/src/driver/record.h index bcd0a823b..aaf6b3ab9 100644 --- a/src/driver/record.h +++ b/src/driver/record.h @@ -135,7 +135,7 @@ typedef recmap_t::iterator recmap_iterator_t; typedef std::list nextmap_t; typedef nextmap_t::iterator nextmap_iterator_t; -class CRecordManager : public CMenuTarget, public CChangeObserver +class CRecordManager : public CMenuTarget /*, public CChangeObserver*/ { private: static CRecordManager * manager; @@ -208,17 +208,19 @@ class CRecordManager : public CMenuTarget, public CChangeObserver bool Timeshift() { return (autoshift || shift_timer); }; bool SameTransponder(const t_channel_id channel_id); int handleMsg(const neutrino_msg_t _msg, neutrino_msg_data_t data); - // old code - bool ChooseRecDir(std::string &dir); - bool MountDirectory(const char *recordingDir); // mimic old behavior for start/stop menu option chooser, still actual ? - int recordingstatus; - bool doGuiRecord(); - bool changeNotify(const neutrino_locale_t OptionName, void * /*data*/); int GetRecordCount() { return recmap.size(); }; bool IsTimeshift(t_channel_id channel_id=0); void StartTimeshift(); int GetRecordMode(const t_channel_id channel_id=0); bool IsFileRecord(std::string file); + // old code +#if 0 + bool MountDirectory(const char *recordingDir); + bool ChooseRecDir(std::string &dir); + int recordingstatus; + bool doGuiRecord(); + bool changeNotify(const neutrino_locale_t OptionName, void * /*data*/); +#endif }; #endif From e245f581ca210e503b9c55979d1875743d22c085 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Mon, 6 Aug 2012 15:08:34 +0400 Subject: [PATCH 183/317] driver/record.cpp: try to not stop timeshift, if not needed --- src/driver/record.cpp | 13 ++++++++++--- src/driver/record.h | 2 +- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/driver/record.cpp b/src/driver/record.cpp index efb8b27ec..07a25b216 100644 --- a/src/driver/record.cpp +++ b/src/driver/record.cpp @@ -790,8 +790,10 @@ bool CRecordManager::Record(const CTimerd::RecordingInfo * const eventinfo, cons printf("%s channel_id %llx epg: %llx, apidmode 0x%X\n", __FUNCTION__, eventinfo->channel_id, eventinfo->epgID, eventinfo->apids); +#if 0 if(!CheckRecording(eventinfo)) return false; +#endif #if 1 // FIXME test StopSectionsd = false; @@ -896,7 +898,7 @@ bool CRecordManager::StartAutoRecord() return Record(live_channel_id, TimeshiftDirectory.c_str(), true); } -bool CRecordManager::StopAutoRecord() +bool CRecordManager::StopAutoRecord(bool lock) { printf("%s: autoshift %d\n", __FUNCTION__, autoshift); @@ -905,7 +907,8 @@ bool CRecordManager::StopAutoRecord() if(!autoshift) return false; - mutex.lock(); + if (lock) + mutex.lock(); CRecordInstance * inst = NULL; for (recmap_iterator_t it = recmap.begin(); it != recmap.end(); it++) { if (it->second->Timeshift()) { @@ -916,11 +919,13 @@ bool CRecordManager::StopAutoRecord() if (inst) StopInstance(inst); - mutex.unlock(); + if (lock) + mutex.unlock(); return (inst != NULL); } +#if 0 bool CRecordManager::CheckRecording(const CTimerd::RecordingInfo * const eventinfo) { t_channel_id live_channel_id = CZapit::getInstance()->GetCurrentChannelID(); @@ -930,6 +935,7 @@ bool CRecordManager::CheckRecording(const CTimerd::RecordingInfo * const eventin return true; } +#endif void CRecordManager::StartNextRecording() { @@ -1477,6 +1483,7 @@ bool CRecordManager::CutBackNeutrino(const t_channel_id channel_id, const int mo } else { printf("%s mode %d last_mode %d getLastMode %d\n", __FUNCTION__, mode, last_mode, CNeutrinoApp::getInstance()->getLastMode()); + StopAutoRecord(false); if (mode != last_mode && (last_mode != NeutrinoMessages::mode_standby || mode != CNeutrinoApp::getInstance()->getLastMode())) { CNeutrinoApp::getInstance()->handleMsg( NeutrinoMessages::CHANGEMODE , mode | NeutrinoMessages::norezap ); mode_changed = true; diff --git a/src/driver/record.h b/src/driver/record.h index aaf6b3ab9..451ff96fd 100644 --- a/src/driver/record.h +++ b/src/driver/record.h @@ -187,7 +187,7 @@ class CRecordManager : public CMenuTarget /*, public CChangeObserver*/ bool AskToStop(const t_channel_id channel_id, const int recid = 0); int exec(CMenuTarget* parent, const std::string & actionKey); bool StartAutoRecord(); - bool StopAutoRecord(); + bool StopAutoRecord(bool lock = true); MI_MOVIE_INFO * GetMovieInfo(const t_channel_id channel_id); const std::string GetFileName(const t_channel_id channel_id); From ab24c127c84b853fedd268a7ee0ab752d93da92c Mon Sep 17 00:00:00 2001 From: satbaby Date: Mon, 6 Aug 2012 20:22:43 +0200 Subject: [PATCH 184/317] -add: show sore screenings in in extra window --- data/locale/deutsch.locale | 1 + data/locale/english.locale | 1 + src/gui/epgview.cpp | 27 +++++++++++++++++++++--- src/gui/epgview.h | 1 + src/gui/eventlist.cpp | 43 ++++++++++++++++++++++---------------- src/gui/eventlist.h | 4 ++-- src/system/locals.h | 1 + src/system/locals_intern.h | 1 + 8 files changed, 56 insertions(+), 23 deletions(-) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index a0f82289f..ca69467fb 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -299,6 +299,7 @@ epgextended.presenter Moderator epgextended.year_of_production Produktionsjahr epglist.noevents Keine EPG-Information verfügbar. epgviewer.More_Screenings Weitere Termine auf diesem Kanal +epgviewer.More_Screenings_short Weitere Termine epgviewer.nodetailed Keine ausführlichen Informationen verfügbar epgviewer.notfound Keine Programminformationen (EPG) gefunden eventfinder.head EPG-Suche diff --git a/data/locale/english.locale b/data/locale/english.locale index f0debb45b..e0a0f0ed1 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -223,6 +223,7 @@ EPGPlus.stretch_mode Stretch Mode EPGPlus.swap_mode swap mode EPGPlus.view_mode view mode epgviewer.More_Screenings More Screenings on this Channel +epgviewer.More_Screenings_short More Screenings epgviewer.nodetailed No detailed informations available epgviewer.notfound no epg found eventfinder.head Search in EPG diff --git a/src/gui/epgview.cpp b/src/gui/epgview.cpp index d34d4205f..40f6616be 100644 --- a/src/gui/epgview.cpp +++ b/src/gui/epgview.cpp @@ -592,10 +592,12 @@ int CEpgData::show(const t_channel_id channel_id, uint64_t a_id, time_t* a_start // -- display more screenings on the same channel // -- 2002-05-03 rasc + has_follow_screenings = false; if (hasFollowScreenings(channel_id, epgData.title)) { processTextToArray(""); // UTF-8 processTextToArray(std::string(g_Locale->getText(LOCALE_EPGVIEWER_MORE_SCREENINGS)) + ':'); // UTF-8 FollowScreenings(channel_id, epgData.title); + has_follow_screenings = true; } COSDFader fader(g_settings.menu_Content_alpha); @@ -847,7 +849,24 @@ int CEpgData::show(const t_channel_id channel_id, uint64_t a_id, time_t* a_start printf("timerd not available\n"); break; } + case CRCInput::RC_blue: + { + if(!followlist.empty()){ + hide(); + CNeutrinoEventList *ee; + ee = new CNeutrinoEventList; + ee->exec(channel_id, g_Locale->getText(LOCALE_EPGVIEWER_MORE_SCREENINGS_SHORT),"","",followlist); // UTF-8 + delete ee; + if (!bigFonts && g_settings.bigFonts) { + g_Font[SNeutrinoSettings::FONT_TYPE_EPG_INFO1]->setSize((int)(g_Font[SNeutrinoSettings::FONT_TYPE_EPG_INFO1]->getSize() * BIG_FONT_FAKTOR)); + g_Font[SNeutrinoSettings::FONT_TYPE_EPG_INFO2]->setSize((int)(g_Font[SNeutrinoSettings::FONT_TYPE_EPG_INFO2]->getSize() * BIG_FONT_FAKTOR)); + } + bigFonts = g_settings.bigFonts; + show(channel_id,epgData.eventID,&epgData.epg_times.startzeit,false); + } + break; + } case CRCInput::RC_info: case CRCInput::RC_help: bigFonts = bigFonts ? false : true; @@ -1072,7 +1091,9 @@ int CEpgData::FollowScreenings (const t_channel_id /*channel_id*/, const std::st const struct button_label EpgButtons[] = { { NEUTRINO_ICON_BUTTON_RED , LOCALE_TIMERBAR_RECORDEVENT }, - { NEUTRINO_ICON_BUTTON_YELLOW, LOCALE_TIMERBAR_CHANNELSWITCH } + { NEUTRINO_ICON_BUTTON_YELLOW, LOCALE_TIMERBAR_CHANNELSWITCH }, + { NEUTRINO_ICON_BUTTON_BLUE, LOCALE_EPGVIEWER_MORE_SCREENINGS_SHORT } + }; void CEpgData::showTimerEventBar (bool pshow) @@ -1097,9 +1118,9 @@ void CEpgData::showTimerEventBar (bool pshow) frameBuffer->paintBoxRel(sx,y,ox,h, COL_INFOBAR_SHADOW_PLUS_1, RADIUS_LARGE, CORNER_BOTTOM);//round if (g_settings.recording_type != CNeutrinoApp::RECORDING_OFF) - ::paintButtons(x, y, 0, 2, EpgButtons, h); + ::paintButtons(x, y, 0, has_follow_screenings ? 3:2, EpgButtons, h); else - ::paintButtons(x, y, 0, 1, &EpgButtons[1], h); + ::paintButtons(x, y, 0, has_follow_screenings ? 2:1, &EpgButtons[1], h); #if 0 // Button: Timer Record & Channelswitch diff --git a/src/gui/epgview.h b/src/gui/epgview.h index ddc475a86..7b051c024 100644 --- a/src/gui/epgview.h +++ b/src/gui/epgview.h @@ -62,6 +62,7 @@ class CEpgData std::string epg_end; int epg_done; bool bigFonts; + bool has_follow_screenings; time_t tmp_curent_zeit; uint64_t prev_id; diff --git a/src/gui/eventlist.cpp b/src/gui/eventlist.cpp index 37c435865..496f545cf 100644 --- a/src/gui/eventlist.cpp +++ b/src/gui/eventlist.cpp @@ -248,12 +248,12 @@ void CNeutrinoEventList::readEvents(const t_channel_id channel_id) } -int CNeutrinoEventList::exec(const t_channel_id channel_id, const std::string& channelname, const std::string& channelname_prev, const std::string& channelname_next) // UTF-8 +int CNeutrinoEventList::exec(const t_channel_id channel_id, const std::string& channelname, const std::string& channelname_prev, const std::string& channelname_next,const CChannelEventList &followlist) // UTF-8 { neutrino_msg_t msg; neutrino_msg_data_t data; bool in_search = false; - + showfollow = false; // Calculate iheight struct button_label tmp_button[1] = { { NEUTRINO_ICON_BUTTON_RED, NONEXISTANT_LOCALE } }; iheight = ::paintButtons(0, 0, 0, 1, tmp_button, 0, 0, false, COL_INFOBAR_SHADOW, NULL, 0, false); @@ -300,8 +300,13 @@ int CNeutrinoEventList::exec(const t_channel_id channel_id, const std::string& c COSDFader fader(g_settings.menu_Content_alpha); fader.StartFadeIn(); - - readEvents(channel_id); + if(!followlist.empty()){ + insert_iterator >ii(evtlist,evtlist.begin()); + copy(followlist.begin(), followlist.end(), ii); + showfollow = true; + }else{ + readEvents(channel_id); + } UpdateTimerList(); if(channelname_prev.empty(), channelname_next.empty()){ @@ -385,7 +390,7 @@ int CNeutrinoEventList::exec(const t_channel_id channel_id, const std::string& c showFunctionBar(paint_buttonbar, channel_id); } //sort - else if (msg == (neutrino_msg_t)g_settings.key_channelList_sort) + else if (!showfollow && (msg == (neutrino_msg_t)g_settings.key_channelList_sort)) { uint64_t selected_id = evtlist[selected].eventID; if(sort_mode==0) @@ -635,7 +640,7 @@ int CNeutrinoEventList::exec(const t_channel_id channel_id, const std::string& c } } } - else if ( msg==CRCInput::RC_green ) + else if (!showfollow && ( msg==CRCInput::RC_green )) { in_search = findEvents(); timeoutEnd = CRCInput::calcTimeoutEnd(g_settings.timing[SNeutrinoSettings::TIMING_EPG]); @@ -938,11 +943,12 @@ void CNeutrinoEventList::showFunctionBar (bool show, t_channel_id channel_id) bx+=w_button+4; } } - - // Button: Search - FunctionBarHeight = std::max(::paintButtons(bx, by, w_button, NUM_EVENTLIST_SECOND_BUTTON, EventListSecondButton), FunctionBarHeight); - bx+=w_button+4; + if(!showfollow){ + // Button: Search + FunctionBarHeight = std::max(::paintButtons(bx, by, w_button, NUM_EVENTLIST_SECOND_BUTTON, EventListSecondButton), FunctionBarHeight); + bx+=w_button+4; + } // Button: Timer Channelswitch if ((uint) g_settings.key_channelList_addremind != CRCInput::RC_nokey) { if (!g_settings.minimode) { @@ -961,14 +967,15 @@ void CNeutrinoEventList::showFunctionBar (bool show, t_channel_id channel_id) FunctionBarHeight = std::max(::paintButtons(bx, by, w_button, NUM_EVENTLIST_THIRD_BUTTON, EventListThirdButton), FunctionBarHeight); bx+=w_button+4; } - - // Button: Event Re-Sort - if ((uint) g_settings.key_channelList_sort != CRCInput::RC_nokey) { - // FIXME : display other icons depending on g_settings.key_channelList_sort - keyhelper.get(&dummy, &icon, g_settings.key_channelList_sort); - EventListFourthButton[0].button = icon; - FunctionBarHeight = std::max(::paintButtons(bx, by, w_button, NUM_EVENTLIST_THIRD_BUTTON, EventListFourthButton), FunctionBarHeight); -// bx+=w_button+4; + if(!showfollow){ + // Button: Event Re-Sort + if ((uint) g_settings.key_channelList_sort != CRCInput::RC_nokey) { + // FIXME : display other icons depending on g_settings.key_channelList_sort + keyhelper.get(&dummy, &icon, g_settings.key_channelList_sort); + EventListFourthButton[0].button = icon; + FunctionBarHeight = std::max(::paintButtons(bx, by, w_button, NUM_EVENTLIST_THIRD_BUTTON, EventListFourthButton), FunctionBarHeight); +// bx+=w_button+4; + } } } diff --git a/src/gui/eventlist.h b/src/gui/eventlist.h index f703702cc..c1ef8b81b 100644 --- a/src/gui/eventlist.h +++ b/src/gui/eventlist.h @@ -118,13 +118,13 @@ class CNeutrinoEventList int timerPost; void UpdateTimerList(void); bool HasTimerConflicts(time_t starttime, time_t duration, event_id_t * epg_ID); - + bool showfollow; CTimerd::CTimerEventTypes isScheduled(t_channel_id channel_id, CChannelEvent * event, int * tID = NULL); public: CNeutrinoEventList(); ~CNeutrinoEventList(); - int exec(const t_channel_id channel_id, const std::string& channelname, const std::string& prev = "", const std::string& next = ""); // UTF-8 + int exec(const t_channel_id channel_id, const std::string& channelname, const std::string& prev = "", const std::string& next = "", const CChannelEventList &followlist = CChannelEventList ()); // UTF-8 }; class CEventListHandler : public CMenuTarget diff --git a/src/system/locals.h b/src/system/locals.h index 10786c2ff..a57276dc2 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -250,6 +250,7 @@ typedef enum LOCALE_EPGPLUS_SWAP_MODE, LOCALE_EPGPLUS_VIEW_MODE, LOCALE_EPGVIEWER_MORE_SCREENINGS, + LOCALE_EPGVIEWER_MORE_SCREENINGS_SHORT, LOCALE_EPGVIEWER_NODETAILED, LOCALE_EPGVIEWER_NOTFOUND, LOCALE_EVENTFINDER_HEAD, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index 9421139d1..46b966676 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -250,6 +250,7 @@ const char * locale_real_names[] = "EPGPlus.swap_mode", "EPGPlus.view_mode", "epgviewer.More_Screenings", + "epgviewer.More_Screenings_short", "epgviewer.nodetailed", "epgviewer.notfound", "eventfinder.head", From 3c0d72e28af05667a92cf5b5fd987ad661f3ef0b Mon Sep 17 00:00:00 2001 From: micha-bbg Date: Mon, 6 Aug 2012 21:56:12 +0200 Subject: [PATCH 185/317] * 'locale' targets: Adapted for out of tree build --- data/locale/Makefile.am | 32 +++++++++++++++++++------------- data/locale/_readme.txt | 33 ++++++++++++++++----------------- 2 files changed, 35 insertions(+), 30 deletions(-) diff --git a/data/locale/Makefile.am b/data/locale/Makefile.am index dde025d60..c45acb32c 100644 --- a/data/locale/Makefile.am +++ b/data/locale/Makefile.am @@ -21,28 +21,34 @@ install_DATA = \ if MAINTAINER_MODE -locals: locals.h locals_intern.h +locals: sort-locals locals.h locals_intern.h install-locals -ordercheck: deutsch.locale - cut -d' ' -f1 deutsch.locale | LC_ALL=C sort | uniq > /tmp/log - cut -d' ' -f1 deutsch.locale | uniq | diff - /tmp/log || \ +sort-locals: $(top_srcdir)/data/locale/deutsch.locale $(top_srcdir)/data/locale/english.locale + cat $(top_srcdir)/data/locale/deutsch.locale | LC_ALL=C sort | uniq > deutsch.locale + cat $(top_srcdir)/data/locale/english.locale | LC_ALL=C sort | uniq > english.locale + +ordercheck: $(top_srcdir)/data/locale/deutsch.locale + cut -d' ' -f1 $(top_srcdir)/data/locale/deutsch.locale | LC_ALL=C sort | uniq > /tmp/log + cut -d' ' -f1 $(top_srcdir)/data/locale/deutsch.locale | uniq | diff - /tmp/log || \ (echo "ERROR: deutsch.locale not ordered or contains empty lines" && false) -locals.h: ordercheck deutsch.locale - cut -d' ' -f1 deutsch.locale | LC_ALL=C sort | uniq | tr [:lower:] [:upper:] | tr \. \_ | tr \- \_ | tr -d \? | ./create.locals.h +locals.h: ordercheck $(top_srcdir)/data/locale/deutsch.locale + cut -d' ' -f1 $(top_srcdir)/data/locale/deutsch.locale | LC_ALL=C sort | uniq | tr [:lower:] [:upper:] | tr \. \_ | tr \- \_ | tr -d \? | $(top_srcdir)/data/locale/create.locals.h -locals_intern.h: ordercheck deutsch.locale - cut -d' ' -f1 deutsch.locale | LC_ALL=C sort | uniq | ./create.locals_intern.h +locals_intern.h: ordercheck $(top_srcdir)/data/locale/deutsch.locale + cut -d' ' -f1 $(top_srcdir)/data/locale/deutsch.locale | LC_ALL=C sort | uniq | $(top_srcdir)/data/locale/create.locals_intern.h check: locals.h locals_intern.h - diff locals.h ../../src/system - diff locals_intern.h ../../src/system + diff locals.h $(top_srcdir)/src/system + diff locals_intern.h $(top_srcdir)/src/system install-locals: locals.h locals_intern.h - cp locals.h locals_intern.h ../../src/system - @echo "Consider committing .../neutrino/src/system/[locals.h,locals_intern.h]" + cp locals.h locals_intern.h $(top_srcdir)/src/system + @echo "Consider committing src/system/[locals.h,locals_intern.h]" + cp -f deutsch.locale english.locale $(top_srcdir)/data/locale + @echo "Consider committing data/locale/[deutsch.locale,english.locale]" locals-clean: - rm -f locals.h locals_intern.h + rm -f locals.h locals_intern.h deutsch.locale english.locale endif diff --git a/data/locale/_readme.txt b/data/locale/_readme.txt index 97044e9d4..cd4366866 100644 --- a/data/locale/_readme.txt +++ b/data/locale/_readme.txt @@ -28,36 +28,35 @@ How do I add a new locale string? --------------------------------- 1.) First of all, add the new string to deutsch.locale while preserving -the ordering. Do not add any empty lines. Use `make ordercheck' to for -verification. +the ordering. Do not add any empty lines. 2.) -Enter the directory apps/tuxbox/neutrino/data/locale. +Enter the directory build_tmp/neutrino-hd/data/locale. 3.) -Create new versions of the files apps/tuxbox/neutrino/src/system/locals.h -and apps/tuxbox/neutrino/src/system/locals_intern.h -using the command `make locals.h locals_intern.h'. +Use for sorting (deutsch.locale,english.locale) 'make sort-locals', use 'make ordercheck' to for +verification. 4.) -Check the modifications with `make check', or with -diff locals.h ../../src/system/locals.h -diff locals_intern.h ../../src/system/locals_intern.h +Create new versions of the files src/system/locals.h and src/system/locals_intern.h +using the command 'make locals.h locals_intern.h'. 5.) -Copy the replacement file to their destination with `make install-locals', -or with -cp -p locals.h ../../src/system/locals.h -cp -p locals_intern.h ../../src/system/locals_intern.h +Check the modifications with 'make check' 6.) +Copy the replacement file to their destination with 'make install-locals' + +7.) +Or use for item 3-6 'make locals' + +8.) To the extent possible, update other locale file. For this, the Perl-script create-locals-update.pl may be useful. -7.) -If committing the changes to CVS, commit both the involved -locale-files, apps/tuxbox/neutrino/src/system/locals.h, and -as apps/tuxbox/neutrino/src/system/locals_intern.h. +9.) +If committing the changes to Git, commit both the involved +locale-files, src/system/locals.h, and src/system/locals_intern.h. Useful tools: ------------- From 6b424c3e0788c706123be68251ee794885d99b54 Mon Sep 17 00:00:00 2001 From: micha-bbg Date: Mon, 6 Aug 2012 19:54:17 +0200 Subject: [PATCH 186/317] * Update locale - english.locale sorted - locals.h/locals_intern.h rebuild --- data/locale/english.locale | 488 ++++++++++++++++++------------------- src/system/locals.h | 320 ++++++++++++------------ src/system/locals_intern.h | 320 ++++++++++++------------ 3 files changed, 564 insertions(+), 564 deletions(-) diff --git a/data/locale/english.locale b/data/locale/english.locale index e0a0f0ed1..a0aa13693 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -1,24 +1,128 @@ +AUDIOSelectMenue.head Audio Selection +EPGMenu.epgplus Eventlist overview +EPGMenu.eventinfo Details current program +EPGMenu.eventlist Eventlist current programm +EPGMenu.head EPG - Program Information +EPGMenu.streaminfo technical information +EPGPlus.actions Actions +EPGPlus.bybouquet_mode by bouquet +EPGPlus.bypage_mode by page +EPGPlus.head Eventlist Overview (EPG Plus) +EPGPlus.next_bouquet next bouquet +EPGPlus.options options +EPGPlus.page_down page down +EPGPlus.page_up page up +EPGPlus.prev_bouquet prev bouquet +EPGPlus.record Record +EPGPlus.refresh_epg Refresh +EPGPlus.remind Schedule +EPGPlus.scroll_mode Scroll Mode +EPGPlus.stretch_mode Stretch Mode +EPGPlus.swap_mode swap mode +EPGPlus.view_mode view mode +GENRE.ARTS.0 arts / culture +GENRE.ARTS.1 performing arts +GENRE.ARTS.10 arts/culture magazines +GENRE.ARTS.11 fashion +GENRE.ARTS.2 fine arts +GENRE.ARTS.3 religion +GENRE.ARTS.4 popular culture/traditional arts +GENRE.ARTS.5 literature +GENRE.ARTS.6 film/cinema +GENRE.ARTS.7 experimental film/video +GENRE.ARTS.8 broadcasting/press +GENRE.ARTS.9 new media +GENRE.CHILDRENs_PROGRAMMES.0 children / juvenile program +GENRE.CHILDRENs_PROGRAMMES.1 pre-school children's programmes +GENRE.CHILDRENs_PROGRAMMES.2 entertainment programmes for 6 to 14 +GENRE.CHILDRENs_PROGRAMMES.3 entertainment programmes for 10 to 16 +GENRE.CHILDRENs_PROGRAMMES.4 informational/educational/school programmes +GENRE.CHILDRENs_PROGRAMMES.5 cartoons/puppets +GENRE.DOCUS_MAGAZINES.0 documentation / magazine +GENRE.DOCUS_MAGAZINES.1 nature/animals/environment +GENRE.DOCUS_MAGAZINES.2 technology/natural sciences +GENRE.DOCUS_MAGAZINES.3 medicine/physiology/psychology +GENRE.DOCUS_MAGAZINES.4 foreign countries/expeditions +GENRE.DOCUS_MAGAZINES.5 social/spiritual sciences +GENRE.DOCUS_MAGAZINES.6 further education +GENRE.DOCUS_MAGAZINES.7 languages +GENRE.MOVIE.0 movie/drama +GENRE.MOVIE.1 detective/thriller +GENRE.MOVIE.2 adventure/western/war +GENRE.MOVIE.3 science fiction/fantasy/horror +GENRE.MOVIE.4 comedy +GENRE.MOVIE.5 soap/melodrama/folkloric +GENRE.MOVIE.6 romance +GENRE.MOVIE.7 serious/classical/religious/historical movie/drama +GENRE.MOVIE.8 adult movie/drama +GENRE.MUSIC_DANCE.0 music / ballet / dance +GENRE.MUSIC_DANCE.1 rock/pop +GENRE.MUSIC_DANCE.2 serious music/classical music +GENRE.MUSIC_DANCE.3 folk/traditional music +GENRE.MUSIC_DANCE.4 jazz +GENRE.MUSIC_DANCE.5 musical/opera +GENRE.MUSIC_DANCE.6 ballet +GENRE.NEWS.0 news +GENRE.NEWS.1 news/weather report +GENRE.NEWS.2 news magazine +GENRE.NEWS.3 documentary +GENRE.NEWS.4 discussion/interview/debate +GENRE.SHOW.0 Show / Gameshow +GENRE.SHOW.1 game show/quiz/contest +GENRE.SHOW.2 variety show +GENRE.SHOW.3 talk show +GENRE.SOCIAL_POLITICAL.0 social & politic events / business +GENRE.SOCIAL_POLITICAL.1 magazines/reports/documentary +GENRE.SOCIAL_POLITICAL.2 economics/social advisory +GENRE.SOCIAL_POLITICAL.3 remarkable people +GENRE.SPORTS.0 sports +GENRE.SPORTS.1 special events (Olympic Games,World Cup etc.) +GENRE.SPORTS.10 equestrian +GENRE.SPORTS.11 martial sports +GENRE.SPORTS.2 sports magazines +GENRE.SPORTS.3 football/soccer +GENRE.SPORTS.4 tennis/squash +GENRE.SPORTS.5 team sports (excluding football) +GENRE.SPORTS.6 athletics +GENRE.SPORTS.7 motor sports +GENRE.SPORTS.8 water sports +GENRE.SPORTS.9 winter sports +GENRE.TRAVEL_HOBBIES.0 travel & recreation +GENRE.TRAVEL_HOBBIES.1 tourism/travel +GENRE.TRAVEL_HOBBIES.2 handicraft +GENRE.TRAVEL_HOBBIES.3 motoring +GENRE.TRAVEL_HOBBIES.4 fitness & health +GENRE.TRAVEL_HOBBIES.5 cooking +GENRE.TRAVEL_HOBBIES.6 advertisement/shopping +GENRE.TRAVEL_HOBBIES.7 gardening +GENRE.UNKNOWN unknown apidselector.head Select language +audio.srs_algo Type +audio.srs_algo_light Light +audio.srs_algo_normal Normal +audio.srs_iq SRS TruVolume algo +audio.srs_nmgr Noise manager +audio.srs_volume Reference volume +audiomenu.PCMOffset Volume Decrease PCM audiomenu.analog_mode Analog mode audiomenu.analog_out Analog output audiomenu.auto_lang Auto select audio audiomenu.auto_subs Auto select subtitles audiomenu.avs avs -audiomenu.avsync_am Audio master audiomenu.avsync A/V sync +audiomenu.avsync_am Audio master audiomenu.clockrec audiomenu.dolbydigital Prefer Dolby Digital -audiomenu.hdmi_dd_auto auto audiomenu.hdmi_dd Encoded DD on HDMI +audiomenu.hdmi_dd_auto auto audiomenu.hdmi_dd_force force audiomenu.monoleft mono left audiomenu.monoright mono right -audiomenu.PCMOffset Volume Decrease PCM -audiomenu.pref_lang_head Audio/EPG language preferences audiomenu.pref_lang Prefered language +audiomenu.pref_lang_head Audio/EPG language preferences audiomenu.pref_languages Language preferences -audiomenu.pref_subs_head Subtitle language preferences audiomenu.pref_subs Prefered subtitle language +audiomenu.pref_subs_head Subtitle language preferences audiomenu.spdif_dd Encoded DD on SPDIF audiomenu.stereo stereo audiomenu.volume_step Volume step @@ -31,8 +135,8 @@ audioplayer.building_search_index building search index audioplayer.button_select_title_by_id search by ID audioplayer.button_select_title_by_name search by name audioplayer.defdir start dir. -audioplayer.deleteall remove all audioplayer.delete Remove +audioplayer.deleteall remove all audioplayer.display_order display order audioplayer.enable_sc_metadata enable shoutcast meta data parsing audioplayer.fastforward fast forw. @@ -48,7 +152,7 @@ audioplayer.keylevel key level audioplayer.load_radio_stations Load internet radios audioplayer.name Audioplayer audioplayer.pause pause -audioplayerpicsettings.general Audioplayer / Picviewer +audioplayer.play Play audioplayer.playing Current Track audioplayer.playlist_fileerror_msg File could not be created: audioplayer.playlist_fileoverwrite_msg Do you want to overwrite this file: @@ -56,7 +160,6 @@ audioplayer.playlist_fileoverwrite_title Overwrite? audioplayer.playlist_name filename of the play list audioplayer.playlist_name_hint1 Please enter the filename of the playlist audioplayer.playlist_name_hint2 The extension .m3u will be added automatically -audioplayer.play Play audioplayer.reading_files reading files audioplayer.receiving_list Receiving list, please wait audioplayer.repeat_on enable repeat mode @@ -69,13 +172,7 @@ audioplayer.shuffle shuffle audioplayer.spectrum lcd a-spectrum audioplayer.stop Stop audioplayer.title_artist Title, Artist -AUDIOSelectMenue.head Audio Selection -audio.srs_algo_light Light -audio.srs_algo_normal Normal -audio.srs_algo Type -audio.srs_iq SRS TruVolume algo -audio.srs_nmgr Noise manager -audio.srs_volume Reference volume +audioplayerpicsettings.general Audioplayer / Picviewer bookmarkmanager.delete delete bookmarkmanager.name bookmarks bookmarkmanager.rename rename @@ -155,16 +252,16 @@ colormenu.hd_preset LCD colormenu.menucolors Colors colormenu.osd_preset TV preset colormenu.sd_preset CRT +colormenu.textcolor Text color +colormenu.themeselect select theme +colormenu.timing OSD Timeouts colormenusetup.menucontent Content colormenusetup.menucontent_inactive Content inactive colormenusetup.menucontent_selected Content selected colormenusetup.menuhead Header -colormenu.textcolor Text color -colormenu.themeselect select theme -colormenu.timing OSD Timeouts colorstatusbar.text Infobar -colorthememenu.head2 Themes laden colorthememenu.head Theme auswählen +colorthememenu.head2 Themes laden colorthememenu.name Themename colorthememenu.neutrino_theme Neutrino Theme colorthememenu.question Aktuelles Theme beibehalten? @@ -201,37 +298,16 @@ epgextended.original_title Original Title epgextended.presenter Presenter epgextended.year_of_production Year of Production epglist.noevents EPG is not available... -EPGMenu.epgplus Eventlist overview -EPGMenu.eventinfo Details current program -EPGMenu.eventlist Eventlist current programm -EPGMenu.head EPG - Program Information -EPGMenu.streaminfo technical information -EPGPlus.actions Actions -EPGPlus.bybouquet_mode by bouquet -EPGPlus.bypage_mode by page -EPGPlus.head Eventlist Overview (EPG Plus) -EPGPlus.next_bouquet next bouquet -EPGPlus.options options -EPGPlus.page_down page down -EPGPlus.page_up page up -EPGPlus.prev_bouquet prev bouquet -EPGPlus.record Record -EPGPlus.refresh_epg Refresh -EPGPlus.remind Schedule -EPGPlus.scroll_mode Scroll Mode -EPGPlus.stretch_mode Stretch Mode -EPGPlus.swap_mode swap mode -EPGPlus.view_mode view mode epgviewer.More_Screenings More Screenings on this Channel epgviewer.More_Screenings_short More Screenings epgviewer.nodetailed No detailed informations available epgviewer.notfound no epg found eventfinder.head Search in EPG eventfinder.keyword Keyword -eventfinder.searching Search for keyword in EPG... eventfinder.search Search eventfinder.search_within_epg Search within eventfinder.search_within_list Search within +eventfinder.searching Search for keyword in EPG... eventfinder.start_search Start Search eventlistbar.channelswitch schedule eventlistbar.eventsort sorting @@ -288,9 +364,9 @@ extra.menu_left_exit "Left" = menu back extra.north North extra.record_time Max. recording time in hours extra.rotor_swap Swap rotor east/west +extra.rounded_corners Shape of corners extra.rounded_corners_off angular extra.rounded_corners_on rounded -extra.rounded_corners Shape of corners extra.saveconfig Neutrino-HD Settings: Save as extra.savekeys Save keys as extra.scrambled_message Scrambled Message @@ -300,19 +376,19 @@ extra.south South extra.start_tostandby Startup to standby extra.temp_timeshift Temporary timeshift extra.timeshift_pause Timeshift pause +extra.tp.pol_v V extra.tp_fec FEC extra.tp_freq Frequency +extra.tp_mod Modulation extra.tp_mod_128 QAM/128 extra.tp_mod_16 QAM/16 extra.tp_mod_256 QAM/256 extra.tp_mod_32 QAM/32 extra.tp_mod_64 QAM/64 -extra.tp_mod Modulation +extra.tp_pol Polarization extra.tp_pol_h H extra.tp_pol_l L -extra.tp_pol Polarization extra.tp_pol_r R -extra.tp.pol_v V extra.tp_rate Symbol rate extra.update_dir Local update directory extra.use_gotoxx Use gotoXX @@ -350,8 +426,8 @@ filebrowser.scan Scaning folder filebrowser.select Select filebrowser.showrights Show file rights filebrowser.sort.date (date) -filebrowser.sort.namedirsfirst (filename2) filebrowser.sort.name (filename) +filebrowser.sort.namedirsfirst (filename2) filebrowser.sort.size (Size) filebrowser.sort.type (type) filesystem.is.utf8 file system @@ -361,8 +437,8 @@ flashupdate.actionreadflash reading flashupdate.cantopenfile can't open file flashupdate.cantopenmtd can't open mtd-device flashupdate.checkupdate Check for updates -flashupdate.currentversiondate Date flashupdate.currentversion_sep Current version +flashupdate.currentversiondate Date flashupdate.currentversiontime Time flashupdate.erasefailed erasure of flash failed flashupdate.erasing erasing flash @@ -371,10 +447,10 @@ flashupdate.expertfunctions Expert-functions flashupdate.fileis0bytes the filesize is 0 Bytes flashupdate.fileselector File-Selector flashupdate.flashreadyreboot The image was successfully flashed.\nThe box will be rebooted now. -flashupdate.getinfofileerror can't get versioninfo flashupdate.getinfofile getting versioninfo -flashupdate.getupdatefileerror can't get update +flashupdate.getinfofileerror can't get versioninfo flashupdate.getupdatefile getting update +flashupdate.getupdatefileerror can't get update flashupdate.globalprogress Global Progress: flashupdate.head Software Update flashupdate.md5check checking image @@ -385,18 +461,18 @@ flashupdate.mtdselector Partition-Selector flashupdate.new_found New image found ! flashupdate.new_notfound No new images found flashupdate.programmingflash programming flash +flashupdate.proxypassword Password flashupdate.proxypassword_hint1 enter the proxyserver password flashupdate.proxypassword_hint2 a empty entry means no proxy-auth -flashupdate.proxypassword Password +flashupdate.proxyserver Hostname flashupdate.proxyserver_hint1 enter proxyserver name or ip, use host:port flashupdate.proxyserver_hint2 a empty entry means no proxy -flashupdate.proxyserver Hostname flashupdate.proxyserver_sep Proxyserver +flashupdate.proxyusername Username flashupdate.proxyusername_hint1 enter the proxyserver username flashupdate.proxyusername_hint2 a empty entry means no proxy-auth -flashupdate.proxyusername Username -flashupdate.readflashmtd Read one partition flashupdate.readflash Read whole image +flashupdate.readflashmtd Read one partition flashupdate.ready ready flashupdate.reallyflashmtd Do you really want to flash?\n\nIf a error occurs or the image is not\nvalid, the box will not boot after flashing.\n\nImagename: %s\nTarget: %s flashupdate.savesuccess The image was successfully saved \nunder %s. @@ -405,13 +481,13 @@ flashupdate.settings Update settings flashupdate.squashfs.noversion SquashFS version checks are currently only supported when updating over the web.\nAre you sure that you wish to install this image? flashupdate.titlereadflash Reading Flash flashupdate.titlewriteflash Writing Flash +flashupdate.updatemode Updatemode flashupdate.updatemode_internet internet flashupdate.updatemode_manual from local update directory -flashupdate.updatemode Updatemode flashupdate.url_file config file flashupdate.versioncheck checking version -flashupdate.writeflashmtd Write one partition flashupdate.writeflash Write whole image +flashupdate.writeflashmtd Write one partition flashupdate.wrongbase Your Release cycle differs.\nTo continue? fontmenu.channellist Channellist fontmenu.epg EPG @@ -421,15 +497,15 @@ fontmenu.head Font settings fontmenu.infobar Infobar fontmenu.menu Menu fontmenu.scaling Global Font Zoom Factor -fontmenu.scaling_x_hint2 Horizontal (in %) min 50 / max 200 fontmenu.scaling_x Horizontal (in %) -fontmenu.scaling_y_hint2 Vertical (in %) min 50 / max 200 +fontmenu.scaling_x_hint2 Horizontal (in %) min 50 / max 200 fontmenu.scaling_y Vertical (in %) +fontmenu.scaling_y_hint2 Vertical (in %) min 50 / max 200 fontmenu.sizes Font sizes +fontsize.channel_num_zap direct selection fontsize.channellist Channellist fontsize.channellist_descr Description fontsize.channellist_number Number -fontsize.channel_num_zap direct selection fontsize.epg_date EPG Date fontsize.epg_info1 EPG Info 1 fontsize.epg_info2 EPG Info 2 @@ -446,86 +522,10 @@ fontsize.infobar_channame Channel name fontsize.infobar_info info fontsize.infobar_number Number fontsize.infobar_small Small +fontsize.menu Menutext fontsize.menu_hint Menu hints fontsize.menu_info Menu Info -fontsize.menu Menutext fontsize.menu_title Menu Title -GENRE.ARTS.0 arts / culture -GENRE.ARTS.10 arts/culture magazines -GENRE.ARTS.11 fashion -GENRE.ARTS.1 performing arts -GENRE.ARTS.2 fine arts -GENRE.ARTS.3 religion -GENRE.ARTS.4 popular culture/traditional arts -GENRE.ARTS.5 literature -GENRE.ARTS.6 film/cinema -GENRE.ARTS.7 experimental film/video -GENRE.ARTS.8 broadcasting/press -GENRE.ARTS.9 new media -GENRE.CHILDRENs_PROGRAMMES.0 children / juvenile program -GENRE.CHILDRENs_PROGRAMMES.1 pre-school children's programmes -GENRE.CHILDRENs_PROGRAMMES.2 entertainment programmes for 6 to 14 -GENRE.CHILDRENs_PROGRAMMES.3 entertainment programmes for 10 to 16 -GENRE.CHILDRENs_PROGRAMMES.4 informational/educational/school programmes -GENRE.CHILDRENs_PROGRAMMES.5 cartoons/puppets -GENRE.DOCUS_MAGAZINES.0 documentation / magazine -GENRE.DOCUS_MAGAZINES.1 nature/animals/environment -GENRE.DOCUS_MAGAZINES.2 technology/natural sciences -GENRE.DOCUS_MAGAZINES.3 medicine/physiology/psychology -GENRE.DOCUS_MAGAZINES.4 foreign countries/expeditions -GENRE.DOCUS_MAGAZINES.5 social/spiritual sciences -GENRE.DOCUS_MAGAZINES.6 further education -GENRE.DOCUS_MAGAZINES.7 languages -GENRE.MOVIE.0 movie/drama -GENRE.MOVIE.1 detective/thriller -GENRE.MOVIE.2 adventure/western/war -GENRE.MOVIE.3 science fiction/fantasy/horror -GENRE.MOVIE.4 comedy -GENRE.MOVIE.5 soap/melodrama/folkloric -GENRE.MOVIE.6 romance -GENRE.MOVIE.7 serious/classical/religious/historical movie/drama -GENRE.MOVIE.8 adult movie/drama -GENRE.MUSIC_DANCE.0 music / ballet / dance -GENRE.MUSIC_DANCE.1 rock/pop -GENRE.MUSIC_DANCE.2 serious music/classical music -GENRE.MUSIC_DANCE.3 folk/traditional music -GENRE.MUSIC_DANCE.4 jazz -GENRE.MUSIC_DANCE.5 musical/opera -GENRE.MUSIC_DANCE.6 ballet -GENRE.NEWS.0 news -GENRE.NEWS.1 news/weather report -GENRE.NEWS.2 news magazine -GENRE.NEWS.3 documentary -GENRE.NEWS.4 discussion/interview/debate -GENRE.SHOW.0 Show / Gameshow -GENRE.SHOW.1 game show/quiz/contest -GENRE.SHOW.2 variety show -GENRE.SHOW.3 talk show -GENRE.SOCIAL_POLITICAL.0 social & politic events / business -GENRE.SOCIAL_POLITICAL.1 magazines/reports/documentary -GENRE.SOCIAL_POLITICAL.2 economics/social advisory -GENRE.SOCIAL_POLITICAL.3 remarkable people -GENRE.SPORTS.0 sports -GENRE.SPORTS.10 equestrian -GENRE.SPORTS.11 martial sports -GENRE.SPORTS.1 special events (Olympic Games,World Cup etc.) -GENRE.SPORTS.2 sports magazines -GENRE.SPORTS.3 football/soccer -GENRE.SPORTS.4 tennis/squash -GENRE.SPORTS.5 team sports (excluding football) -GENRE.SPORTS.6 athletics -GENRE.SPORTS.7 motor sports -GENRE.SPORTS.8 water sports -GENRE.SPORTS.9 winter sports -GENRE.TRAVEL_HOBBIES.0 travel & recreation -GENRE.TRAVEL_HOBBIES.1 tourism/travel -GENRE.TRAVEL_HOBBIES.2 handicraft -GENRE.TRAVEL_HOBBIES.3 motoring -GENRE.TRAVEL_HOBBIES.4 fitness & health -GENRE.TRAVEL_HOBBIES.5 cooking -GENRE.TRAVEL_HOBBIES.6 advertisement/shopping -GENRE.TRAVEL_HOBBIES.7 gardening -GENRE.UNKNOWN unknown hdd_10min 10 min. hdd_1min 1 min. hdd_20min 20 min. @@ -538,8 +538,8 @@ hdd_check_failed HDD-check failed! hdd_ext3 Ext3fs hdd_extended_settings Extended HDD-Settings hdd_fast Fast -hdd_format_failed Formating failed! hdd_format Formating drive... +hdd_format_failed Formating failed! hdd_format_warn Start format... hdd_fs Filesystem hdd_manage Manage drives @@ -580,6 +580,7 @@ infoviewer.subservice Subservices infoviewer.waittime Waiting for time... ipsetup.hint_1 Use 0..9, or use Up/Down, ipsetup.hint_2 OK saves, Exit aborts +keybindingmenu.RC Tune Remote-Control keybindingmenu.addrecord add record timer keybindingmenu.addremind add zapto timer keybindingmenu.allchannels_on_ok all-services @@ -595,20 +596,19 @@ keybindingmenu.channelup channel up keybindingmenu.head Edit Keybindings keybindingmenu.lastchannel Quick Zap keybindingmenu.misc Misc -keybindingmenu.modechange Modechange -keybindingmenu.mode_left_right_key_tv_infobar Show Infobar keybindingmenu.mode_left_right_key_tv Left/Right Key Behavior in TV-Mode +keybindingmenu.mode_left_right_key_tv_infobar Show Infobar keybindingmenu.mode_left_right_key_tv_volume Volume Control keybindingmenu.mode_left_right_key_tv_vzap Virtual Zap keybindingmenu.mode_left_right_key_tv_zap Zap +keybindingmenu.modechange Modechange keybindingmenu.pagedown page down keybindingmenu.pageup page up keybindingmenu.poweroff Power toggle keybindingmenu.quickzap Quickzap -keybindingmenu.RC Tune Remote-Control +keybindingmenu.remotecontrol_hardware Hardware keybindingmenu.remotecontrol_hardware_coolstream Coolstream keybindingmenu.remotecontrol_hardware_dbox d-box Nokia (old) -keybindingmenu.remotecontrol_hardware Hardware keybindingmenu.remotecontrol_hardware_msg_part1 The remote control has been changed from ' keybindingmenu.remotecontrol_hardware_msg_part2 ' to ' keybindingmenu.remotecontrol_hardware_msg_part3 ' \nIs this correct?\nPlease confirm the selection within 15 seconds by using the new remote control.\nOtherwise the selection will be reverted. @@ -622,27 +622,27 @@ keybindingmenu.subchannelup subchannel up keybindingmenu.tvradiomode TV/Radio-mode keybindingmenu.zaphistory Zapping History Bouquet keychooser.head Setup new Key +keychooser.text1 Please press the new key +keychooser.text2 wait a few seconds for abort keychoosermenu.currentkey current key keychoosermenu.setnew setup new key keychoosermenu.setnone no key -keychooser.text1 Please press the new key -keychooser.text2 wait a few seconds for abort languagesetup.head Language / Timezone languagesetup.osd OSD Language languagesetup.select OSD Language -lcdcontroler.brightnessdeepstandby DeepStandby Brightness -lcdcontroler.brightness normal Brightness -lcdcontroler.brightnessstandby Standby Brightness +lcd_info_line show in infoline lcd_info_line_channel Channelname lcd_info_line_clock clock -lcd_info_line show in infoline +lcdcontroler.brightness normal Brightness +lcdcontroler.brightnessdeepstandby DeepStandby Brightness +lcdcontroler.brightnessstandby Standby Brightness lcdmenu.dim_brightness Brightness after dim timeout lcdmenu.dim_time Dim timeout lcdmenu.head VFD Settings lcdmenu.lcdcontroler Brightness +lcdmenu.statusline status line lcdmenu.statusline.both volume / playtime lcdmenu.statusline.playtime playtime -lcdmenu.statusline status line lcdmenu.statusline.volume volume ledcontroler.blink Blink in deep standby, if timer set ledcontroler.menu Power Button LEDs @@ -684,19 +684,25 @@ mainsettings.misc Extended settings mainsettings.network Network mainsettings.osd OSD mainsettings.recording Recording -mainsettings.savesettingsnow_hint Saving settings,\nplease wait... mainsettings.savesettingsnow Save settings now +mainsettings.savesettingsnow_hint Saving settings,\nplease wait... mainsettings.timezone Timezone mainsettings.video Video menu.back Back menu.cancel Cancel menu.hint_a_pic Configure audio player and picture viewer menu.hint_aplay Audio player -menu.hint_audio_analog_mode Select audio channel to use\nstereo, mono-left, mono-right menu.hint_audio Audio output, DD\nSRS True volume options +menu.hint_audio_analog_mode Select audio channel to use\nstereo, mono-left, mono-right menu.hint_audio_avsync A/V sync menu.hint_audio_dd Auto-switch to DolbyDigital audio pid,\nif available menu.hint_audio_hdmi_dd DolbyDigital over HDMI: off - decoded\nauto if supported by device, force +menu.hint_audio_spdif_dd DolbyDigital over optical output +menu.hint_audio_srs SRS TruVolume control volume jumps\nat content changes +menu.hint_audio_srs_algo Amount of control, light or normal +menu.hint_audio_srs_nmgr Noise manager +menu.hint_audio_srs_volume Reference level to maintain +menu.hint_audio_volstep Volume +/- keys increase/decrease step menu.hint_audioplayer_defdir Default audioplayer directory menu.hint_audioplayer_follow Move playlist selected pointer\nto current playing song menu.hint_audioplayer_highprio Increase playback priority @@ -706,12 +712,6 @@ menu.hint_audioplayer_repeat Enable playlist repeat when end of list reached menu.hint_audioplayer_sc_metadata Enable streaming audio metadata parsing menu.hint_audioplayer_screensaver Set screensaver timeout, in minutes menu.hint_audioplayer_title Enable SMS-style title search in playlist -menu.hint_audio_spdif_dd DolbyDigital over optical output -menu.hint_audio_srs_algo Amount of control, light or normal -menu.hint_audio_srs_nmgr Noise manager -menu.hint_audio_srs SRS TruVolume control volume jumps\nat content changes -menu.hint_audio_srs_volume Reference level to maintain -menu.hint_audio_volstep Volume +/- keys increase/decrease step menu.hint_auto_lang Auto-switch audio to preferred language menu.hint_auto_subs Auto-start subtitles for preferred language menu.hint_back Return to previous menu\nPress menu key to close all menus @@ -742,8 +742,8 @@ menu.hint_epg_fonts Change EPG details window font sizes menu.hint_epg_max_events Maximum events to cache. After reaching limit\nEPG cache will remove future events menu.hint_epg_old_events Hours after event end time to consider\nevent old and remove it from cache menu.hint_epg_save Save cached EPG to harddisk or usb flash\nand load it after boot -menu.hint_eventlist_fonts Change event list font sizes menu.hint_event_textcolor Change event color for colored-event options\nin channel list and infobar +menu.hint_eventlist_fonts Change event list font sizes menu.hint_extended Power saving, EPG save/load options\nHDMI-CEC, Start channel, zap options menu.hint_factory Reset box to factory state\nBox will reboot after reset menu.hint_fade Fade GUI windows @@ -754,13 +754,13 @@ menu.hint_fileplay Play various video files menu.hint_filesystem_is_utf8 Filebrowser filesystem encoding menu.hint_font_gui Select font file to use for GUI menu.hint_font_scaling Set global vertical and horizontal\nGUI font scaling -menu.hint_fonts Configure GUI fonts and font sizes menu.hint_font_ttx Select font file to use for teletext +menu.hint_fonts Configure GUI fonts and font sizes menu.hint_gamelist_fonts Change games and scripts list font sizes menu.hint_games Show list of installed games +menu.hint_hdd Format / check hard disk drive menu.hint_hdd_apply Apply sleep/noise parameters menu.hint_hdd_check Check filesystem (fsck) -menu.hint_hdd Format / check hard disk drive menu.hint_hdd_format Create HDD partition and format it menu.hint_hdd_noise Set Automatic Acoustic Management\nnot all drives support this menu.hint_hdd_sleep Select time to stop hdd on inactivity @@ -768,18 +768,19 @@ menu.hint_hdd_tools Initialize HDD, check filesystem menu.hint_head_back Change GUI title background color menu.hint_head_textcolor Change GUI window title text color menu.hint_imageinfo Information about installed software +menu.hint_inact_timer Shutdown box after inactivity menu.hint_inactive_back Change inactive item background color menu.hint_inactive_textcolor Change inactive item text color -menu.hint_inact_timer Shutdown box after inactivity menu.hint_inet_radio Internet radio +menu.hint_info Information about image, box cpu and storage,\nstream information menu.hint_infobar_back Change infobar background color menu.hint_infobar_casys On: display all with colored active, mini: single\nlocked icon, descreet: all active ca-sys menu.hint_infobar_colored_event Use different color for current or next event menu.hint_infobar_dd Show DD icon menu.hint_infobar_filesys Show flash and HDD used space levels menu.hint_infobar_fonts Change infobar font sizes -menu.hint_infobar_logo_dir Select directory to search for channels logo menu.hint_infobar_logo Logo / signal options +menu.hint_infobar_logo_dir Select directory to search for channels logo menu.hint_infobar_on_epg Show infobar on current EPG event change menu.hint_infobar_radiotext Show radiotext window menu.hint_infobar_res Show channel resolution icons @@ -787,7 +788,6 @@ menu.hint_infobar_sat Show current satellite or cable provider menu.hint_infobar_setup Configure infobar options menu.hint_infobar_textcolor Change infobar text color menu.hint_infobar_tuner Show active tuner number icon -menu.hint_info Information about image, box cpu and storage,\nstream information menu.hint_keep_numbers Keep channel numbers over next scans\nand bouquets editing menu.hint_key_addrecord Assign button to add record timer\nfrom event list menu.hint_key_addremind Assign button to add zap timer\nfrom event list @@ -796,9 +796,9 @@ menu.hint_key_binding Re-define keys used for common operations menu.hint_key_bouquetdown Assign button to switch channel list\nto previous bouquet menu.hint_key_bouquetup Assign button to switch channel list\nto next bouquet menu.hint_key_cancel Assign button to close GUI window +menu.hint_key_channel_sms If enabled, numeric buttons in channel list\nused to search channel in SMS style menu.hint_key_channeldown Assign button for fast switch to previous\nchannel in channel list menu.hint_key_channellist Configure keybingdings for channel list -menu.hint_key_channel_sms If enabled, numeric buttons in channel list\nused to search channel in SMS style menu.hint_key_channelup Assign button for fast switch to next\nchannel in channel list menu.hint_key_hardware Change remote control type menu.hint_key_history Assign button to show channel\nchannel switch history @@ -829,12 +829,12 @@ menu.hint_key_right Select 'right' function in live TV/Radio mode menu.hint_key_save Save keybindings to file menu.hint_key_screenshot Assign button to save GUI and/or TV screenshot menu.hint_key_sort Assign button to change channel list sort order -menu.hint_keys Remote control repeat rate\nEdit key bindings menu.hint_key_subchanneldown Assign button for fast switch\n to previous subchannel menu.hint_key_subchannelup Assign button for fast switch\n to next subchannel menu.hint_key_transponder Assign button to show channel list\nfor current transponder menu.hint_key_tvradiomode Assign button to switch TV <> Radio mode menu.hint_key_unlock Assign button to unlock box if locked\nTo unlock press 'red', then in next 5 seconds this key +menu.hint_keys Remote control repeat rate\nEdit key bindings menu.hint_lang_pref Configure preferred audio, EPG\nand subtitle languages menu.hint_language OSD language, timezone\nPreffered audio and subtitles languages menu.hint_last_radio Start box on selected channel\nif last mode is Radio @@ -916,42 +916,42 @@ menu.hint_radiomode Switch box to radio mode menu.hint_reboot Reboot box\nNo confirmation menu.hint_record_apid_ac3 Record AC3 audio pids menu.hint_record_apid_alt Record alternative non-AC3 audio pids -menu.hint_record_apids Configure audio pids to record menu.hint_record_apid_std Record first audio pid +menu.hint_record_apids Configure audio pids to record menu.hint_record_apply Apply record options menu.hint_record_chandir Create directory with name of channel\nto store recording menu.hint_record_dir Select directory to store recordings menu.hint_record_end Stop direct record after max. time\nor after current event end time -menu.hint_recording Recording and timeshift options\nTimers safety, audio pids options menu.hint_record_tdir Select directory to save timeshift recordings\nin temporary timeshift mode +menu.hint_record_time Record time before stop when\nusing direct record with record button menu.hint_record_timeafter Stop record after event end\nin minutes menu.hint_record_timebefore Start record before event start\nin minutes menu.hint_record_timer Configure record by timer options -menu.hint_record_time Record time before stop when\nusing direct record with record button -menu.hint_record_timeshift_auto Auto start timeshift after channel switch, in seconds menu.hint_record_timeshift Configure timeshift options +menu.hint_record_timeshift_auto Auto start timeshift after channel switch, in seconds menu.hint_record_timeshift_delete Delete timeshift files after timeshift stop menu.hint_record_timeshift_pause Start timeshift playback in paused mode menu.hint_record_timeshift_temp If off, timeshift started as\nany direct record -menu.hint_record_zap_pre_time For ZapTo timers, switch channel\nbefore event start, in minutes menu.hint_record_zap Switch to channel to be recorded\nat record announce +menu.hint_record_zap_pre_time For ZapTo timers, switch channel\nbefore event start, in minutes +menu.hint_recording Recording and timeshift options\nTimers safety, audio pids options menu.hint_reload_channels Reload channels from flash menu.hint_reload_plugins Reload plugins from flash menu.hint_reset Reset Neutrino-HD GUI settings to defaults\nTuner config and channels not affected menu.hint_restore Restore files from selected backup menu.hint_rotor_swap Swap rotor east/west directions\nin motor control menu.hint_rounded_corners Draw round or rectangular windows corners -menu.hint_saveas Save Neutrino-HD GUI settings to file menu.hint_save_settings Save all settings to flash +menu.hint_saveas Save Neutrino-HD GUI settings to file +menu.hint_scan_auto Auto-scan selected provider menu.hint_scan_autoall Scan several selected providers at once menu.hint_scan_autoall_select Add selected satellites to scan -menu.hint_scan_auto Auto-scan selected provider menu.hint_scan_bouquet Update: add to current bouquets, erase:\nremove old bouquets, leave: dont add or change menu.hint_scan_cable Select cable network to scan menu.hint_scan_cable_simple Cable scan with optional\nprovider channel numbering menu.hint_scan_commited Select commited input for\nthis satellite -menu.hint_scan_diseqcrepeat Diseqc repeat for cascaded switches menu.hint_scan_diseqc Select diseqc switch input for\nthis satellite +menu.hint_scan_diseqcrepeat Diseqc repeat for cascaded switches menu.hint_scan_diseqctype Select your diseqc switch protocol\nwith 'advanced' you can use uncommited switches menu.hint_scan_fast CanalDigitaal/TéléSAT/TV Vlaanderen provider scan\nWARNING: diseqc config will be overwritten menu.hint_scan_fastprov Select provider to scan @@ -974,8 +974,8 @@ menu.hint_scan_logical_hd If both SD and HD channel versions present\nput HD to menu.hint_scan_longitude Enter your longtitude menu.hint_scan_manual Manual transponder scan using\nselected parameters menu.hint_scan_mod Select transponder modulation -menu.hint_scan_motorpos Select stored position number for\nthis satellite menu.hint_scan_motor_speed Rotor moving speed in 1/10 degree\nper second +menu.hint_scan_motorpos Select stored position number for\nthis satellite menu.hint_scan_nid Enter decimal network ID menu.hint_scan_nit Add transpoders from network information menu.hint_scan_pids Scan and save audio/video/PMT PIDs @@ -997,8 +997,8 @@ menu.hint_scan_start Start scan. You can use 'exit' button to stop menu.hint_scan_test Test signal for this transponder menu.hint_scan_tpselect Select transponder to scan menu.hint_scan_uncommited Select uncommited input for\nthis satellite -menu.hint_scan_usalsall Set/unset usals flag for all satellites menu.hint_scan_usals_repeat Repeat usals move rotor commands\nif you expirience unstable rotor move +menu.hint_scan_usalsall Set/unset usals flag for all satellites menu.hint_scan_useusals Use USALS for\nthis satellite menu.hint_scrambled_message Show scrambled message, when channel cannot be decoded menu.hint_screen_setup Configure screen margins @@ -1013,12 +1013,12 @@ menu.hint_screenshot_video Include live video in screenshot menu.hint_scripts Run scripts menu.hint_selected_back Change selected item background color menu.hint_selected_text Change selected item text color -menu.hint_service_scan Tuner setup, service scan menu.hint_service Tuner setup, service scan,\nbouquet editor, software upgrade +menu.hint_service_scan Tuner setup, service scan menu.hint_settings Configure Neutrino-HD\nNetwork, audio, video, OSD and more menu.hint_show_mute_icon Show mute icon, when volume set to 0 -menu.hint_shutdown_count Time to put box in deep-standby\nfrom soft-standby mode menu.hint_shutdown Put your box in deep standby mode\nNo confirmation +menu.hint_shutdown_count Time to put box in deep-standby\nfrom soft-standby mode menu.hint_shutdown_rcdelay Enable deep-standby, if power button\npressed more than 1 second menu.hint_shutdown_real Enable soft-standby mode\nIf disabled, power button put box to deep-standby menu.hint_sleeptimer Set timer to put your box\nin sleep mode @@ -1033,16 +1033,17 @@ menu.hint_timers Add/Remove/Edit scheduled\nrecording, reminders etc. menu.hint_timezone Select your timezone menu.hint_tvmode Switch box to TV mode menu.hint_tvradio_switch Switches between TV and Radio mode +menu.hint_vfd Frontpanel LEDS, VFD options +menu.hint_vfd_brightness Working brightness +menu.hint_vfd_brightness_setup Configure frontpanel display brightness\nfor different modes menu.hint_vfd_brightnessdeepstandby Brightness in deep-standby mode menu.hint_vfd_brightnessdim Auto-dim brightness -menu.hint_vfd_brightness_setup Configure frontpanel display brightness\nfor different modes menu.hint_vfd_brightnessstandby Brightness in soft-standby mode -menu.hint_vfd_brightness Working brightness menu.hint_vfd_defaults Restore default brightness values menu.hint_vfd_dimtime Auto-dim time, in seconds -menu.hint_vfd Frontpanel LEDS, VFD options menu.hint_vfd_infoline Choose what to display in main VFD line menu.hint_vfd_statusline Choose what to display in short\nVFD status line +menu.hint_video Video output, resolution, format\nAspect ratio, fast mode switch options menu.hint_video_43mode Display mode for 4:3 content\non 16:9 TV menu.hint_video_analog_mode Select analog output mode\nfor SCART and CINCH connectors menu.hint_video_cinch_mode Select analog output mode for\ncomposite video out @@ -1051,7 +1052,6 @@ menu.hint_video_format TV aspect ratio menu.hint_video_mode HDMI output video mode menu.hint_video_modes VF key will cycle between enabled modes menu.hint_video_scart_mode Select analog output mode for SCART connectors -menu.hint_video Video output, resolution, format\nAspect ratio, fast mode switch options menu.hint_volume_digits Numeric display of the volumebar on/off menu.hint_volume_pos Select volume indicator position menu.hint_zap_cycle When swithing channels, stay in current bouquet @@ -1079,15 +1079,16 @@ miscsettings.epg_extendedcache EPG Long Description (hours) miscsettings.epg_extendedcache_hint1 How long into the future will EPG extended descriptions miscsettings.epg_extendedcache_hint2 be Cached? (Set in hours) miscsettings.epg_head Epg +miscsettings.epg_max_events Max. Events miscsettings.epg_max_events_hint1 How many events should be stored? miscsettings.epg_max_events_hint2 normaly 6000, 0 to disable limit -miscsettings.epg_max_events Max. Events miscsettings.epg_old_events EPG remove after (std.) miscsettings.epg_old_events_hint1 How long will EPG-Data be stored after they timed out? miscsettings.epg_old_events_hint2 Set in hours miscsettings.epg_save Save/Restore epg on reboot miscsettings.general General miscsettings.head Extended settings +miscsettings.infobar Infobar miscsettings.infobar_casystem_display CA-System Display miscsettings.infobar_casystem_mini mini miscsettings.infobar_casystem_mode discreet @@ -1100,27 +1101,26 @@ miscsettings.infobar_disp_4 Logo+channel name/number miscsettings.infobar_disp_5 Logo+signal miscsettings.infobar_disp_6 Logo+channel number+signal miscsettings.infobar_disp_log Logo -miscsettings.infobar Infobar miscsettings.infobar_logo_hdd_dir Logo dir miscsettings.infobar_sat_display Satellite display on infobar +miscsettings.infobar_show show Info on EPG change miscsettings.infobar_show_dd_available show DD availability miscsettings.infobar_show_res show resolution on infobar miscsettings.infobar_show_res_simple simple -miscsettings.infobar_show show Info on EPG change miscsettings.infobar_show_sysfs_hdd Fill level (sysFS & hdd) miscsettings.infobar_show_tuner Display active tuner miscsettings.radiotext Radiotext +miscsettings.shutdown_count In standby, switch off after miscsettings.shutdown_count_hint1 time (in minutes) to switch from standby miscsettings.shutdown_count_hint2 to deep standby (0 = off). -miscsettings.shutdown_count In standby, switch off after miscsettings.shutdown_real Enable standby miscsettings.shutdown_real_rcdelay Delayed shutdown miscsettings.sleeptimer Inactivity shutdown timer miscsettings.zapto_pre_time Zapto Start Time Correction (minutes) motorcontrol.calc_positions (Re)-Calculate Positions motorcontrol.disable_limit Disable (soft) Limits -motorcontrol.drive_mode_auto Drive Mode/auto stop motorcontrol.drive_mode Drive Mode +motorcontrol.drive_mode_auto Drive Mode/auto stop motorcontrol.east_limit Set East (soft) Limit motorcontrol.enable_limit Enable (soft) Limits motorcontrol.goto Goto Motor Position (a) @@ -1160,16 +1160,16 @@ moviebrowser.book_moviestart User Movie start: moviebrowser.book_name Name: moviebrowser.book_new New Bookmark moviebrowser.book_position Position: +moviebrowser.book_type Jump (<0 back , >0 for): moviebrowser.book_type_backward Repeat moviebrowser.book_type_forward jump over -moviebrowser.book_type Jump (<0 back , >0 for): moviebrowser.browser_frame_high Browser hight [%] moviebrowser.browser_row_head Row settings moviebrowser.browser_row_item Row item moviebrowser.browser_row_nr Number of rows moviebrowser.browser_row_width Row width (% of screenwidth) -moviebrowser.dir_head Additional paths moviebrowser.dir Path +moviebrowser.dir_head Additional paths moviebrowser.edit_book Bookmark change moviebrowser.edit_book_name_info1 Enter new Bookmark name moviebrowser.edit_book_name_info2 book name info2 @@ -1182,10 +1182,10 @@ moviebrowser.error_no_movies No movies found moviebrowser.foot_filter Filter: moviebrowser.foot_play Start movie moviebrowser.foot_sort Sort: +moviebrowser.head TS MovieBrowser moviebrowser.head_filter Filter movies by category: moviebrowser.head_playlist Last played: moviebrowser.head_recordlist Last recorded: -moviebrowser.head TS MovieBrowser moviebrowser.hide_series Hide series moviebrowser.hint_jumpbackward Jump back in 5 s\n '0' to cancel moviebrowser.hint_jumpforward Jump forward in 5 s\n '0' to cancel @@ -1201,13 +1201,13 @@ moviebrowser.info_head Film Information moviebrowser.info_head_update Save changes in all movie info files moviebrowser.info_info1 Info 1 moviebrowser.info_length Length (Min) +moviebrowser.info_parental_lockage Parental Lock age moviebrowser.info_parental_lockage_0year always moviebrowser.info_parental_lockage_12year 12 years moviebrowser.info_parental_lockage_16year 16 years moviebrowser.info_parental_lockage_18year 18 years moviebrowser.info_parental_lockage_6year 6 years moviebrowser.info_parental_lockage_always never -moviebrowser.info_parental_lockage Parental Lock age moviebrowser.info_path Path moviebrowser.info_prevplaydate Last play date moviebrowser.info_prodcountry Country @@ -1232,8 +1232,8 @@ moviebrowser.menu_parental_lock_activated_no_temp no (temporary) moviebrowser.menu_parental_lock_activated_yes yes moviebrowser.menu_parental_lock_head Parental Lock moviebrowser.menu_parental_lock_rate_head Lock movies from -moviebrowser.menu_save_all Start update of movie info files moviebrowser.menu_save Save changes +moviebrowser.menu_save_all Start update of movie info files moviebrowser.option_browser Browser Options moviebrowser.reload_at_start Reload movie info at start moviebrowser.remount_at_start Remount at start @@ -1275,10 +1275,10 @@ movieplayer.defplugin Start-Plugin movieplayer.fileplayback File play movieplayer.head Movieplayer movieplayer.toomanybookmarks There are too many bookmarks.\nYou need to delete one of them first. +movieplayer.tshelp1 Stop movieplayer.tshelp10 approx. 10 minutes back movieplayer.tshelp11 skip approx. 10 minutes movieplayer.tshelp12 Help: http://www.giggo.de/dbox2/movieplayer.html\n -movieplayer.tshelp1 Stop movieplayer.tshelp2 Select audio track movieplayer.tshelp3 Pause/Continue movieplayer.tshelp4 Create bookmark @@ -1310,12 +1310,12 @@ networkmenu.mount Edit network shares networkmenu.nameserver Name server networkmenu.netmask Netmask networkmenu.ntpenable Syncronisation via +networkmenu.ntprefresh NTP/DVB-Refresh networkmenu.ntprefresh_hint1 NTP/DVB-Time-Sync in minutes networkmenu.ntprefresh_hint2 need reboot or epg-reset -networkmenu.ntprefresh NTP/DVB-Refresh +networkmenu.ntpserver NTP-Server networkmenu.ntpserver_hint1 NTP-Server example: ntp1.ptb.de networkmenu.ntpserver_hint2 need reboot or epg-reset -networkmenu.ntpserver NTP-Server networkmenu.ntptitle Time-Syncronisation networkmenu.password Pre-Shared Key (PSK) networkmenu.reset_settings_now Do you want restore the previous settings? @@ -1332,28 +1332,28 @@ nfs.automount Mount on startup nfs.dir directory/share nfs.ip Server IP nfs.localdir local dir -nfsmenu.head NFS/CIFS/FTPFS settings +nfs.mount Mount Network volume +nfs.mount_options mount options nfs.mounterror mount error nfs.mounterror_notsup filesystem type not supported -nfs.mount Mount Network volume nfs.mountnow mount now nfs.mountok mount successful -nfs.mount_options mount options nfs.mounttimeout mount error: timeout nfs.password password nfs.remount remount directories +nfs.type type nfs.type_cifs CIFS nfs.type_lufs FTPFS nfs.type_nfs NFS -nfs.type type -nfs.umounterror error umounting volume nfs.umount Umount Network volume +nfs.umounterror error umounting volume nfs.username username +nfsmenu.head NFS/CIFS/FTPFS settings nvod.percentage (%d%% over) +nvod.starting (starting in %d min) nvodselector.directormode Direct-Mode nvodselector.head Select starting-time nvodselector.subservice Select Subservice -nvod.starting (starting in %d min) options.default Reset to defaults options.fb framebuffer options.ntp_off DVB @@ -1367,10 +1367,10 @@ parentallock.changepin change PIN code parentallock.changepin_hint1 Enter your new youth protection pin code here! parentallock.changetolocked on locked bouquets parentallock.head Enter Parental Lock PIN code +parentallock.lockage lock program parentallock.lockage12 from 12 years up parentallock.lockage16 from 16 years up parentallock.lockage18 from 18 years up -parentallock.lockage lock program parentallock.lockedchannel Locked sender... parentallock.lockedprogram Locked program (from %d years up) parentallock.never never @@ -1400,10 +1400,10 @@ personalize.menuconfiguration Menu Configuration personalize.menudisabledhint The requested menu is currently disabled!\nFor activation please open menu 'Personalize'\nto find in menu 'Settings'! personalize.notprotected No personalize.notvisible Not Visible +personalize.pin PIN +personalize.pin_in_use PIN access for personalize setup personalize.pincode Personalization PIN personalize.pinhint Enter the Personalization PIN Code -personalize.pin_in_use PIN access for personalize setup -personalize.pin PIN personalize.pinprotect Yes personalize.pinstatus Require PIN personalize.plugins Plugins @@ -1412,6 +1412,7 @@ personalize.usermenu_show_cancel Show "Cancel"-Button personalize.visible Visible pictureviewer.defdir start dir. pictureviewer.head Picture viewer +pictureviewer.help1 menu mode pictureviewer.help10 show mode pictureviewer.help11 reread image pictureviewer.help12 previous image @@ -1422,11 +1423,10 @@ pictureviewer.help16 scroll up pictureviewer.help17 scroll left pictureviewer.help18 scroll right pictureviewer.help19 scroll down -pictureviewer.help1 menu mode +pictureviewer.help2 display image pictureviewer.help20 change sort order pictureviewer.help21 reread image (no scaling) pictureviewer.help22 exit -pictureviewer.help2 display image pictureviewer.help3 change sort order pictureviewer.help4 do not scale picture pictureviewer.help5 diashow mode @@ -1439,8 +1439,8 @@ pictureviewer.resize.none none pictureviewer.resize.simple simple pictureviewer.scaling scaling pictureviewer.show show -pictureviewer.slideshow slideshow pictureviewer.slide_time slideshow display time +pictureviewer.slideshow slideshow pictureviewer.sortorder.date change sort order (date) pictureviewer.sortorder.filename change sort order (filename) ping.ok is reachable (ping) @@ -1457,9 +1457,11 @@ rclock.menueadd Lock RC rclock.title Lock Remote Control rclock.unlockmsg Remote control reactivated. recording.is_running This channel already recorging. Start new record ? +recording.start Start recording, please wait...! +recording.stop Stop recording, please wait...! +recordingmenu.apids Audio streams recordingmenu.apids_ac3 record AC3 streams recordingmenu.apids_alt record alternative streams -recordingmenu.apids Audio streams recordingmenu.apids_std record standard stream recordingmenu.defdir Recording directory recordingmenu.end_of_recording_epg EPG act. Event @@ -1476,15 +1478,13 @@ recordingmenu.off off recordingmenu.record_is_not_running No record is running! recordingmenu.record_is_running Record is running! recordingmenu.save_in_channeldir Save in channel dir -recordingmenu.server_mac MAC address recordingmenu.server server +recordingmenu.server_mac MAC address recordingmenu.setupnow activate changes recordingmenu.timeshift Timeshift recordingmenu.tsdir Timeshift directory recordingmenu.vcr vcr recordingmenu.zap_on_announce zap on recording announce -recording.start Start recording, please wait...! -recording.stop Stop recording, please wait...! recordtimer.announce Recording starts in a few minutes repeatblocker.hint_1 Shortest time (in ms) to recognize 2 keystrokes repeatblocker.hint_2 Enter 0 to switch of the blocker (red is space) @@ -1492,35 +1492,35 @@ reset_all Factory reset and reboot reset_channels Delete all channels reset_confirm Are you sure ? reset_settings Reset settings to defaults -satsetup.auto_scan_all Auto-Scan multiple Satellites satsetup.auto_scan Auto-Scan selected %s +satsetup.auto_scan_all Auto-Scan multiple Satellites satsetup.cable Cable scan satsetup.cable_nid Network ID satsetup.comm_input Commited input +satsetup.diseqc DiSEqC satsetup.diseqc10 DiSEqC 1.0 satsetup.diseqc11 DiSEqC 1.1 satsetup.diseqc12 DiSEqC 1.2 satsetup.diseqc_advanced Advanced satsetup.diseqc_com_uncom Commited/Uncommited -satsetup.diseqc DiSEqC satsetup.diseqc_input Diseqc input -satsetup.diseqcrepeat DiSEqC-repeats satsetup.diseqc_uncom_com Uncommited/Commited +satsetup.diseqcrepeat DiSEqC-repeats satsetup.extended DiSEqC-Settings satsetup.extended_motor Motor-Settings satsetup.fastscan_all SD and HD satsetup.fastscan_hd HD only satsetup.fastscan_head Fast scan (Astra 1, 19.2E, 12.515Mhz) -satsetup.fastscan_prov_cd CanalDigitaal satsetup.fastscan_prov Provider +satsetup.fastscan_prov_cd CanalDigitaal satsetup.fastscan_prov_telesat TéléSAT satsetup.fastscan_prov_tvv TV Vlaanderen satsetup.fastscan_sd SD only satsetup.fastscan_type Scan type +satsetup.fe_mode Tuner mode satsetup.fe_mode_alone independent satsetup.fe_mode_loop loop satsetup.fe_mode_single single -satsetup.fe_mode Tuner mode satsetup.fe_mode_twin twin satsetup.fe_setup Setup tuner satsetup.lofh LNB High Offset @@ -1533,8 +1533,8 @@ satsetup.minidiseqc Mini-DiSEqC satsetup.motor_pos Rotor position satsetup.nodiseqc no DiSEqC satsetup.reset_numbers Reset channel numbers -satsetup.satellite Satellite satsetup.sat_setup Setup satellites input / LNB +satsetup.satellite Satellite satsetup.select_sat Select satellites satsetup.smatvremote SMATV Remote Tuning satsetup.uncomm_input Uncommited input @@ -1543,6 +1543,14 @@ satsetup.use_bat Use BAT satsetup.use_fta_flag just free Channels satsetup.use_nit Use NIT satsetup.use_usals Use usals for all +sc.empty No card in slot +sc.init_failed Card init failed +sc.init_ok Card init complete +sc.inserted Card inserted in slot +sc.removed Card removed from slot +sc.reset Reset card +sc.timeout Timeout waiting card menu +sc.waiting Waing for card answer scants.abort_body Should the search really be aborted? scants.abort_header Abortion of channel scan scants.actcable Cable: @@ -1569,10 +1577,6 @@ scants.select_tp Select transponder scants.startnow start scan scants.test Test signal scants.transponders Transponders: -sc.empty No card in slot -sc.init_failed Card init failed -sc.init_ok Card init complete -sc.inserted Card inserted in slot scrambled_channel Scrambled channel screensetup.lowerright green = setup lower right screensetup.upperleft red = setup upper left @@ -1587,23 +1591,19 @@ screenshot.res Screenshot resolution screenshot.scale Screenshot scale screenshot.tv TV resolution screenshot.video Screenshot with video background -sc.removed Card removed from slot -sc.reset Reset card -sc.timeout Timeout waiting card menu -sc.waiting Waing for card answer -servicemenu.getplugins_hint Reloading plugins,\nplease be patient. servicemenu.getplugins Reload plugins +servicemenu.getplugins_hint Reloading plugins,\nplease be patient. servicemenu.head Service servicemenu.imageinfo Image info -servicemenu.reload_hint Reloading channel lists,\nplease be patient. servicemenu.reload Reload channel lists +servicemenu.reload_hint Reloading channel lists,\nplease be patient. +servicemenu.restart Soft restart servicemenu.restart_hint Restarting, please wait servicemenu.restart_refused_recording Cant restart, recording in progress -servicemenu.restart Soft restart servicemenu.scants Servicescan servicemenu.update Software Update -settings.backup_failed Backup failed! settings.backup Image-Settings: Backup +settings.backup_failed Backup failed! settings.help Help settings.menu_hints Show menu hints settings.menu_pos Menu position @@ -1623,8 +1623,8 @@ sleeptimerbox.announce Sleeptimer in 1 min sleeptimerbox.hint1 Shutdown time in min. (000=off) sleeptimerbox.hint2 The STB will shutdown after this time in standby. sleeptimerbox.hint3 The STB will shutdown, if remote not used. -sleeptimerbox.title2 Inactivity shutdown timer sleeptimerbox.title Sleeptimer +sleeptimerbox.title2 Inactivity shutdown timer streaminfo.aratio Aspect Ratio streaminfo.aratio_unknown unknown streaminfo.audiotype Audiotype @@ -1643,12 +1643,12 @@ stringinput.caps caps / no caps stringinput.clear clear all subtitles.head Subtitles subtitles.stop Stop subtitles -timerbar.channelswitch Schedule -timerbar.recordevent Record timer.eventrecord.msg ... TO be DONE, or not to be done timer.eventrecord.title Schedule Record timer.eventtimed.msg The event is scheduled.\nThe box will power on and \nswitch to this channel at the given time. timer.eventtimed.title Schedule Event +timerbar.channelswitch Schedule +timerbar.recordevent Record timerlist.alarmtime Alarm time timerlist.apids Audio PIDs timerlist.apids_dflt record default audio streams @@ -1670,18 +1670,15 @@ timerlist.plugin Plugin timerlist.program.unknown Program unknown timerlist.recording_dir recording directory timerlist.reload Reload +timerlist.repeat Repeat timerlist.repeat.biweekly biweekly timerlist.repeat.byeventdescription see timer -timerlist.repeatcount.help1 amount of timer repeats -timerlist.repeatcount.help2 0 for unlimited repeats -timerlist.repeatcount repeats timerlist.repeat.daily daily timerlist.repeat.fourweekly fourweekly timerlist.repeat.friday Fr timerlist.repeat.monday Mo timerlist.repeat.monthly monthly timerlist.repeat.once once -timerlist.repeat Repeat timerlist.repeat.saturday Sa timerlist.repeat.sunday Su timerlist.repeat.thursday Th @@ -1690,11 +1687,15 @@ timerlist.repeat.unknown unknown timerlist.repeat.wednesday We timerlist.repeat.weekdays on weekdays timerlist.repeat.weekly weekly +timerlist.repeatcount repeats +timerlist.repeatcount.help1 amount of timer repeats +timerlist.repeatcount.help2 0 for unlimited repeats timerlist.save Save timer +timerlist.standby SB mode timerlist.standby.off Leave standby timerlist.standby.on Enter standby -timerlist.standby SB mode timerlist.stoptime Stop time +timerlist.type Timer typ timerlist.type.execplugin Execute plugin timerlist.type.nextprogram Next program timerlist.type.record Record @@ -1702,18 +1703,17 @@ timerlist.type.remind Reminder timerlist.type.shutdown Shutdown timerlist.type.sleeptimer Sleeptimer timerlist.type.standby Standby -timerlist.type Timer typ timerlist.type.unknown Unknown timerlist.type.zapto Zap to timerlist.weekdays Days of the week timerlist.weekdays.hint_1 Mo Tu We Th Fr Sa Su timerlist.weekdays.hint_2 'X'=timer '-' no timer +timersettings.record_safety_time_after Record stop time correction timersettings.record_safety_time_after.hint_1 Correction time in min. (00=off). This time timersettings.record_safety_time_after.hint_2 will added to stop time of every record timer. -timersettings.record_safety_time_after Record stop time correction +timersettings.record_safety_time_before Record start time correction timersettings.record_safety_time_before.hint_1 Correction time in min. (00=off). This time timersettings.record_safety_time_before.hint_2 will be deducted of every record timer. -timersettings.record_safety_time_before Record start time correction timersettings.separator Timer timing.chanlist Channellist timing.epg Epg @@ -1742,6 +1742,7 @@ usermenu.msg_info_is_empty You don't have definied a name for this menu!\nUsing usermenu.msg_warning_name You have more than one items created for this menu,\nbut none new name for this menue defined.\nIt is recommended to enter a new name! usermenu.msg_warning_no_items No items defined!\nThe menu name is reset! usermenu.name Name +video_mode_ok Is this video mode working ok ? videomenu.43mode 4:3 Content mode videomenu.analog_hd_rgb_cinch RGB on cinch (HD) videomenu.analog_hd_rgb_scart RGB on scart (HD) @@ -1756,43 +1757,42 @@ videomenu.auto Auto videomenu.brightness Brightness videomenu.cinch Cinch videomenu.contrast Contrast +videomenu.dbdr MPEG2 de-block/de-ring videomenu.dbdr_both de-block+de-ring videomenu.dbdr_deblock de-block -videomenu.dbdr MPEG2 de-block/de-ring videomenu.dbdr_none none videomenu.enabled_modes VF key enabled modes videomenu.fullscreen Full screen videomenu.hdmi_cec CSTLink (HDMI-CEC) -videomenu.hdmi_cec_mode_off no videomenu.hdmi_cec_mode Receiver to use +videomenu.hdmi_cec_mode_off no videomenu.hdmi_cec_mode_recorder as Sat/Cable PVR videomenu.hdmi_cec_mode_tuner as Sat/Cable STB videomenu.hdmi_cec_standby Enable CEC standby videomenu.hdmi_cec_view_on Enable CEC View on videomenu.hue Hue videomenu.letterbox Letterbox -videomenu.panscan2 14:9 Pan&Scan videomenu.panscan Pan&Scan +videomenu.panscan2 14:9 Pan&Scan videomenu.saturation Saturation videomenu.scart Scart videomenu.screensetup Screen Setup videomenu.sharpness Sharpness videomenu.tv-scart Video +videomenu.vcrsignal VCR Output Signal Type videomenu.vcrsignal_composite CVBS videomenu.vcrsignal_svideo S-Video -videomenu.vcrsignal VCR Output Signal Type +videomenu.videoformat Format videomenu.videoformat_149 14:9 videomenu.videoformat_169 16:9 videomenu.videoformat_43 4:3 -videomenu.videoformat Format videomenu.videomode Digital video mode -video_mode_ok Is this video mode working ok ? wizard.welcome_head Welcome to the Setup Wizard wizard.welcome_text Next steps will guide you through initial installation of the device.\nImportant: Your CoolStream set-top box can be conveniently controlled\nwith the web interface for timer management or live TV on the Web browser.\nDo not make it accessible to untrusted networks!\nDo you want to continue? word.from from +zapit.scantype scan for services zapit.scantype.all all services zapit.scantype.radio only radio -zapit.scantype scan for services zapit.scantype.tv only tv zapit.scantype.tvradio tv & radio zapitsetup.head Start Channel Settings diff --git a/src/system/locals.h b/src/system/locals.h index a57276dc2..909a45f2b 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -25,7 +25,112 @@ typedef enum { NONEXISTANT_LOCALE, + LOCALE_AUDIOSELECTMENUE_HEAD, + LOCALE_EPGMENU_EPGPLUS, + LOCALE_EPGMENU_EVENTINFO, + LOCALE_EPGMENU_EVENTLIST, + LOCALE_EPGMENU_HEAD, + LOCALE_EPGMENU_STREAMINFO, + LOCALE_EPGPLUS_ACTIONS, + LOCALE_EPGPLUS_BYBOUQUET_MODE, + LOCALE_EPGPLUS_BYPAGE_MODE, + LOCALE_EPGPLUS_HEAD, + LOCALE_EPGPLUS_NEXT_BOUQUET, + LOCALE_EPGPLUS_OPTIONS, + LOCALE_EPGPLUS_PAGE_DOWN, + LOCALE_EPGPLUS_PAGE_UP, + LOCALE_EPGPLUS_PREV_BOUQUET, + LOCALE_EPGPLUS_RECORD, + LOCALE_EPGPLUS_REFRESH_EPG, + LOCALE_EPGPLUS_REMIND, + LOCALE_EPGPLUS_SCROLL_MODE, + LOCALE_EPGPLUS_STRETCH_MODE, + LOCALE_EPGPLUS_SWAP_MODE, + LOCALE_EPGPLUS_VIEW_MODE, + LOCALE_GENRE_ARTS_0, + LOCALE_GENRE_ARTS_1, + LOCALE_GENRE_ARTS_10, + LOCALE_GENRE_ARTS_11, + LOCALE_GENRE_ARTS_2, + LOCALE_GENRE_ARTS_3, + LOCALE_GENRE_ARTS_4, + LOCALE_GENRE_ARTS_5, + LOCALE_GENRE_ARTS_6, + LOCALE_GENRE_ARTS_7, + LOCALE_GENRE_ARTS_8, + LOCALE_GENRE_ARTS_9, + LOCALE_GENRE_CHILDRENS_PROGRAMMES_0, + LOCALE_GENRE_CHILDRENS_PROGRAMMES_1, + LOCALE_GENRE_CHILDRENS_PROGRAMMES_2, + LOCALE_GENRE_CHILDRENS_PROGRAMMES_3, + LOCALE_GENRE_CHILDRENS_PROGRAMMES_4, + LOCALE_GENRE_CHILDRENS_PROGRAMMES_5, + LOCALE_GENRE_DOCUS_MAGAZINES_0, + LOCALE_GENRE_DOCUS_MAGAZINES_1, + LOCALE_GENRE_DOCUS_MAGAZINES_2, + LOCALE_GENRE_DOCUS_MAGAZINES_3, + LOCALE_GENRE_DOCUS_MAGAZINES_4, + LOCALE_GENRE_DOCUS_MAGAZINES_5, + LOCALE_GENRE_DOCUS_MAGAZINES_6, + LOCALE_GENRE_DOCUS_MAGAZINES_7, + LOCALE_GENRE_MOVIE_0, + LOCALE_GENRE_MOVIE_1, + LOCALE_GENRE_MOVIE_2, + LOCALE_GENRE_MOVIE_3, + LOCALE_GENRE_MOVIE_4, + LOCALE_GENRE_MOVIE_5, + LOCALE_GENRE_MOVIE_6, + LOCALE_GENRE_MOVIE_7, + LOCALE_GENRE_MOVIE_8, + LOCALE_GENRE_MUSIC_DANCE_0, + LOCALE_GENRE_MUSIC_DANCE_1, + LOCALE_GENRE_MUSIC_DANCE_2, + LOCALE_GENRE_MUSIC_DANCE_3, + LOCALE_GENRE_MUSIC_DANCE_4, + LOCALE_GENRE_MUSIC_DANCE_5, + LOCALE_GENRE_MUSIC_DANCE_6, + LOCALE_GENRE_NEWS_0, + LOCALE_GENRE_NEWS_1, + LOCALE_GENRE_NEWS_2, + LOCALE_GENRE_NEWS_3, + LOCALE_GENRE_NEWS_4, + LOCALE_GENRE_SHOW_0, + LOCALE_GENRE_SHOW_1, + LOCALE_GENRE_SHOW_2, + LOCALE_GENRE_SHOW_3, + LOCALE_GENRE_SOCIAL_POLITICAL_0, + LOCALE_GENRE_SOCIAL_POLITICAL_1, + LOCALE_GENRE_SOCIAL_POLITICAL_2, + LOCALE_GENRE_SOCIAL_POLITICAL_3, + LOCALE_GENRE_SPORTS_0, + LOCALE_GENRE_SPORTS_1, + LOCALE_GENRE_SPORTS_10, + LOCALE_GENRE_SPORTS_11, + LOCALE_GENRE_SPORTS_2, + LOCALE_GENRE_SPORTS_3, + LOCALE_GENRE_SPORTS_4, + LOCALE_GENRE_SPORTS_5, + LOCALE_GENRE_SPORTS_6, + LOCALE_GENRE_SPORTS_7, + LOCALE_GENRE_SPORTS_8, + LOCALE_GENRE_SPORTS_9, + LOCALE_GENRE_TRAVEL_HOBBIES_0, + LOCALE_GENRE_TRAVEL_HOBBIES_1, + LOCALE_GENRE_TRAVEL_HOBBIES_2, + LOCALE_GENRE_TRAVEL_HOBBIES_3, + LOCALE_GENRE_TRAVEL_HOBBIES_4, + LOCALE_GENRE_TRAVEL_HOBBIES_5, + LOCALE_GENRE_TRAVEL_HOBBIES_6, + LOCALE_GENRE_TRAVEL_HOBBIES_7, + LOCALE_GENRE_UNKNOWN, LOCALE_APIDSELECTOR_HEAD, + LOCALE_AUDIO_SRS_ALGO, + LOCALE_AUDIO_SRS_ALGO_LIGHT, + LOCALE_AUDIO_SRS_ALGO_NORMAL, + LOCALE_AUDIO_SRS_IQ, + LOCALE_AUDIO_SRS_NMGR, + LOCALE_AUDIO_SRS_VOLUME, + LOCALE_AUDIOMENU_PCMOFFSET, LOCALE_AUDIOMENU_ANALOG_MODE, LOCALE_AUDIOMENU_ANALOG_OUT, LOCALE_AUDIOMENU_AUTO_LANG, @@ -40,7 +145,6 @@ typedef enum LOCALE_AUDIOMENU_HDMI_DD_FORCE, LOCALE_AUDIOMENU_MONOLEFT, LOCALE_AUDIOMENU_MONORIGHT, - LOCALE_AUDIOMENU_PCMOFFSET, LOCALE_AUDIOMENU_PREF_LANG, LOCALE_AUDIOMENU_PREF_LANG_HEAD, LOCALE_AUDIOMENU_PREF_LANGUAGES, @@ -75,7 +179,6 @@ typedef enum LOCALE_AUDIOPLAYER_LOAD_RADIO_STATIONS, LOCALE_AUDIOPLAYER_NAME, LOCALE_AUDIOPLAYER_PAUSE, - LOCALE_AUDIOPLAYERPICSETTINGS_GENERAL, LOCALE_AUDIOPLAYER_PLAY, LOCALE_AUDIOPLAYER_PLAYING, LOCALE_AUDIOPLAYER_PLAYLIST_FILEERROR_MSG, @@ -96,13 +199,7 @@ typedef enum LOCALE_AUDIOPLAYER_SPECTRUM, LOCALE_AUDIOPLAYER_STOP, LOCALE_AUDIOPLAYER_TITLE_ARTIST, - LOCALE_AUDIOSELECTMENUE_HEAD, - LOCALE_AUDIO_SRS_ALGO, - LOCALE_AUDIO_SRS_ALGO_LIGHT, - LOCALE_AUDIO_SRS_ALGO_NORMAL, - LOCALE_AUDIO_SRS_IQ, - LOCALE_AUDIO_SRS_NMGR, - LOCALE_AUDIO_SRS_VOLUME, + LOCALE_AUDIOPLAYERPICSETTINGS_GENERAL, LOCALE_BOOKMARKMANAGER_DELETE, LOCALE_BOOKMARKMANAGER_NAME, LOCALE_BOOKMARKMANAGER_RENAME, @@ -182,13 +279,13 @@ typedef enum LOCALE_COLORMENU_MENUCOLORS, LOCALE_COLORMENU_OSD_PRESET, LOCALE_COLORMENU_SD_PRESET, + LOCALE_COLORMENU_TEXTCOLOR, + LOCALE_COLORMENU_THEMESELECT, + LOCALE_COLORMENU_TIMING, LOCALE_COLORMENUSETUP_MENUCONTENT, LOCALE_COLORMENUSETUP_MENUCONTENT_INACTIVE, LOCALE_COLORMENUSETUP_MENUCONTENT_SELECTED, LOCALE_COLORMENUSETUP_MENUHEAD, - LOCALE_COLORMENU_TEXTCOLOR, - LOCALE_COLORMENU_THEMESELECT, - LOCALE_COLORMENU_TIMING, LOCALE_COLORSTATUSBAR_TEXT, LOCALE_COLORTHEMEMENU_HEAD, LOCALE_COLORTHEMEMENU_HEAD2, @@ -228,27 +325,6 @@ typedef enum LOCALE_EPGEXTENDED_PRESENTER, LOCALE_EPGEXTENDED_YEAR_OF_PRODUCTION, LOCALE_EPGLIST_NOEVENTS, - LOCALE_EPGMENU_EPGPLUS, - LOCALE_EPGMENU_EVENTINFO, - LOCALE_EPGMENU_EVENTLIST, - LOCALE_EPGMENU_HEAD, - LOCALE_EPGMENU_STREAMINFO, - LOCALE_EPGPLUS_ACTIONS, - LOCALE_EPGPLUS_BYBOUQUET_MODE, - LOCALE_EPGPLUS_BYPAGE_MODE, - LOCALE_EPGPLUS_HEAD, - LOCALE_EPGPLUS_NEXT_BOUQUET, - LOCALE_EPGPLUS_OPTIONS, - LOCALE_EPGPLUS_PAGE_DOWN, - LOCALE_EPGPLUS_PAGE_UP, - LOCALE_EPGPLUS_PREV_BOUQUET, - LOCALE_EPGPLUS_RECORD, - LOCALE_EPGPLUS_REFRESH_EPG, - LOCALE_EPGPLUS_REMIND, - LOCALE_EPGPLUS_SCROLL_MODE, - LOCALE_EPGPLUS_STRETCH_MODE, - LOCALE_EPGPLUS_SWAP_MODE, - LOCALE_EPGPLUS_VIEW_MODE, LOCALE_EPGVIEWER_MORE_SCREENINGS, LOCALE_EPGVIEWER_MORE_SCREENINGS_SHORT, LOCALE_EPGVIEWER_NODETAILED, @@ -256,9 +332,9 @@ typedef enum LOCALE_EVENTFINDER_HEAD, LOCALE_EVENTFINDER_KEYWORD, LOCALE_EVENTFINDER_SEARCH, - LOCALE_EVENTFINDER_SEARCHING, LOCALE_EVENTFINDER_SEARCH_WITHIN_EPG, LOCALE_EVENTFINDER_SEARCH_WITHIN_LIST, + LOCALE_EVENTFINDER_SEARCHING, LOCALE_EVENTFINDER_START_SEARCH, LOCALE_EVENTLISTBAR_CHANNELSWITCH, LOCALE_EVENTLISTBAR_EVENTSORT, @@ -327,6 +403,7 @@ typedef enum LOCALE_EXTRA_START_TOSTANDBY, LOCALE_EXTRA_TEMP_TIMESHIFT, LOCALE_EXTRA_TIMESHIFT_PAUSE, + LOCALE_EXTRA_TP_POL_V, LOCALE_EXTRA_TP_FEC, LOCALE_EXTRA_TP_FREQ, LOCALE_EXTRA_TP_MOD, @@ -339,7 +416,6 @@ typedef enum LOCALE_EXTRA_TP_POL_H, LOCALE_EXTRA_TP_POL_L, LOCALE_EXTRA_TP_POL_R, - LOCALE_EXTRA_TP_POL_V, LOCALE_EXTRA_TP_RATE, LOCALE_EXTRA_UPDATE_DIR, LOCALE_EXTRA_USE_GOTOXX, @@ -388,8 +464,8 @@ typedef enum LOCALE_FLASHUPDATE_CANTOPENFILE, LOCALE_FLASHUPDATE_CANTOPENMTD, LOCALE_FLASHUPDATE_CHECKUPDATE, - LOCALE_FLASHUPDATE_CURRENTVERSIONDATE, LOCALE_FLASHUPDATE_CURRENTVERSION_SEP, + LOCALE_FLASHUPDATE_CURRENTVERSIONDATE, LOCALE_FLASHUPDATE_CURRENTVERSIONTIME, LOCALE_FLASHUPDATE_ERASEFAILED, LOCALE_FLASHUPDATE_ERASING, @@ -453,10 +529,10 @@ typedef enum LOCALE_FONTMENU_SCALING_Y, LOCALE_FONTMENU_SCALING_Y_HINT2, LOCALE_FONTMENU_SIZES, + LOCALE_FONTSIZE_CHANNEL_NUM_ZAP, LOCALE_FONTSIZE_CHANNELLIST, LOCALE_FONTSIZE_CHANNELLIST_DESCR, LOCALE_FONTSIZE_CHANNELLIST_NUMBER, - LOCALE_FONTSIZE_CHANNEL_NUM_ZAP, LOCALE_FONTSIZE_EPG_DATE, LOCALE_FONTSIZE_EPG_INFO1, LOCALE_FONTSIZE_EPG_INFO2, @@ -477,82 +553,6 @@ typedef enum LOCALE_FONTSIZE_MENU_HINT, LOCALE_FONTSIZE_MENU_INFO, LOCALE_FONTSIZE_MENU_TITLE, - LOCALE_GENRE_ARTS_0, - LOCALE_GENRE_ARTS_1, - LOCALE_GENRE_ARTS_10, - LOCALE_GENRE_ARTS_11, - LOCALE_GENRE_ARTS_2, - LOCALE_GENRE_ARTS_3, - LOCALE_GENRE_ARTS_4, - LOCALE_GENRE_ARTS_5, - LOCALE_GENRE_ARTS_6, - LOCALE_GENRE_ARTS_7, - LOCALE_GENRE_ARTS_8, - LOCALE_GENRE_ARTS_9, - LOCALE_GENRE_CHILDRENS_PROGRAMMES_0, - LOCALE_GENRE_CHILDRENS_PROGRAMMES_1, - LOCALE_GENRE_CHILDRENS_PROGRAMMES_2, - LOCALE_GENRE_CHILDRENS_PROGRAMMES_3, - LOCALE_GENRE_CHILDRENS_PROGRAMMES_4, - LOCALE_GENRE_CHILDRENS_PROGRAMMES_5, - LOCALE_GENRE_DOCUS_MAGAZINES_0, - LOCALE_GENRE_DOCUS_MAGAZINES_1, - LOCALE_GENRE_DOCUS_MAGAZINES_2, - LOCALE_GENRE_DOCUS_MAGAZINES_3, - LOCALE_GENRE_DOCUS_MAGAZINES_4, - LOCALE_GENRE_DOCUS_MAGAZINES_5, - LOCALE_GENRE_DOCUS_MAGAZINES_6, - LOCALE_GENRE_DOCUS_MAGAZINES_7, - LOCALE_GENRE_MOVIE_0, - LOCALE_GENRE_MOVIE_1, - LOCALE_GENRE_MOVIE_2, - LOCALE_GENRE_MOVIE_3, - LOCALE_GENRE_MOVIE_4, - LOCALE_GENRE_MOVIE_5, - LOCALE_GENRE_MOVIE_6, - LOCALE_GENRE_MOVIE_7, - LOCALE_GENRE_MOVIE_8, - LOCALE_GENRE_MUSIC_DANCE_0, - LOCALE_GENRE_MUSIC_DANCE_1, - LOCALE_GENRE_MUSIC_DANCE_2, - LOCALE_GENRE_MUSIC_DANCE_3, - LOCALE_GENRE_MUSIC_DANCE_4, - LOCALE_GENRE_MUSIC_DANCE_5, - LOCALE_GENRE_MUSIC_DANCE_6, - LOCALE_GENRE_NEWS_0, - LOCALE_GENRE_NEWS_1, - LOCALE_GENRE_NEWS_2, - LOCALE_GENRE_NEWS_3, - LOCALE_GENRE_NEWS_4, - LOCALE_GENRE_SHOW_0, - LOCALE_GENRE_SHOW_1, - LOCALE_GENRE_SHOW_2, - LOCALE_GENRE_SHOW_3, - LOCALE_GENRE_SOCIAL_POLITICAL_0, - LOCALE_GENRE_SOCIAL_POLITICAL_1, - LOCALE_GENRE_SOCIAL_POLITICAL_2, - LOCALE_GENRE_SOCIAL_POLITICAL_3, - LOCALE_GENRE_SPORTS_0, - LOCALE_GENRE_SPORTS_1, - LOCALE_GENRE_SPORTS_10, - LOCALE_GENRE_SPORTS_11, - LOCALE_GENRE_SPORTS_2, - LOCALE_GENRE_SPORTS_3, - LOCALE_GENRE_SPORTS_4, - LOCALE_GENRE_SPORTS_5, - LOCALE_GENRE_SPORTS_6, - LOCALE_GENRE_SPORTS_7, - LOCALE_GENRE_SPORTS_8, - LOCALE_GENRE_SPORTS_9, - LOCALE_GENRE_TRAVEL_HOBBIES_0, - LOCALE_GENRE_TRAVEL_HOBBIES_1, - LOCALE_GENRE_TRAVEL_HOBBIES_2, - LOCALE_GENRE_TRAVEL_HOBBIES_3, - LOCALE_GENRE_TRAVEL_HOBBIES_4, - LOCALE_GENRE_TRAVEL_HOBBIES_5, - LOCALE_GENRE_TRAVEL_HOBBIES_6, - LOCALE_GENRE_TRAVEL_HOBBIES_7, - LOCALE_GENRE_UNKNOWN, LOCALE_HDD_10MIN, LOCALE_HDD_1MIN, LOCALE_HDD_20MIN, @@ -607,6 +607,7 @@ typedef enum LOCALE_INFOVIEWER_WAITTIME, LOCALE_IPSETUP_HINT_1, LOCALE_IPSETUP_HINT_2, + LOCALE_KEYBINDINGMENU_RC, LOCALE_KEYBINDINGMENU_ADDRECORD, LOCALE_KEYBINDINGMENU_ADDREMIND, LOCALE_KEYBINDINGMENU_ALLCHANNELS_ON_OK, @@ -622,17 +623,16 @@ typedef enum LOCALE_KEYBINDINGMENU_HEAD, LOCALE_KEYBINDINGMENU_LASTCHANNEL, LOCALE_KEYBINDINGMENU_MISC, - LOCALE_KEYBINDINGMENU_MODECHANGE, LOCALE_KEYBINDINGMENU_MODE_LEFT_RIGHT_KEY_TV, LOCALE_KEYBINDINGMENU_MODE_LEFT_RIGHT_KEY_TV_INFOBAR, LOCALE_KEYBINDINGMENU_MODE_LEFT_RIGHT_KEY_TV_VOLUME, LOCALE_KEYBINDINGMENU_MODE_LEFT_RIGHT_KEY_TV_VZAP, LOCALE_KEYBINDINGMENU_MODE_LEFT_RIGHT_KEY_TV_ZAP, + LOCALE_KEYBINDINGMENU_MODECHANGE, LOCALE_KEYBINDINGMENU_PAGEDOWN, LOCALE_KEYBINDINGMENU_PAGEUP, LOCALE_KEYBINDINGMENU_POWEROFF, LOCALE_KEYBINDINGMENU_QUICKZAP, - LOCALE_KEYBINDINGMENU_RC, LOCALE_KEYBINDINGMENU_REMOTECONTROL_HARDWARE, LOCALE_KEYBINDINGMENU_REMOTECONTROL_HARDWARE_COOLSTREAM, LOCALE_KEYBINDINGMENU_REMOTECONTROL_HARDWARE_DBOX, @@ -649,20 +649,20 @@ typedef enum LOCALE_KEYBINDINGMENU_TVRADIOMODE, LOCALE_KEYBINDINGMENU_ZAPHISTORY, LOCALE_KEYCHOOSER_HEAD, + LOCALE_KEYCHOOSER_TEXT1, + LOCALE_KEYCHOOSER_TEXT2, LOCALE_KEYCHOOSERMENU_CURRENTKEY, LOCALE_KEYCHOOSERMENU_SETNEW, LOCALE_KEYCHOOSERMENU_SETNONE, - LOCALE_KEYCHOOSER_TEXT1, - LOCALE_KEYCHOOSER_TEXT2, LOCALE_LANGUAGESETUP_HEAD, LOCALE_LANGUAGESETUP_OSD, LOCALE_LANGUAGESETUP_SELECT, - LOCALE_LCDCONTROLER_BRIGHTNESS, - LOCALE_LCDCONTROLER_BRIGHTNESSDEEPSTANDBY, - LOCALE_LCDCONTROLER_BRIGHTNESSSTANDBY, LOCALE_LCD_INFO_LINE, LOCALE_LCD_INFO_LINE_CHANNEL, LOCALE_LCD_INFO_LINE_CLOCK, + LOCALE_LCDCONTROLER_BRIGHTNESS, + LOCALE_LCDCONTROLER_BRIGHTNESSDEEPSTANDBY, + LOCALE_LCDCONTROLER_BRIGHTNESSSTANDBY, LOCALE_LCDMENU_DIM_BRIGHTNESS, LOCALE_LCDMENU_DIM_TIME, LOCALE_LCDMENU_HEAD, @@ -724,6 +724,12 @@ typedef enum LOCALE_MENU_HINT_AUDIO_AVSYNC, LOCALE_MENU_HINT_AUDIO_DD, LOCALE_MENU_HINT_AUDIO_HDMI_DD, + LOCALE_MENU_HINT_AUDIO_SPDIF_DD, + LOCALE_MENU_HINT_AUDIO_SRS, + LOCALE_MENU_HINT_AUDIO_SRS_ALGO, + LOCALE_MENU_HINT_AUDIO_SRS_NMGR, + LOCALE_MENU_HINT_AUDIO_SRS_VOLUME, + LOCALE_MENU_HINT_AUDIO_VOLSTEP, LOCALE_MENU_HINT_AUDIOPLAYER_DEFDIR, LOCALE_MENU_HINT_AUDIOPLAYER_FOLLOW, LOCALE_MENU_HINT_AUDIOPLAYER_HIGHPRIO, @@ -733,12 +739,6 @@ typedef enum LOCALE_MENU_HINT_AUDIOPLAYER_SC_METADATA, LOCALE_MENU_HINT_AUDIOPLAYER_SCREENSAVER, LOCALE_MENU_HINT_AUDIOPLAYER_TITLE, - LOCALE_MENU_HINT_AUDIO_SPDIF_DD, - LOCALE_MENU_HINT_AUDIO_SRS, - LOCALE_MENU_HINT_AUDIO_SRS_ALGO, - LOCALE_MENU_HINT_AUDIO_SRS_NMGR, - LOCALE_MENU_HINT_AUDIO_SRS_VOLUME, - LOCALE_MENU_HINT_AUDIO_VOLSTEP, LOCALE_MENU_HINT_AUTO_LANG, LOCALE_MENU_HINT_AUTO_SUBS, LOCALE_MENU_HINT_BACK, @@ -769,8 +769,8 @@ typedef enum LOCALE_MENU_HINT_EPG_MAX_EVENTS, LOCALE_MENU_HINT_EPG_OLD_EVENTS, LOCALE_MENU_HINT_EPG_SAVE, - LOCALE_MENU_HINT_EVENTLIST_FONTS, LOCALE_MENU_HINT_EVENT_TEXTCOLOR, + LOCALE_MENU_HINT_EVENTLIST_FONTS, LOCALE_MENU_HINT_EXTENDED, LOCALE_MENU_HINT_FACTORY, LOCALE_MENU_HINT_FADE, @@ -780,9 +780,9 @@ typedef enum LOCALE_MENU_HINT_FILEPLAY, LOCALE_MENU_HINT_FILESYSTEM_IS_UTF8, LOCALE_MENU_HINT_FONT_GUI, - LOCALE_MENU_HINT_FONTS, LOCALE_MENU_HINT_FONT_SCALING, LOCALE_MENU_HINT_FONT_TTX, + LOCALE_MENU_HINT_FONTS, LOCALE_MENU_HINT_GAMELIST_FONTS, LOCALE_MENU_HINT_GAMES, LOCALE_MENU_HINT_HDD, @@ -795,9 +795,9 @@ typedef enum LOCALE_MENU_HINT_HEAD_BACK, LOCALE_MENU_HINT_HEAD_TEXTCOLOR, LOCALE_MENU_HINT_IMAGEINFO, + LOCALE_MENU_HINT_INACT_TIMER, LOCALE_MENU_HINT_INACTIVE_BACK, LOCALE_MENU_HINT_INACTIVE_TEXTCOLOR, - LOCALE_MENU_HINT_INACT_TIMER, LOCALE_MENU_HINT_INET_RADIO, LOCALE_MENU_HINT_INFO, LOCALE_MENU_HINT_INFOBAR_BACK, @@ -823,9 +823,9 @@ typedef enum LOCALE_MENU_HINT_KEY_BOUQUETDOWN, LOCALE_MENU_HINT_KEY_BOUQUETUP, LOCALE_MENU_HINT_KEY_CANCEL, + LOCALE_MENU_HINT_KEY_CHANNEL_SMS, LOCALE_MENU_HINT_KEY_CHANNELDOWN, LOCALE_MENU_HINT_KEY_CHANNELLIST, - LOCALE_MENU_HINT_KEY_CHANNEL_SMS, LOCALE_MENU_HINT_KEY_CHANNELUP, LOCALE_MENU_HINT_KEY_HARDWARE, LOCALE_MENU_HINT_KEY_HISTORY, @@ -853,7 +853,6 @@ typedef enum LOCALE_MENU_HINT_KEY_REPEATBLOCK, LOCALE_MENU_HINT_KEY_REPEATBLOCKGENERIC, LOCALE_MENU_HINT_KEY_RIGHT, - LOCALE_MENU_HINT_KEYS, LOCALE_MENU_HINT_KEY_SAVE, LOCALE_MENU_HINT_KEY_SCREENSHOT, LOCALE_MENU_HINT_KEY_SORT, @@ -862,6 +861,7 @@ typedef enum LOCALE_MENU_HINT_KEY_TRANSPONDER, LOCALE_MENU_HINT_KEY_TVRADIOMODE, LOCALE_MENU_HINT_KEY_UNLOCK, + LOCALE_MENU_HINT_KEYS, LOCALE_MENU_HINT_LANG_PREF, LOCALE_MENU_HINT_LANGUAGE, LOCALE_MENU_HINT_LAST_RADIO, @@ -943,13 +943,12 @@ typedef enum LOCALE_MENU_HINT_REBOOT, LOCALE_MENU_HINT_RECORD_APID_AC3, LOCALE_MENU_HINT_RECORD_APID_ALT, - LOCALE_MENU_HINT_RECORD_APIDS, LOCALE_MENU_HINT_RECORD_APID_STD, + LOCALE_MENU_HINT_RECORD_APIDS, LOCALE_MENU_HINT_RECORD_APPLY, LOCALE_MENU_HINT_RECORD_CHANDIR, LOCALE_MENU_HINT_RECORD_DIR, LOCALE_MENU_HINT_RECORD_END, - LOCALE_MENU_HINT_RECORDING, LOCALE_MENU_HINT_RECORD_TDIR, LOCALE_MENU_HINT_RECORD_TIME, LOCALE_MENU_HINT_RECORD_TIMEAFTER, @@ -962,14 +961,15 @@ typedef enum LOCALE_MENU_HINT_RECORD_TIMESHIFT_TEMP, LOCALE_MENU_HINT_RECORD_ZAP, LOCALE_MENU_HINT_RECORD_ZAP_PRE_TIME, + LOCALE_MENU_HINT_RECORDING, LOCALE_MENU_HINT_RELOAD_CHANNELS, LOCALE_MENU_HINT_RELOAD_PLUGINS, LOCALE_MENU_HINT_RESET, LOCALE_MENU_HINT_RESTORE, LOCALE_MENU_HINT_ROTOR_SWAP, LOCALE_MENU_HINT_ROUNDED_CORNERS, - LOCALE_MENU_HINT_SAVEAS, LOCALE_MENU_HINT_SAVE_SETTINGS, + LOCALE_MENU_HINT_SAVEAS, LOCALE_MENU_HINT_SCAN_AUTO, LOCALE_MENU_HINT_SCAN_AUTOALL, LOCALE_MENU_HINT_SCAN_AUTOALL_SELECT, @@ -1001,8 +1001,8 @@ typedef enum LOCALE_MENU_HINT_SCAN_LONGITUDE, LOCALE_MENU_HINT_SCAN_MANUAL, LOCALE_MENU_HINT_SCAN_MOD, - LOCALE_MENU_HINT_SCAN_MOTORPOS, LOCALE_MENU_HINT_SCAN_MOTOR_SPEED, + LOCALE_MENU_HINT_SCAN_MOTORPOS, LOCALE_MENU_HINT_SCAN_NID, LOCALE_MENU_HINT_SCAN_NIT, LOCALE_MENU_HINT_SCAN_PIDS, @@ -1024,8 +1024,8 @@ typedef enum LOCALE_MENU_HINT_SCAN_TEST, LOCALE_MENU_HINT_SCAN_TPSELECT, LOCALE_MENU_HINT_SCAN_UNCOMMITED, - LOCALE_MENU_HINT_SCAN_USALSALL, LOCALE_MENU_HINT_SCAN_USALS_REPEAT, + LOCALE_MENU_HINT_SCAN_USALSALL, LOCALE_MENU_HINT_SCAN_USEUSALS, LOCALE_MENU_HINT_SCRAMBLED_MESSAGE, LOCALE_MENU_HINT_SCREEN_SETUP, @@ -1062,9 +1062,9 @@ typedef enum LOCALE_MENU_HINT_TVRADIO_SWITCH, LOCALE_MENU_HINT_VFD, LOCALE_MENU_HINT_VFD_BRIGHTNESS, + LOCALE_MENU_HINT_VFD_BRIGHTNESS_SETUP, LOCALE_MENU_HINT_VFD_BRIGHTNESSDEEPSTANDBY, LOCALE_MENU_HINT_VFD_BRIGHTNESSDIM, - LOCALE_MENU_HINT_VFD_BRIGHTNESS_SETUP, LOCALE_MENU_HINT_VFD_BRIGHTNESSSTANDBY, LOCALE_MENU_HINT_VFD_DEFAULTS, LOCALE_MENU_HINT_VFD_DIMTIME, @@ -1359,13 +1359,12 @@ typedef enum LOCALE_NFS_DIR, LOCALE_NFS_IP, LOCALE_NFS_LOCALDIR, - LOCALE_NFSMENU_HEAD, LOCALE_NFS_MOUNT, + LOCALE_NFS_MOUNT_OPTIONS, LOCALE_NFS_MOUNTERROR, LOCALE_NFS_MOUNTERROR_NOTSUP, LOCALE_NFS_MOUNTNOW, LOCALE_NFS_MOUNTOK, - LOCALE_NFS_MOUNT_OPTIONS, LOCALE_NFS_MOUNTTIMEOUT, LOCALE_NFS_PASSWORD, LOCALE_NFS_REMOUNT, @@ -1376,11 +1375,12 @@ typedef enum LOCALE_NFS_UMOUNT, LOCALE_NFS_UMOUNTERROR, LOCALE_NFS_USERNAME, + LOCALE_NFSMENU_HEAD, LOCALE_NVOD_PERCENTAGE, + LOCALE_NVOD_STARTING, LOCALE_NVODSELECTOR_DIRECTORMODE, LOCALE_NVODSELECTOR_HEAD, LOCALE_NVODSELECTOR_SUBSERVICE, - LOCALE_NVOD_STARTING, LOCALE_OPTIONS_DEFAULT, LOCALE_OPTIONS_FB, LOCALE_OPTIONS_NTP_OFF, @@ -1428,9 +1428,9 @@ typedef enum LOCALE_PERSONALIZE_NOTPROTECTED, LOCALE_PERSONALIZE_NOTVISIBLE, LOCALE_PERSONALIZE_PIN, + LOCALE_PERSONALIZE_PIN_IN_USE, LOCALE_PERSONALIZE_PINCODE, LOCALE_PERSONALIZE_PINHINT, - LOCALE_PERSONALIZE_PIN_IN_USE, LOCALE_PERSONALIZE_PINPROTECT, LOCALE_PERSONALIZE_PINSTATUS, LOCALE_PERSONALIZE_PLUGINS, @@ -1466,8 +1466,8 @@ typedef enum LOCALE_PICTUREVIEWER_RESIZE_SIMPLE, LOCALE_PICTUREVIEWER_SCALING, LOCALE_PICTUREVIEWER_SHOW, - LOCALE_PICTUREVIEWER_SLIDESHOW, LOCALE_PICTUREVIEWER_SLIDE_TIME, + LOCALE_PICTUREVIEWER_SLIDESHOW, LOCALE_PICTUREVIEWER_SORTORDER_DATE, LOCALE_PICTUREVIEWER_SORTORDER_FILENAME, LOCALE_PING_OK, @@ -1484,6 +1484,8 @@ typedef enum LOCALE_RCLOCK_TITLE, LOCALE_RCLOCK_UNLOCKMSG, LOCALE_RECORDING_IS_RUNNING, + LOCALE_RECORDING_START, + LOCALE_RECORDING_STOP, LOCALE_RECORDINGMENU_APIDS, LOCALE_RECORDINGMENU_APIDS_AC3, LOCALE_RECORDINGMENU_APIDS_ALT, @@ -1510,8 +1512,6 @@ typedef enum LOCALE_RECORDINGMENU_TSDIR, LOCALE_RECORDINGMENU_VCR, LOCALE_RECORDINGMENU_ZAP_ON_ANNOUNCE, - LOCALE_RECORDING_START, - LOCALE_RECORDING_STOP, LOCALE_RECORDTIMER_ANNOUNCE, LOCALE_REPEATBLOCKER_HINT_1, LOCALE_REPEATBLOCKER_HINT_2, @@ -1531,8 +1531,8 @@ typedef enum LOCALE_SATSETUP_DISEQC_ADVANCED, LOCALE_SATSETUP_DISEQC_COM_UNCOM, LOCALE_SATSETUP_DISEQC_INPUT, - LOCALE_SATSETUP_DISEQCREPEAT, LOCALE_SATSETUP_DISEQC_UNCOM_COM, + LOCALE_SATSETUP_DISEQCREPEAT, LOCALE_SATSETUP_EXTENDED, LOCALE_SATSETUP_EXTENDED_MOTOR, LOCALE_SATSETUP_FASTSCAN_ALL, @@ -1560,8 +1560,8 @@ typedef enum LOCALE_SATSETUP_MOTOR_POS, LOCALE_SATSETUP_NODISEQC, LOCALE_SATSETUP_RESET_NUMBERS, - LOCALE_SATSETUP_SATELLITE, LOCALE_SATSETUP_SAT_SETUP, + LOCALE_SATSETUP_SATELLITE, LOCALE_SATSETUP_SELECT_SAT, LOCALE_SATSETUP_SMATVREMOTE, LOCALE_SATSETUP_UNCOMM_INPUT, @@ -1570,6 +1570,14 @@ typedef enum LOCALE_SATSETUP_USE_FTA_FLAG, LOCALE_SATSETUP_USE_NIT, LOCALE_SATSETUP_USE_USALS, + LOCALE_SC_EMPTY, + LOCALE_SC_INIT_FAILED, + LOCALE_SC_INIT_OK, + LOCALE_SC_INSERTED, + LOCALE_SC_REMOVED, + LOCALE_SC_RESET, + LOCALE_SC_TIMEOUT, + LOCALE_SC_WAITING, LOCALE_SCANTS_ABORT_BODY, LOCALE_SCANTS_ABORT_HEADER, LOCALE_SCANTS_ACTCABLE, @@ -1596,10 +1604,6 @@ typedef enum LOCALE_SCANTS_STARTNOW, LOCALE_SCANTS_TEST, LOCALE_SCANTS_TRANSPONDERS, - LOCALE_SC_EMPTY, - LOCALE_SC_INIT_FAILED, - LOCALE_SC_INIT_OK, - LOCALE_SC_INSERTED, LOCALE_SCRAMBLED_CHANNEL, LOCALE_SCREENSETUP_LOWERRIGHT, LOCALE_SCREENSETUP_UPPERLEFT, @@ -1614,10 +1618,6 @@ typedef enum LOCALE_SCREENSHOT_SCALE, LOCALE_SCREENSHOT_TV, LOCALE_SCREENSHOT_VIDEO, - LOCALE_SC_REMOVED, - LOCALE_SC_RESET, - LOCALE_SC_TIMEOUT, - LOCALE_SC_WAITING, LOCALE_SERVICEMENU_GETPLUGINS, LOCALE_SERVICEMENU_GETPLUGINS_HINT, LOCALE_SERVICEMENU_HEAD, @@ -1670,12 +1670,12 @@ typedef enum LOCALE_STRINGINPUT_CLEAR, LOCALE_SUBTITLES_HEAD, LOCALE_SUBTITLES_STOP, - LOCALE_TIMERBAR_CHANNELSWITCH, - LOCALE_TIMERBAR_RECORDEVENT, LOCALE_TIMER_EVENTRECORD_MSG, LOCALE_TIMER_EVENTRECORD_TITLE, LOCALE_TIMER_EVENTTIMED_MSG, LOCALE_TIMER_EVENTTIMED_TITLE, + LOCALE_TIMERBAR_CHANNELSWITCH, + LOCALE_TIMERBAR_RECORDEVENT, LOCALE_TIMERLIST_ALARMTIME, LOCALE_TIMERLIST_APIDS, LOCALE_TIMERLIST_APIDS_DFLT, @@ -1700,9 +1700,6 @@ typedef enum LOCALE_TIMERLIST_REPEAT, LOCALE_TIMERLIST_REPEAT_BIWEEKLY, LOCALE_TIMERLIST_REPEAT_BYEVENTDESCRIPTION, - LOCALE_TIMERLIST_REPEATCOUNT, - LOCALE_TIMERLIST_REPEATCOUNT_HELP1, - LOCALE_TIMERLIST_REPEATCOUNT_HELP2, LOCALE_TIMERLIST_REPEAT_DAILY, LOCALE_TIMERLIST_REPEAT_FOURWEEKLY, LOCALE_TIMERLIST_REPEAT_FRIDAY, @@ -1717,6 +1714,9 @@ typedef enum LOCALE_TIMERLIST_REPEAT_WEDNESDAY, LOCALE_TIMERLIST_REPEAT_WEEKDAYS, LOCALE_TIMERLIST_REPEAT_WEEKLY, + LOCALE_TIMERLIST_REPEATCOUNT, + LOCALE_TIMERLIST_REPEATCOUNT_HELP1, + LOCALE_TIMERLIST_REPEATCOUNT_HELP2, LOCALE_TIMERLIST_SAVE, LOCALE_TIMERLIST_STANDBY, LOCALE_TIMERLIST_STANDBY_OFF, @@ -1769,6 +1769,7 @@ typedef enum LOCALE_USERMENU_MSG_WARNING_NAME, LOCALE_USERMENU_MSG_WARNING_NO_ITEMS, LOCALE_USERMENU_NAME, + LOCALE_VIDEO_MODE_OK, LOCALE_VIDEOMENU_43MODE, LOCALE_VIDEOMENU_ANALOG_HD_RGB_CINCH, LOCALE_VIDEOMENU_ANALOG_HD_RGB_SCART, @@ -1813,7 +1814,6 @@ typedef enum LOCALE_VIDEOMENU_VIDEOFORMAT_169, LOCALE_VIDEOMENU_VIDEOFORMAT_43, LOCALE_VIDEOMENU_VIDEOMODE, - LOCALE_VIDEO_MODE_OK, LOCALE_WIZARD_WELCOME_HEAD, LOCALE_WIZARD_WELCOME_TEXT, LOCALE_WORD_FROM, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index 46b966676..6d7c0d38d 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -25,7 +25,112 @@ const char * locale_real_names[] = { "INTERNAL ERROR - PLEASE REPORT", + "AUDIOSelectMenue.head", + "EPGMenu.epgplus", + "EPGMenu.eventinfo", + "EPGMenu.eventlist", + "EPGMenu.head", + "EPGMenu.streaminfo", + "EPGPlus.actions", + "EPGPlus.bybouquet_mode", + "EPGPlus.bypage_mode", + "EPGPlus.head", + "EPGPlus.next_bouquet", + "EPGPlus.options", + "EPGPlus.page_down", + "EPGPlus.page_up", + "EPGPlus.prev_bouquet", + "EPGPlus.record", + "EPGPlus.refresh_epg", + "EPGPlus.remind", + "EPGPlus.scroll_mode", + "EPGPlus.stretch_mode", + "EPGPlus.swap_mode", + "EPGPlus.view_mode", + "GENRE.ARTS.0", + "GENRE.ARTS.1", + "GENRE.ARTS.10", + "GENRE.ARTS.11", + "GENRE.ARTS.2", + "GENRE.ARTS.3", + "GENRE.ARTS.4", + "GENRE.ARTS.5", + "GENRE.ARTS.6", + "GENRE.ARTS.7", + "GENRE.ARTS.8", + "GENRE.ARTS.9", + "GENRE.CHILDRENs_PROGRAMMES.0", + "GENRE.CHILDRENs_PROGRAMMES.1", + "GENRE.CHILDRENs_PROGRAMMES.2", + "GENRE.CHILDRENs_PROGRAMMES.3", + "GENRE.CHILDRENs_PROGRAMMES.4", + "GENRE.CHILDRENs_PROGRAMMES.5", + "GENRE.DOCUS_MAGAZINES.0", + "GENRE.DOCUS_MAGAZINES.1", + "GENRE.DOCUS_MAGAZINES.2", + "GENRE.DOCUS_MAGAZINES.3", + "GENRE.DOCUS_MAGAZINES.4", + "GENRE.DOCUS_MAGAZINES.5", + "GENRE.DOCUS_MAGAZINES.6", + "GENRE.DOCUS_MAGAZINES.7", + "GENRE.MOVIE.0", + "GENRE.MOVIE.1", + "GENRE.MOVIE.2", + "GENRE.MOVIE.3", + "GENRE.MOVIE.4", + "GENRE.MOVIE.5", + "GENRE.MOVIE.6", + "GENRE.MOVIE.7", + "GENRE.MOVIE.8", + "GENRE.MUSIC_DANCE.0", + "GENRE.MUSIC_DANCE.1", + "GENRE.MUSIC_DANCE.2", + "GENRE.MUSIC_DANCE.3", + "GENRE.MUSIC_DANCE.4", + "GENRE.MUSIC_DANCE.5", + "GENRE.MUSIC_DANCE.6", + "GENRE.NEWS.0", + "GENRE.NEWS.1", + "GENRE.NEWS.2", + "GENRE.NEWS.3", + "GENRE.NEWS.4", + "GENRE.SHOW.0", + "GENRE.SHOW.1", + "GENRE.SHOW.2", + "GENRE.SHOW.3", + "GENRE.SOCIAL_POLITICAL.0", + "GENRE.SOCIAL_POLITICAL.1", + "GENRE.SOCIAL_POLITICAL.2", + "GENRE.SOCIAL_POLITICAL.3", + "GENRE.SPORTS.0", + "GENRE.SPORTS.1", + "GENRE.SPORTS.10", + "GENRE.SPORTS.11", + "GENRE.SPORTS.2", + "GENRE.SPORTS.3", + "GENRE.SPORTS.4", + "GENRE.SPORTS.5", + "GENRE.SPORTS.6", + "GENRE.SPORTS.7", + "GENRE.SPORTS.8", + "GENRE.SPORTS.9", + "GENRE.TRAVEL_HOBBIES.0", + "GENRE.TRAVEL_HOBBIES.1", + "GENRE.TRAVEL_HOBBIES.2", + "GENRE.TRAVEL_HOBBIES.3", + "GENRE.TRAVEL_HOBBIES.4", + "GENRE.TRAVEL_HOBBIES.5", + "GENRE.TRAVEL_HOBBIES.6", + "GENRE.TRAVEL_HOBBIES.7", + "GENRE.UNKNOWN", "apidselector.head", + "audio.srs_algo", + "audio.srs_algo_light", + "audio.srs_algo_normal", + "audio.srs_iq", + "audio.srs_nmgr", + "audio.srs_volume", + "audiomenu.PCMOffset", "audiomenu.analog_mode", "audiomenu.analog_out", "audiomenu.auto_lang", @@ -40,7 +145,6 @@ const char * locale_real_names[] = "audiomenu.hdmi_dd_force", "audiomenu.monoleft", "audiomenu.monoright", - "audiomenu.PCMOffset", "audiomenu.pref_lang", "audiomenu.pref_lang_head", "audiomenu.pref_languages", @@ -75,7 +179,6 @@ const char * locale_real_names[] = "audioplayer.load_radio_stations", "audioplayer.name", "audioplayer.pause", - "audioplayerpicsettings.general", "audioplayer.play", "audioplayer.playing", "audioplayer.playlist_fileerror_msg", @@ -96,13 +199,7 @@ const char * locale_real_names[] = "audioplayer.spectrum", "audioplayer.stop", "audioplayer.title_artist", - "AUDIOSelectMenue.head", - "audio.srs_algo", - "audio.srs_algo_light", - "audio.srs_algo_normal", - "audio.srs_iq", - "audio.srs_nmgr", - "audio.srs_volume", + "audioplayerpicsettings.general", "bookmarkmanager.delete", "bookmarkmanager.name", "bookmarkmanager.rename", @@ -182,13 +279,13 @@ const char * locale_real_names[] = "colormenu.menucolors", "colormenu.osd_preset", "colormenu.sd_preset", + "colormenu.textcolor", + "colormenu.themeselect", + "colormenu.timing", "colormenusetup.menucontent", "colormenusetup.menucontent_inactive", "colormenusetup.menucontent_selected", "colormenusetup.menuhead", - "colormenu.textcolor", - "colormenu.themeselect", - "colormenu.timing", "colorstatusbar.text", "colorthememenu.head", "colorthememenu.head2", @@ -228,27 +325,6 @@ const char * locale_real_names[] = "epgextended.presenter", "epgextended.year_of_production", "epglist.noevents", - "EPGMenu.epgplus", - "EPGMenu.eventinfo", - "EPGMenu.eventlist", - "EPGMenu.head", - "EPGMenu.streaminfo", - "EPGPlus.actions", - "EPGPlus.bybouquet_mode", - "EPGPlus.bypage_mode", - "EPGPlus.head", - "EPGPlus.next_bouquet", - "EPGPlus.options", - "EPGPlus.page_down", - "EPGPlus.page_up", - "EPGPlus.prev_bouquet", - "EPGPlus.record", - "EPGPlus.refresh_epg", - "EPGPlus.remind", - "EPGPlus.scroll_mode", - "EPGPlus.stretch_mode", - "EPGPlus.swap_mode", - "EPGPlus.view_mode", "epgviewer.More_Screenings", "epgviewer.More_Screenings_short", "epgviewer.nodetailed", @@ -256,9 +332,9 @@ const char * locale_real_names[] = "eventfinder.head", "eventfinder.keyword", "eventfinder.search", - "eventfinder.searching", "eventfinder.search_within_epg", "eventfinder.search_within_list", + "eventfinder.searching", "eventfinder.start_search", "eventlistbar.channelswitch", "eventlistbar.eventsort", @@ -327,6 +403,7 @@ const char * locale_real_names[] = "extra.start_tostandby", "extra.temp_timeshift", "extra.timeshift_pause", + "extra.tp.pol_v", "extra.tp_fec", "extra.tp_freq", "extra.tp_mod", @@ -339,7 +416,6 @@ const char * locale_real_names[] = "extra.tp_pol_h", "extra.tp_pol_l", "extra.tp_pol_r", - "extra.tp.pol_v", "extra.tp_rate", "extra.update_dir", "extra.use_gotoxx", @@ -388,8 +464,8 @@ const char * locale_real_names[] = "flashupdate.cantopenfile", "flashupdate.cantopenmtd", "flashupdate.checkupdate", - "flashupdate.currentversiondate", "flashupdate.currentversion_sep", + "flashupdate.currentversiondate", "flashupdate.currentversiontime", "flashupdate.erasefailed", "flashupdate.erasing", @@ -453,10 +529,10 @@ const char * locale_real_names[] = "fontmenu.scaling_y", "fontmenu.scaling_y_hint2", "fontmenu.sizes", + "fontsize.channel_num_zap", "fontsize.channellist", "fontsize.channellist_descr", "fontsize.channellist_number", - "fontsize.channel_num_zap", "fontsize.epg_date", "fontsize.epg_info1", "fontsize.epg_info2", @@ -477,82 +553,6 @@ const char * locale_real_names[] = "fontsize.menu_hint", "fontsize.menu_info", "fontsize.menu_title", - "GENRE.ARTS.0", - "GENRE.ARTS.1", - "GENRE.ARTS.10", - "GENRE.ARTS.11", - "GENRE.ARTS.2", - "GENRE.ARTS.3", - "GENRE.ARTS.4", - "GENRE.ARTS.5", - "GENRE.ARTS.6", - "GENRE.ARTS.7", - "GENRE.ARTS.8", - "GENRE.ARTS.9", - "GENRE.CHILDRENs_PROGRAMMES.0", - "GENRE.CHILDRENs_PROGRAMMES.1", - "GENRE.CHILDRENs_PROGRAMMES.2", - "GENRE.CHILDRENs_PROGRAMMES.3", - "GENRE.CHILDRENs_PROGRAMMES.4", - "GENRE.CHILDRENs_PROGRAMMES.5", - "GENRE.DOCUS_MAGAZINES.0", - "GENRE.DOCUS_MAGAZINES.1", - "GENRE.DOCUS_MAGAZINES.2", - "GENRE.DOCUS_MAGAZINES.3", - "GENRE.DOCUS_MAGAZINES.4", - "GENRE.DOCUS_MAGAZINES.5", - "GENRE.DOCUS_MAGAZINES.6", - "GENRE.DOCUS_MAGAZINES.7", - "GENRE.MOVIE.0", - "GENRE.MOVIE.1", - "GENRE.MOVIE.2", - "GENRE.MOVIE.3", - "GENRE.MOVIE.4", - "GENRE.MOVIE.5", - "GENRE.MOVIE.6", - "GENRE.MOVIE.7", - "GENRE.MOVIE.8", - "GENRE.MUSIC_DANCE.0", - "GENRE.MUSIC_DANCE.1", - "GENRE.MUSIC_DANCE.2", - "GENRE.MUSIC_DANCE.3", - "GENRE.MUSIC_DANCE.4", - "GENRE.MUSIC_DANCE.5", - "GENRE.MUSIC_DANCE.6", - "GENRE.NEWS.0", - "GENRE.NEWS.1", - "GENRE.NEWS.2", - "GENRE.NEWS.3", - "GENRE.NEWS.4", - "GENRE.SHOW.0", - "GENRE.SHOW.1", - "GENRE.SHOW.2", - "GENRE.SHOW.3", - "GENRE.SOCIAL_POLITICAL.0", - "GENRE.SOCIAL_POLITICAL.1", - "GENRE.SOCIAL_POLITICAL.2", - "GENRE.SOCIAL_POLITICAL.3", - "GENRE.SPORTS.0", - "GENRE.SPORTS.1", - "GENRE.SPORTS.10", - "GENRE.SPORTS.11", - "GENRE.SPORTS.2", - "GENRE.SPORTS.3", - "GENRE.SPORTS.4", - "GENRE.SPORTS.5", - "GENRE.SPORTS.6", - "GENRE.SPORTS.7", - "GENRE.SPORTS.8", - "GENRE.SPORTS.9", - "GENRE.TRAVEL_HOBBIES.0", - "GENRE.TRAVEL_HOBBIES.1", - "GENRE.TRAVEL_HOBBIES.2", - "GENRE.TRAVEL_HOBBIES.3", - "GENRE.TRAVEL_HOBBIES.4", - "GENRE.TRAVEL_HOBBIES.5", - "GENRE.TRAVEL_HOBBIES.6", - "GENRE.TRAVEL_HOBBIES.7", - "GENRE.UNKNOWN", "hdd_10min", "hdd_1min", "hdd_20min", @@ -607,6 +607,7 @@ const char * locale_real_names[] = "infoviewer.waittime", "ipsetup.hint_1", "ipsetup.hint_2", + "keybindingmenu.RC", "keybindingmenu.addrecord", "keybindingmenu.addremind", "keybindingmenu.allchannels_on_ok", @@ -622,17 +623,16 @@ const char * locale_real_names[] = "keybindingmenu.head", "keybindingmenu.lastchannel", "keybindingmenu.misc", - "keybindingmenu.modechange", "keybindingmenu.mode_left_right_key_tv", "keybindingmenu.mode_left_right_key_tv_infobar", "keybindingmenu.mode_left_right_key_tv_volume", "keybindingmenu.mode_left_right_key_tv_vzap", "keybindingmenu.mode_left_right_key_tv_zap", + "keybindingmenu.modechange", "keybindingmenu.pagedown", "keybindingmenu.pageup", "keybindingmenu.poweroff", "keybindingmenu.quickzap", - "keybindingmenu.RC", "keybindingmenu.remotecontrol_hardware", "keybindingmenu.remotecontrol_hardware_coolstream", "keybindingmenu.remotecontrol_hardware_dbox", @@ -649,20 +649,20 @@ const char * locale_real_names[] = "keybindingmenu.tvradiomode", "keybindingmenu.zaphistory", "keychooser.head", + "keychooser.text1", + "keychooser.text2", "keychoosermenu.currentkey", "keychoosermenu.setnew", "keychoosermenu.setnone", - "keychooser.text1", - "keychooser.text2", "languagesetup.head", "languagesetup.osd", "languagesetup.select", - "lcdcontroler.brightness", - "lcdcontroler.brightnessdeepstandby", - "lcdcontroler.brightnessstandby", "lcd_info_line", "lcd_info_line_channel", "lcd_info_line_clock", + "lcdcontroler.brightness", + "lcdcontroler.brightnessdeepstandby", + "lcdcontroler.brightnessstandby", "lcdmenu.dim_brightness", "lcdmenu.dim_time", "lcdmenu.head", @@ -724,6 +724,12 @@ const char * locale_real_names[] = "menu.hint_audio_avsync", "menu.hint_audio_dd", "menu.hint_audio_hdmi_dd", + "menu.hint_audio_spdif_dd", + "menu.hint_audio_srs", + "menu.hint_audio_srs_algo", + "menu.hint_audio_srs_nmgr", + "menu.hint_audio_srs_volume", + "menu.hint_audio_volstep", "menu.hint_audioplayer_defdir", "menu.hint_audioplayer_follow", "menu.hint_audioplayer_highprio", @@ -733,12 +739,6 @@ const char * locale_real_names[] = "menu.hint_audioplayer_sc_metadata", "menu.hint_audioplayer_screensaver", "menu.hint_audioplayer_title", - "menu.hint_audio_spdif_dd", - "menu.hint_audio_srs", - "menu.hint_audio_srs_algo", - "menu.hint_audio_srs_nmgr", - "menu.hint_audio_srs_volume", - "menu.hint_audio_volstep", "menu.hint_auto_lang", "menu.hint_auto_subs", "menu.hint_back", @@ -769,8 +769,8 @@ const char * locale_real_names[] = "menu.hint_epg_max_events", "menu.hint_epg_old_events", "menu.hint_epg_save", - "menu.hint_eventlist_fonts", "menu.hint_event_textcolor", + "menu.hint_eventlist_fonts", "menu.hint_extended", "menu.hint_factory", "menu.hint_fade", @@ -780,9 +780,9 @@ const char * locale_real_names[] = "menu.hint_fileplay", "menu.hint_filesystem_is_utf8", "menu.hint_font_gui", - "menu.hint_fonts", "menu.hint_font_scaling", "menu.hint_font_ttx", + "menu.hint_fonts", "menu.hint_gamelist_fonts", "menu.hint_games", "menu.hint_hdd", @@ -795,9 +795,9 @@ const char * locale_real_names[] = "menu.hint_head_back", "menu.hint_head_textcolor", "menu.hint_imageinfo", + "menu.hint_inact_timer", "menu.hint_inactive_back", "menu.hint_inactive_textcolor", - "menu.hint_inact_timer", "menu.hint_inet_radio", "menu.hint_info", "menu.hint_infobar_back", @@ -823,9 +823,9 @@ const char * locale_real_names[] = "menu.hint_key_bouquetdown", "menu.hint_key_bouquetup", "menu.hint_key_cancel", + "menu.hint_key_channel_sms", "menu.hint_key_channeldown", "menu.hint_key_channellist", - "menu.hint_key_channel_sms", "menu.hint_key_channelup", "menu.hint_key_hardware", "menu.hint_key_history", @@ -853,7 +853,6 @@ const char * locale_real_names[] = "menu.hint_key_repeatblock", "menu.hint_key_repeatblockgeneric", "menu.hint_key_right", - "menu.hint_keys", "menu.hint_key_save", "menu.hint_key_screenshot", "menu.hint_key_sort", @@ -862,6 +861,7 @@ const char * locale_real_names[] = "menu.hint_key_transponder", "menu.hint_key_tvradiomode", "menu.hint_key_unlock", + "menu.hint_keys", "menu.hint_lang_pref", "menu.hint_language", "menu.hint_last_radio", @@ -943,13 +943,12 @@ const char * locale_real_names[] = "menu.hint_reboot", "menu.hint_record_apid_ac3", "menu.hint_record_apid_alt", - "menu.hint_record_apids", "menu.hint_record_apid_std", + "menu.hint_record_apids", "menu.hint_record_apply", "menu.hint_record_chandir", "menu.hint_record_dir", "menu.hint_record_end", - "menu.hint_recording", "menu.hint_record_tdir", "menu.hint_record_time", "menu.hint_record_timeafter", @@ -962,14 +961,15 @@ const char * locale_real_names[] = "menu.hint_record_timeshift_temp", "menu.hint_record_zap", "menu.hint_record_zap_pre_time", + "menu.hint_recording", "menu.hint_reload_channels", "menu.hint_reload_plugins", "menu.hint_reset", "menu.hint_restore", "menu.hint_rotor_swap", "menu.hint_rounded_corners", - "menu.hint_saveas", "menu.hint_save_settings", + "menu.hint_saveas", "menu.hint_scan_auto", "menu.hint_scan_autoall", "menu.hint_scan_autoall_select", @@ -1001,8 +1001,8 @@ const char * locale_real_names[] = "menu.hint_scan_longitude", "menu.hint_scan_manual", "menu.hint_scan_mod", - "menu.hint_scan_motorpos", "menu.hint_scan_motor_speed", + "menu.hint_scan_motorpos", "menu.hint_scan_nid", "menu.hint_scan_nit", "menu.hint_scan_pids", @@ -1024,8 +1024,8 @@ const char * locale_real_names[] = "menu.hint_scan_test", "menu.hint_scan_tpselect", "menu.hint_scan_uncommited", - "menu.hint_scan_usalsall", "menu.hint_scan_usals_repeat", + "menu.hint_scan_usalsall", "menu.hint_scan_useusals", "menu.hint_scrambled_message", "menu.hint_screen_setup", @@ -1062,9 +1062,9 @@ const char * locale_real_names[] = "menu.hint_tvradio_switch", "menu.hint_vfd", "menu.hint_vfd_brightness", + "menu.hint_vfd_brightness_setup", "menu.hint_vfd_brightnessdeepstandby", "menu.hint_vfd_brightnessdim", - "menu.hint_vfd_brightness_setup", "menu.hint_vfd_brightnessstandby", "menu.hint_vfd_defaults", "menu.hint_vfd_dimtime", @@ -1359,13 +1359,12 @@ const char * locale_real_names[] = "nfs.dir", "nfs.ip", "nfs.localdir", - "nfsmenu.head", "nfs.mount", + "nfs.mount_options", "nfs.mounterror", "nfs.mounterror_notsup", "nfs.mountnow", "nfs.mountok", - "nfs.mount_options", "nfs.mounttimeout", "nfs.password", "nfs.remount", @@ -1376,11 +1375,12 @@ const char * locale_real_names[] = "nfs.umount", "nfs.umounterror", "nfs.username", + "nfsmenu.head", "nvod.percentage", + "nvod.starting", "nvodselector.directormode", "nvodselector.head", "nvodselector.subservice", - "nvod.starting", "options.default", "options.fb", "options.ntp_off", @@ -1428,9 +1428,9 @@ const char * locale_real_names[] = "personalize.notprotected", "personalize.notvisible", "personalize.pin", + "personalize.pin_in_use", "personalize.pincode", "personalize.pinhint", - "personalize.pin_in_use", "personalize.pinprotect", "personalize.pinstatus", "personalize.plugins", @@ -1466,8 +1466,8 @@ const char * locale_real_names[] = "pictureviewer.resize.simple", "pictureviewer.scaling", "pictureviewer.show", - "pictureviewer.slideshow", "pictureviewer.slide_time", + "pictureviewer.slideshow", "pictureviewer.sortorder.date", "pictureviewer.sortorder.filename", "ping.ok", @@ -1484,6 +1484,8 @@ const char * locale_real_names[] = "rclock.title", "rclock.unlockmsg", "recording.is_running", + "recording.start", + "recording.stop", "recordingmenu.apids", "recordingmenu.apids_ac3", "recordingmenu.apids_alt", @@ -1510,8 +1512,6 @@ const char * locale_real_names[] = "recordingmenu.tsdir", "recordingmenu.vcr", "recordingmenu.zap_on_announce", - "recording.start", - "recording.stop", "recordtimer.announce", "repeatblocker.hint_1", "repeatblocker.hint_2", @@ -1531,8 +1531,8 @@ const char * locale_real_names[] = "satsetup.diseqc_advanced", "satsetup.diseqc_com_uncom", "satsetup.diseqc_input", - "satsetup.diseqcrepeat", "satsetup.diseqc_uncom_com", + "satsetup.diseqcrepeat", "satsetup.extended", "satsetup.extended_motor", "satsetup.fastscan_all", @@ -1560,8 +1560,8 @@ const char * locale_real_names[] = "satsetup.motor_pos", "satsetup.nodiseqc", "satsetup.reset_numbers", - "satsetup.satellite", "satsetup.sat_setup", + "satsetup.satellite", "satsetup.select_sat", "satsetup.smatvremote", "satsetup.uncomm_input", @@ -1570,6 +1570,14 @@ const char * locale_real_names[] = "satsetup.use_fta_flag", "satsetup.use_nit", "satsetup.use_usals", + "sc.empty", + "sc.init_failed", + "sc.init_ok", + "sc.inserted", + "sc.removed", + "sc.reset", + "sc.timeout", + "sc.waiting", "scants.abort_body", "scants.abort_header", "scants.actcable", @@ -1596,10 +1604,6 @@ const char * locale_real_names[] = "scants.startnow", "scants.test", "scants.transponders", - "sc.empty", - "sc.init_failed", - "sc.init_ok", - "sc.inserted", "scrambled_channel", "screensetup.lowerright", "screensetup.upperleft", @@ -1614,10 +1618,6 @@ const char * locale_real_names[] = "screenshot.scale", "screenshot.tv", "screenshot.video", - "sc.removed", - "sc.reset", - "sc.timeout", - "sc.waiting", "servicemenu.getplugins", "servicemenu.getplugins_hint", "servicemenu.head", @@ -1670,12 +1670,12 @@ const char * locale_real_names[] = "stringinput.clear", "subtitles.head", "subtitles.stop", - "timerbar.channelswitch", - "timerbar.recordevent", "timer.eventrecord.msg", "timer.eventrecord.title", "timer.eventtimed.msg", "timer.eventtimed.title", + "timerbar.channelswitch", + "timerbar.recordevent", "timerlist.alarmtime", "timerlist.apids", "timerlist.apids_dflt", @@ -1700,9 +1700,6 @@ const char * locale_real_names[] = "timerlist.repeat", "timerlist.repeat.biweekly", "timerlist.repeat.byeventdescription", - "timerlist.repeatcount", - "timerlist.repeatcount.help1", - "timerlist.repeatcount.help2", "timerlist.repeat.daily", "timerlist.repeat.fourweekly", "timerlist.repeat.friday", @@ -1717,6 +1714,9 @@ const char * locale_real_names[] = "timerlist.repeat.wednesday", "timerlist.repeat.weekdays", "timerlist.repeat.weekly", + "timerlist.repeatcount", + "timerlist.repeatcount.help1", + "timerlist.repeatcount.help2", "timerlist.save", "timerlist.standby", "timerlist.standby.off", @@ -1769,6 +1769,7 @@ const char * locale_real_names[] = "usermenu.msg_warning_name", "usermenu.msg_warning_no_items", "usermenu.name", + "video_mode_ok", "videomenu.43mode", "videomenu.analog_hd_rgb_cinch", "videomenu.analog_hd_rgb_scart", @@ -1813,7 +1814,6 @@ const char * locale_real_names[] = "videomenu.videoformat_169", "videomenu.videoformat_43", "videomenu.videomode", - "video_mode_ok", "wizard.welcome_head", "wizard.welcome_text", "word.from", From d87c9b8b4ca665e4eb130dbe756ed8522e10af79 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Tue, 7 Aug 2012 12:07:18 +0400 Subject: [PATCH 187/317] driver/record.cpp: split record and timeshift, return record mask in GetRecordMode(), comment almost unused tshift_mode - for menu enough to check is this timeshift or not --- src/driver/record.cpp | 71 +++++++++++++++++++++++++++++++++++-------- src/driver/record.h | 3 +- 2 files changed, 61 insertions(+), 13 deletions(-) diff --git a/src/driver/record.cpp b/src/driver/record.cpp index 07a25b216..23f0e1ae6 100644 --- a/src/driver/record.cpp +++ b/src/driver/record.cpp @@ -709,14 +709,27 @@ CRecordInstance * CRecordManager::FindInstanceID(int recid) return NULL; } -MI_MOVIE_INFO * CRecordManager::GetMovieInfo(t_channel_id channel_id) +CRecordInstance * CRecordManager::FindTimeshift() +{ + for (recmap_iterator_t it = recmap.begin(); it != recmap.end(); it++) { + if (it->second->Timeshift()) + return it->second; + } + return NULL; +} + +MI_MOVIE_INFO * CRecordManager::GetMovieInfo(t_channel_id channel_id, bool timeshift) { //FIXME copy MI_MOVIE_INFO ? MI_MOVIE_INFO * mi = NULL; mutex.lock(); - CRecordInstance * inst = FindInstance(channel_id); - if(inst) + CRecordInstance * inst = NULL; + if (timeshift) + inst = FindTimeshift(); + if (inst == NULL) + inst = FindInstance(channel_id); + if (inst) mi = inst->GetMovieInfo(); mutex.unlock(); return mi; @@ -731,8 +744,10 @@ const std::string CRecordManager::GetFileName(t_channel_id channel_id) return filename; } +/* return record mode mask, for channel_id not 0, or global */ int CRecordManager::GetRecordMode(const t_channel_id channel_id) { +#if 0 if (RecordingStatus(channel_id) || IsTimeshift(channel_id)) { if (RecordingStatus(channel_id) && !IsTimeshift(channel_id)) @@ -753,6 +768,27 @@ int CRecordManager::GetRecordMode(const t_channel_id channel_id) } } return RECMODE_OFF; +#endif + int recmode = RECMODE_OFF; + mutex.lock(); + if (channel_id == 0) { + /* we can have only one timeshift instance, if there are more - some is record */ + if ((!autoshift && !recmap.empty()) || recmap.size() > 1) + recmode |= RECMODE_REC; + if (autoshift) + recmode |= RECMODE_TSHIFT; + } else { + for (recmap_iterator_t it = recmap.begin(); it != recmap.end(); it++) { + if (it->second->GetChannelId() == channel_id) { + if (it->second->Timeshift()) + recmode |= RECMODE_TSHIFT; + else + recmode |= RECMODE_REC; + } + } + } + mutex.unlock(); + return recmode; } bool CRecordManager::Record(const t_channel_id channel_id, const char * dir, bool timeshift) @@ -909,13 +945,8 @@ bool CRecordManager::StopAutoRecord(bool lock) if (lock) mutex.lock(); - CRecordInstance * inst = NULL; - for (recmap_iterator_t it = recmap.begin(); it != recmap.end(); it++) { - if (it->second->Timeshift()) { - inst = it->second; - break; - } - } + + CRecordInstance * inst = FindTimeshift(); if (inst) StopInstance(inst); @@ -978,6 +1009,7 @@ void CRecordManager::StartNextRecording() } } +/* return true, if there are any recording running for this channel id, or global if id is 0 */ bool CRecordManager::RecordingStatus(const t_channel_id channel_id) { bool ret = false; @@ -1176,9 +1208,10 @@ void CRecordManager::StartTimeshift() { if(g_RemoteControl->is_video_started) { - std::string tmode; + std::string tmode = "ptimeshift"; // already recording, pause bool res = true; t_channel_id live_channel_id = CZapit::getInstance()->GetCurrentChannelID(); +#if 0 if(RecordingStatus(live_channel_id)) { tmode = "ptimeshift"; // already recording, pause @@ -1197,6 +1230,19 @@ void CRecordManager::StartTimeshift() } tmode = "timeshift"; // record just started } +#endif + /* start temporary timeshift if enabled and not running, but dont start second record */ + if (g_settings.temp_timeshift) { + if (!FindTimeshift()) { + res = StartAutoRecord(); + tmode = "timeshift"; // record just started + } + } + else if (!RecordingStatus(live_channel_id)) { + res = Record(live_channel_id); + tmode = "timeshift"; // record just started + } + if(res) { CMoviePlayerGui::getInstance().exec(NULL, tmode); @@ -1328,7 +1374,8 @@ bool CRecordManager::ShowMenu(void) inst->GetRecordString(title); const char* mode_icon = NULL; - if (inst->tshift_mode) + //if (inst->tshift_mode) + if (inst->Timeshift()) mode_icon = NEUTRINO_ICON_AUTO_SHIFT; sprintf(cnt, "%d", i); diff --git a/src/driver/record.h b/src/driver/record.h index 451ff96fd..e98a2dfbe 100644 --- a/src/driver/record.h +++ b/src/driver/record.h @@ -162,6 +162,7 @@ class CRecordManager : public CMenuTarget /*, public CChangeObserver*/ void StopInstance(CRecordInstance * inst, bool remove_event = true); CRecordInstance * FindInstance(t_channel_id); CRecordInstance * FindInstanceID(int recid); + CRecordInstance * FindTimeshift(); void SetTimeshiftMode(CRecordInstance * inst=NULL, int mode=TSHIFT_MODE_OFF); public: @@ -189,7 +190,7 @@ class CRecordManager : public CMenuTarget /*, public CChangeObserver*/ bool StartAutoRecord(); bool StopAutoRecord(bool lock = true); - MI_MOVIE_INFO * GetMovieInfo(const t_channel_id channel_id); + MI_MOVIE_INFO * GetMovieInfo(const t_channel_id channel_id, bool timeshift = true); const std::string GetFileName(const t_channel_id channel_id); bool RunStartScript(void); From a76d37d072bb3343bf461cc81e199c9fda0a79fe Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Tue, 7 Aug 2012 12:08:13 +0400 Subject: [PATCH 188/317] gui/channellist.cpp: adapt for new GetRecordMode() mask --- src/gui/channellist.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/gui/channellist.cpp b/src/gui/channellist.cpp index ec97ae09b..06f6226e1 100644 --- a/src/gui/channellist.cpp +++ b/src/gui/channellist.cpp @@ -615,7 +615,7 @@ int CChannelList::show() } } else if( msg == CRCInput::RC_stop ) { //stopp recording - if(CRecordManager::getInstance()->RecordingStatus()) + if(CRecordManager::getInstance()->RecordingStatus(chanlist[selected]->channel_id)) { if (CRecordManager::getInstance()->AskToStop(chanlist[selected]->channel_id)) { @@ -1747,6 +1747,7 @@ void CChannelList::paintItem(int pos) if (pos == 0) { + /* FIXME move to calcSize() ? */ int w_max, w_min, h; ChannelList_Rec = 0; int recmode_icon_max = CRecordManager::RECMODE_REC, recmode_icon_min = CRecordManager::RECMODE_TSHIFT; @@ -1763,11 +1764,11 @@ void CChannelList::paintItem(int pos) for (uint32_t i = 0; i < chanlist.size(); i++) { rec_mode = CRecordManager::getInstance()->GetRecordMode(chanlist[i]->channel_id); - if (rec_mode == recmode_icon_max) + if (rec_mode & recmode_icon_max) { ChannelList_Rec = w_max; break; - } else if (rec_mode == recmode_icon_min) + } else if (rec_mode & recmode_icon_min) ChannelList_Rec = w_min; } if (ChannelList_Rec > 0) @@ -1779,9 +1780,9 @@ void CChannelList::paintItem(int pos) //set recording icon const char * rec_icon = ""; - if (rec_mode == CRecordManager::RECMODE_REC) + if (rec_mode & CRecordManager::RECMODE_REC) rec_icon = NEUTRINO_ICON_REC; - else if (rec_mode == CRecordManager::RECMODE_TSHIFT) + else if (rec_mode & CRecordManager::RECMODE_TSHIFT) rec_icon = NEUTRINO_ICON_AUTO_SHIFT; //calculating icons @@ -1797,7 +1798,6 @@ void CChannelList::paintItem(int pos) r_icon_x = r_icon_x - s_icon_w; //paint recording icon - //bool do_rec = CRecordManager::getInstance()->RecordingStatus(chanlist[curr]->channel_id); if (rec_mode != CRecordManager::RECMODE_OFF) frameBuffer->paintIcon(rec_icon, r_icon_x - r_icon_w, ypos, fheight);//ypos + (fheight - 16)/2); From 9630e1497d2969f8a5f9cf8681e0ee6afab7a32d Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Tue, 7 Aug 2012 12:09:39 +0400 Subject: [PATCH 189/317] gui/infoviewer.cpp: adapt for new GetRecordMode() mask --- src/gui/infoviewer.cpp | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/src/gui/infoviewer.cpp b/src/gui/infoviewer.cpp index 219926767..595044fc6 100644 --- a/src/gui/infoviewer.cpp +++ b/src/gui/infoviewer.cpp @@ -251,20 +251,26 @@ void CInfoViewer::paintTime (bool show_dot, bool firstPaint) void CInfoViewer::showRecordIcon (const bool show) { CRecordManager * crm = CRecordManager::getInstance(); - int rec_mode = crm->GetRecordMode(); - recordModeActive = rec_mode != CRecordManager::RECMODE_OFF; + recordModeActive = crm->RecordingStatus(); + /* FIXME if record or timeshift stopped while infobar visible, artifacts */ if (recordModeActive) { std::string Icon_Rec = NEUTRINO_ICON_REC_GRAY, Icon_Ts = NEUTRINO_ICON_AUTO_SHIFT_GRAY; - t_channel_id cci = g_RemoteControl->current_channel_id; - bool status_ts = crm->GetRecordMode(cci) == CRecordManager::RECMODE_TSHIFT; - bool status_rec = crm->GetRecordMode(cci) == CRecordManager::RECMODE_REC && !status_ts; - if (status_ts) + + /* global record mode */ + int rec_mode = crm->GetRecordMode(); + /* channel record mode */ + int ccrec_mode = crm->GetRecordMode(cci); + + /* set 'active' icons for current channel */ + if (ccrec_mode & CRecordManager::RECMODE_TSHIFT) Icon_Ts = NEUTRINO_ICON_AUTO_SHIFT; - if (status_rec) + + if (ccrec_mode & CRecordManager::RECMODE_REC) Icon_Rec = NEUTRINO_ICON_REC; + int records = crm->GetRecordCount(); const int radius = RADIUS_MIN; @@ -800,14 +806,19 @@ void CInfoViewer::loop(bool show_dot) } else if (!fileplay && !CMoviePlayerGui::getInstance().timeshift) { CNeutrinoApp *neutrino = CNeutrinoApp::getInstance (); if ((msg == (neutrino_msg_t) g_settings.key_quickzap_up) || (msg == (neutrino_msg_t) g_settings.key_quickzap_down) || (msg == CRCInput::RC_0) || (msg == NeutrinoMessages::SHOW_INFOBAR)) { - if ((g_settings.radiotext_enable) && (CNeutrinoApp::getInstance()->getMode() == NeutrinoMessages::mode_radio)) + hideIt = false; // default + if ((g_settings.radiotext_enable) && (neutrino->getMode() == NeutrinoMessages::mode_radio)) hideIt = true; - else - hideIt = false; + int rec_mode = CRecordManager::getInstance()->GetRecordMode(); +#if 0 if ((rec_mode == CRecordManager::RECMODE_REC) || (rec_mode == CRecordManager::RECMODE_REC_TSHIFT)) hideIt = true; - //hideIt = (g_settings.timing[SNeutrinoSettings::TIMING_INFOBAR] == 0) ? true : false; +#endif + /* hide, if record (not timeshift only) is running -> neutrino will show channel list */ + if (rec_mode & CRecordManager::RECMODE_REC) + hideIt = true; + g_RCInput->postMsg (msg, data); res = messages_return::cancel_info; } else if (msg == NeutrinoMessages::EVT_TIMESET) { From 07ecdf827a21f5ff943d83b539f8107f966a352b Mon Sep 17 00:00:00 2001 From: satbaby Date: Tue, 7 Aug 2012 11:12:47 +0200 Subject: [PATCH 190/317] timerlist.cpp:commented out unnecessary code --- src/gui/timerlist.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gui/timerlist.cpp b/src/gui/timerlist.cpp index c7c2fd3f8..282e6d4b1 100644 --- a/src/gui/timerlist.cpp +++ b/src/gui/timerlist.cpp @@ -588,6 +588,7 @@ int CTimerList::show() { update=true; } +#if 0 else if ((msg==CRCInput::RC_blue)|| (CRCInput::isNumeric(msg)) ) { @@ -595,6 +596,7 @@ int CTimerList::show() g_RCInput->postMsg( msg, data ); loop=false; } +#endif else if (msg==CRCInput::RC_setup) { res=menu_return::RETURN_EXIT_ALL; From 5b33cee5bf455a908b33212c8c5ba87b1080f3c3 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Tue, 7 Aug 2012 13:34:57 +0400 Subject: [PATCH 191/317] driver/record.cpp: move frontend selection to CutBackNeutrino() --- src/driver/record.cpp | 63 +++++++++++++++++++------------------------ src/driver/record.h | 2 +- 2 files changed, 28 insertions(+), 37 deletions(-) diff --git a/src/driver/record.cpp b/src/driver/record.cpp index 23f0e1ae6..8c027aaaf 100644 --- a/src/driver/record.cpp +++ b/src/driver/record.cpp @@ -852,24 +852,8 @@ bool CRecordManager::Record(const CTimerd::RecordingInfo * const eventinfo, cons } else #endif if(recmap.size() < RECORD_MAX_COUNT) { - CZapitChannel * channel = CServiceManager::getInstance()->FindChannel(eventinfo->channel_id); - - /* first try to get frontend for record with locked live */ - CFrontend *live_fe = CZapit::getInstance()->GetLiveFrontend(); - bool unlock = true; - CFEManager::getInstance()->lockFrontend(live_fe); - CFrontend * frontend = CFEManager::getInstance()->allocateFE(channel); - if (frontend == NULL) { - /* no frontend, try again with unlocked live */ - unlock = false; - CFEManager::getInstance()->unlockFrontend(live_fe); - frontend = CFEManager::getInstance()->allocateFE(channel); - } - - int mode = channel->getServiceType() != ST_DIGITAL_RADIO_SOUND_SERVICE ? - NeutrinoMessages::mode_tv : NeutrinoMessages::mode_radio; - - if(frontend && CutBackNeutrino(eventinfo->channel_id, mode, frontend)) { + CFrontend * frontend = NULL; + if(CutBackNeutrino(eventinfo->channel_id, frontend)) { std::string newdir; if(dir && strlen(dir)) newdir = std::string(dir); @@ -900,8 +884,6 @@ bool CRecordManager::Record(const CTimerd::RecordingInfo * const eventinfo, cons printf("%s add %llx : %s to pending\n", __FUNCTION__, evt->channel_id, evt->epgTitle); nextmap.push_back((CTimerd::RecordingInfo *)evt); } - if (unlock) - CFEManager::getInstance()->unlockFrontend(live_fe); } else error_msg = RECORD_BUSY; @@ -1493,35 +1475,42 @@ bool CRecordManager::RunStopScript(void) * if zap ok * set record mode */ -bool CRecordManager::CutBackNeutrino(const t_channel_id channel_id, const int mode, CFrontend *frontend) +bool CRecordManager::CutBackNeutrino(const t_channel_id channel_id, CFrontend * &frontend) { bool ret = true; + CZapitChannel * channel = CServiceManager::getInstance()->FindChannel(channel_id); + if (!channel) + return false; + + int mode = channel->getServiceType() != ST_DIGITAL_RADIO_SOUND_SERVICE ? + NeutrinoMessages::mode_tv : NeutrinoMessages::mode_radio; + printf("%s channel_id %llx mode %d\n", __FUNCTION__, channel_id, mode); last_mode = CNeutrinoApp::getInstance()->getMode(); - if(last_mode == NeutrinoMessages::mode_standby && recmap.empty()) g_Zapit->setStandby(false); // this zap to live_channel_id t_channel_id live_channel_id = CZapit::getInstance()->GetCurrentChannelID(); - CFrontend *live_fe = CZapit::getInstance()->GetLiveFrontend(); bool mode_changed = false; + CFrontend *live_fe = CZapit::getInstance()->GetLiveFrontend(); + frontend = live_fe; if(live_channel_id != channel_id) { -#if 0 - bool found = false; - if(SAME_TRANSPONDER(live_channel_id, channel_id)) { - found = true; - } else { - for(recmap_iterator_t it = recmap.begin(); it != recmap.end(); it++) { - if(SAME_TRANSPONDER(it->second->GetChannelId(), channel_id)) { - found = true; - break; - } - } + /* first try to get frontend for record with locked live */ + bool unlock = true; + CFEManager::getInstance()->lockFrontend(live_fe); + frontend = CFEManager::getInstance()->allocateFE(channel); + if (frontend == NULL) { + /* no frontend, try again with unlocked live */ + unlock = false; + CFEManager::getInstance()->unlockFrontend(live_fe); + frontend = CFEManager::getInstance()->allocateFE(channel); } -#endif - /* FIXME if we here, allocateFE was successful, full zapTo_serviceID + if (frontend == NULL) + return false; + + /* if allocateFE was successful, full zapTo_serviceID * needed, if record frontend same as live, and its on different TP */ bool found = (live_fe != frontend) || SAME_TRANSPONDER(live_channel_id, channel_id); if(found) { @@ -1539,6 +1528,8 @@ bool CRecordManager::CutBackNeutrino(const t_channel_id channel_id, const int mo ret = g_Zapit->zapTo_serviceID(channel_id) > 0; printf("%s zapTo_serviceID channel_id %llx result %d\n", __FUNCTION__, channel_id, ret); } + if (unlock) + CFEManager::getInstance()->unlockFrontend(live_fe); } if(ret) { if(StopSectionsd) { diff --git a/src/driver/record.h b/src/driver/record.h index e98a2dfbe..a20f1008a 100644 --- a/src/driver/record.h +++ b/src/driver/record.h @@ -154,7 +154,7 @@ class CRecordManager : public CMenuTarget /*, public CChangeObserver*/ OpenThreads::Mutex mutex; static OpenThreads::Mutex sm; - bool CutBackNeutrino(const t_channel_id channel_id, const int mode, CFrontend *frontend); + bool CutBackNeutrino(const t_channel_id channel_id, CFrontend * &frontend); void RestoreNeutrino(void); bool CheckRecording(const CTimerd::RecordingInfo * const eventinfo); void StartNextRecording(); From 870f2e6b7a62a4cd2ad38353cd1a4fc0903088d3 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Tue, 7 Aug 2012 14:44:25 +0400 Subject: [PATCH 192/317] driver/record.cpp: fix get timeshift file name; adapt menu for GetRecordMode() mask; comment unused code --- src/driver/record.cpp | 24 ++++++++++++++++++------ src/driver/record.h | 6 +++--- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/src/driver/record.cpp b/src/driver/record.cpp index 8c027aaaf..b9dffde8a 100644 --- a/src/driver/record.cpp +++ b/src/driver/record.cpp @@ -735,10 +735,15 @@ MI_MOVIE_INFO * CRecordManager::GetMovieInfo(t_channel_id channel_id, bool times return mi; } -const std::string CRecordManager::GetFileName(t_channel_id channel_id) +const std::string CRecordManager::GetFileName(t_channel_id channel_id, bool timeshift) { std::string filename; - CRecordInstance * inst = FindInstance(channel_id); + CRecordInstance * inst = NULL; + if (timeshift) + inst = FindTimeshift(); + if (inst == NULL) + inst = FindInstance(channel_id); + if(inst) filename = inst->GetFileName(); return filename; @@ -1147,6 +1152,7 @@ int CRecordManager::handleMsg(const neutrino_msg_t msg, neutrino_msg_data_t data return messages_return::unhandled; } +#if 0 bool CRecordManager::IsTimeshift(t_channel_id channel_id) { bool ret = false; @@ -1185,6 +1191,7 @@ void CRecordManager::SetTimeshiftMode(CRecordInstance * inst, int mode) if (inst) inst->tshift_mode = mode; } +#endif void CRecordManager::StartTimeshift() { @@ -1326,11 +1333,13 @@ bool CRecordManager::ShowMenu(void) // Record / Timeshift t_channel_id live_channel_id = CZapit::getInstance()->GetCurrentChannelID(); - bool status_ts = IsTimeshift(live_channel_id); - bool status_rec = RecordingStatus(live_channel_id) && !status_ts; + + int rec_mode = GetRecordMode(live_channel_id); + bool status_ts = rec_mode & RECMODE_TSHIFT; + //bool status_rec = rec_mode & RECMODE_REC; //record item - iteml = new CMenuForwarder(LOCALE_RECORDINGMENU_MULTIMENU_REC_AKT, (!status_rec && !status_ts), NULL, + iteml = new CMenuForwarder(LOCALE_RECORDINGMENU_MULTIMENU_REC_AKT, true /*!status_rec*/, NULL, this, "Record", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED); //if no recordings are running, set the focus to the record menu item menu.addItem(iteml, rec_count == 0 ? true: false); @@ -1488,8 +1497,11 @@ bool CRecordManager::CutBackNeutrino(const t_channel_id channel_id, CFrontend * printf("%s channel_id %llx mode %d\n", __FUNCTION__, channel_id, mode); last_mode = CNeutrinoApp::getInstance()->getMode(); - if(last_mode == NeutrinoMessages::mode_standby && recmap.empty()) + if(last_mode == NeutrinoMessages::mode_standby && recmap.empty()) { g_Zapit->setStandby(false); // this zap to live_channel_id + /* wait for zapit wakeup */ + g_Zapit->getMode(); + } t_channel_id live_channel_id = CZapit::getInstance()->GetCurrentChannelID(); diff --git a/src/driver/record.h b/src/driver/record.h index a20f1008a..05c226e82 100644 --- a/src/driver/record.h +++ b/src/driver/record.h @@ -163,7 +163,7 @@ class CRecordManager : public CMenuTarget /*, public CChangeObserver*/ CRecordInstance * FindInstance(t_channel_id); CRecordInstance * FindInstanceID(int recid); CRecordInstance * FindTimeshift(); - void SetTimeshiftMode(CRecordInstance * inst=NULL, int mode=TSHIFT_MODE_OFF); + //void SetTimeshiftMode(CRecordInstance * inst=NULL, int mode=TSHIFT_MODE_OFF); public: enum record_modes_t @@ -191,7 +191,7 @@ class CRecordManager : public CMenuTarget /*, public CChangeObserver*/ bool StopAutoRecord(bool lock = true); MI_MOVIE_INFO * GetMovieInfo(const t_channel_id channel_id, bool timeshift = true); - const std::string GetFileName(const t_channel_id channel_id); + const std::string GetFileName(const t_channel_id channel_id, bool timeshift = true); bool RunStartScript(void); bool RunStopScript(void); @@ -211,12 +211,12 @@ class CRecordManager : public CMenuTarget /*, public CChangeObserver*/ int handleMsg(const neutrino_msg_t _msg, neutrino_msg_data_t data); // mimic old behavior for start/stop menu option chooser, still actual ? int GetRecordCount() { return recmap.size(); }; - bool IsTimeshift(t_channel_id channel_id=0); void StartTimeshift(); int GetRecordMode(const t_channel_id channel_id=0); bool IsFileRecord(std::string file); // old code #if 0 + bool IsTimeshift(t_channel_id channel_id=0); bool MountDirectory(const char *recordingDir); bool ChooseRecDir(std::string &dir); int recordingstatus; From d124fcf3e4685e73f766b06a112a17a0d2a614ed Mon Sep 17 00:00:00 2001 From: satbaby Date: Tue, 7 Aug 2012 12:59:11 +0200 Subject: [PATCH 193/317] satellites.xml: update 19.2E & 13.0E --- data/satellites.xml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/data/satellites.xml b/data/satellites.xml index 74e5f7083..79d7318a1 100755 --- a/data/satellites.xml +++ b/data/satellites.xml @@ -1452,8 +1452,8 @@ - - + + @@ -1575,11 +1575,14 @@ + + + From af74eb4f7e1ba9b56a3ebe7a157295e7b8134754 Mon Sep 17 00:00:00 2001 From: satbaby Date: Tue, 7 Aug 2012 16:16:14 +0200 Subject: [PATCH 194/317] neutrino.cpp:use yes in shutdown message as default --- src/neutrino.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 113f9c0f9..4cb81a2e4 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -2728,7 +2728,7 @@ _repeat: if(data) { skipShutdownTimer = (ShowLocalizedMessage(LOCALE_MESSAGEBOX_INFO, LOCALE_SHUTDOWNTIMER_ANNOUNCE, - CMessageBox::mbrNo, CMessageBox::mbYes | CMessageBox::mbNo, NULL, 450, 30, true) == CMessageBox::mbrYes);//FIXME + CMessageBox::mbrYes, CMessageBox::mbYes | CMessageBox::mbNo, NULL, 450, 30, true) == CMessageBox::mbrYes);//FIXME if(skipShutdownTimer) { printf("NeutrinoMessages::SLEEPTIMER: skiping\n"); skipShutdownTimer = false; @@ -2774,7 +2774,7 @@ _repeat: } else if( msg == NeutrinoMessages::ANNOUNCE_SHUTDOWN) { if( mode != mode_scart ) - skipShutdownTimer = (ShowLocalizedMessage(LOCALE_MESSAGEBOX_INFO, LOCALE_SHUTDOWNTIMER_ANNOUNCE, CMessageBox::mbrNo, CMessageBox::mbYes | CMessageBox::mbNo, NULL, 450, 5) == CMessageBox::mbrYes); + skipShutdownTimer = (ShowLocalizedMessage(LOCALE_MESSAGEBOX_INFO, LOCALE_SHUTDOWNTIMER_ANNOUNCE, CMessageBox::mbrYes, CMessageBox::mbYes | CMessageBox::mbNo, NULL, 450, 5) == CMessageBox::mbrYes); } else if( msg == NeutrinoMessages::SHUTDOWN ) { if(!skipShutdownTimer) { From 7359504dd7abaa10db4a511cb8aaeac8baaf5529 Mon Sep 17 00:00:00 2001 From: satbaby Date: Tue, 7 Aug 2012 18:51:44 +0200 Subject: [PATCH 195/317] -fixes strncpy & buf size --- src/daemonc/remotecontrol.cpp | 10 +++++----- src/driver/netfile.cpp | 8 ++++++-- src/driver/record.cpp | 22 +++++++++++----------- src/gui/bedit/bouqueteditor_bouquets.cpp | 2 +- src/gui/bookmarkmanager.cpp | 2 +- src/gui/motorcontrol.cpp | 4 ++-- src/gui/moviebrowser.cpp | 4 ++-- src/gui/movieinfo.cpp | 2 +- src/gui/scan.cpp | 4 ++-- src/gui/streaminfo2.cpp | 4 ++-- src/gui/timerlist.cpp | 8 ++++---- src/gui/update_settings.cpp | 2 +- src/gui/widget/menue.cpp | 2 +- src/zapit/lib/zapitclient.cpp | 8 ++++---- src/zapit/src/zapit.cpp | 10 +++++----- 15 files changed, 48 insertions(+), 44 deletions(-) diff --git a/src/daemonc/remotecontrol.cpp b/src/daemonc/remotecontrol.cpp index f057ceec8..d6659148d 100644 --- a/src/daemonc/remotecontrol.cpp +++ b/src/daemonc/remotecontrol.cpp @@ -520,13 +520,13 @@ void CRemoteControl::processAPIDnames() if ( current_PIDs.APIDs[count].is_ac3 ) { if(!strstr(current_PIDs.APIDs[count].desc, " (AC3)")) - strncat(current_PIDs.APIDs[count].desc, " (AC3)", DESC_MAX_LEN - strlen(current_PIDs.APIDs[count].desc)); + strncat(current_PIDs.APIDs[count].desc, " (AC3)", DESC_MAX_LEN - strlen(current_PIDs.APIDs[count].desc)-1); has_ac3 = true; if(g_settings.audio_DolbyDigital && (ac3_found < 0)) ac3_found = count; } else if (current_PIDs.APIDs[count].is_aac && !strstr(current_PIDs.APIDs[count].desc, " (AAC)")) - strncat(current_PIDs.APIDs[count].desc, " (AAC)", DESC_MAX_LEN - strlen(current_PIDs.APIDs[count].desc)); + strncat(current_PIDs.APIDs[count].desc, " (AAC)", DESC_MAX_LEN - strlen(current_PIDs.APIDs[count].desc)-1); } if ( has_unresolved_ctags ) @@ -548,11 +548,11 @@ void CRemoteControl::processAPIDnames() // workaround for buggy ZDF ctags / or buggy sectionsd/drivers , who knows... if(!tags[i].component.empty()) { - strncpy(current_PIDs.APIDs[j].desc, tags[i].component.c_str(), DESC_MAX_LEN); + strncpy(current_PIDs.APIDs[j].desc, tags[i].component.c_str(), DESC_MAX_LEN-1); if (current_PIDs.APIDs[j].is_ac3 && !strstr(current_PIDs.APIDs[j].desc, " (AC3)")) - strncat(current_PIDs.APIDs[j].desc, " (AC3)", DESC_MAX_LEN - strlen(current_PIDs.APIDs[j].desc)); + strncat(current_PIDs.APIDs[j].desc, " (AC3)", DESC_MAX_LEN - strlen(current_PIDs.APIDs[j].desc)-1); else if (current_PIDs.APIDs[j].is_aac && !strstr(current_PIDs.APIDs[j].desc, " (AAC)")) - strncat(current_PIDs.APIDs[j].desc, " (AAC)", DESC_MAX_LEN - strlen(current_PIDs.APIDs[j].desc)); + strncat(current_PIDs.APIDs[j].desc, " (AAC)", DESC_MAX_LEN - strlen(current_PIDs.APIDs[j].desc)-1); } current_PIDs.APIDs[j].component_tag = -1; break; diff --git a/src/driver/netfile.cpp b/src/driver/netfile.cpp index e42e310d6..2b6303cb2 100644 --- a/src/driver/netfile.cpp +++ b/src/driver/netfile.cpp @@ -1059,6 +1059,7 @@ FILE *f_open(const char *filename, const char *acctype) for(int i=0; ((ptr != NULL) && (i<25)); ptr = strstr(ptr, "http://") ) { strncpy(servers[i], ptr, 1023); + servers[i][1023] = '\0'; ptr2 = strchr(servers[i], '\n'); if(ptr2) *ptr2 = 0; // change ptr so that next strstr searches in buf and not in servers[i] @@ -1300,6 +1301,7 @@ const char *f_type(FILE *stream, const char *type) { stream_type[i].stream = stream; strncpy(stream_type[i].type, type, 64); + stream_type[i].type[64] = '\0'; dprintf(stderr, "added entry (%s) for %p\n", type, stream); } return type; @@ -1720,7 +1722,8 @@ void ShoutCAST_ParseMetaData(char *md, CSTATE *state) if(!ptr) { ptr = strchr(md, '='); - strncpy(state->title, ptr + 2, 4096); + strncpy(state->title, ptr + 2, 4095); + state->title[4095] = '\0'; ptr = strchr(state->title, ';'); if(ptr) *(ptr - 1) = 0; @@ -1736,7 +1739,8 @@ void ShoutCAST_ParseMetaData(char *md, CSTATE *state) ptr = strstr(md, "StreamTitle="); ptr = strchr(ptr, '\''); - strncpy(state->artist, ptr + 1, 4096); + strncpy(state->artist, ptr + 1, 4095); + state->artist[4095] = '\0'; ptr = strstr(state->artist, " - "); if(!ptr) ptr = strstr(state->artist, ", "); diff --git a/src/driver/record.cpp b/src/driver/record.cpp index b9dffde8a..269a4b442 100644 --- a/src/driver/record.cpp +++ b/src/driver/record.cpp @@ -320,7 +320,7 @@ void CRecordInstance::GetPids(CZapitChannel * channel) for (uint32_t i = 0; i < channel->getAudioChannelCount(); i++) { CZapitClient::responseGetAPIDs response; response.pid = channel->getAudioPid(i); - strncpy(response.desc, channel->getAudioChannel(i)->description.c_str(), DESC_MAX_LEN); + strncpy(response.desc, channel->getAudioChannel(i)->description.c_str(), DESC_MAX_LEN - 1); response.is_ac3 = response.is_aac = 0; if (channel->getAudioChannel(i)->audioChannelType == CZapitAudioChannel::AC3) { response.is_ac3 = 1; @@ -343,12 +343,12 @@ void CRecordInstance::ProcessAPIDnames() has_unresolved_ctags= true; if ( strlen( allpids.APIDs[count].desc ) == 3 ) - strncpy( allpids.APIDs[count].desc, getISO639Description( allpids.APIDs[count].desc ),DESC_MAX_LEN ); + strncpy( allpids.APIDs[count].desc, getISO639Description( allpids.APIDs[count].desc ),DESC_MAX_LEN -1 ); if ( allpids.APIDs[count].is_ac3 && !strstr(allpids.APIDs[count].desc, " (AC3)")) - strncat(allpids.APIDs[count].desc, " (AC3)", DESC_MAX_LEN - strlen(allpids.APIDs[count].desc)); + strncat(allpids.APIDs[count].desc, " (AC3)", DESC_MAX_LEN - strlen(allpids.APIDs[count].desc) -1); else if (allpids.APIDs[count].is_aac && !strstr(allpids.APIDs[count].desc, " (AAC)")) - strncat(allpids.APIDs[count].desc, " (AAC)", DESC_MAX_LEN - strlen(allpids.APIDs[count].desc)); + strncat(allpids.APIDs[count].desc, " (AAC)", DESC_MAX_LEN - strlen(allpids.APIDs[count].desc) -1); } if(has_unresolved_ctags && (epgid != 0)) { @@ -358,11 +358,11 @@ void CRecordInstance::ProcessAPIDnames() for(unsigned int j=0; j< allpids.APIDs.size(); j++) { if(allpids.APIDs[j].component_tag == tags[i].componentTag) { if(!tags[i].component.empty()) { - strncpy(allpids.APIDs[j].desc, tags[i].component.c_str(), DESC_MAX_LEN); + strncpy(allpids.APIDs[j].desc, tags[i].component.c_str(), DESC_MAX_LEN -1); if (allpids.APIDs[j].is_ac3 && !strstr(allpids.APIDs[j].desc, " (AC3)")) - strncat(allpids.APIDs[j].desc, " (AC3)", DESC_MAX_LEN - strlen(allpids.APIDs[j].desc)); + strncat(allpids.APIDs[j].desc, " (AC3)", DESC_MAX_LEN - strlen(allpids.APIDs[j].desc)-1); else if (allpids.APIDs[j].is_aac && !strstr(allpids.APIDs[j].desc, " (AAC)")) - strncat(allpids.APIDs[j].desc, " (AAC)", DESC_MAX_LEN - strlen(allpids.APIDs[j].desc)); + strncat(allpids.APIDs[j].desc, " (AAC)", DESC_MAX_LEN - strlen(allpids.APIDs[j].desc)-1); } allpids.APIDs[j].component_tag = -1; break; @@ -598,16 +598,16 @@ record_error_msg_t CRecordInstance::MakeFileName(CZapitChannel * channel) if (errno == ENOENT) { res = safe_mkdir(filename); if (res == 0) - strncat(filename,"/",FILENAMEBUFFERSIZE - strlen(filename)); + strncat(filename,"/",FILENAMEBUFFERSIZE - strlen(filename) -1); else perror("[vcrcontrol] mkdir"); } else perror("[vcrcontrol] stat"); } else // directory exists - strncat(filename,"/",FILENAMEBUFFERSIZE - strlen(filename)); + strncat(filename,"/",FILENAMEBUFFERSIZE - strlen(filename)-1); } else - strncat(filename, "_",FILENAMEBUFFERSIZE - strlen(filename)); + strncat(filename, "_",FILENAMEBUFFERSIZE - strlen(filename)-1); } pos = strlen(filename); @@ -631,7 +631,7 @@ record_error_msg_t CRecordInstance::MakeFileName(CZapitChannel * channel) pos += strftime(&(filename[pos]), sizeof(filename) - pos - 1, "%Y%m%d_%H%M%S", localtime(&t)); if(autoshift) - strncat(filename, "_temp",FILENAMEBUFFERSIZE - strlen(filename)); + strncat(filename, "_temp",FILENAMEBUFFERSIZE - strlen(filename)-1); return RECORD_OK; } diff --git a/src/gui/bedit/bouqueteditor_bouquets.cpp b/src/gui/bedit/bouqueteditor_bouquets.cpp index 532d3ecb1..6cfb749f6 100644 --- a/src/gui/bedit/bouqueteditor_bouquets.cpp +++ b/src/gui/bedit/bouqueteditor_bouquets.cpp @@ -533,7 +533,7 @@ std::string CBEBouquetWidget::inputName(const char * const defaultName, const ne { char Name[30]; - strncpy(Name, defaultName, 30); + strncpy(Name, defaultName, sizeof(Name)-1); CStringInputSMS * nameInput = new CStringInputSMS(caption, Name, 29, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, "abcdefghijklmnopqrstuvwxyz0123456789-.,:|!?/ "); nameInput->exec(this, ""); diff --git a/src/gui/bookmarkmanager.cpp b/src/gui/bookmarkmanager.cpp index 6f11db53e..d7f81a167 100644 --- a/src/gui/bookmarkmanager.cpp +++ b/src/gui/bookmarkmanager.cpp @@ -247,7 +247,7 @@ const CBookmark * CBookmarkManager::getBookmark(CMenuTarget* parent) listmaxshow=bookmarks.size(); height = theight+0+listmaxshow*fheight*2; // recalc height } - if (!(bookmarks.empty() && selected==bookmarks.size())) + if ((!bookmarks.empty() && selected==bookmarks.size())) { selected=bookmarks.size()-1; liststart = (selected/listmaxshow)*listmaxshow; diff --git a/src/gui/motorcontrol.cpp b/src/gui/motorcontrol.cpp index c36e16096..6c42ab6d4 100644 --- a/src/gui/motorcontrol.cpp +++ b/src/gui/motorcontrol.cpp @@ -138,7 +138,7 @@ int CMotorControl::exec(CMenuTarget* parent, const std::string &) for(sit = satellitePositions.begin(); sit != satellitePositions.end(); sit++) { if(!strcmp(sit->second.name.c_str(),scansettings.satNameNoDiseqc)) { sat.position = sit->first; - strncpy(sat.satName, scansettings.satNameNoDiseqc, 50); + strncpy(sat.satName, scansettings.satNameNoDiseqc, 49); satList.push_back(sat); if(sit->second.motor_position) motorPosition = sit->second.motor_position; @@ -148,7 +148,7 @@ int CMotorControl::exec(CMenuTarget* parent, const std::string &) #endif /* send satellite list to zapit */ sat.position = CServiceManager::getInstance()->GetSatellitePosition(scansettings.satNameNoDiseqc); - strncpy(sat.satName, scansettings.satNameNoDiseqc, 50); + strncpy(sat.satName, scansettings.satNameNoDiseqc, 49); satList.push_back(sat); satellite_map_t & satmap = frontend->getSatellites(); diff --git a/src/gui/moviebrowser.cpp b/src/gui/moviebrowser.cpp index 976bb32c7..219d90c2f 100644 --- a/src/gui/moviebrowser.cpp +++ b/src/gui/moviebrowser.cpp @@ -2884,7 +2884,7 @@ int CMovieBrowser::showMovieInfoMenu(MI_MOVIE_INFO* movie_info) if(movie_info != NULL) { - strncpy(dirItNr, m_dirNames[movie_info->dirItNr].c_str(),BUFFER_SIZE); + strncpy(dirItNr, m_dirNames[movie_info->dirItNr].c_str(),BUFFER_SIZE-1); snprintf(size,BUFFER_SIZE,"%5llu",movie_info->file.Size>>20); } @@ -3448,7 +3448,7 @@ CMenuSelector::CMenuSelector(const char * OptionName, const bool Active , std::s height = g_Font[SNeutrinoSettings::FONT_TYPE_MENU]->getHeight(); optionValueString = &OptionValue; optionName = OptionName; - strncpy(buffer,OptionValue.c_str(),BUFFER_MAX); + strncpy(buffer,OptionValue.c_str(),BUFFER_MAX-1); buffer[BUFFER_MAX-1] = 0;// terminate string optionValue = buffer; active = Active; diff --git a/src/gui/movieinfo.cpp b/src/gui/movieinfo.cpp index d9489cfa9..e5c4f0912 100644 --- a/src/gui/movieinfo.cpp +++ b/src/gui/movieinfo.cpp @@ -83,7 +83,7 @@ bool CMovieInfo::convertTs2XmlName(char *char_filename, int size) bool result = false; std::string filename = char_filename; if (convertTs2XmlName(&filename) == true) { - strncpy(char_filename, filename.c_str(), size); + strncpy(char_filename, filename.c_str(), size-1); char_filename[size - 1] = 0; result = true; } diff --git a/src/gui/scan.cpp b/src/gui/scan.cpp index ec6c133a5..75324cfd1 100644 --- a/src/gui/scan.cpp +++ b/src/gui/scan.cpp @@ -232,14 +232,14 @@ int CScanTs::exec(CMenuTarget* /*parent*/, const std::string & actionKey) } else if(manual || !scan_all) { sat.position = CServiceManager::getInstance()->GetSatellitePosition(scansettings.satNameNoDiseqc); - strncpy(sat.satName, scansettings.satNameNoDiseqc, 50); + strncpy(sat.satName, scansettings.satNameNoDiseqc, 49); satList.push_back(sat); } else { satellite_map_t & satmap = CServiceManager::getInstance()->SatelliteList(); for(sit = satmap.begin(); sit != satmap.end(); ++sit) { if(sit->second.use_in_scan) { sat.position = sit->first; - strncpy(sat.satName, sit->second.name.c_str(), 50); + strncpy(sat.satName, sit->second.name.c_str(), 49); satList.push_back(sat); } } diff --git a/src/gui/streaminfo2.cpp b/src/gui/streaminfo2.cpp index ea7cbbc77..07396e261 100644 --- a/src/gui/streaminfo2.cpp +++ b/src/gui/streaminfo2.cpp @@ -501,7 +501,7 @@ void CStreamInfo2::paint_techinfo(int xpos, int ypos) sprintf (buf, "20:9"); break; default: - strncpy (buf, g_Locale->getText (LOCALE_STREAMINFO_ARATIO_UNKNOWN), sizeof (buf)); + strncpy (buf, g_Locale->getText (LOCALE_STREAMINFO_ARATIO_UNKNOWN), sizeof (buf)-1); } g_Font[font_info]->RenderString (xpos+spaceoffset, ypos, box_width, buf, COL_INFOBAR, 0, true); // UTF-8 @@ -535,7 +535,7 @@ void CStreamInfo2::paint_techinfo(int xpos, int ypos) snprintf (buf,sizeof(buf), "60fps"); break; default: - strncpy (buf, g_Locale->getText (LOCALE_STREAMINFO_FRAMERATE_UNKNOWN), sizeof (buf)); + strncpy (buf, g_Locale->getText (LOCALE_STREAMINFO_FRAMERATE_UNKNOWN), sizeof (buf)-1); break; } g_Font[font_info]->RenderString (xpos+spaceoffset, ypos, box_width, buf, COL_INFOBAR, 0, true); // UTF-8 diff --git a/src/gui/timerlist.cpp b/src/gui/timerlist.cpp index 282e6d4b1..45803538a 100644 --- a/src/gui/timerlist.cpp +++ b/src/gui/timerlist.cpp @@ -327,7 +327,7 @@ int CTimerList::exec(CMenuTarget* parent, const std::string & actionKey) recinfo.recordingSafety = false; timerNew.announceTime-= 120; // 2 more mins for rec timer - strncpy(recinfo.recordingDir,timerNew.recordingDir,sizeof(recinfo.recordingDir)); + strncpy(recinfo.recordingDir,timerNew.recordingDir,sizeof(recinfo.recordingDir)-1); data = &recinfo; } else data= &eventinfo; @@ -364,7 +364,7 @@ int CTimerList::exec(CMenuTarget* parent, const std::string & actionKey) "%n", &timerNew.channel_id, &delta); - strncpy(timerNew_channel_name, &(key[3 + delta + 1]), 30); + strncpy(timerNew_channel_name, &(key[3 + delta + 1]), 29); g_RCInput->postMsg(CRCInput::RC_timeout, 0); // leave underlying menu also g_RCInput->postMsg(CRCInput::RC_timeout, 0); // leave underlying menu also return menu_return::RETURN_EXIT; @@ -1052,7 +1052,7 @@ int CTimerList::modifyTimer() //printf("TIMER: rec dir %s len %s\n", timer->recordingDir, strlen(timer->recordingDir)); if (!strlen(timer->recordingDir)) - strncpy(timer->recordingDir,g_settings.network_nfs_recordingdir,sizeof(timer->recordingDir)); + strncpy(timer->recordingDir,g_settings.network_nfs_recordingdir,sizeof(timer->recordingDir)-1); bool recDirEnabled = (timer->eventType == CTimerd::TIMER_RECORD) && (g_settings.recording_type == RECORDING_FILE); CMenuForwarder* m6 = new CMenuForwarder(LOCALE_TIMERLIST_RECORDING_DIR, recDirEnabled, timer->recordingDir, this, "rec_dir1", CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN); @@ -1102,7 +1102,7 @@ int CTimerList::newTimer() timerNew.channel_id = 0; strcpy(timerNew.message, ""); timerNew_standby_on =false; - strncpy(timerNew.recordingDir,g_settings.network_nfs_recordingdir,sizeof(timerNew.recordingDir)); + strncpy(timerNew.recordingDir,g_settings.network_nfs_recordingdir,sizeof(timerNew.recordingDir)-1); CMenuWidget timerSettings(LOCALE_TIMERLIST_MENUNEW, NEUTRINO_ICON_SETTINGS); diff --git a/src/gui/update_settings.cpp b/src/gui/update_settings.cpp index 93ca1fd8d..bf187c935 100644 --- a/src/gui/update_settings.cpp +++ b/src/gui/update_settings.cpp @@ -89,7 +89,7 @@ int CUpdateSettings::exec(CMenuTarget* parent, const std::string &actionKey) fileFilter.addFilter("urls"); fileBrowser.Filter = &fileFilter; if (fileBrowser.exec("/var/etc") == true) - strncpy(g_settings.softupdate_url_file, fileBrowser.getSelectedFile()->Name.c_str(), 31); + strncpy(g_settings.softupdate_url_file, fileBrowser.getSelectedFile()->Name.c_str(), 30); return res; } diff --git a/src/gui/widget/menue.cpp b/src/gui/widget/menue.cpp index dd0b00cc1..b973b7eb0 100644 --- a/src/gui/widget/menue.cpp +++ b/src/gui/widget/menue.cpp @@ -1634,7 +1634,7 @@ CMenuOptionLanguageChooser::~CMenuOptionLanguageChooser() int CMenuOptionLanguageChooser::exec(CMenuTarget*) { - strncpy(g_settings.language, optionValue.c_str(), sizeof(g_settings.language)); + strncpy(g_settings.language, optionValue.c_str(), sizeof(g_settings.language)-1); if(observ) observ->changeNotify(LOCALE_LANGUAGESETUP_SELECT, (void *) optionValue.c_str()); return menu_return::RETURN_EXIT; diff --git a/src/zapit/lib/zapitclient.cpp b/src/zapit/lib/zapitclient.cpp index a1aab9988..b5ed35828 100644 --- a/src/zapit/lib/zapitclient.cpp +++ b/src/zapit/lib/zapitclient.cpp @@ -312,8 +312,8 @@ void CZapitClient::getBouquets(BouquetList& bouquets, const bool emptyBouquetsTo if (!utf_encoded) { buffer[30] = (char) 0x00; - strncpy(buffer, response.name, 30); - strncpy(response.name, ZapitTools::UTF8_to_Latin1(buffer).c_str(), 30); + strncpy(buffer, response.name, sizeof(buffer)-1); + strncpy(response.name, ZapitTools::UTF8_to_Latin1(buffer).c_str(), sizeof(buffer)-1); } bouquets.push_back(response); } @@ -343,8 +343,8 @@ bool CZapitClient::receive_channel_list(BouquetChannelList& channels, const bool { char buffer[CHANNEL_NAME_SIZE + 1]; buffer[CHANNEL_NAME_SIZE] = (char) 0x00; - strncpy(buffer, response.name, CHANNEL_NAME_SIZE); - strncpy(response.name, ZapitTools::UTF8_to_Latin1(buffer).c_str(), CHANNEL_NAME_SIZE); + strncpy(buffer, response.name, CHANNEL_NAME_SIZE-1); + strncpy(response.name, ZapitTools::UTF8_to_Latin1(buffer).c_str(), CHANNEL_NAME_SIZE-1); } channels.push_back(response); } diff --git a/src/zapit/src/zapit.cpp b/src/zapit/src/zapit.cpp index bc5b8aa94..a7ae43bfd 100644 --- a/src/zapit/src/zapit.cpp +++ b/src/zapit/src/zapit.cpp @@ -911,7 +911,7 @@ bool CZapit::ParseCommand(CBasicMessage::Header &rmsg, int connfd) CZapitChannel * channel = (requested_channel_id == 0) ? current_channel : CServiceManager::getInstance()->FindChannel(requested_channel_id); if(channel) { - strncpy(response.name, channel->getName().c_str(), CHANNEL_NAME_SIZE); + strncpy(response.name, channel->getName().c_str(), CHANNEL_NAME_SIZE-1); response.name[CHANNEL_NAME_SIZE-1] = 0; } CBasicServer::send_data(connfd, &response, sizeof(response)); @@ -1053,7 +1053,7 @@ bool CZapit::ParseCommand(CBasicMessage::Header &rmsg, int connfd) satellite_map_t satmap = CServiceManager::getInstance()->SatelliteList(); for(sat_iterator_t sit = satmap.begin(); sit != satmap.end(); sit++) { - strncpy(sat.satName, sit->second.name.c_str(), 50); + strncpy(sat.satName, sit->second.name.c_str(), 49); sat.satName[49] = 0; sat.satPosition = sit->first; sat.motorPosition = sit->second.motor_position; @@ -1561,7 +1561,7 @@ void CZapit::sendAPIDs(int connfd) for (uint32_t i = 0; i < current_channel->getAudioChannelCount(); i++) { CZapitClient::responseGetAPIDs response; response.pid = current_channel->getAudioPid(i); - strncpy(response.desc, current_channel->getAudioChannel(i)->description.c_str(), DESC_MAX_LEN); + strncpy(response.desc, current_channel->getAudioChannel(i)->description.c_str(), DESC_MAX_LEN-1); response.is_ac3 = response.is_aac = 0; if (current_channel->getAudioChannel(i)->audioChannelType == CZapitAudioChannel::AC3) { response.is_ac3 = 1; @@ -1597,7 +1597,7 @@ void CZapit::internalSendChannels(int connfd, ZapitChannelList* channels, const } } else { CZapitClient::responseGetBouquetChannels response; - strncpy(response.name, ((*channels)[i]->getName()).c_str(), CHANNEL_NAME_SIZE); + strncpy(response.name, ((*channels)[i]->getName()).c_str(), CHANNEL_NAME_SIZE-1); response.name[CHANNEL_NAME_SIZE-1] = 0; //printf("internalSendChannels: name %s\n", response.name); response.satellitePosition = (*channels)[i]->getSatellitePosition(); @@ -1640,7 +1640,7 @@ void CZapit::sendBouquets(int connfd, const bool emptyBouquetsToo, CZapitClient: ((curMode & TV_MODE) && !g_bouquetManager->Bouquets[i]->tvChannels.empty())))) { msgBouquet.bouquet_nr = i; - strncpy(msgBouquet.name, g_bouquetManager->Bouquets[i]->Name.c_str(), 30); + strncpy(msgBouquet.name, g_bouquetManager->Bouquets[i]->Name.c_str(), 29); msgBouquet.name[29] = 0; msgBouquet.locked = g_bouquetManager->Bouquets[i]->bLocked; msgBouquet.hidden = g_bouquetManager->Bouquets[i]->bHidden; From a967cf4f4bb285935f9bfcd71ed6a80a9704b3a6 Mon Sep 17 00:00:00 2001 From: satbaby Date: Wed, 8 Aug 2012 17:10:12 +0200 Subject: [PATCH 196/317] optimize jpg,png size --- data/icons/0.png | Bin 274 -> 252 bytes data/icons/1.png | Bin 268 -> 237 bytes data/icons/16_9.png | Bin 215 -> 162 bytes data/icons/16_9_gray.png | Bin 152 -> 146 bytes data/icons/2.png | Bin 279 -> 265 bytes data/icons/3.png | Bin 284 -> 261 bytes data/icons/4.png | Bin 279 -> 246 bytes data/icons/5.png | Bin 279 -> 263 bytes data/icons/6.png | Bin 277 -> 259 bytes data/icons/7.png | Bin 279 -> 250 bytes data/icons/8.png | Bin 280 -> 260 bytes data/icons/9.png | Bin 274 -> 257 bytes data/icons/bayrisch.png | Bin 101 -> 90 bytes data/icons/biss_green.png | Bin 122 -> 109 bytes data/icons/biss_white.png | Bin 122 -> 109 bytes data/icons/biss_yellow.png | Bin 122 -> 109 bytes data/icons/blau.png | Bin 247 -> 225 bytes data/icons/bosanski.png | Bin 1032 -> 279 bytes data/icons/btn_record_active.png | Bin 834 -> 818 bytes data/icons/btn_record_inactive.png | Bin 753 -> 741 bytes data/icons/btn_stop.png | Bin 605 -> 586 bytes data/icons/ca2.png | Bin 145 -> 139 bytes data/icons/ca2_gray.png | Bin 145 -> 139 bytes data/icons/ch-baslerdeutsch.png | Bin 187 -> 184 bytes data/icons/ch-berndeutsch.png | Bin 746 -> 686 bytes data/icons/conax_green.png | Bin 122 -> 111 bytes data/icons/conax_white.png | Bin 122 -> 111 bytes data/icons/conax_yellow.png | Bin 122 -> 111 bytes data/icons/cw_green.png | Bin 130 -> 120 bytes data/icons/cw_white.png | Bin 130 -> 120 bytes data/icons/cw_yellow.png | Bin 130 -> 120 bytes data/icons/d_green.png | Bin 122 -> 110 bytes data/icons/d_white.png | Bin 122 -> 110 bytes data/icons/d_yellow.png | Bin 122 -> 110 bytes data/icons/dd.png | Bin 209 -> 156 bytes data/icons/dd_avail.png | Bin 140 -> 136 bytes data/icons/dd_gray.png | Bin 147 -> 136 bytes data/icons/ddfill.png | Bin 147 -> 136 bytes data/icons/down.png | Bin 311 -> 263 bytes data/icons/dutch.png | Bin 172 -> 168 bytes data/icons/ellinika.png | Bin 119 -> 104 bytes data/icons/english.png | Bin 121 -> 110 bytes data/icons/features.png | Bin 2193 -> 827 bytes data/icons/francais.png | Bin 121 -> 112 bytes data/icons/french.png | Bin 121 -> 112 bytes data/icons/gelb.png | Bin 248 -> 222 bytes data/icons/gruen.png | Bin 247 -> 231 bytes data/icons/help_small.png | Bin 275 -> 251 bytes data/icons/hint_aplay.png | Bin 3109 -> 2750 bytes data/icons/hint_audio.png | Bin 4837 -> 4816 bytes data/icons/hint_back.png | Bin 2168 -> 1915 bytes data/icons/hint_bedit.png | Bin 4081 -> 4018 bytes data/icons/hint_ci.png | Bin 3678 -> 3440 bytes data/icons/hint_dboxinfo.png | Bin 4476 -> 4185 bytes data/icons/hint_delete.png | Bin 5479 -> 3703 bytes data/icons/hint_extended.png | Bin 6756 -> 3994 bytes data/icons/hint_fileplay.png | Bin 6724 -> 6696 bytes data/icons/hint_games.png | Bin 4227 -> 3714 bytes data/icons/hint_hdd.png | Bin 3370 -> 2878 bytes data/icons/hint_imageinfo.png | Bin 5581 -> 5311 bytes data/icons/hint_inetradio.png | Bin 5370 -> 5280 bytes data/icons/hint_info.png | Bin 4197 -> 4039 bytes data/icons/hint_keys.png | Bin 4835 -> 3326 bytes data/icons/hint_language.png | Bin 6845 -> 6821 bytes data/icons/hint_manage.png | Bin 3203 -> 3173 bytes data/icons/hint_media.png | Bin 4124 -> 4103 bytes data/icons/hint_movie.png | Bin 3983 -> 3887 bytes data/icons/hint_network.png | Bin 4320 -> 4274 bytes data/icons/hint_osd.png | Bin 4603 -> 4582 bytes data/icons/hint_personalize.png | Bin 4940 -> 4912 bytes data/icons/hint_picview.png | Bin 3175 -> 3152 bytes data/icons/hint_protection.png | Bin 3040 -> 3018 bytes data/icons/hint_radiomode.png | Bin 5046 -> 4884 bytes data/icons/hint_reboot.png | Bin 3507 -> 3400 bytes data/icons/hint_recording.png | Bin 3387 -> 3367 bytes data/icons/hint_reload.png | Bin 6103 -> 3905 bytes data/icons/hint_save.png | Bin 5299 -> 3593 bytes data/icons/hint_scan.png | Bin 5989 -> 5973 bytes data/icons/hint_scripts.png | Bin 5362 -> 5080 bytes data/icons/hint_service.png | Bin 4285 -> 3871 bytes data/icons/hint_settings.png | Bin 5132 -> 4702 bytes data/icons/hint_shutdown.png | Bin 4089 -> 4061 bytes data/icons/hint_sleeptimer.png | Bin 5190 -> 3597 bytes data/icons/hint_streaminfo.png | Bin 5411 -> 3836 bytes data/icons/hint_swupdate.png | Bin 6975 -> 4474 bytes data/icons/hint_timers.png | Bin 7806 -> 4974 bytes data/icons/hint_tvmode.png | Bin 5476 -> 5468 bytes data/icons/hint_vfd.png | Bin 2084 -> 1928 bytes data/icons/hint_video.png | Bin 2269 -> 2238 bytes data/icons/hungarian.png | Bin 116 -> 104 bytes data/icons/icon_blue.png | Bin 2193 -> 772 bytes data/icons/icon_green.png | Bin 2193 -> 466 bytes data/icons/icon_movieplayer.png | Bin 1661 -> 1616 bytes data/icons/icon_red.png | Bin 2193 -> 366 bytes data/icons/icon_yellow.png | Bin 2193 -> 362 bytes data/icons/info.png | Bin 287 -> 265 bytes data/icons/info_small.png | Bin 287 -> 257 bytes data/icons/ird_green.png | Bin 121 -> 109 bytes data/icons/ird_white.png | Bin 121 -> 109 bytes data/icons/ird_yellow.png | Bin 121 -> 109 bytes data/icons/italiano.png | Bin 143 -> 132 bytes data/icons/language.png | Bin 1259 -> 1254 bytes data/icons/left.png | Bin 299 -> 257 bytes data/icons/local.png | Bin 147 -> 137 bytes data/icons/lock.png | Bin 2172 -> 264 bytes data/icons/lock_passive.png | Bin 3190 -> 260 bytes data/icons/mounted.png | Bin 242 -> 215 bytes data/icons/mp3-0.jpg | Bin 165943 -> 165919 bytes data/icons/mp3-1.jpg | Bin 107179 -> 107155 bytes data/icons/mp3-2.jpg | Bin 83130 -> 83106 bytes data/icons/mp3-3.jpg | Bin 323758 -> 323734 bytes data/icons/mp3-4.jpg | Bin 141297 -> 141256 bytes data/icons/mp3-5.jpg | Bin 210180 -> 210156 bytes data/icons/mp3-6.jpg | Bin 52168 -> 52144 bytes data/icons/mp3-7.jpg | Bin 44528 -> 44504 bytes data/icons/mp3.jpg | Bin 117178 -> 82550 bytes data/icons/mute_zap_gray.png | Bin 1106 -> 1063 bytes data/icons/mute_zap_green.png | Bin 1032 -> 992 bytes data/icons/nagra_green.png | Bin 126 -> 110 bytes data/icons/nagra_white.png | Bin 126 -> 110 bytes data/icons/nagra_yellow.png | Bin 126 -> 110 bytes data/icons/nederlands.png | Bin 159 -> 146 bytes data/icons/norsk.png | Bin 142 -> 130 bytes data/icons/not_mounted.png | Bin 211 -> 184 bytes data/icons/notyet.png | Bin 107 -> 96 bytes data/icons/numericpad.png | Bin 722 -> 646 bytes data/icons/personalize.png | Bin 1877 -> 1834 bytes data/icons/polski.png | Bin 101 -> 90 bytes data/icons/portugues.png | Bin 299 -> 295 bytes data/icons/power.png | Bin 288 -> 263 bytes data/icons/powervu_green.png | Bin 124 -> 112 bytes data/icons/powervu_white.png | Bin 124 -> 112 bytes data/icons/powervu_yellow.png | Bin 124 -> 112 bytes data/icons/radio.jpg | Bin 193824 -> 65088 bytes data/icons/radiomode.jpg | Bin 207315 -> 144042 bytes data/icons/radiotextget.png | Bin 167 -> 160 bytes data/icons/radiotextoff.png | Bin 167 -> 160 bytes data/icons/radiotextwait.png | Bin 167 -> 160 bytes data/icons/rec_event_marker.png | Bin 681 -> 587 bytes data/icons/res_000.png | Bin 126 -> 117 bytes data/icons/res_1080.png | Bin 152 -> 144 bytes data/icons/res_1280.png | Bin 162 -> 149 bytes data/icons/res_1440.png | Bin 150 -> 144 bytes data/icons/res_1920.png | Bin 166 -> 153 bytes data/icons/res_288.png | Bin 165 -> 153 bytes data/icons/res_352.png | Bin 163 -> 149 bytes data/icons/res_382.png | Bin 162 -> 148 bytes data/icons/res_480.png | Bin 156 -> 148 bytes data/icons/res_528.png | Bin 166 -> 151 bytes data/icons/res_544.png | Bin 160 -> 146 bytes data/icons/res_576.png | Bin 168 -> 153 bytes data/icons/res_704.png | Bin 162 -> 149 bytes data/icons/res_720.png | Bin 163 -> 149 bytes data/icons/right.png | Bin 300 -> 256 bytes data/icons/romania.png | Bin 105 -> 94 bytes data/icons/rot.png | Bin 252 -> 227 bytes data/icons/russkij.png | Bin 122 -> 113 bytes data/icons/scan.jpg | Bin 183497 -> 128613 bytes data/icons/seca_green.png | Bin 124 -> 119 bytes data/icons/seca_white.png | Bin 124 -> 119 bytes data/icons/seca_yellow.png | Bin 124 -> 119 bytes data/icons/shutdown.jpg | Bin 291665 -> 208257 bytes data/icons/softupdate.png | Bin 410 -> 409 bytes data/icons/start.jpg | Bin 164547 -> 80162 bytes data/icons/subt.png | Bin 997 -> 207 bytes data/icons/subt_gray.png | Bin 149 -> 144 bytes data/icons/suomi.png | Bin 110 -> 94 bytes data/icons/svenska.png | Bin 138 -> 131 bytes data/icons/tuner_1.png | Bin 183 -> 182 bytes data/icons/tuner_2.png | Bin 183 -> 182 bytes data/icons/up.png | Bin 307 -> 267 bytes data/icons/upnp.png | Bin 1400 -> 1380 bytes data/icons/via_green.png | Bin 123 -> 112 bytes data/icons/via_white.png | Bin 123 -> 112 bytes data/icons/via_yellow.png | Bin 123 -> 112 bytes data/icons/volume.png | Bin 136 -> 129 bytes data/icons/volumebody.png | Bin 136 -> 132 bytes data/icons/volumeslider2.png | Bin 213 -> 209 bytes data/icons/volumeslider2alpha.png | Bin 213 -> 209 bytes data/icons/volumeslider2blue.png | Bin 213 -> 209 bytes data/icons/volumeslider2green.png | Bin 213 -> 209 bytes data/icons/volumeslider2red.png | Bin 213 -> 209 bytes data/icons/vtxt.png | Bin 185 -> 120 bytes data/icons/vtxt_gray.png | Bin 112 -> 99 bytes data/icons/x_green.png | Bin 178 -> 176 bytes data/icons/x_white.png | Bin 178 -> 176 bytes data/icons/x_yellow.png | Bin 178 -> 176 bytes data/lcd/icons/lcd2.png | Bin 317 -> 316 bytes data/lcd/icons/power.png | Bin 352 -> 350 bytes src/nhttpd/web/images/fb.png | Bin 465 -> 457 bytes src/nhttpd/web/images/hd1.jpg | Bin 96714 -> 96676 bytes src/nhttpd/web/images/neo.jpg | Bin 87496 -> 85804 bytes src/nhttpd/web/images/rc.jpg | Bin 10059 -> 9843 bytes src/nhttpd/web/images/rc_sagem.jpg | Bin 13186 -> 13162 bytes src/nhttpd/web/images/streaminfo.png | Bin 501 -> 364 bytes src/nhttpd/web/images/time_down.png | Bin 884 -> 790 bytes src/nhttpd/web/images/time_up.png | Bin 850 -> 730 bytes src/nhttpd/web/images/y.png | Bin 908 -> 751 bytes src/nhttpd/web/images/zee.jpg | Bin 97511 -> 97480 bytes 199 files changed, 0 insertions(+), 0 deletions(-) diff --git a/data/icons/0.png b/data/icons/0.png index aa4949c7e897678c12bf8d64250c6737dfde41e4..8490ecb6ea2ec8051b83e83f95facf16fe41d0f9 100644 GIT binary patch delta 151 zcmV;I0BHY`0{j7xZGU=6L_t&t9R8vMNhg33Lr2KU)y=)V6Kw4?#dU7!aVTFg(2ya$ZFiC zs!x4#$s}8n;-b7qPAP3KE9OH=Aj3#U_MB@?^V(#E!ttFxv bZ~Usi8iY!N3`Bjx00000NkvXXu0mjf1}#c3 diff --git a/data/icons/1.png b/data/icons/1.png index 65c36760360d219bad5658430b10a1f59e838793..47e0316170561631b59aa70c29d8d7912605741d 100644 GIT binary patch delta 136 zcmV;30C)e40__2iZGUS?L_t&t9R~#)Zhnn_z256V|JGK6vx5rxJ{Y;k9^(v;|1wa8ifEt-*LTaIbp@zYbdH`q& q3<(8H2c-x=*nIak$c?V5`2!XLJJyZig%1D#002ovPDHLkU;%=CLO8hq delta 167 zcmV;Y09gO+0gM8WZGVbML_t(|UOmns4gxU{K+(AY77PeHrqzR>JppNvsGS~RaBFcK zVUNHOxB%RM1hK`EO$Z@C$S_;MS5JNzh)hJJgU9)(o!0OTv0Cx=0v{jn%9{hc-SU>1 z_X_-DTrjc=%!wO#S%;ZY14Co6jcEtZ9)W6wnYBI^80&&!+91Q%aHooh;#@aM-4A*> VL}r@U7DE64002ovPDHLkV1goeM~DCb diff --git a/data/icons/16_9.png b/data/icons/16_9.png index 88a69d13f34a0acc93125bb273f210e8d133a3aa..024bfc455be0c763b788810e3c668af365d52bbe 100644 GIT binary patch delta 111 zcmcc4xQKCrgft^F0|SGR{NL9=iY>q=#P#qjt^fc3r_E{BnHa0)Y2xYP7{U>qoRN@F zkifwF`~UxiEvf$t+1Q+?opdQV;!97Bpwq e!{XByeq=Dte#81d`ipZh$XZWVKbLh*2~7Z#Z8D_* diff --git a/data/icons/16_9_gray.png b/data/icons/16_9_gray.png index 4798861bfaebc93ee0cce7458f756925f737e3e0..b7a9bc16c12fc46bfd5246297e628fda8ecdbefa 100644 GIT binary patch delta 99 zcmV-p0G$7r0g?fb7zqIb0000oAN}i*AtFyYNklY&hxyu}n#|TIR74sSS}6M&zJo00000 LNkvXXu0mjfW!xt? diff --git a/data/icons/2.png b/data/icons/2.png index 604c347beca999e80fded7d5c5a08a9ee17dea21..c6cc719fdfcaccb5bf2becd2e9501d2fb49ea56b 100644 GIT binary patch delta 164 zcmV;V09*f;0*L~UZGVSJL_t&t9TmYn62VXufYI;Xc`bQXAhHBw2WHgPpwn9ig@)D& z)GA9*n$e_ENpgcw__@Y8BwhbAd7KT9jeMq3O20GGuf5l+1G&1tn(^FB;WvHm)xA0XOrLC{#laQz0^lNsLSe9wtPp*JT%~8yUGPyR!Ztcs~lrw?sey O0000Wg3+!Z}3$s=a%IO zKA1j4y+1M#MQ#2_-GtFf#K4*g+88mh=D?WC#BM9_k+=s|7ck(%sdKZuM>HB^)+3B1 lssdiSTx-2vaK@AP%@4+SNyFR2+1vmC002ovPDHLkV1kU-ST6to diff --git a/data/icons/4.png b/data/icons/4.png index 1ba6041a596976adffe31545e94c68b702390fef..a51841f3b253673ce07095303f5b15f6032eefe9 100644 GIT binary patch delta 145 zcmV;C0B--60`>urZGUu0L_t&t9REt9ZNa@015yANkvXXu0mjfB1k^* delta 178 zcmV;j08Rh)0ha=hZGV+XL_t(|ULDRc3c@fPM)Cg*^ag^1qk{>!b!qA4vXQ#Th$ zdW2@`?9?N81TUaB5QKv3hl5C~NKN{t-}q?IjXK|x-nWbIx~HGAR=eY!zA8Il=g#zz zdW+PZJXD0V2w2xWTDhvRDJp7{XpDIPp8}7(qK3yaOl(OF6Du(mSpXMI>HsDZsY-eo gV~xp|exq;r2l~lL!_L)PegFUf07*qoM6N<$f>b|I*Z=?k diff --git a/data/icons/5.png b/data/icons/5.png index 10e39c214f546cdae54ccb22ae4609564f395866..8bdf034e14045e1ed8cc707abac6bb46d55fc694 100644 GIT binary patch delta 162 zcmV;T0A2r=0*3;SZGVMHL_t&t9Rk6u9A6pmXyGQRs9*f zpmayfW3ycXJTe2r&-tG2Wb^l2s!Im}+`3tcfW_8fxN;bC92?`6TB9V{AIr`=vfi2; Q-v9sr07*qoM6N<$f^l6<-T(jq delta 178 zcmV;j08Rgg0+#}iZGV+XL_t(|ULDRM4#F@L#_@LpkZ1@NK{Go;8(b0O?E-`jhoe0K zDQX(EBX9&R00NI%vfy4IA%sE}cJf%pDQMkX)QYr}m%H>%vburq8l#jf;6$)pc{G4Ew%YY%2x4Jy=12T6;m5 z;<-4WOw~jI1Yi)^YFuIk&h67wWJt5e#AGx|Jw)oS1?Wb{wHNK7zH~V~;xe?{&Hw-a M07*qoM6N<$f*eLg+5i9m delta 176 zcmV;h08jse0+j-gZGV$VL_t(|UMb(qgiRmLkqEIx1Vb ehBvs6ar*_G14_wKh--WR0000M+Ejr6kwYXs*ehhL`vyO_x&z!P9JMvLVch&X3Up*OD_QB zdD;A+4G-fcKNFtDhFV~B3~^1ZLV5B(Jf-Bm3oGi%0W0k*dMjjDmmzx!_74f@if-O{ gzX)S0IwIwaFZ*&q-z2HHSpWb407*qoM6N<$g6A_ze*gdg diff --git a/data/icons/8.png b/data/icons/8.png index a1a5336dd61bd2c5525b9fb4411888d6f3cedf09..733a71ccd297b4e885071afada692e0b4cbf74f5 100644 GIT binary patch delta 159 zcmV;Q0AT-^0)zsPZGVDEL_t&t9UZ|j4#5Bv$Kl_5x)E)iz!k&=DiPI6<8 zZeTRFG1%ynG+od?@qMKF3u|uy*xo)Xd)PEvco*;8_Dto{t6i?^a0tr;4s?})D|-FI zjH{!2QydvOfsYAXL|0LVqhxR@Ac1`D6Oj;%as}3G%3Nj_QW!n;6JL5zKL!g5G{pb_ N002ovPDHLkV1g4FLo@&Y delta 179 zcmV;k08Iac0+<4jZGVrOqgos;*Hggv18gWQ)>LR40o9zvZ zQ*rFnBX|Tapf?bN+I0LVh%`#kZ+z3^O%Dbi&kdgEBXL?muT!bEE>)hztM#002ovPDHLkV1iQ?O`ZS% diff --git a/data/icons/9.png b/data/icons/9.png index 50a5f5c9bd7e501b90f9441f070d3736379f4789..aa720fb5c22f3fd1ebecf5b5839412771234a4fb 100644 GIT binary patch delta 156 zcmV;N0Av4>0)YaMZGV4BL_t&t9UZ|j4#993#^K-hrDK!!A3Z?h3fN6{H;|ZI#?0yj z7PBK5ZPLjk=_|p~)F=8p6fux}?gH#!{U+UPQZD?f$9{LA@rdrd+O~3#mjMpq&qMSL z$cZXHA{;$ubHIb{%rfM}D?imD1DlTOAOpq;Vb!`#fnO3KFQ7LNgqAoyoFr9>rV;$7Z~S5O2|eI>J^L;@=#@sXH#c~T4bj@1;Dxfy z?$yyFv(g6eAG#%PxUCM*r7I#^dL)Yp8{iV&u(__m#ZzjbP0l+XkKFWnM1 diff --git a/data/icons/biss_green.png b/data/icons/biss_green.png index 1bfcacbad8bffa79a063644964e215f069990d30..c2a638b11ba250ebaf75e9e9741b67105e47e6ee 100644 GIT binary patch delta 47 zcmb=*o#3n`>gnPb!XcY%^SQN?k&W-eftx)QM;VVQu|3l*eW1hu1fH&bF6*2UngEm; B5V8OO delta 60 zcmd0;n&51%gTe~DWM4fygU}a diff --git a/data/icons/biss_white.png b/data/icons/biss_white.png index 1da778c21ea1c2f3e4846065dd7febb43bd60198..5aa76092e75a102c4c5e5340134b4fe0d42cc9b9 100644 GIT binary patch delta 47 zcmb=*o#3n`>gnPb!XcY%^SQN?k&W-eftx)QM;VVQu|3l*eW1hu1fH&bF6*2UngEm; B5V8OO delta 60 zcmd0;n&51%gTe~DWM4fygU}a diff --git a/data/icons/biss_yellow.png b/data/icons/biss_yellow.png index 492697dda38b96a2a17111992e71c387acf8d38f..5da432e9dd3e5446a189a12ccd43e022e5c881ec 100644 GIT binary patch delta 47 zcmb=*o#3n`>gnPb!XcY%^SQN?k&W-eftx)QM;VVQu|3l*eW1hu1fH&bF6*2UngEm; B5V8OO delta 60 zcmd0;n&51%gTe~DWM4fygU}a diff --git a/data/icons/blau.png b/data/icons/blau.png index 23a2c17fc6692235d8ea7f8cdf4c80af5952cb7f..247d5d542bab4f1babc3656c7b478fd7a2655f5c 100644 GIT binary patch delta 123 zcmV->0EGYd0pS6VZFFBrL_t&t9Rur4gv^g3wR#vx>bFNDHDpgy6K+zZ1fn>Yjt2MpyC dfFEa7%^!=2I^a!2Mg{-?002ovPDHLkV1hm3Fz^5X delta 146 zcmV;D0B!%_0rvrrZGUx1L_t(|UOmp=4TK;Jz~OG-2qrGT!;K(rK-qx00gM3NCa!Qx zID#AahiB!k#pHfZUr0*|&9`%d8Z01E&B07*qoM6N<$f*_JZ AvH$=8 diff --git a/data/icons/bosanski.png b/data/icons/bosanski.png index 65da04a0369f5fd9887f48eb897c39031f42ef77..a2566a8f3dbfc8297f28a389acb12d2ddeb0559d 100644 GIT binary patch delta 115 zcmV-(0F3{L2$uqo7zqRe0002(-QrS_Axi=P6_IWk1Tar#OOtj3JWxAHL_t&tTQ$nj z2>>Aw#LysO1r}g2+J|WWJ>21L<|{mg+vgjbj7E)+kf59qk@QErkdTl_T1ZGpZhx$I V4+mj>kCOlZ002ovPDHLkV1oQFDs}(> literal 1032 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fHRz`)E9 z;1lA?z%X5aZ>pf+JSC+ie@`*|J;n6@|9_yaQ7{?;BOwIRrkxQ6`jfN3BeIx*f$tCq zGm2_>H2?)AN?apKg7ec#$`gxH83GbB^GfvmTtgJfjP;C74c={@4^-pm>Ealo5uAG_ zQj9@?gUMmjr+@Bw8$+r-S~gvXisBPtIH>*k++0o_ZWq@-=b2tfEV=<7s;bUxPUAF1NkJK)ITYUJ**E1sTcafd!(DbNqi1T&2Xf`s1D-4f+xo z$X+HE6kGTFbudKrX>au%O(fQgfUM*#Vr^e?XSq>=sH7>_>4ot|pOMqMuF7M+r84jp z5t%$}o2asOX8`3-t`H7==ewK&2C&+g2aA)M8v+IhD+S-32gREu0h4@%nU};(J^!uf k&z@tN;;Qq{EHoB>0Yd<3C6L|Rvj6}907*qoM6N<$f;Lu$CjbBd delta 302 zcmV+}0nz@l2Eqog9s+*>4oO5oRCt^%j!#PhVGzb=*5`F)GimXVbciTCq(mJG>tGO` zx<#ixK~Z0>E*%Owb*O}>SP&ATj1bw#+H~Fj`}P_>muL9R%rk@SDl8YrgdYjB(Om$| zFL!XHQ46E?!w#rlC&+!#L}~ZewKmB^5XapaYkdf!#Y!%EBYb~fr;>;r%dSA2SBC5G|@q>_XtYuk|(|nUyN*~6F;UvTwrzw$i zFQ7ZUC}ZDL_$lAexbK0OdGNTxemT0|O2%nQMj`a1Zm+7Pe;~EGA50CZBAkG*T=0Y+ zn0M3TbIE6zeN84rs(bIIH+qS&cBX!ziCAp>0l;@{i)pO~4FCWD07*qoM6N<$f=xq? ASO5S3 diff --git a/data/icons/btn_record_inactive.png b/data/icons/btn_record_inactive.png index 1c89e9eaabe4b5d97263bcc01bfc3d51c97fbda8..bcb79cb8fdab09e50fbd0b0e1b7ae1ad54dd8810 100644 GIT binary patch delta 281 zcmV+!0p|Yk1?2^>)&YM2`AI}UR2Ufr!CyRh7txuQYL>3{Yr~y|!in$K-;vX4Zo$M7HXX3)=vAcMtpk7kHuKW!)A>j;g-S2` z1H~Qo>=7vG_58Q?i7C8XOM;Uiuo&xNson*X0x@DOxY?T~)4@uA`YnmF3n%eV5s~Tl zqlqhD-DUv_;QO8J+|KqKpn%gb8E+V_Gu$*X;R@;GqdIM|v`Fi0msVtLWAr149 f3jlzWcmDx?*Ju&l5ilV600000NkvXXu0mjfM|O%( delta 293 zcmV+=0owlM1@Q&2)&YM31xZ9fRCt^%j>}5JP#A>&KbhJ{v@sT;7DZI5U=|e$3hrF^ z0!c=sf(sYic+XiX?n3ext(JIoz?I$d<>2n_$=a<@T0JL=6Ik(=(u5W zG2VErfLb;|U9B`>U5@77i5?;f<7(O8nuF-rFls%*-pi9D(gJ@tbwxyR8|NN6>pK`? zR%qS7_qL;KY;~hQB9Pkc%7eUw7qjnjpOESa3QP(Q<|}DZC9to}aZ0SQ%)Dy)3^5tR z_;MTUMW>1bAH>X);hh#(ADw!d+p-u&doz*KN`4{-3XT}9i5j9M5Kc)zgm%;94Cn)? rxk)iK7Gy1ipQ0W5`<5^*!=?RyL-}e3$tlur00000NkvXXu0mjfR!fH- diff --git a/data/icons/btn_stop.png b/data/icons/btn_stop.png index 86a874de91a85150487516cb951db19b4fc157f4..fa8ceeb6ac94663433ccfc815ace1174e1303c97 100644 GIT binary patch delta 183 zcmV;o07(Dc1j+=koB@BCNkl=e%s0V5``~q}cc;%f0*Edk0}SVjge`2B0?shy+S|EP3w3C-h@0fnYDnAQU94+tAQO zoz=Ow-57l^94oEQHKQE_lyl{MAT&v<_p-w0$_{GpXeq$CQOH6r!%3%9O)iTK^YR$F z4LF=KbL@(*Dq3S(|G|$F2BdOjw^XeE5np6I*JXbD1uc9v2({wTZvX%Q07*qoM6N<$ Ef~M$Od;kCd diff --git a/data/icons/ca2.png b/data/icons/ca2.png index d253c6e0de9563a401c00a6d86a7e6a82b2e920e..eb6b3ab8660263ac3b9c497c295c79ca5df77b34 100644 GIT binary patch delta 79 zcmV-V0I>g&0gC~ULr618L_t&t9b>5f|BvDS|NjgJ7?{EMJdnQMz|3&-|7S41-~XB6 lJYO-x0T_m=1L**&>Jx)WZ)W47D*F_Wjp plTC+rCm89;Girg&0gC~ULr618L_t&t9b>5f|BvDS|NjgJ7?{EMJdnQMz|3&-|7S41-~XB6 lJYO-x0T_m=1L**&>Jx)WZ)W47D*F_Wjp plTC+rCm89;Gir74f#;8%J9zSF?}ei$jvPLHT)!cy kXMw;h$wNvlYnHMwFyz=X+)>Lbyv_gwp00i_>zopr07j=EmH+?% delta 83 zcmV-Z0IdJG0lNW^Z%j8yL_t(|UagHc4gfF+!~*HP{{O8RBgl$J>*P~{05GAE31i9L p`4CfvC$QAk2g%IE8vFdWa$Iab0Nkn0HvRwr002ovPDHLkV1fmJB`E*^ diff --git a/data/icons/ch-berndeutsch.png b/data/icons/ch-berndeutsch.png index 28062c3f3fea44f1e2bcbc453efafeb47e923729..20a6de8c7d93c706119e984ac82e801d188efac9 100644 GIT binary patch delta 185 zcmV;q07n1n1+E3K{sDiRNklEu_XG^O%^MgbgG7qK zprlYT$a|3D3GN9jioxtQ<56 z%d79al{Ek`&Tu>gfLH5YHt@XZaRk}|0Ms_X!>+qj`+%E6m#Hy2!Nn<@rK)qlajB{+ nN7o!ws_GW(RjTS9J5~JyXK^3Th=yzj00000NkvXXu0mjfyrNd1 delta 245 zcmVZ9!Ar=#cH#Y&U&}U8w;O55DbMQ zDXD4c8JStp$i|%9y!?W~qT-U$vhoUm$||g`sjVX#8i}Unmey@HfcB2guI`@RzW#y1 zq2ZBH02mven4FrPnVq8+77-z8X?bOJZGB^t+S-l>?CkFClLv=K$0vUQr)TFEmsi&} vNC({B;r+uSCgbV(<@N3TUwnLiedDhmO}Z{KSGuP$00000NkvXXu0mjfcBXsj diff --git a/data/icons/conax_green.png b/data/icons/conax_green.png index 9734b837f025f1e6364a646a847ba8b70821ee08..174d39f767d71d76db5aea1098ff4bf87a309c27 100644 GIT binary patch delta 49 zcmb=*pWv(`?&;zf!V#VP!1BNm24?n(2{(9d96k7ovG5M_@0t%gTN!}B)78&qol`;+ E0Obl3s{jB1 delta 60 zcmd0=n&51%q{J`?S;lqcIG%z|Gia09i5q!S5;o%v^j-L$D`fTFNeuX7k&CNdnIo@02`?c*HLd7Ige?~mVH Zb(gn@M^f%;h&Tffc)I$ztaD0e0swtG8BqWL diff --git a/data/icons/cw_white.png b/data/icons/cw_white.png index 1b2305fb0098d0867f69f7fd18fb46e6a3a1ad85..8fdaf67ec28fdfc4b088c0908ee90d5d6e70c242 100644 GIT binary patch delta 59 zcmZo-teD_zs^ID37{U>q{J`?S;lqcIG%z|Gia09i5q!S5;o%v^j-L$D`fTFNeuX7k&CNdnIo@02`?c*HLd7Ige?~mVH Zb(gn@M^f%;h&Tffc)I$ztaD0e0swtG8BqWL diff --git a/data/icons/cw_yellow.png b/data/icons/cw_yellow.png index 290aba8ef4be0ae2cd09b54b72e53d78f5fb9b00..b994a058c0524f2a62cb2821d6015de96f4eca15 100644 GIT binary patch delta 59 zcmZo-teD_zs^ID37{U>q{J`?S;lqcIG%z|Gia09i5q!S5;o%v^j-L$D`fTFNeuX7k&CNdnIo@02`?c*HLd7Ige?~mVH Zb(gn@M^f%;h&Tffc)I$ztaD0e0swtG8BqWL diff --git a/data/icons/d_green.png b/data/icons/d_green.png index e3f13b22e2ef4b60a2161b2e4649a6b465c01cba..65a22d430d91a9e3fdee4d45f7d258cc6f30e621 100644 GIT binary patch delta 48 zcmb=*o8YW1=IP=X!XcY%^SQN?k&W+zK#FnGRc3}&9;_d8dW{w^0D-5gpUXO@geCxe C>JN_q delta 60 zcmd0+n&51%JN_q delta 60 zcmd0+n&51%JN_q delta 60 zcmd0+n&51%q=#P#qjt^fc3r_E{BnHa0)tmoav5M^^w->6*C;Im8U&hu!M!Pb9L5JVO_h^!aB9)o3DMl Z$oS(0+wn`K>z05l^mO%eS?83{1ORVjFb)6! diff --git a/data/icons/dd_avail.png b/data/icons/dd_avail.png index 5be78870f8e7017e4b3765355ea76e1029c275b1..ccef9ab69dbd4c62741077bbc116cf6c1f58107d 100644 GIT binary patch delta 76 zcmeBS>|mVW>}ufY;uyjqo4n%xpZ$#w|3ClFF2Pq|vbX>}lfZ;uum9S9``$kU>GfDbPytEJL12P7*uQ1HOBE_XyYM>`a(>!;0l- kTA1+%W#Nx^g*;v{Rc+MF-uWrYfdL3SUHx3vIVCg!0BIB*0ssI2 diff --git a/data/icons/dd_gray.png b/data/icons/dd_gray.png index bf84d099900b9c3bcc281b020cf09889d462ac50..57453ccc501c84467c5722c2f31b26241dd46d0e 100644 GIT binary patch delta 89 zcmV-f0H*(w0f+&R7zqIb0000oAN}i*AtFUENklwEfQ$kFda)^M{zp`t00000NkvXXu0mjf>762` delta 100 zcmV-q0Gt1a0h0lc7zqdi0000#51*QmAtF#aNklsqKI9U zIhgOFnl08H{%I?U2!jw diff --git a/data/icons/ddfill.png b/data/icons/ddfill.png index 03fff6c4a0c76af0aeb14b8c10de241ad723163f..88e3fc272211d1656ceffa5228024f8e9e9827f0 100644 GIT binary patch delta 89 zcmV-f0H*(w0f+&R7zqIb0000oAN}i*AtFUENklwEfQ$kFda)^M{zp`t00000NkvXXu0mjf>762` delta 100 zcmV-q0Gt1a0h0lc7zqdi0000#51*QmAtF#aNklsqKI9U zIhgOFnl08H{%I?U2!jw diff --git a/data/icons/down.png b/data/icons/down.png index e718e29eec37fd7f77d546778d9ae506b1f2ae41..db4ce25381968efa14d3d41265aa6f36846fb401 100644 GIT binary patch delta 132 zcmV-~0DJ$p0*3;SihXEFL_t&t9R`8EW_@vr)`B95tOw%D^Rp zA-j<+GBR!P2>G_m@03imv~wQOhCm=YJs+<#>wfHc-aoPKq6lOHHKldbG1Bg?j;p7Z myB}8qNAfjnL)`I z43rp*jg)}E2q+S2Y#eNCJ&S=PAeiXlk|^jV!XO9*Foq+Bh#&y!XcNnD^AU#t0000< KMNUMnLSTZQQzftf delta 108 zcmV-y0F(cy0jvR#7zqdi0000eEe}(XAv0J*NklY zQt{|JBoKnBcn|jI`6NT~gM=e5)_An$G-6v;{DSO^)JbLpSd=07^||K)$jrdNplX||G*MC1NY>NEF@!@lc|t-0!@~axU*UftDnm{r-UW|f5Q|e delta 83 zcmc~OpCG}>!OXzGprOkjJW)~9QODE8F{C1H>N!U)1_ll$$M65=uWJ?%5j=a*AcSeE n?SZra@xyZV?_^DO{nci)2w+GwXDmSyqD^>bP0l+XkK=Q0@I diff --git a/data/icons/english.png b/data/icons/english.png index 109a1081606822bfdc6035f90c8a6e549687df89..c0d599e88af251bf5f3d24f08309beb9b2004fad 100644 GIT binary patch delta 68 zcmb=-n;^l-#LU3JkTh5P(?msSBUw)u#}JO_gTe~DWM4fTRZ9F{C1HZ}&o81_qA95`X?1r*)}uu!MSVZkuSc jPU+(c-HQxNC;Ky0<}x@v3aK>!>SgeB^>bP0l+XkKt7jQi diff --git a/data/icons/features.png b/data/icons/features.png index aa4e7f961c421233ff1e3b20ec8b53dc5da62fd4..a9f3056ed095722ef7827fdc5ffa1a290586d1ad 100644 GIT binary patch delta 514 zcmV+d0{#7w5xWMEBLV>JktOj6pd!!w0000qlQ9E0e@j;)WdHyG32;bRa{vGi!~g&e z!~vBn4jTXf0kla(K~y-6jg#F{+b|G?6WWM+I!HLF=mp!%O;0$v{X(4R7`rN$#Qm1R6Ic&zfKwml_K zN(n81f$+fJ34p2A%E}{(JbujxC?|PQGY>dOe@P`R;71&1MJ=^jaexO#1P4U)?=ISU z)uBPc<-0CK0LqC;*i@*Hq1)A>5E_pa1{>07*qoM6N<$ Ef~q&)NB{r; literal 2193 zcmd6nJ!~6g7{{M;oFg{&LESqiO)t5~F~)W5I3Laj&T;3MyCcD^6@?5S6*bTnwo+PG z$^at31ZssEg#|_G;z|rr#gKs^Lx)qvU^00?s1ghv7&0(qKx!cT-}f%D+e(yfJnwz! zd4BKz`M>Y^{N+OR^=P;^OhnQ7IcpL30d{tE;A+*sx<}MO3#XUtU|^%M)6|XiV4#uB zY$Ownh_tKrZd`cpx*Tih#&$NdCC9dc0UY;rV>6lBRr>+BON;A~FyMVThJ2$ixgC+V zb)&8qaWv$ZYdPx?X-|%Cs=bX!xETy=>c&Pk1BIp>ugftsb(0BKj%^16ZbZ7DOzr7L zvoPsK!fr57-~W5xD#KN?Ft(mdL2$Qr<+@b{j4oShKc*mw?hmYTLoaUXMaV*JFCsP7 z-ntxbW;3oFhpPwK%${BZ?_%vW8X;Q$kXDI4zC;0JuHqy*OF5#0F}jKT1pPtu(aJ!oTu6*QG>2ANzD2g z`WLzW)gQ{p46i|+F2mYGy41&*4_1KOqSz`c%z{5pYbqXTB)?ak3*rWKX9_#bIK=PQ}cYZ z0sWKDy*w~f4TTKDVZ%unjw~DU=x7wvaU_GN_k|oMopbz=h$j-VEYFN_p#0Ln8&*1< zi&x^6T*ZrANy;Uh>>vm9=TC$}@lr`FiERN;>WFgS%zPi})1qx_HckyU46qd+=$<#y zl@hC&3WjMawgL=<56n&hn6_<{Q1lR!YfQ}W7Wt`ku7n00@E}t&H8h#Ku1df7X7(?8?Qx6p#q0~cV-ihZ7uRsPF$Skc~(PJ5Nw4l)c26@baK7|bD)^E zAYiEs@I9mw6;ZQ~Boq?>mT{z@VikuTyhWge=ix{pCyKsB(>86iz`kND{T56?^!FLH zR*2G}0!*@vV*0JJAZR|IcESVR4&D)G6v!xSBNQpi-$geAL`~7yYvdR+30m_3wNnNl zYOR1eaLqh6#}!60vV&!`2oV56IbAY1fS*6>(H4ThaB;X&^%P!}0X#x*SbH&kf&-(2 zV`GES$72Qw%i@3><@K2;#$$)~d-(Uy`>9{|C->?@k+;@vuz%WlyK3DjFMs|ItiNYh diff --git a/data/icons/francais.png b/data/icons/francais.png index b7529f3ae2ac3b56472c5cc00531e71ccf3362c7..d918b6524946cdad995899da3447417436833756 100644 GIT binary patch delta 67 zcmb;{m>|K)!py+H@b>PbpoxldhBBTmjv*Y;$pRuG2?+^7K}iSB8#EZo7%W+Fih;rD X9{a~T-{+qLs%P+Y^>bP0l+XkK+;|K)!py+H@b>PbpoxldhBBTmjv*Y;$pRuG2?+^7K}iSB8#EZo7%W+Fih;rD X9{a~T-{+qLs%P+Y^>bP0l+XkK+;1ty5w-(RNXWCWM(?E)-F2iJ+*{&Dr8KdL+cqaQ-gdO-M5(Dh3H+1nBIl_9^jjE agZCfUcrfIFMd?rg00000r&xsZGU!2L_t(|UOmoR4TUfa2H-kC0?9Feg!8gFpg5p7U^rknzyd0e zfC4}P;j%|A=X71d|I#l_+Z3XoWP@WFIa2~pMntGqxXG9@PiMG_%9=bK7`CkmJ(^B% zhEC6r8HQ{zT)6WEhZ&(jBUcZlxia>TB!1uc18ssur$+5>zzhHY002ovPDHLkV1kjr BJcR%N diff --git a/data/icons/gruen.png b/data/icons/gruen.png index 29747163dfd29ac5af11a69e3c54447b82adc260..70806cdd0739ceebc89953c9412fa14296f471a6 100644 GIT binary patch delta 129 zcmV-{0Dk}X0p|gbZF*%%L_t&tTVr501_J{I(|2GH%wVSk0`iX;Y?aE(i1>#0BKi*b3@v^u5Lrgj+zk0c_$1 zha0$pwIeu!BiKK10!=*euRa0^fhfPrp#0yp@FOkR;Y-XtnGNccJ(F1l!}MUBy`l<} zMZi8lw-ldnrwcHOSb(SCK*Uo}IOnXj&HKg$v|lPe0Hm)-01E&B07*qoM6N<$f^Pjm A@&Et; diff --git a/data/icons/help_small.png b/data/icons/help_small.png index 59be1d994cfdc5e56dcd842c69967fe4415830a2..5610f6941ec0cc7af9367ddf97ec25746965579e 100644 GIT binary patch delta 150 zcmV;H0BQe|0{a1wZGU-5L_t&t9R3~4XtP^)T|?-PJ?8ILUuEJL%~BpK!aTQZPtHzpN5v(*IQi}tW51N-^V zNJSQGAtt@8%|0N17v2OZ-X)O7B9rntVc&42R@M9i;~7G^e-E>9IAV~A7+X~()D-|}aAk{tAf+wZYopFLhsieRbp3dzz ch^zm`54O=w9{f!JX#fBK07*qoM6N<$f=*{m1^@s6 diff --git a/data/icons/hint_aplay.png b/data/icons/hint_aplay.png index a194a34f5d46feaca2e93974bcaef5a077d9b36b..f49692a1225b1b655028d690cd07431b841b096b 100644 GIT binary patch delta 2321 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 La%Ew&ViAJ@R{?)+ delta 4392 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�!t7{)meos$ zRFse#JV-1OBoc`di9`s8!&sJ0HfvH^l3>ri*XY>2yMWB@1$7AM2b_2Ekk9q&`hac+ ze;-&B8wn*AG$RZ@LetO`XcbFY-o6%kJLo*L12bMkp%aN$(|F@jQs<8m3z$S>o)-dv z0MpZHblrzx==|sRwlhB5KZdgQ;Z+CYfO!(q~C6VtRwBx3aTUErDT zKc|$NJA!f#;OT!B-uYuzX=qx%kHkmogJYqR+C^x-Aeujj?hjzUz6amluhOCoi9>zv z#j*6ozRW~-xgM_3=dZet;>cl?ZDCpx({u<11C*4+`QM-XAE&!IQ>fx@;5DEZf3KK( z=g*0gmYGfXN-N?jy>5QOBvjo3PM*n~-(`BozhGWCNx)9hHB}~$Tul84<#Y|7_<3DX zPsB>A8i}}*2+bfE^pi-$7$2Wt+xMQ9W+8nHS8YATki(R4UF7f6o*zjOFwDfuAYm{&M{E&&vk-PBtx=KVQ_A#g?dxA-c%Zi*+*g5p!0Ui{>0y76lX_c9E2Kvne4EoJOmuWOUZ|=?3CMo;p_@c(|ps(DgOJpXE}HF^eC_gudwU{f2O$Ng%9!j z82CH3#Czx0es%pK9-d$2!_Xj?6};A`@~;ezADS!_eg*s#IE7c+`+*wZ1Hj#QhuNvQ z-@E5V|2)6;vd141Knv=6-I}WEFE6YN-BEO1b$&8G*^^3jr;EiSKnHM~E8cs++q5VH i8i8884cw_Y!$-M7I+xo22?I&U=Ker<5+1Wb5sv|&Gk6XF diff --git a/data/icons/hint_back.png b/data/icons/hint_back.png index de287510586ec33bbf4963b12fe43427727dd7c7..42fecf16ff48109b6b7d16bbe81d30d9f43cb8f9 100644 GIT binary patch delta 1795 zcmV+e2mJW>5c>|0jDH5%Nkl^m=hT@jEW3PJwteu^HWK&I zOg9uNnm7}OaWgS)s9c4Lh;k7MVvwO#VaToE3I%FGxmZBt(o+yY?&VIom2$rncy^xG zw~n<%p~|cYO@1MP)A#-V&+|OzJm;_i09L%ptXMX%Y+%{IvVQ>sghHWZX3j0=%sZ0k ztZYf1BvV|Jo|*E^D`7w?m2$GOGm7gPYG8a~9Pl$WH3_wK)w80s z4AR@z!w8?9orRg18RjQ`svcEBVsf0VSsGx(-%fiXetLTPKcJDJp+SgCjJ{%a22i|2 zDkeR>-OOxHO@B=pWo&E={)&xiGb;lqK0}&Hx_eZN_{qshqo9G7))u(_*A=nZ7(nr9 zk`$uq?qbAGOiaM|__$HfM7l%_kyj(XGYbP!sgNVi5Iqr(A~8jbf#S>CZ62Un22~GCP0bab{q zSqB$2M0l;88Cu|NvWdyg>W%El<@gW zD}F%+P=CBIIgW~NW5sJ=V4&XsjYdty4?$s30bB^@|1aX7X#mA1B*l>Sj#frI&aztF zX8;-)9;V{&%Vg`W1ngO#m5O_ zNLzagBOXQe(LP6?{{CKC4;m;aybJsb=Z%Wzhkpdh(=){5{r!EQ)oP)gMl&%fe*CQe z8Tnjciy8Y=11LT=A)2(dq4;S=WDji>^y#I&4@N~+kO#q`0Y=j%Fvy>mmXSJ+4c!E7 zuQAoI?LdJyVxz~reY|+4jGfnjP$=NU#6^*o)@G)QM3E|0rvcq`2ga!6$#UR4-=B*2 zHh-G)0l|Jsm8y%`6Yztn)}LH8{(iblEfp z7BjvqFxYR}kMH-%e5vSr?zHxC;j0-zSTjw^22hmCp}w&e+)uh_O&L3{0f9ik5nPKT zSdhJay-W_awYM68J26J6wyp+z{d@?`Pk*BkIP2%5tbX(maR0#BL_w7gE1>*=0`3(T zfCtY_Y0B8A)&QEo?O&Fk3)tghEnrINgD;w%*21HjYVh{)G-?9#_VU%pv4+NasIIO8 zq9_AGXSBMe5<@4V_ zh1;ZTgvO=@127tBqOz(IPPiT;PELj<+`U|R9$s!rXV+s|HxC!(aaX5#_ko3uUC>U9 ztBYTNFOg6imbvWy2L?28uEt*geIC$unB{#9C z!C0U!?k7l!SOj<`z!}Gs(gzD3(}^hLu>Zh5!gb_w%;stl3)JcOQ6duEWPf&KWpg95 zUhC7^_PDU+@-o=F&w+5cT#ngXEux7dM-P+azlDH@`sS7<#)v++8KDV06LTHxmc)d~ zU&P!#^xHuqOiH9J$NZZe7Co9MD=P)=o?XS%gr(Ws3!#Yvj{8YsVm#oL;(Tp~?hJiB zN`R4YHmjRCM_Qo!e%?#s6Mtfvwim@>i=of($S`dJJ7BlNu4uEn8^zq_?y)Da@i#zC zTWqWg+_~q1Jr$m%X&U9dGz0XrlJXj56~%(`I>i#Pv9a06-MyU7+wC$t`<>m}cWe{cZ2k5RD=Vun>EAx4Y-XeI z4*N`#qp;ZAx6n%^ogph$%sMtAn^;quSvIjVzMhTRTK!o!wHBUl1^CyPE>gPUp3AB^ l1^e7ZyZnFRWdkpme*oF}_EdBZX`}!E002ovPDHLkV1oa7aNhs` delta 2050 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 bn11@u{S$#p+x`p12<$1?%9;nWVh)c16lK_z delta 3630 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 Apa1{> diff --git a/data/icons/hint_ci.png b/data/icons/hint_ci.png index f63b477b9c2315f7a0247e5fc2800d18134aa11a..28512a0ce895694a66c17be5d44826d2f993eaf1 100644 GIT binary patch delta 3388 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 diff --git a/data/icons/hint_dboxinfo.png b/data/icons/hint_dboxinfo.png index c40590ee821218df844c33511182a44581e764d2..ca657788a2d8fb57a8e386d15b1a11ab276a09ee 100644 GIT binary patch delta 3729 zcmV;C4sP-MBH192G?7Lrkuws14pB)&K~!ko?O6$MR8Gfm*GGmzS5gPDd<_Z)iNvU--JWx3_pkp2Oeo8uy(NU?Bef z{?KZ*Z3uXd=VD`HOV+Pn@18kxrc;un-E=LwJpn&IKQW)l-6;V{22Y#(qKOQG0kD-_ zE|(a*27k7+vY$4H-Pm zMRRlWe?&mw{-p%?K3k2!^Be{y1Gn4lz7B_D<glz`%L%W=i0HJP6GAkdTnAWbt7W zCr%VnV&DdY0XCaW%n1$-M%S)gh2(N_a<#|p!QSAxy#8Gg zV5{(^Y;`4Y{v>yY(B~VYMvZ!rz)L-Q_JrANMtONTYHMpDTbG|D?}#;+L_|acdkiN} zp2Wd}2UBZmYF1Kz9Gv96WCDE7^DGvNAah3q*y2G!LE>Dgbp}J==XLAW?d{pKXZId4 zVuZL}QBfhl^L>sJPbO;JjIXm1*c(i?Q>RWSEiGjd93$Il|Bd90YNa=r2otEQtGgx9 z+?D`KfPr(MwGUDP-kZR^J$CHad6Oqk21y5GK@=Ak3+pR?)2PxQO35)GCfL1ucQN?c zl#~=4IdVit23SL$+Q;{mLC(ZEHhA2Y06!cU7%0HE4^ldp2>g;>y?Sk!I(2GjzkdBh z#$e!Vb$*VC%QCnf0eMaK1`}Z~^zPjop`oEdb}Xw47cP875@RBT${=S_JckX&^KT)* z)?f?DH)YFzH#Id4qfD}etp3pG(W6CHVYw6)6^Ts4z-7rOhwN23Un>W%&G#q)2vRI5 zGLDdKUS1wfoH${+apML{YCEm%lH*a1Dc+X}w;>P{6VpaAWCcH3e05x0+{$s|#`*Fl z98{FcQC3za7Hbb)=>cW>;!5Zg+*0*neUlHhJG*LS)Uc7jUNUorLQj|f? zd$IxB5QvVBZj}zXY7)733uTzW0|yQiz)DI=gmpN*aYo@q__{ol*5`HP`^v+U09soR z&PKAFxK6O~di3Zah_IYlo@dXVZ7M7*+)8V0rZugyfyhI*5}*ac=z%}d0*i(ZA1<_M zGMSKnm6av(x?F{oz?Itg{=5`c6K%{ zU%s3{Bv+EmkMUYMovtl`sHmuCDCciTOib)`-+lLqiMhGC$j{Fg3(L)y+>|i@`ICXO zocI|zYj8Zt-r(;Hnt?HBPXQF(kb_$}_&O7R4-XH=kRe0RrArr)<}j9@-ACZ2C4+k=c2*#R8u}@Z^*$cTU@@^5qNnp z0e+sJ<-rDFIa3x|M20;_Q1-MZU}fzkk#tU-IfEa*{~p}au(UEVGDLeIcbu}<2|Wk$HojqnP8@Q0VTNDQq_QmY3XTCLicm4nnB+o8)j25tN_ z{C4A;NFeD1{6uKzf|**^&hhJiRlbpP z9ze$4W?cBffT0WjfWD8;#&MDqmwfgDTa;zRfyDvFxtk@!5@JsJmN-Z~0wq;;Ha zB-G5sQdd#fY>0~UQ5%8Md<1oi#q=o=cw^aa91e;^+@J)^dE!Z=T)KdNtEp)iG-#06 zoYNb3mU8gQxxXU<%8bIfp3m81Mv|MO(u82636{zVM2!hXpP55Q+gU(G0}wtPhU7z_ z^2Hg*c}onisO+_MS&cW!r}zx$1k{{{_3+pD%jznGyC`6bccN0~htz$8(SOA&wBB@F zK6g%7pIQx3r8z!0^~tY)jLJhUR7{u?0>7o%=-G0k5w#>4-&`HWx+^g9el^nf8<4)Q z2)?d4czk&@R6)al5EaU@avRHmf;O+X@<{-V8n`c8vUKP&tT)}!!ctue7j>|6SH&TA zO(0zxf@`1G;=2_~5%BN~44w7}N~ok$aRGOz91E$bsX}UUm6ol4&cQCHMkZ$<;8m0e z>~-}By?!0jC-lPPP4nT`Lx+Kjim`uO5$ba3J)or#(2_xGn^2HfqN@W+R2>oU9Gz^X zRe*XhxkL+ZuD)onsk=_`g*HM$O*RHDo`&9!F2vuTUXA0rLJWH58T6&#(^GTB+2g?n z9~2EA%ZmFOmQ-wiY^<<4zvOeEms3qKTgg-8kzTo(So+aA#LbAO?I|vs!l8|v18>Lj z7ILJwr1qz-F%XWLX4v!w8yVWGp(6q+N!r|Z!IW2H7LFvgWppP1Y7J!;Vr;yU-91Vg z6M*`3(%D65OZ=cU>rkFwkBA$a;0y^y!1Srm5Rn?nP<{G;^bu{qwQJXeSNOY=!0M@s zHIUwY^#&xCm!cvl9FC@XRFN2nugnE(Eg zq<{^(e^_p+pG%O-+Y~Zyw|hX?pjvNDNF`t;nc2(8LiDN#7>jd?s?h8dvO>uLoL=*e z>(oWFeTr9qKISbnVf=3@QMc_+Feax!OIB8qbhyw_H!B)4E@rvZe3caG5PT^W^FwQ} z?Bi(sen<|wG)nm9m3=P#m#+g2H9{_yoFY)GmP1nWmLwbD$)N&kMEEon#zbNiq3C>z z2Pm1ol)3VPwQEY+V|`vqgp1^Ha*r8jfn7=YC679Pjh0?sJ`@LD{;<+JeIK;wW^SFE z;6KTV?otAxrfBi?2C5Zb=D>H<2&kzC;>yY`2p1)FO)V1ZOql=LBqS~CLkT<;k<+5k zH1v|?czS)aq|$^!6Ck8pnUaSL;FIWdcl5RW*+T}*_e0B(ETnD9wfwmdYw1-cucH_! zvb!*UFKchp;)+Y>x8zx1`=}Dj9|CgY{ncw661}jHtSB((6RKi3ORVO^1b-KiGF?R& zfnI!UHugTe0AHQ@2_g57K{K@y#>z^lX>N=z8_N!DL(kEP)Ce2^>LSR?6H!)uUQbSN zslAB+83&Rt)GoW5vVX$mddvyjY=5`zP>)804OxnB|vdiTBbdG{wy`>$tGD}K)qaoQ4N*<7HuGoZd{Am8z&&5OEsm7F>qAWps>6=X)w}xP;)U@L@#BY5}+M#uS zY+m-kKUG(pnB9C4la>Q#r~$J1-Bio1zfSvm2zZWM%AWb-=-K+Zn(CGdpMn%aMTN?U zS&yb#Nks(GtFwxzB-0XVnq7JtCqBE}^0g`=!yX<26@eEoK%7c6YFzIfXZZ0%RcXah zDyI%gjeecbkY5VD%bw!vLVZIm?bw`uPg_?(DnAAT+|TRZc-*0M z33V#w27}|Ffx&5}k$maG0=wIpuJQL18IJXCO37!fU#WIr^QCv|tR<)O(fIv;QT#OP z^ZMuhQT6g6;C-pBVTJWuI+D;j8Utvo@)R|NtaL4I%*xztTXy*?-Af-dVi$$rhfCBx z>mnu(?kj1?Hg*m^U-)P!0l_U*8I60+na!tSVq(@&-$Zd-wI__c+8P3LTzFolg45iGd$n< z&DQ3z06qBL(nfqrQDA)^7#=n$`t_clJx$q|5`v9Vvd}ubBz}}CE%ihCoSd9RG}TW7 zH2U0hx7v$X5_-Upim<0f;04vpk*23Vdz-8}!`Xzf?-4$VHhZAQ(m%+5319gV@N@sr zkUFtXK}hKh2Cum}NoPEhcd=si3d-Hr>53jM3SNB~ECj8(-A|Q`Dv#A@6qKc#;WB3v zVG~>jKSbWPzdEh}hoqbLTS(`2wPH_xbw7GH|IiRboT72a^PLH#(l`V7(!!fk9zcs> zRe<~BFc_#Acvd*f^V>~->+h^IC~4v?Ao5)=96B>!Y%ju2VnTqJ!+0G9C#l5Q-AaH2;%veZ2o#XR#Z|j0k~o1)QiLTT zOIW~;fel9-J78?f$QH7Nb&srLG}35hG&7p3&;7%isS!4tEZHhHRlHSS&2)8j_w&5R z^S)oVe_-1-f6FF*&;ULp@IeFkkiZ8G;IB5@wt2rwB#I&qhXbe6iK?n7ih?9bh@uFv z5O^N=GJqsW$g+&0D7kB7S^n#Bzh451qTum(aJgKw2+Y`*7A{;kbk9Ba*qb+RHU&X= z0;qjA0k_+Y%jH6nr1wog$buIH;V-&SmSr3ce+Qx{Vp$fJWntSkmSv%7+A62h`S8}Q zTQ6&AX<^QsIhdwNYilcyKmPbcUtiz7q9{J9C<=lgAc|rRyryYnGMWDs0pKquAP53Z zrxS<6fo$=l0jN2L;8^5)E`*zQ=Wy_eJo+cO!;&!_!FE1w+i?Mt6Zg%h9 zfBkAQnY`WUbheA4h$xB(f`BARSe8X1k-#*~|62l1rxT~si71M*fLoSDGMT)jw6yf$ zmX?+aFT3nAR8=Jy3=#+gNTpJUqDV>(k|g2rcyKrzf3twwwoN9JDYb3;JI&3_Uu|h=5vr@JiAJON z{eB{m2wCsiwvAyJI2;bDs;a20tVGv!_U+rpo;`bxg+ig*TrSr>Ns@8|BuT=yZQ}7b znx?%!0#2usqM{;zS-EZ)2ANFey7SIE@BS@Ywk%k;ZXLF5Gd4Dc-|xpT3}ji(e=1S# zVTNH~nkFSBB~({eQ(Rok$jAtL_UxgxwRM*u2=}R~I+-60Ns`bsjj5@rvxMe738<<{ zQBe_!qMTKvnM`JZEX((A*s$TcE3UYL($Z2wp%AA}pC%fO&XUo5hvcW6rfJBsjMwYM z>-8dvB5iGLy!hgaKEL08r^DfRe_EF1Sw(J|CW%CXL?ZFt1VmA!u&|J#qN1~k)HF>Y zlgZpvS66rMl~-O_wq(f?GMNmgPoKu`_hZ{Os;ZJrgZCnky{BOqXqrZGaWM-PETF8c zj7TKHzJ2>Rbm-7Cx~|{pa5(z&i(HmvG)*HE3Sk(=*#x{^FN&h%PG&uye@>?_bi3UT zZP>8k;}>6iF>be;v9U1*1_qd(o<>#GT*~CHY*e#)oxd#0LJ$O!$t0#}Qe9n5U0oec zr<0zZ9$tIxweaBJ;C-s9?viEM%GP7HrlzN-i9{l^3Cy2Ae^$!qy6!ej^Nz)f7vHvV z<3?w7bv5yLoW8z3Mn^{xe?{>u@c9wQmtP>~{d~2_*2UD+6fT#G`ucjRs;Wq*)3mm> za`^D!{mEqVR#jEo@{3%SWd;TYW)rBbt<9y5rfHWK7Z*R&+}yls#flY3lEl!^5IsFT zq*5sy4hOOy`uh4C)~;PkSy>t3aG1`{P6B~It_$Y_ z&j+7X4u``5oax%SuIK*er;sR$B$G+v@i?YwVwxs~VUSLzak*SHG&E3GSBGhuoH})i zqeqW+#A31A6h(POf0ku@KHqEtH8nL~^msh?HZ?WXU2wq#n5Id0cQ?Jgy%>g(8@{qb znJ9|6UqKL1RTZbxnNtl#QF75RO%uzqaJgJ0lgVrYB$LVHiaUR0G8uGTr=p^Q)vH%C zckW!G(J1Zh?ezEeKW5wZw}ys>q5!#Z(6;Rd?z-!)dFgbTf0HLqqN*yXREl&ujUWiQ z_MY`(7HB?jRaMUnSTo(!wrv~^N3NK&9?zaT7x?Vbb)94~iKc02nuek%tXQ#vP$+am zcX#(e;K_FrNYvNYvu5pD_P_o*e|Y(2mMvRGZEY= zM^Thqac7HGf7f*;Cns~)WyK=9@`0z*X%t1Fsi}zzF1P@Icp^a}nM9m%oNe1hS=>3f z5Jgci1OWlKu-wazZ{9+ELj!KNoAvA0)7aRED2k*~DKeQ1E|-g%nwp%hOOk}s>CAyp zRW&Dffk0rEXAQ&1t?Y3olOdf>SNH>fRG zuz=;um*aN3iN|7uVlfiq6U=FUn@={EamB++e^JB^j(??}o%@B8dy|QqEyFl4i@-iX zklam6-?`}ER~8d_6Ux^R8>!@l@BEIGSU}6JT?`Ko^ZPw}2!%p9dF$=%#j-3aD=V>W zn`kt8&aGlTftg-IX=y2|R;|M8^`d1m1S1i`sTAVK2o0f0w%z$T8a`bG905e)zlP6z zfBuKxe+llhZQGocLK!ek-&lVpP_x*fjKfGTMdvN#>P?k=XU7w~P&ALlE0?nMv!A2w z$RXZ7cAS+fSK{@0X>V_5WMm{)yjkr(7lC|5X=rFbQ53@AFym8G7!zSi#>2!X#;93e z!lKQq!RUmsX{flGKP!y$H#wFUL+AjB7oO$c?g&z0xu`k) z7!y7>$DUrrvRl7F#no4H^x#1(%VOikjr8>N(An8ZGMOa1Wz4s1qw;#aG&VL;US3Wr znZ!RnP9zq?+3jP4J;p^JQD}cIK>O1JIIXRG=9XH-q6?u^WVEw8>4(1j`{oD~e*huu zqw!83b1z%~vWxg+1S$qa)Hr(g?SaHK?p4&LU zRQD9NmIPNZMAG#24Ed&DNIVyTe;F%IjRZki1(FNd=|pBarBrQl;;Iw~onpm}SFzwz z*Yh7=xPw=H{jB`r7pZr<86FtGGEF}Av5(Q$*GGGMJF!>{S(aJ2a3PJ2jm()dhj=`W zKNuvMNTL`9b=@bq`KNcY_?iab0HiB$&D)A>+@dK8vY>cG)Iy9Aj5{7@1# z+6e_~NSsPB8lUjZaWh|#e?1O#kSbGb`_WBn3hsU454VJ4Er5SkBa>}=dHKqStd>qd zq7U>@6vJi=#!q(*1j(2nyI^QH2kv~p+J88zZ<2bs?)os7{M`gokNgYct!=pG%t4eS zTrL;Q&CS%+)e(tA==S*-8t_qaMEuZ^Lv5T*bt@ z2Jk_bAPBM`q#)6Sz&I6GiL9STvkT^&6#*N*cJj7EiK@2apI-E}CM;h+`<{&Q20Xr| zcj!~*c)U(>6oTX-VUt;e=G**m%Tmwf3B1BmYBsre_THCi`)wD_=5;6z2kCU0U@*vJ zIE)gC&@>fh+qW)ff6b0XARJ@fRW+m=kHlYXk7Wc=Eki8;$;Cul4;}FH+IGA4#B--s zFW=@yd$E(_JGK9e z4eieNDq`VGPCYu*&mX@I)`Jkda!KW|_jlhdP>UuY76wNFs*ExOr-R2&>J{6rRft8P z^EV7XJw)$`e}3d;7h%tg3J!+@RaVekg}ij%U2M7UQYz<8Lh*Wxu@L=!e~+n9DXUHp z6$qZ7;o(mUkGhNpcl`Lj#J5bgWDaxrE%3SpDfgLd$yu%jJTnAltUCd{8^MlEg(kH_ zzW~h##vnw8Nk;^62-+t*2SS)4C>|I&z-zxesy!=Ke|G2c+iX`oZjcK=Eg;<1O9#9)Y4G5YA50~N4)l_I`6d2z z?XO~A`p@9k_ri~a*^b3NgX`=Rx*J#y+&&oa_C+LH`$7OhJYbZ zxT1nDmz3Q5^KkgfD+l>V>oSIb$z(2tLp~9twPdqCfthT ze^3Df0>>!-{5rlOZoVk|gzflA=}Fz*KvdtcwC+QU0M_AlHVUj`oqcnJ6nP&1P<#qY}f_r(2|e4)AI z90cB&@yzq^$y?#cxp3jE(B^GsoWLevC$I~6625&S>?%2f6Ol8_vjiM}27EpN9pTS` i|Nm}(^Is`HB=AAohXg)o`)`y0fEXNn=D4%U4vzr{&dNUk diff --git a/data/icons/hint_delete.png b/data/icons/hint_delete.png index a7c164851223ba5a4dcd9c1b87be1ab6eaebc284..aee392425dd4ecb488921b225995adfe1cb587b6 100644 GIT binary patch delta 3155 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 delta 4960 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 NOl~QE8_o5H;s0z*t`PtL diff --git a/data/icons/hint_extended.png b/data/icons/hint_extended.png index 5f550eb467e19be966a1e809c87e18752529a253..fc3e685ac173ff96f26de6cf72566cdb5f9603d2 100644 GIT binary patch delta 3438 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 Q1-<}R5=U(dvtbwm0$1p_A^-pY delta 6237 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 OrOvv9vP4QE`2PTxrAJ@@ diff --git a/data/icons/hint_fileplay.png b/data/icons/hint_fileplay.png index b339f13117a35b59decb1b3e09f808c202ca69ef..3e5714bdaba7e52fac8b61ce468ce8b6f43d3040 100644 GIT binary patch delta 5648 zcmV+r7VqiAG^jL?B#|~Lks}g+7+Fa~K~xwS)xmj?-)DW;@%QsQ-}86x{6OXVj5(4*AXghGCQbqrYz~7lV0_Aw zE!mQ-dsnO7)gHgy{oU91`+c5Iok5=RPpAE>GrV3(MEFsr`4Ol25$ExL|HlD~whsG$=6I zfCkU_#8E(C3>Jq7Xbqkpj%mgHO34xHm=lpVT5LfSfwJO>pqvQGXwk}HQzcrdp+faN z-_-Ep#W2mi`sbhg$U_)&LX^+F_ua?e^8Vz%egcsUaT(oC4{I}jdYvA<%<}sm`xrkU zB>e#(h*Bs45rt9?Ed~)mi2`w0>#)X9$j2zB*lu?oNVDNT_qB>dfj9x=*FZglNZUI1 zU#!S48l_&e&fRnR?83kA4+p;y`6fQFZ&zF>#((6TQqH-%9o{eh$sc@VzP`C}_r3Ss z*XA`|mJJB~kiYtW{DZ$8<)TB$VDK4HoZehtuRSnQ9AX9S8=P~92v!6IcnG2mXhCZQ z2+BArrHK7=GmKV>DCfAgvU&gNM(yA9`sp{iz2uzMD#mfzIuYmG9SRN!3K2I6+#yC#vAk>2RMOtxAoQ}9qtID=z*O( zcaF{OnhBqO=E)7E^T|CFzjIAN$t*fmUA(g7DWys$;#eu^oDH zdeZNN@3vWQwF!*R&%XN(;#^1}jxowG=nmP~Xz=|fU&eU>@BN9pnHnikEaqr5 zJJg#koU@9X)PMZ-e@Eo|{LSYcd`OJ_pz>n7d1Fn7L8fqyT$m@!6|Us+(F1WV{+xeS zx{^A#jLS%q>}QOxzH0DF3VEA0>ftzu$dyY3aXjqzdcF~(MJb}Z2WYf542LPoLX-=c zo)`gfB!eMatuDQ8ALj%?$Qvk)78t8mSYD}-E99|B!s^=E@y~w!nX|mcLo}ikNjA`x zxWuO){@$-V`RvMx^RJwntSvq96N`W6UwW%&vsUX{Q*s0Ha;qlwdwq~qaW^VT+t)9cv9?Pp6 zoU5&3lL4)PWnz4UBXhf0->S2{*~TxFx&4;IbbB3EuP<@!>KdhyQHq6Fag%>%JdM_Z zh+@0hX0tYU%Yi*(g}1-y{(8Cafrl$a|C7e3mUd!KzI1lV-z5PIGgEI5re=c`*KOWtocCM1O0$(HSqq1*{Uv)iTG99;DY#$mK#dzwMLMabGIN|w|2Cp@ULq|+Zc@MVpZ^oSr}^_w zeexlt)CW&qxOys|%PoKmTHUnq)bp1bwXII$AKiafO_aL&>6kt4qC`ky^(s$MIp4`&>;jb+ODBK@JG-yL#j zCg#o~cTwB8#)(tc@I1xgeIuNF`4R(fmSdA4-ChbJ^ap=EVzD5?>%1_C36#cx=Op9l z=U?Q;)@Ah%Kk)Z?)9tsgyxdH`@aU8BZ-4oIIvK%CQBA)1YIo|Lcg;;KthJk`Gf1

    li!)i_IM6e2#J<#JQBEl}&CrzMtJw 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 diff --git a/data/icons/hint_games.png b/data/icons/hint_games.png index 88e3f14f5bd52237c0b9f2e3c09089445f505370..21964b579dd98ea8d9c481e7451efbbc4b25b8ef 100644 GIT binary patch delta 3220 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 G4!Qv|3Qc|h delta 3750 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 Q2g~CXl%98|v&am(0Y@!vYXATM diff --git a/data/icons/hint_hdd.png b/data/icons/hint_hdd.png index 6df9f1503ffd90400d9c0c309d8a1b760228c767..de51810b2441542a1364c61057fb8ca16d084575 100644 GIT binary patch delta 2476 zcmV;d2~+l}8om~gB#|~Lks}g+34KXKK~!ko&6?Y86h{z-XJ$`c?|RoZj&V3CSV9R> zZt@0s7~UhwlkhZ1xq%2F;Rwk{goBL{V2n?A*LLb_&p*_*d%Q-up;2qrGt=FFo&Kus zAjmJqZrw81TFyqJ zQRsd_ftAU*g>9I1NB5W?H%4*xd=*Ug=%3gMu>j1_#t5xe ztG%$WP{jcYn>Dhdqa*u0u0VPV$k!zlzY$cl@#DuJ2#Y9aSxmou5En&W>fx(<02qPazki=y zyLK&r^x$bcLqT(Mb75|crGW)ZV4LPbxw%WrCYiTE4HnkKckbNDI-Slrw(-H~uhjx( z0l@6-?Nu7aExiDLjA3qs1j|%rZ?&p~A8jw#>6GX`LL_3G7s#V%xv7~byCCduXNFp!wS zGe#_c-o=l(x4pe>?DIBg->5lQB=&t>C4lDfiH{|0-XYkk0J}hdSu=BA8fRiaNpo?g zmCxcD0A$?3!9mcvu}7fJD_5=rACIZh#{lEBrYzwTCYZoBRRHtTp1DsC!1y4O0xs4( ze-n(jm!1QEoS-Le0M2u)p|RfgR-ytd+D7aA z&AYgX%wGpQb|KGNn%@VoasrsZ#;bJ#k$rBPhwpyn_`G&;zS0 z*6Oq`pjgevn!lO=9b+{KQ00Qy0%W{_O%nK)dPJ!m7XdVyXA!im#Zs&i1FWk=y;Xdo zR1wI!r5gu&k1-b!7dOp}1Jic%>C>m#qeqVd6*3{fv4H$L2JeF|?%pzSaDFWYv%q$$ zi&&F?66WEPfkfEzb%w0VizyJ?<$ws$gmCy zBae`|Z{NNx91XC6(F@>RC^zXk27X|RX)urYR+#e(1e&M4%CzdVt`%ynt?JEZo~y3d-Mo0|axRcuKzeK6LsP+<>yyd)ncn0zv+J5k_& zZ)lfTQRejTXpAh1kH_QVu6=|sl;s8j^gQl~7~rXaot3u8vhk5fd=#Rtazet#8+AIo zj*u`~-8_CfN>`>YU2C>~7K}+3D$HyM(Di|+l%CR*cO%%t0xXzbV0}{^r5qwqb>~Um z-LxLqELZfs;+w9FXpre_(2NE^n`o7PGD3pXB`5?S;1Gg$NqWSD3PO^UTt^D=aS(S2 zs2yA>z)YEq8!9K7Ztsc!LtDJ7M zl3Nm}RGplIVqKI2X+-Bjl@MU`^-v{%QD4s<&ZRaU`WqU2`SN8rCV}sNSrkhk7%88H z#Wty(m$snF8H9kZ4g8Z##MYA z#03{j0RY^G(pM*JXq&4{ui8jm?&Xi?pd``EEHsz*xV0wIw1=*N(yZO8jb2B zMEvnB{wU{NPA(R2Cw&a~>qR>>f84^CAzTt%U}S4q)~cI3xZ0?OU0Ks zIo>YHU*j#~v~!?T5{nh#{a%M&;4n)Btg!`(2M-<;1SSIbg`i2y=a0tgn$O;GV=P+K zM~ut0iEkO95j$&ZYlV-2%1=28*IB+A0mLc5-Me?Ij}UcDF_98L_hij!%~X+DNf%^j zoObMzSEnT2MJoY+j6HJB@O2EX#(>waUk44AUksC{&1jVXjTPVpVEm=DZ%QAX9%Z{f zJ;|Ddl^D-|&Dwc82ve3Z=XYcV^u&PW`jjLWB2!|v$B!Qe8iQJ)OneehVjGpgyql^- zwZE9=hLtt#U(s9*dhZQ}7O@TOt8=h=0dTStbCY$`;9mxRY~FxZDuzTJetyr(h)tD*b z;w^P7a#4`~k9KNvkF0N+g8nuuJhyuXxw8a?+z-|Vj$Xf~hV+!bJ8+A2jzGp9BtFn8 quf=x;z9P#S5FTg$-QYN@(en4E`IIH9_8&A}W=t;}8dI~<3s?ccm9k?1 delta 2985 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 diff --git a/data/icons/hint_imageinfo.png b/data/icons/hint_imageinfo.png index d8daebc6f6a7e147a88da72cce54b9fed965e3e6..1c0e1ada2ce6567a1f1b01682a2b25de0efcb9e7 100644 GIT binary patch delta 4808 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 Xd@le103~!qSaf4@Wnpx);SPiWI&1vc delta 3761 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 b5(Qwd-hA#I9sdIjJ_;B<001GgHV%;iG(acB diff --git a/data/icons/hint_keys.png b/data/icons/hint_keys.png index 3ecb17f72a54a338e0f3d9ad7c508d2836c36751..fd7b14fc89eb52b5ba68e53aa1646e763c1f8e7c 100644 GIT binary patch delta 2769 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 XC3HntbYpU5VRU7au@N7${}AK>b(B=; delta 4287 zcmW-kcRbbq7so&Ma_x*FLMZFnva_y2ve&h;$>ti_>vN5ytYoC0O;)lR_6<>&tdQ-R z+4B;a*YEay{&W6&Ki==xIq&m2hj3$w_azG(JsAK1U@!|+e2wP@w&x>UA;0)i0iQ(IhIQc|r)Z&kgp;Qgf|km@9Xrc<1z z(-(2l^Ug%bO!>keg|eA#4Pj!^Dlw`+ZulE3(WhXS@WH~FVqcCI6U5rWmovCEz}c|f zi@%)V28`;4jIb!DQTHmDyLSaD3hc1SHD4So@=_9|Sj$*fU3n-_4gJm%0YTutrmAXS zJ(parsYj43zqdJ(hfHg@Tmn17{dDP8)ap5x1dN43n1)+k&8@KD9QhT^(f}++R-qyaPiga}i zo^XfRS!6m{0Lk3EhA=}?f#(iysSM!Jlva%DsZ@FK9POJ-r1yZmP>f9tvr5hQx`QJm zQ^d0QQ?2;zqK`z1mk4Ku5Z0s)@h8sqw-&**!v1V#(Z`ePBWY<@$k0M&&CQ}Vr1Nsg zOL9QQi&c|%Jf` ztVBY~M+Gw;U9pomJUl#tx_*A-r9%UBsO!>n?uCPDu^s5cSkjnVd}Q;(CB3f|94rMuw{V%{%_P0@dxk#=LQn*p9-}P(sI2&$VbEN&WHBU3Lc9ZKTM?S0wIScRPTn>o%iWn(BDjoZ=CyTybqg}~6!9eOd7r_Tl2+tebv^Z)m5 zk3yGsQ7zI{ki^&cDJfP&or6_&U)5L<0;6|~mboI3p2X?Kb&Mc=p|4>K0Lv-C-?f)I zlsI6CH_Xb#etr)lW)HiB04m}%1T8W_RJ}}g|B4T3edmoGKZa?6UCtBkyyq0kas%zF z!rFSadi)Dw6h^IYcYNg7hw+I4E6)l6iKQ8o!`Y2Edq%29TDk`1QQ|b{PWuK0b^r!D zIcdN>fF*5vcyNNP)wJ{54RfKJxFC`fF0f0|1{V8OH)VuCbvN|SE_k`8iUz%=>pd&p z70vBV9VXbG@4p6qGp>jQcPR-_agDRLQb6W?jRk!KIt@sMHXR)gL(wJLuSG0B!~)*# zw`FjvB*$yTbO=v(s5vI|aKohXtxR@$Hzz(ZBU+bHV8>v2>htDUm4&Ka1WH!Lap_Bh zSgVTeqID2M>u}i1bp1v~Kaj4VEMMgs4<_C|7lo1=`FWJKD~pR)YaADzcE7` z9J=cy5C{a=0Y$I5R+(0o@KK-K0@v;B6ou^kXQINOfJ(sO(e~&l;4${z1`{aKPR_}$ zblT9SIc*OT8u^`I^L$%@*X+qi1ewksmckL2W0nU8kmi4Y&43MfaX3B~Ok#I&dbqj! zMPXv);qfh^Seb9cY$4oBv@_Xi40gM-&CQrFNM7XW8<&kuNM3MJeSNj)9t&IFHSt@p zW4Z_KsxfpXv|PXV%#4hTKA>)@X#9g*#b&l&b})Z;ka{)akG}*5D;)~itu1yz_zNDB zv=^y^3Cv=TNPPyCvSqxcNMB}UrKe|6`0UMh#CT(*eP?FYbm3N?`i-t}yYS_PzyZZ8 zlu-1fC$VGzCL(My$8Gvn*9p)!@FXVLsXsRr+}-QF%a~=YqRx)Cr^kPC1(dw>Yi;Z_ z1wMNP&mNA8wT;`<8{Aaf>y znwQ=Bkqk7i;i&xuxnyI(^@!W_viPqritgXDVv4evnP(Q?x3?H>%ejnY0@3~p_cgF> zmseiqBv@d38}TizdATa#GiBdU+{Dww63aRj288ljD9aNvq2(h2%BnTUsJ6K9#^! zDtLq>&Y%2nRWpV5zKRTJ2D4alQCD+(AL8*39PdLh^a~;Eh&0_b|AZ7X!3-^+_>QQk z@+{c65Nu5^+br>W`SCUR%f+Ro#j96=#YGx2Vv#e7H&}_5jVw!K=jxS>EELG(sFm_@ zHs+Lj$Iqyk2wr9Ok)z;PEWY!m76T7eq8-8(+4UCDQ`>-m4So|(C_;)vbYe17Yy zda`k)ql1xAsc!G!+=u0fJ8=tgNzNN-J`mW9NVAM#KgtL)6gV7Wo4y{0fifJP9e&I8!a3^8?@D$qUZ6);a%NBF}~tPaFz!Z z$jawl21KV%!J>9|y}g6v&rU_HwTmVRvv z>Dr^AQmird-xGPYYi&$E2YT6XbXo;jI}{C3_?-Tk{8*-Em`~oTm)twwa{HuTPDx2* zTLS?tuND=_MdaJ>v|To>DxZ)7lG{W@M_m1zH*2uX+_b^SXLDvUiu-6xOP;A4=N#}FoXEt7Z7%fLI6q@>i;o}PmhuL*S7{ns9L1(lm1=Oqh^tGBm%=sCW2 znHAOP14niVAP347p?oH2#rXS7dYE*zpM}Gg@r}=2GON4l9*mVkk?+>l+(wFuYuX|^ zqP?cWl_jvx;;OAq&JUPvYR#vn2&d!ZoILuSe{UoTa7n(ZXn**VI84^!X!oW(!1E=K z8c2@9_*mc$djPm$Vv3rsccNA?9h+&A#i@-bK0K24qp~93XL_9>9TuoZ+uoB_rhj>m zKg<+$9~+<3cALJfwQVRTGI~C6dfWNqH$TGpP;uDN#5M+F3tsHBWGyQOW)M<#%~?~@ zf5^)HgTlbHKF}-Vt_qTIQZjHmbUw;rE!@nVep~FH7b~jo12A&n}7-u>F@6^MH~ns{+gJi3cFTax4R_B&dT`! z1;h#YU{RfTXqBaq(1l~Gnor>{xVS!hP4C27z^*U5R&hIe3YjQ1#A9+&Dr|kH=Rbb? zfAa+@{sUP%F*uN`5H$9SxJmR%=!j42p7OF)F*09ppkrAtd{4sn9r4n2P#=}y5o$n% zxB%IpMB5iSpV8jDE3vPWHioyk)jw!&;kO$fUy%Kzpi09E+<(Iv+*iU)VRKb|$p2Nv z+dH|@wdp&MW8HwmwbWP=lhlby*FjFHVBP1^~{sF6X`1T`1$P}3H z?Cg|bYws0n`!n1tMw0$|E+Q!8?lvckV&a*+fw0^P22FiCshKh0(^z)rrh#PNW%3r!4w!L?1Qz=JK z=P~;j3=bR;CPVq-@1gGXHZ*3FvHD@0ssde;Y@6-|k^CW8BC3{MxI znZ9cClaPAcV2cSo+M4#x*5TLRnX`SQ)mo^elvcHOC&#w?W|rDnnS?AO%AL}&nR^wY V%W=WH#dw=p=QK>@<2Dro^#AbzMdAPe diff --git a/data/icons/hint_language.png b/data/icons/hint_language.png index 88ffd2a3a8cb1a6fd0bd03e02118ab9ce1789385..1585e8237ab477d677d229dc62d0f9ab9a34a173 100644 GIT binary patch delta 6351 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 delta 6388 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 Cje6q% diff --git a/data/icons/hint_manage.png b/data/icons/hint_manage.png index a2ffa8b05dcddcbc52ad012cd8170a2651a6ee11..f40a4d3c54fc523dd74629ccdfcd0c83058407ad 100644 GIT binary patch delta 2705 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 diff --git a/data/icons/hint_media.png b/data/icons/hint_media.png index c60eeb923a0381bfbd29ccbd50dcb9f15dd04bcf..8216861a794d4141502ce09c4b1c66cadc30c60f 100644 GIT binary patch delta 3653 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 FkpTqXJZS&` diff --git a/data/icons/hint_movie.png b/data/icons/hint_movie.png index d55fba639daf646557e637943079afc642893c14..7c075a0b5cc8832f511c01988e094de8e47a8295 100644 GIT binary patch delta 3435 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 Ivn~&W0qo3&h5!Hn diff --git a/data/icons/hint_osd.png b/data/icons/hint_osd.png index 48e94c323a2404507d2e11d6e30cc8bde8d702ec..cc22a0ebc8909c8655d71d3108592088b972e560 100644 GIT binary patch delta 4122 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 Y-XDNJ)b;-evG=OIwEM+PvuqHL0b5K5kN^Mx delta 4156 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 E0chrcbpQYW delta 4453 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 delta 2653 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 IvlbGd0rfh8-v9sr delta 4527 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 BiUt4x delta 3024 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 f&0celB7*;5qp;K delta 2914 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 diff --git a/data/icons/hint_reload.png b/data/icons/hint_reload.png index ef2ec068c62cb2f2958b315537b557f081b40e74..28c4be4b72f3a7cae6d0fe973d6c143cf4f9adbe 100644 GIT binary patch delta 3358 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 delta 5588 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 diff --git a/data/icons/hint_save.png b/data/icons/hint_save.png index 590213f6a0b412548d5b7568d02df0512c3cee8d..a87f1bd3d3cfe7847ca5e1e79513653ee812a527 100644 GIT binary patch delta 3042 zcmV<83mx>cDTy4A7zqdl000120{MrLGc1uK5`PP&Nkl3&26+ScbX18bc z*q*Uxyc^>cg8>_ifd&Usplne}gAx+bq*+v{ky6Q&nyMRBHPpQIsD$`m?DMAQJkK4!dDz${kmN@nT<*K~-Fxo&&VC1g|36>v zBY(T6O$wD>ZOo}t>N83~CKG7zVgFdrd+SUrG&S^%1)$3+-(@a&=(RM9qcSJU7;eXr$$MdnM*EvK(gogIK<*{0Q^hiX@3Z=Uh58=Z-40w_MJcSM8JLh_=5zXSZIMNJ-a%$@x{|? zD)XZo>Iwr^i%BQrRN6Q(o@min9Kz8U1j11SB!gT>hH^!DzBZ`I+dCNqYrxa-kFN!Q zQfDo8ZFv4feUa*4d3Hm9Q>yh!wN|fGY4q|L)1T1*&kH?v5XFCj;g|rbW_cbb*MHhp z3{ON6#Erjyr2u3Kr7maPbD!4cgg>$x)xnU=u>5AfFRQgEjxr=S)eH{}xx zW*xl$=ab`Y$9`7GM*`jlt^rPKayctEzhGARTid)D2X21x&SR6^XMP*?k99#j9>XPZ zK7wI$q~qj7@5Lkie$zH`HOQw!(WDjxO(Xz0v(1W*KA+9+zV_D#4u2pmcjZB+ zRqgHd+jjSzeRs#*RF9Ez!q?yOr!mMoSW{V;9*NB`&5NAekD!X38HyecU*_pJ`(8X2 z_B}8Fa!zBkxyqZTqN=Q+{~Y^i#5df!5D`>IAUH8_RhPMZPl3y>^7$hIu$IElO+Q{4H*2sagX2K zE+imiSl-;++usrGY@8Zz%v|6eU9Aedp0mr)eTHGqZX1>eWzP zT@5Ia*@ZIM9RRXSYVaTcC8ve}+I>uvBUr+d%j7UL>;{E=RuEDksBzf8f4{b+rRDk7 z*4EdS0wB(Zr$@v!On+Wp-cvhw?u6;-X}EcN6n^r%&wM`?A%-pDxGG= zk>e~9&G-Y&ahwdE|J4bBhV;4KGYa3^vJAezs|IRoYoVZ^;3+hvHxXEL(I$j~_aw^* zmC9UHRJ6OexR}%mB`zyGwAuy#{O=H~T~P|W02%#8As6bPb$@kbpw+0LZ)7^bG%sXl zrUf-JeQ?h@2uFC-00^K+Gb&7kUA-O@&=~A)D#EoqXfzsVY;4TAc=6)4!NI{}iv}Qm za&vR{@7c3Q6OE!d#9}Bt4u1I9YGn2TT<;u!in2WD_4tH@MSqA%dWiWHA4q88)RjI2 zopA2h%(nu&0e_0@>G0XPc6jHNX0Tb(Argsz-|vS_n>NAGqeq{;8vyy;0Fe1?*suY7 zKA&Kp1capX(xY`?HE_`0(Fb;m4kB2{g|Pmif{yAS8k4!O2qa`@Y?KcsFk4eZ@=gUo zr{SP5+W>$0_yW9ns2&`)wB#AVV314*N=r+>joQdwGJgPcq>5FmR;{sEEP#<FF?xOa#C)?uSW#SO7xIuUVD_$3D9Z zFYT>?ib5Nj;;df~2m*r+0$tKR^GO`RcYg0Z_8SO;6O+)ClH7%#-Bff-TQThU_#Jjlf&at%I9A1K=GS2fI}d zV`v(aDDgm|CXzlXP7cj=F1+;gK$$ZgcC616{C|sRigOE{M`sv~M!+y$Y_r)mEgC>} zcJ?D%w{FcMX%G>Th?sG4qiFbxXX~N8vkz4AD3s@0=k+N$#{SJKUC`g}hH%giPd`$Y zq(dO6(K!qV369Kn1b`O$JX zar!EhyG-E1=tNJU!w4<}_3;;1;qd-StV+2QQ(<((KEMFb9PzSd%^C`;&n^gn%%{G- zUT|I^Gb3YUi$siiVx09%V&cBYkq$rDQ3A(5zXJ8kGoiKwTTuoaJ$V^^w6_ehEPq;I zue6pDkA+C3(+P~zL*|Q4OvPli*=$}tF94ItRNK(dP@~uDAruNFr9zHGbCljGI!J-A zcLubo&;pM&IpL#IEl`1Pq)~{dx{-HyMwBzIBDQabehzK2)mX;=H zLu|KFNm5&eeo$FpfyQckl1Y|RXiRGe6bU6gJzbc?%Z#9Xv6iWkM(9lZu77TCZ|^`J zucQ=ncDsGYwr$%iEaFfCA%bK+%ob@(#HkT6I+)gxdRbUyg&zY~jXuBxL5$NoWpvhP zO!SCxW-@F&^`sGcNF#L4+O=!p`0?Y<^z`(+mjVEtWHWiXIQBCqmR?+#Hkd|;5t5`< zt4&H;x;|O1Ct^J{#2=-04E}}<0jmb%= z$Kp+x#~T?)c}yw0?}m=XV`F2<49r3wi##kLF-BS37CZZV(xm;wjJPKom(GiCX$xvV zdKgP4OL4fRn$}XCS%3O%P7R3FPl<$u%B4h}d-0KbiBw_$^0^3L(n!A39hD-L*jMHv zK9}9!4+oa|sThEc-ldWt6Cwao+h(^iR#u4b3gSD%Vx+uS$x{er+v)Z=%;47BqdV=Rqrk|c!eY3vh1!ZR3ak|cXfmdTc6=L{Y@p-Bu`!YGN7C0k5A z*_TNwdxUAop2+SyJ=9yW=&Ra@>o`dXxS6fqhtfvg>g;cVDQeA>VHIIY z@Fw-}$7aB)$`x0|%JPGI67}PMm&e1FxAT_rcY!T1sio+U@^L#&?&FU&4_mS0Y*=MN zSz`_*3-jgI2R(o*{=Xl4xoKEs0Zx`n`F_I-X9Sx9%88 zPESYd@+L(`yXRjFQ9f@{h7vF_F_X$Omr6#b7`$^V&&0r>QTWnxvP4s<6N$m&3mc&k zEf_55|C#zb^rBGKoxnh!{)LU;C;bX7TT?MQQ}1I0)wK5%GmWKY*8GBtnd_}XalmS@ z-cu_a3Wv(fJaeWX+y#}>7Z`T)X2kwuIemSouCA_QewReXCsYAt=J-2S03$`{vVx0d zU`Uqd0N}S;i<2#!Mf^CvDQI`s&_M60pc)t&8W;EBM`EI&nt4IwTAM{DRe)a|j4Wo} z{^)PF07K>FRSaci(PmMqEo<#x%WG>%q=tsI;A_|J*Y@$j%dCt^_VRr9)Oqy>#jeW6 zLY=<1&m^K{nGvb<3e%C{rB|3J7ptgrhlf@9_Fhub^z^uWhKvv&yy6=ZD<633zgs}2 zEU$l4UVrP}?PBH~5hgt4RPuG%rU@5MoJQc{huFr(z3`lavB{U#F}kvxu`)@NQ*07E z+D@W~M0zPGjnzy1woXhP&Ix>HPetsH!TgKNjod6{;ch09`Z?{G{hAF4LHp(ormv zG`$9hW!NAyFij=#kh70@(xeGMBuHNmDDSCLyxFGVkrE%M-BggPV{x&!w>PEdWU9Qp zx!FWx?Eti2hSISgrB~%SSm_`VKIO-IYHTU=opredTdekE4C~W$M{sNP(^>4nGqCxfQBQa9y|b^cQ^8QVwTO23;X&s4XXa-# zYUtjl1~S3%)g{9imq$E2ki8@2cRDEZPCLLQp#gh!EQu~#T7k+e0y zros?>pe{rrsoDhwA`MVynD_m9gX=k2j#&gYjl8s84=yhD2~xgkH5;gz=ind`@reHI z10JHU2cV!AP;Z~a1HY}D+U{~r-p6}mcjj)+w|O_WgSE7Kw8*XhY> z^`80-({ghf!)_qI;naM;w_aADxG3>^Xdpl~7T2m8GNH?`gN-Y`hw2Bsd4m?y7IF6Q z2o4VTLQO(9e`n=xY*e+KGA&Z(oLWPR5qrHJ7!(h9p!g-G5BAnQ0`A@o-RVCgB%NtY zvh=)r*NCAj4SZ=?W+i*wRs15&^7PQHhlATwQ9Y7;Y8SqK&CJXwGz~xWk5Z8X-!Die zdiqq3yc`^;8L_t?AKx1+P*ux%)JgSi-7ks$y}KXT3OX0QVpz!wvX{^5q3-Oh-)F_! z;H?BWSfK3eK0%6e{+wK;+}dcez0aK^zAK3*q|KkGLoBQr+L5UA1f6J_zl-+ekl#bC zEq)O43O7veEXaeq_#|^)_5`B!vd{wqh^p`7u1Cf|l#c9I+__(W<|hv}|9Hkihi+AN ze53g{*vp?HF9kMDEbr_DO-B5k2%5YUw%JQmaqoX}4#^R#_te6}#U+p4(u&CmXg)qE zDW7rCmH^LVh90%H71m>;w$~V#EF2lQbWpS4RTX*Gf6V}mJbQTrP(J|!vjnIkSO}D)Z62U#F3j>?D!6G`J@IPDV>B^rhp>}=u1aB9&Btftcw2T@(pU%-{py>pcO|vi9r&-`&UFOy8vX}de0rXQErk2yoR04G9l^R za%>E%c-}Ubs5HLK;NIFZ{ubOj41$5Z<*Ta5x zz;+1UH{uSh-z*ns*V2J_7-uh0qL}-#ns@*C1m%{$c z5uoGH-6V9{D<=>6>|MY`Ffl8OmiR2hKuEBN8vOqWWBbxhcTU0UDERI1tGh zV)hbxIBlCp{|O*k42M4SMt+ud`#jx1rin}AdLJ}9(z}BNksPa+1bsd7C$x-riW}To ztX}rP|NXwO__CZyQQ$((%a@tEZ1j1>kKX~IbBp1}P^&repI1&n07g;v+{l~TJ&)z= zaCaC7MHx(VgxtLbdK|M^2wAAea>RK67}E3_2Ih>zg^n(7}}#P}fdF zyC{jxkw_lA&OZG#_E=ziIX2cA;e1z#KgD1WUpRH=j+*!9d7wXU_jk|OTgU^E%YNh^ zfXun75tP6*kI2dM2sT(87UYeEH!K5FdP_$<2_UxAJ6yYfLVE_ruUr(G=J^gDZVcJk z0;SK~-DxyPXB#`-`g~S08aT@PlCkaWwl)hkGJR-@(ZzRlH8kh|&Vk=%j809c+B zIg^(IT@AgIAIl8H=#m~{04?EZWxi91ajpX0DaXCggS>52Xic5<4Ljtli+ccX;qy+f z{(hF>YWFeKa`3{Lrt~Xy>+ognzh?>b@#QpN^xsloD&v5!^96qaa~q-W91q9uH3cq> z*51i7kI#upDU5r4>`6si$*T0_i=j1@T+V)e9v&`Gd}+gYuux&Wy4nqrty~tjcZ$jH z{WF>`ULg7CE7fI`#V#tq8Bbrf8;&8%4Mjznd!h(%csep0U-;qag10BbE!z**V0hEL z?(>@T+;6z&t}*G(;$Zm(^LGUA%%WCiCHB-4UvRjWswN-^X>1CkPmh3=Y~sHiOfpDR z?#ZODOs~D|ZW0IB5b)#dXM}`=^Rt1igTJlYW|pHEiN|)c{_j=fqRVWabmFD%& zCfBb6H(nj=uk7yw*5wA`d`!bjQUv?{eqa6AiOK;W0j=dI%j~x_+Ls#>1NgQ^Y`y+Z z7x~~3O1NU)G}T?(P%pV-awhm;KA41ds~+)E713^X13J+P&9509y}LPp66?o4=|T{c zBw#707qeSch+l9SY*T$|1z<}(|I~-r@*6APnPuebY-as|?}ZmDX$nqhPL5PRD+H$YwoS5@$05(l$C_`JGe3Wclo9ogY_a9^ z+gxl*e(TE=z7odD#d{Jm7hp`nJaSaKCYQ8y>7fmhFS*S#O8n`9q%MDQ29*kD#N?MR zTB-m&PeJ*t8`j^37&L`=647EA0R6^Dys^Bd$p1rK>y7KT^kayh_oNDM-&W1FJmxoN zaj$xWV|D&nmcrjZz@x`Mf6DR#;LaemCukWEy7+lCCzsvABAp;ksCq@IlOMZ>Y*%tX zo=}7pH87k$Szo6(DMDPZSgH+7(29L86fhCYzKL@;^?rY&3X1N%oj9g#OHCcKd_4IJYWkzH3udH6`kI{Krgmq_l){&8%T|=$Dsa)rAw*JcR zuqb*X(tVnj@HchBR>-uUriaA)*X~#B7;-JUdVN->qBx2cZtbAM(^6cMQ+|MPcePOt zZaLk^-%3&E6{MB$We7&fOW$)#Udg!3t3KGKNbAtHW#h4BTXtXgR$=$nhglsw*xO#G zIYrz*nn3;(r`bS6b+H{>DL=iowRzxiMqW2z(6$-`FB`6eo{Wj;^A|J*_e@=Wt`93S z_gP1G2E@cix3Bfy_X1UO``qa1K|gS+TJjeSCB(vG_09vLf@;K0vmxU?gMU?SvzwZA zNr-w87nEqX?hr=?XJidZ1(oV($wwCVirP*z_&1dJDk9p1g&iS4JMe^mP?j-pm8-Ca z*Vfo_et#Y^q`@sq9%kULZhy3S_T?$%xf8p);4a-@WkRZMU5sg|=FqbXk;U82;+Fro zf|Q)NN^2(Tp3cy;L*E}Wcd4ClpnCKD6GY6=DuW_PR=WPI+qgUswHW;H7o78aBF+FG!d zFr}NIpfcg=rr8^F{90kJmSEzNX7N{?RApN9t%YK43Mzl;r&k|ex~FR|Qx|UD$SnAs z{kPDyccYUPqtIbf5pJ>G0RM`VSJ%mDng@4d7Bra1)XK*Yf3nTC(2A*2u1oT{^4sCH zEs?eBl|ife-C&I`3*fTWDtwKIf;u3e>0RzBzU|qP@VYQqU0Cc__@bx#l{AyId=cuN zFW`|=BX(RDnW^{Q+2VGtpAW-wtMnC$L_)@qfC0{G^+j$@22yhTaK~TsXM^(rr9FfH zKYjkZpLO0DY49Bm5;D%PD)V_Z@Bf?=mk0rP$Q zo58OcV(U6MTDn(~b5JvH4jv;@e`>JuvhNBn(6W;xB&$^#tD)O4iS_NRW&%j7mb6=sR1iZV5XK z%^Y%PAIj+gpA24$q&`&TIV%_0Ok`P9I?R=Y=evA-@Cp!>GZ0z4{6e(l$pQDa;q9pH O4E?JBP>tZ&hWrl*$q!Zl diff --git a/data/icons/hint_scan.png b/data/icons/hint_scan.png index f53467d80c11ff75354dc89df4ae7a6b2f886ee8..36f158538b1f370b17834dddc975549bf630aeac 100644 GIT binary patch delta 5324 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 delta 4948 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 Y?;rP%pLqNiwGrU>Pn&d0vsVvh0mK-W8~^|S delta 3877 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

    Qbt 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 U001R)MObuWa%Ew3v(^xZ0W8xh`v3p{ diff --git a/data/icons/hint_shutdown.png b/data/icons/hint_shutdown.png index e261e7a9b7e44c702b97e233adf34a5a52b6f640..85beb4d9ae765854a855dad67ecc756ad0ab6187 100644 GIT binary patch delta 3607 zcmV+y4(RduAKf32B#|~Lks}g+4c|#bK~!ko&6-<`UDsL1f8SbrpL6DZzd3g7u@jFI zNE^4op;drHZ2|F+h?`WY2vWfV5rP-sfd>#0PYA?CJOF}-7t}U^A`(a`K`7KolqL-% z!D-_-aT3?#@p#U7?sMjxz1M|@wf3HUW;{t;D$15Vtv!3Mz1H{t?%z6pBi!Ix0oLL; z2ngSs%L5z0C@>tyy_c#^UIP{$e2|g&q64BqlJ}wX0IJ=9>U*eBp`HT>kX~Q}Sor+s zS&zIHS1H^VfivFoj!3QNBOe*H)(*Hb&?ApLXpMO|yLj==olBQe@&2Y5^6$fxKVUrQ-UFf(gOih{ zJ~#J9@9EQjV?O!GCw?8)eUyGueDtx^)w;!)ki^-&tH-C;@ap+U@pW`_)(PtWQkhog-_t`2TcyU}s^0 z5lN{!@s@~KYbAGo9%n5s&vC{asAeA*6#x<30rR99O+IL?=xgqVNPXZ(gxp#TNLxhk zK4@SIaNa8qIBT(4b|8SU#IjbSUU(VrwVZZK!Z7&g4eh){Em z;Upnd>V_I{c^<|9TD7Vg$O3ZZK%8?2YQT8UwOS2z;spJFBO_!xJ6vB_fVDLmRmQw$ zWnh40Vgi6>v&rb@COwsi*7ly|!9mhPhp0CiwAR+xxpIZ+EF;+)`Mk$R03O7F>Qn*L zqDBi1xGck3+ofvfJFTRLbTr5q(&CGE7nKO(}P6DvJ zv_x~y95X(D&g{MSGCn>YG@IvKxpax8mtSVG-A0M*nq4#@ziVQp6DWWl?{VHMSC~+q zh`&N(3dsXb92E2 zvJCGW6DLkEIXOu*Wwh4Za_kr*AN?q+N?|Jd+bqL>8iOlL$a~cj6RZNT;h{LdIu}03 z^OD-mQM>InW@cy6S|cJQC0bJhe4Oj8rMJHyrBoO7_4nhWaD1NAPzs$S<$Do9E5-D& zV7cakn$xJ)nL2ffY;+V81?gf?DNM+NGF1Q@!7;>x z6h7dx44-9K5&BM^WN3J}i+NEBF@|er&$4#mLU8;jU5R0_iwZ}K^VZ&clci^$MH{mZ z#NhBSy|>?v6~RZL>~UgQk5O6yq!E<|ymO_0%50wFhKCtHdbC`;9D%jhUgO#~zJcv@ zO6I)D@y>C zg$ju_ZoQSBfq`ymDurEN=jz$BnC&evIoKSr8DevsvpDCl)?#hAcg`XhF=@Cg!)eXHp+h7|(zUo&ij`Mi zp?z%;6&Y79L%F~pu3$Qlbq<_GTo&fLtOVP>c9qrFUfri*oh0>jL1N!#j(L?^Shfr^V)*Z-6mf zAe2&J@7~_s%0L7!A`V1V0qn$5!WCX_47SrD?d_%3+Z$qj#euWc74p^Pk_qLDF+=&_ z1MUW-e4G=%k@#J{dYycAWuKtZ-d<|M!z7Icy%Q67Jl0tpsCG3I=P^BpqRW?mp-ZPJ zI!!}iRw%xiP_wsK79zK zTv;e4^*a4iQ}}Dwc<-xUW%a^&9D)ax#VC|iszUKff~wj(*xVrA?~{s1oMW;d3h2_S%o0DJ@xjoBlpRN=gT?`r-;DX^By&pg9BU-}X{O-TFtN+<5>iEUU

    NP_ ziPrTMNRrSO!D8&LA1h4;MMM}Mm>lV5trw*HdZmlu=4urPrN0Fc3dAza?Utu&EF zib@nD8qo^TfH%Q;t0rVJ{Q45v$}-vZ7TMZ5d1lDlj^xx`9O~)o@-+b4YLTz4m3@b3 zg+s)HWK{sWO^1M1h!XIg*8DtXV{>ap|N1w!|8$GKPy9G|*nZ(($j^P9G<9eP z#s-F*QrI&OFnRh+mw*6Vr^CwEpGT~T?WurLc%(}MT_)rJr3*(2p|SbwGvv)j&_{0V z+Ms`Al(CX|pM(R}Vd%J7T=(Snoi=3jMdAcn8tGbjZ+m%q)@(@(LtQ&j@D-1Tv4pZzt~j+{a% zsOex9wRAtFX*3%h4qR6c&!KCM=^V{`4=I8Fi ze(txJz3)@h(zG7|DQD`@m#j43!7XSHihUZQ( z^VwenrMtpiqBTcO+{VcCA(qd4hV}Wkxq9s~oy}E$yz`{}gEYo(p>fLzW~OEs=`%t|~C5J}q*n7T|bej;Mg9eIlB?J&=Ym4{(;tyzyj4<+JKZV4K zvByA!jtW9BP)q1NLrI530fy4wHoz*Btc(aVCf5g#0hG$@%u@}Zo#BA@~i`SUNT-(r4prGYxGc4 zkgQxKd*v*P|M1srT=*8I<4Q@Em3VPqWa1c&4vs>y+v@nrLca31i(flyX<~^RWkDw*p$}eJfVbYly!8sJFF(WP8?TY=06~xKM?B9IXRw!K!cypk44CD0f>076C}|g-d3dJqO=Q! ztpjC4-D7QB*Y4H<&Vx0C%DtjV>%x2!3p!)N-z5-N(T3aI*ZGj-$}(p+$_D^{8oaL8 zvfAiG-ZL{pXL*a(@>Y-5{>pjo?ZgO>vJ}#bH zWNV?hJecK=O~8B-e=10d1#g4Roomgwe+DCqzI delta 3648 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 ZFg+mNZ~qhRKO}~tMfbLVw6i=C3IYV1vlIXT delta 4652 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 N3u&K{z_TC|0|N3BhHwA? delta 4881 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 BhD!hd diff --git a/data/icons/hint_swupdate.png b/data/icons/hint_swupdate.png index bfc557ec7976d34886951eea2dbca73d66081ca3..0a44a44ec182c8e4b282a7fcf0507dcbddf0fbea 100644 GIT binary patch delta 3924 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 delta 6460 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 Br)&TK diff --git a/data/icons/hint_timers.png b/data/icons/hint_timers.png index 8524c1ccddeaef63fe2cf607f9f2c8106e390788..83263547bd795a54e6240a4b3e2c74792220bad3 100644 GIT binary patch delta 4432 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 z V=NUf!Cu&o4PG51RKC{~sfdSEdsKEdL diff --git a/data/icons/hint_vfd.png b/data/icons/hint_vfd.png index 59fef12b96ec21f2fb976fae4128ca83dcb5a377..36d251fe748605527bc210598e0f5acdf13d3602 100644 GIT binary patch delta 1515 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 diff --git a/data/icons/hint_video.png b/data/icons/hint_video.png index 6c8f037b0b931f74d100b3f963f040b37cf76285..2bf44c01bef9be1552e80c0b1e741c3bb489f398 100644 GIT binary patch delta 1732 zcmV;#20QuP5xxT#oyYf`^PMwut5PW?d6ggbN~0eV7!nu~7!nwN5;*M>;m^&R zH}ADttxxy&_sPo2%KsKDrIg&baYMC7M@PR}T3Y%nGVez4M8;Am6v(AZm;Ms~-A?^% zU-)m4^ST%#O9pHlBOy%awPB!lE zKYsjHfwveDvm?M5OLMt@9Km9rw?F=ZP=*+&su2vM8nx}$eZ=(95BMhMyhB!qxu=A1aEb&(U`?R`BM1iIy(hF~(K?EMtRYCKCeG9X(s_|) zyhghL@4^AG^(`SBl%_;k*;$x+iwXffkn6C1YKG+%4M1>=xNz;yb-dI^L1eWh#LTDjpec|;?m<1&r z5o={HFD*M8{K92_DGYSIwy^6NuTd8_w8JAOlTad+iL5p4#ufx)g76HftUPR%QhhuK zYU#6Y=rtWKW>4X>7tR|EJVwjVbZ*ydg)%4-1` z8$a0QtkctazLqQA608@Fl@Qk41TpW(G*H119&A92zJ&pQ6K+nq@f!8uxdkt**EI1k zuJoA!(E-F0&{qomySuv%TVE1NQZF51tdBq)c%uac-lk2feIh+Up=+fg=Hn@pmnNg< zVLu1sa+t`ST)lLUl@Nk&G#aGU79`4r7Rh7^3(CsNowz~vGG_+{F$dS#w5h-wd7+gN zC@^v6I60u5x(x%?5jU3t z1z1@be{EX>W=?wM(8T$`NLu3<@O|Hf1V`qQ#9*NoBQ7YJ$qX!~iJ&EOxT(olDkmyA z`1_HIA4WT4#9A3J$uL9F0KB=z^ev&xWl&!d)gsb=Z6v~tC@~VE4isagBlX%Vg%n<1 zuwhrAXnmY7t!HhF^edsBH$y>mPzir3V{oaBg52E+R1>v2wqUH)sRb%cu$p;N__$)y zdUikw_5LVoz{8!0%IPb;A#$@DF+E>h|tuMXlS4V{UEP9-lBxF?a$I@)ACMGMUXZN6Twq z3H|o6!DYob;KQb-A+Nt3fi)ojZ4b zq9QyoW5tm)Dy57R8BK~1V?`-h2|}+3$)uR4@|)%5Wg5q^ng>(J_3PJVBIzfPXkv*V zs5pR~V<;gQG7{hn(-j#E6bLMJFR2%#7-C6HP2hIK9 zg(;{mV1Z091M|yJDiEYtmseL;-+AzV;K3Dm3KuV4R7cR$r%%P&+FE;YadGY1wQCPy zY!k*dp>ALsQsX8Jdxiz9|9qg#lqEp*xt-6HXnubFR&{df^J3}T*unmOes_209M*e# zP0|9XNH}`+$2=tq3kxcRV(P>=D3{AB6Wzam-+h?deHnaM^~Rhdn`E;i2f6{!N;k#; delta 1776 zcmVdQjW8WsZ82~fcDqFH#+m5sJQ0WX?O|3JI$s!PFtKwY(>DQGcz-P zzIE%??^1W{jH*IaQLoo=>C&bD34n2{eswJVUOo2Y$&+~O4B#T5s)>j|L;wKwdL2Lb z=`RB7pn&_R?m+~&8xsK5+jfh0w6J|H}oD8fwF6i8L^eB(t#E- zf5xCN3P_};SilehlSYxS$`U!Ujv&YqXC}an!-0>ZM&p2w;UFTDTS!Du6abNy3R9`5 zc+gJuk|;px#$dsVII=PzWof3OFofrwYRw3oG=Pksqiia>1dE&hHkY83K@ zMj~=F3k?U8IGxAiivR??X$1V)qQE@EChpGWI$UV3c4WFu|^+bq}?Wh@ji;Vt*h=lUR{TrSPD< zy~2tcRWG-8FcAz(D4QT3HLJ1#e<12gHk=544gyr7igcKTL zl#wKs46{=_QZ%f%QNjk|?x8@)^+=(9)J2Vh_1vP#01H9AI1c>8&q87V6-90o`;3s3 z>?#8%mIyPDFgexK)Gh8kDy6+hbu3U4n^)>1>vLpM3mw!{V3SJ9Rhe1sL{aS?1!{?UAA2xf zb@D*fC9AtmrOYciCS|#v+CqmC zQP@gzppV^HP=A7`dEx|Uf4nLm*FxV(W@3AdvC;wd8X@k=(1}>+SoU&>dlY+}xP^{n zub?QvTCFtSZLg^<^p8(IJ`pk_&HoT^NFSh)cY-4=WW9ghJu=QDNziOIQ4|FRg8}B| z=Fsc)FdPn#$NwM;J%0SS)$MkRqA16X(`II7&}y~N>2$ELuz(~*!R27dNJt_d8*=)7~*mk>}ojrRl1rg4*=8ua%w9D&Pu&^+XhY!ER((-vMEuTN~ zy_Q!(H-#$N?RFLj{QQ@{`pe47%DxgZfHFWc0J8wHXq&~9(MeN#`ujirU|PHdfIR?t zwCw?u1DcZ}-`d)`e+>XMP35_H^Jbc5S(YRDzp{k9$cklk>{{8#w z>+9?Fix)3406cyAR31EdFt~E%%7d#{uRbKAo~rhUs7pjW5!nXt48XIEjg6Pn;CX`p z*>$^C+0wPOwU1j1i@(oi-<#X(_iLR_`@Ow>zqY&E!+xGaRou%w;qv9nD2f8TUJq%S zqS0s|NfO+c9Kg`!!!X`70zE>2 zh|&mjy|S+Xs4Xomo%`scpM9{pw)Vrb=b9H@@9+Jn_ig9=x9ykBMx&W6pI@oZFD}&= z7Z=m{g(X&1?CfmI&h}36a{I;L#f#^!pFjV1{$lHSQMWK=Yd9D_8yeXH(Z618Z+*49 zyW0gYsDK_+_o`~9PGT3Gcyqr3*~69ofoT`*|K)#LU3JkTh5P(?msS9dS<=#}JO_> delta 74 zcmc~OnIOT*!OXzGprOkjJW)~FLfO;BF{C1H?{uKbLh*2~7ZI2^qEk diff --git a/data/icons/icon_blue.png b/data/icons/icon_blue.png index 472362c51b0aa906c463d240763103824206da19..4c84e0bb32142026cbb0bd133c7f873e5c219d73 100644 GIT binary patch delta 510 zcmVJktOke>MCfU00002bW%=J{{ZE;FiHRb010qNS#tmY4#WTe z4#WYKD-Ig~00FN_L_t(IPmPlcPr@)1g;Ausn4!jvp$A63+K3T?!S|NrNB zd%MEKL_N1nmYlDrx7}7*`$Ls~0QdXXhdU4bmncf3bdp-d@qExcA0n`S)m}e(ZT9=d zhnhr_NfgKNVD5nS?dDnM;?wi8EK`9>l*&}%Wx;UhR}eVf0Kerar5F^9ge68nFdiZB zdeV8H_IeGLGtIP74ihMK*+t-S`@r)Wx#pS^PEed^qIJD$f%&WjKIf9!GLn=4apNNp z&9a`(B`6dE28f1+AXN*0yxal6r9=w|C_pI?)iDC;U619&0->XD6Su`_!g5*!6cHjU z0VaVH89G;3znq{Tfr^Ee39bjl2p4XxYm+Wck=BximNYE2xRP+1XaY_COelJY;S@H( z_Gl4v&Se54L|CsNBwkbjm;@qedAWGPtE{^O#Wa=6aJL05fVc*6J-`broCQV0`lY=n z0}zUD2+IOc1rXN)00{jib561MhQQ!FfU7JM_A&g(GX&u4HhYvs4Nk7~r%iYc0QgQI zwc9vAVAvgvy8f!hFsD-l0w4Xcsg>dX@8|tpUrerhtCGqmUH||907*qoM6N<$f^K`^ A`v3p{ literal 2193 zcmd^~q={6fVCM1sC{K1XET{e!hyCmJjib5oWRMgNEAtaQR zl1h<45a577y|fA!6e*WfLaM1a5Xyl=ZUn;jX4b)JCCZ&Q zv+LD+zxn2ynO%Q6TYfRz-q}t>;i*Y$4!_-ewYA`GZGLu_sD);y=k0)heebV5!(0pa zYnk+VDp?CfcC^m*ix;k`(VAgyXVP10bSvOTzi*h8RPT<~1)w@Vw-#y#yr)KyujNL! zLy>L6+%yX4H8onboV8G7SB+P+&RVFw9`IKTb3K!WLS2n-s?oY(R#VBU8r=@~tD(sK zRPU}~)^nrPP6RRW1AwzRH2tqVht$LtTRQq3q-i~?k# zwi}Anwa!g7UeBbfY80^xhKrk$DFf(K*Tz?T^rP#QiZ5S z=UI|2&=1gmOXy$yri9GvHy}@^fPX@lPcXBz0%YTj=qeY+!7tJc4Ue?)Gab7}F(LG7 zQ=SJc5NZ6&OIe`ng3o;oA;MgDxI(l?^e52=L?NPkoagwG=nJBcc`j-r+90t%P-*JG z4)U`^}1V{OWn;`cBhxK=^;uGyKEqs_@X{x$h?V z5Axp;A0qEI@%}H$y(+$c_BZyoJXd~cpZ5RP@zt4M2CzB7%agC*qu|daQuTd45Wx!> z7?`rg=U0C8bq9X>gM5#P{{lRB?AgvE&-aff5`&4si9s2fHZ#O-FT-j$=B>ps5ZIhcO&I6+r!D&~cnB8hSFD zhqOpgH0Jb64Aj2GR!n^*FRh`iz|t{Z8Qz|7Q1 z)bn{;mrY05x&k5>77B?ev(GKsh}hT|Izo>zp|nU~d=x<5wnYg98c-cXOF<|Mj`n4X ziUgzp7%@p>ir!?lsCxoDi4=i?2e3k3VFR)%?lwK?@FYB3j^@BN^2WC_{7*Y&m#y2Sg^&IQC7nGn diff --git a/data/icons/icon_green.png b/data/icons/icon_green.png index b1f073f6542cc0e94f6726550057458d5a013c9d..5a0048fc716b1c3b3626bd503881644cff4836d3 100644 GIT binary patch delta 347 zcmbOzc!_y}G804WMAgLle`fJE3=9l>B|(0{|B(TM>w!BbfHIr~9+AaB1xG-bajG_- zGy?-8qo<2wh{frple;H1EAY5Z^_;zRhu-32X<2vw|3C9IQAKR`Tc7-fz+y{>E3baH zt}^F2956kwz3^em3h&bb@@w06C6~pV`j|hJqyF^yl39LdbH$(E{#vy%?2w66at@d3 zK8{40v(9?YV)a{&u{4Rlvawby`MkrIUySc8J4a&Xr703Gn*X+nr#j7&mUYZzF-&19 zdJ)F8QPRr%HqW_5f8~O1c?Em(oX+{LUh>>0fT^^r<3vUE2KFsn4H^7?fjS3&TTQ79 zTizjBm*qDh*oI3{_*pY+fpJCC9=Xhg%Gpkw94&ENUtJws%2n%~*G4r-FnAo5U9q&x n^hf{qm6I0MC;s^G{vY#}I_vE(OiLMoVZ`9+>gTe~DWM4fwhxvW literal 2193 zcmd^9PiP!f82`=oHIqNHW6WmKM|M{#ELdn-imVEnOUniu2}`KC6e3N!%@#vC+itg# zL(y14(OZjNJXjD5J(SWzL61F%c+j53i}t3V;K_^8`1`&$J3HBJtM`6y=FNNG_j|wh z`@T0bA1>Bk&5urx0?5xFubtp?zud!n*w?=J=o?@U78jQ0%waS8*@kIWg10KBIcwsI ziL2&xHHbN$F|SRU=8S39w*T2KU0Dd)6|-Iq+Vq!ZKi@FxoX!SuC1_VolYWk8%sQ`H z>HQ^BFLAFHmVrMva22?G5vv?`blhePSkrzLhk%`P>R(2czBk2xuYm>N`xYiRi806i zqWH;ZfbE9*TawqWj=!Z*$9xDm&Q7c661K?GQG5qSfR9_^xg0B|%PAV3R}C-V58_`` z{3*N)JbeN05`RgxF$Zcp!}KHw1*GP|;@DFgfD46q`gj|m&wiq~jl=ud&m59OS&nVnSq(pCI{IX~TkeX{bS8!GF z)jK2t_qrz$)(!X@cn1i8`{Eb73498?Cn7KmT!+?&No6j=QvV`Q@8WMLW=q$q9;ZQb z7j7}nJqE@Z_b$vYiDrramKht>Kd71dDRoOVWHcYRfn4hU7IKJEZAkqau2#Q4dy)s_ zp>v}C`cBr6oje)im;49vL5`e1ev%(W__f^LCkI2mkmlfg?da0xkKTUs(_hH{hy5Qw zq2LWRPkd#Y&y#_p0YE`r3BU`j9k+uvZlB?DVJJT}wRdXo$n>r@G`(-%r~`Q6)MPG~ z8*^=}XEp&8%98{z-e-1vqRTKs0*(6_425+W!s2AQTp(61Hq&J&kLW^mj`?hsLt4~h z5CHws#9VK>054_m8S|5HhQSNRi%QT7DUan}L<^NLxUkz__ei%Wlu6K&=2lCeGK51S zvVQ~HV+e~%A&B(a#UNR*Ks|0>O3|xBlEuIlX`x&egYgu=ELa~_sNd2`CRy~yebYUQ za*-7MVe6*=FC0qZ##(pD!?#(6K>}e&&Y}D8rcba*ac^-z58lap@o60qs!BpkdT~Y(2Y-~pE`j>w%<-zpHp#iDQj@cO*G@4S1FZ|}+aef~oEY&ix!zGN820VQ*^?kn;eE5X1yE6yuf8ML0B*~iwE z`szr&qO5j_Pn~}ZMGv(mQ+ZFRN7h{!yOZoAIXf>~O4N0gTdSK1jTGHX5?23OVivcMxP7nhB|*eb|8yE<2JsizT(rTws-^vhYx^d4(zme_1?txm1jM$b1ltJhNB%q}-0V0&3&tC@ez!glD5-#}<|Dt`dXq zA9?PzqPl-=+wqSrzHz&kJpB#j+8z@u7{trl`>Zg$TzY=Oq-P+8vNBx&bi&i=)*ptq z^yN`IPTn){5z03QV=xl;;Dx6`LQCDhd?rTUW+UkBD1pGqO$q=!$6LbG`mS+xT3OfsnzI!QACn{@Z#<+CM8M{ ztqD-d`z!$%zaIH`YQJunVIHY{K290%FRab{|8M>YI&xMjmBk#m00000NkvXXu0mjf DLY{U9 delta 766 zcmVhHREklKH)RXw4)+VaY)MeNa$ zcbB`zPA1&92XoCsy9q}SeJ6@}C}Qf(L~+x`YM1XgS12xO9{HOR5gB9*pum?#k=sR0|^-iwM4f)M^<_jF}~OShnjxXr}h8 zoQv#>p1$&+m(YKgL;ma;OVF}ZwI|vLJr3tKRLp{ZUoRBEGXX5CFzIGs zfRa;848-x28Me&tr46Cvwa$Pwr1FkDh-H?MhVA!x)$+}LEYWo zn^@lZmu`Rc;}3THAJEfZfNo3}#^>2}{2M?lJbq6p4}w{sJ&FaaR9^bZG|Tta5FUm` z5&9x(YBGNtknBLHDut04AHGG%jS02)c)Ml)c^UskYpZRyE>2e>@IGmY_j5Ego25|V z#$1-H*Uke~EL@$X?~TwqQx>zVCNKL%AG3FC0-r(<0hFTwFPCW383kiwVz&j0J!1i_ zQcvBIz+&lXfHUaoSq6dY?W=J;t=c9OnX2A{()i&*Bu z=BQ(xTNuviS_~Q6(3wiwk(zXbckj@Y99V=Ax${{QAQX4e5>?CixaPsMg*2j{8!HXC wbQhudle?9##@qI{M{aAtiho_zjQ`)}R~Qs#w)4|OPXGV_07*qoM6N<$g61Y~A^-pY diff --git a/data/icons/icon_red.png b/data/icons/icon_red.png index 99319698e17968cf15677d2549abcad5e1912d73..5b473d46485b046d8df819deb23fc399177a1764 100644 GIT binary patch delta 264 zcmV+j0r&oq5$*zzBLVp1Q?pkIU^ML(SPCAvVwcr8yM46jE7C_+qOfz3$VLL2)3FCbe%fTi} zXma6uP4FdJyR-#x44|<_!A^aeK#{iq>by@`0_`T~%L&)_Z~(}oSA;M5XM#GphaEsH zuxAGJ8(->d5_ZskHc<5aJ6HRUX*~+$cWHprwshpwmnp)RXwkewL z>d5Kl8pRx_Y{<+RW?ok-grsCdgQ?KZ?DVpo*Am&kefYX=(-cBPz@igatT)`r+ zFpCL_(-L17K98T8IEgFvDJK>KDehepo@HN~d{G4c`J&?9Z>K|aQ zHGu-nP0KjS%(i|c5u?~vm0AOG7~_`EtarpeCH#{w`zX`3MD&;;_#LDUG3L@dL6#B8 zaG{s*Ni4Nci1|-w*hHfcUGU_2(m2q+9n_zB!7)UtyRl#IruIRBf$ljTo&1bu9u_s-I`BK!(^>3b7iT>@H zNk2)=hz5`5!>iET{2TC($lV6_KWX>sQFqTn)|VbhoGqa6U)!^jpWCT9wKD_f>7xi` z`SCqy57B{C?St{&bMx5erU2P|Xz6$m+ipk>e2$TWZ*!M^_2{E#Tj+I1h7P*Q*pcpU@*YRJHDKuDx$Q+J{Wj=4!7g~O+z(; zN`~E*a69QN&)&OD*~QKbX0vqCJG&~wE`T7PBsRj>w@4`M!UYJbG&tu$3pNA-f%<6W zWkrkUK?^Ds2t=z~MS#DKKH@OK)l5!xq;98j*gmwof8Kk3-9tayj`XgNo#KDm!Tv=2 IdEfZ0zwxTbq5uE@ diff --git a/data/icons/icon_yellow.png b/data/icons/icon_yellow.png index 237796a4bacfb467aa6f1705300cee543d95a805..7dee1f3b06f34fb0b8d3e5db439ee532111eaac8 100644 GIT binary patch delta 285 zcmV+&0pk9V5$XbvBLV<3ktH{OEo(ne00002bW%=J{{ZE;FiHRb010qNS#tmY4#WTe z4#WYKD-Ig~007TPL_t(Ijg6B_0)sFJL{o~U#j$w*({_=NK>SX&!(#wVuN$QYhR>;1 z+!?4C-T)1+Xj_V55ErAX*fC$!VHw9T?n-ntpJ)qyfa>fj$mK-8vh*va2BWNU;Tf!8j$Pfp& z@PyjVZ_?VrrHBLsf{p2JVasvb#$<+lhI)%;$iMQbs&IL%!ptp0&OcVx;lozuO2C}X jv{b{A&fc@1_ga6M1{Tv0q@oN400000NkvXXu0mjf+yQoG literal 2193 zcmd^9O-NKx6#i!BI*!jbj+sT&EL;X+L|BVzqm85>gP4m7Lv6B<%(0xvKxnE()K00O zHf|DHq(rMWfeVRY#Xee=9C{?xv6=iYbkx!?WHcg}rpZnq_m zMxC7wfM`o|qMe>K+#?|x6OZn^1VU(Q?P!`AQ+h?~*GezO^}MU!sf8(}zf|j$!+O42 z&$%=Am7Z04DXu@ddQL4oQ^e3i9n)t~2ju!N3XGg*4?1N$ftp|P3aviR0Gh}(#C~EV4LarV*8txPe_D18a~*=TIxU{d z$P!OR@EPm{?xxu@G9Z{dC+D(HH0;L@!XFTP7Y+hjF5)`jFN-#l`x&YqU}E(kM`trK zb~3Zkj}&&$+^8CO0=z*NmjqYwf%toczyEn7dHTnQ9%+K#!j)Z&*)vR#@xiJr>uex= z>fBhIFc|)ft+UuBM5ovf7>Cq{Sgaqxe198|%;P5nla;fg$7qn;nVT(O9&6^7y8!dm)6Dzdt+^8YYc-R8 zlA09_mge0P2>Sk4;7jCcgX^C%wQ7CQ`;+x$+LOm}$ob&e1blTiW%;K zd$kqxLaN%9L_^2$e4s{s`h~z>>|X$p4K3;h0>rT4ek2++fRO73i<&D|S#AJPRi=u} zQOZ%JmBh~>LQc{7Af2Zk^BJ5HLs>M&e1@2uuyh22ys#KVr3K)S1PHHcFbF#6TOmV< zIa0u3GsJkGNNrn(!7rDGUPl8fLLbzf1k6Ujr--R14 i$3{)Qi_Jf8%5-yk5Z?ZN^7zRmR?yOvOiVR)-}nRFXT*vC diff --git a/data/icons/info.png b/data/icons/info.png index 01acdecd89d9b647cc5dbba79ef60b7deba0e32f..712126aa2383515f19753b789d4eb8873b5b7279 100644 GIT binary patch delta 160 zcmbQw)X6lVu)f*T#W6%elJ($5U*x0Jydm^5f)*U(Bv5eCv|I3elofKNCM4lsCNl-ja{IZkP5QF M)78&qol`;+06hplWdHyG delta 182 zcmV;n07?Ie0-pkqaetXfL_t(|UX9N&4#F@DhEeZK&J8e~I&%bPN#-!Xo(>#z1Y+itUuC|nJ)nw9V#5)4Fg+k!5tAm kxZ?*WO@+?I|IaP!3uoz20k{Z~>;M1&07*qoM6N<$f@yM89{>OV diff --git a/data/icons/info_small.png b/data/icons/info_small.png index 91058600dfe903c7c45f0866c98b418b3234e3bb..e7f76c9912dc5ea86ed37e272bb13230bc6c0e85 100644 GIT binary patch delta 140 zcmV;70CWGJ0)YaMeSdFBL_t&t9Rg;MbZ0zDM2t<8 diff --git a/data/icons/ird_green.png b/data/icons/ird_green.png index 7290baf9723e6189b655d20c906462a2794a4d10..27840a6147efb73db3154239a6989928cb894e19 100644 GIT binary patch delta 47 zcmb=-o#3n`>gnPb!XcY%^SQN?k*z|4W0T~;SB#lD%p3FDvLhIPz|+;wWt~$(698y> B4(R{@ delta 59 zcmd0;oZxJx=;`7ZQW00%Wys6Gz|h2#@ZW~bU`p{nBR;-_s|SBo*E6h_VynF4GV41~ On!(f6&t;ucLK6UBiWJoV diff --git a/data/icons/ird_white.png b/data/icons/ird_white.png index 9b299caa6d2bc0f0c77b9042bf5e4dafd1c21a60..ff5e521ae64c1a48de29e1b3d7ee883f3dcc2e7f 100644 GIT binary patch delta 47 zcmb=-o#3n`>gnPb!XcY%^SQN?k*z|4W0T~;SB#lD%p3FDvLhIPz|+;wWt~$(698y> B4(R{@ delta 59 zcmd0;oZxJx=;`7ZQW00%Wys6Gz|h2#@ZW~bU`p{nBR;-_s|SBo*E6h_VynF4GV41~ On!(f6&t;ucLK6UBiWJoV diff --git a/data/icons/ird_yellow.png b/data/icons/ird_yellow.png index 1b21a50785153062376e6e61ac5a7608c5e430ad..cc81a215a36aeee7473c3e975c10216868ade73e 100644 GIT binary patch delta 47 zcmb=-o#3n`>gnPb!XcY%^SQN?k*z|4W0T~;SB#lD%p3FDvLhIPz|+;wWt~$(698y> B4(R{@ delta 59 zcmd0;oZxJx=;`7ZQW00%Wys6Gz|h2#@ZW~bU`p{nBR;-_s|SBo*E6h_VynF4GV41~ On!(f6&t;ucLK6UBiWJoV diff --git a/data/icons/italiano.png b/data/icons/italiano.png index 965fca98f4ad014eeda137fe13c13b79a3f491a0..e442d581ed4bcbe1df6ad735cfc29dee90e0ca99 100644 GIT binary patch delta 80 zcmeBYY+;-r!O6nRz`*eK?xUcIit0A%o-U3d9MQ=M2?-p$yx!i)3VjFpk~b{yG*rAI kalnPAV3nZAp+r^&Hfh<=uEYm-fLa+mUHx3vIVCg!0K(`Pg#Z8m delta 91 zcmV-h0Hptf0gnNY7zqdi0000eEe}(XAty&NNkl x_>PZlOdgADGAGV2ysT)lVKG6`+yJ1R>lfC-1C6`kbvOV3002ovPDHLkV1j#{A?^SG diff --git a/data/icons/language.png b/data/icons/language.png index 41b0247b9c396b678de150994c76aa33c2d5fe8e..bbef95490f1c92f81cd6ce2df8fb8f2c8437edf2 100644 GIT binary patch delta 1213 zcmV;u1Va1k3FZlqIe(Z*L_t(Y$K{kuY*b|w$A8~<@14%e4uzJAMWCfhXi*Uo8o&h! zVnG54!h#qAg-|2J3K||pB2iW(NCJ^24K9ROF{DNm3xro%P%2mnDnq0aTI~A`GgCS< zow@h8m=ah(H}3ST&g%a>-v|Gj*{_te?b;$=Ft$#2k` zHesw;gHBIJ0pd8I6hnyw@lc5Pu3d~RFIOWHZ2#z*w06XpF+GD5=epSP&hz|P-%Q!N z)6hzxYHLxZ34i_l;5f+OAcT6biv42YX?R!-JUJZW%r&BsKfY(2c z(-(TU-4Z1;%Z-_4aJud;qr4!C79o|DaNq#W)T!8!2#Mxq67e|6b?b=K)X=lJj4|n1 zXsy8oOan?&#hU;dN@o*OnY45b(bN{@rNVRypYt=NbT>}GjeYbe$$k5fNCeRu41>h& z+axMf}hqq^%93xEN#c zVsvgUVwxDiAo0pdk~?=YxL_vt*A~z}*#Gz|x~jEI%+JTl&qpT`(9nQtZAB}EUa|yZ z%NBG|5y~)90z|NFo1tiwSY;*cXFlUvX#pSBUw@))pz9&}UX%&&?6z%~M~pwxx}^oRZy(gvA+4=AhJobdz|y5S%a&2^ofZd2?L2o zY(%3`iO1s-3xy;$ybr}vm4B|E8B?Sw*?ff!H9@NT1Um*!6HqnW!6~3f zYfPVy9*>91I2o*JEI~Y-C;sc`qF0jjQbh z5iBn#1&LVd2UJgd;%_0A7t9QBWx~7+llPvPO!M7W>AX9Z%)lTsC*7pB{};-`5q}2a z3GUyIlZ--Q5aQ>-K0EB-abt}KD*%=kEFWC)BqQg4C)wjz=L% zFdYy9$4=$WNDlm;B9;X_?z$}FD))e+* z9q3tzGQhCFaDkDQ0yc+9`m_+bEH-q13DKG-iyYB`&O_2>gL^8ZjZP6ccOe>tdxu8` b{cp`b>{AGCjpQ$n00000NkvXXu0mjfLq$El delta 1218 zcmV;z1U>ua3F`@vIe(o=L_t(YiRF|_Y*cj=#()3+y>~hCr%J8ETn(-Y$i>bG@^j{aQNpKY@yb4-Me; zPoUyb7k8V&q^7wslME`V`xxT|S-KP{D}#dvac0cG4uyy{HWG_QiEr3IsIro-twoGW zPD5)AE?_25m?+)^*i<-=h)SiYV~B>9FfZjKlk=RP>4kf70&eW%$B7pgBcTwYH5dl5 zyLXAVw|}FHis)Ffh;aK!ItMx*?I!uL6)kWDnYTF;r8PXflDaya(sH7Q4(85yu*17ENz<6W z`bEmWX&}(n#p?sV@^W=G-|qaL&_y5auQyTf#I@|g>7WMaGW=; zw^EB>c|j?NMG_xy#QyY!eEOK`UN6)z#afK4$K?~ zZclKJm_W}(lmUhXh6{|O1hF|R(mSJt{;NXgmk_RevdK{s=u9MO9=K;f(%6KM(+A;N gxPN4H(*G9z2JBM^ZabG``Tzg`07*qoM6N<$fX$ihqnrL_t(|oMY)=VPt7!5ohTrU}0Fu($UHCubqYS1Iy0>mJWvJ znk+#4frUXTv7d$E{{&B>*f$AtE2l0x1Twz((d9F|Y#w XV(%;*dnD}x00000NkvXXu0mjf83#uq diff --git a/data/icons/local.png b/data/icons/local.png index 76bb869708e9f78f986a349b7a5a430f012814ec..19027c10ef89a9897724c6eb9956b4cf9814ff0b 100644 GIT binary patch delta 90 zcmV-g0Hyzv0f_;S7zqIb0000oAN}i*AtFXGNklvSuJ_ynVHUMN40HuyF)vjXh3jhEB07*qoM6N<$f^FX(IsgCw delta 100 zcmV-q0Gt1b0h0lc7zqdi0000#51*QmAtF#aNklTyBNwm6zv7i7{0%ASe-D7JX6g)w2QapaB&|uz7X>0000 diff --git a/data/icons/lock.png b/data/icons/lock.png index 868786dfdba4afac03fe36eaaceb78bcecaf0913..318dd599da2cd1dce9d3ca47b13aaf1d28f01e77 100644 GIT binary patch delta 200 zcmV;(05|{q5QqYh7!3pi0001iRAYH7&L%u)v8q}0;`&?cr8E{Sa)~+Tx2C&YyH1v-dY6)5P^68Y59IHjH3kw zrNBD5`c{4W@B5hYfE400004SoVGEf8SLmw2g+=9ZStK5C(*0y2J*S*Y-+;hJ3 zeZTMb{W*u6>FxQ{mfIu%yX#PAAMK6$6DF;lKb?I5nCR{9PjQ3aKHEHZJ#zm_WMMio zQ*3_yAXdH=dH7?bG9Byxynp6g^UTHOgOIJdc&xY39UtA&1#5 zjBz--wLKjJP6Kg}9Tk89E!vJ@fAtpw^MLz~2wwsVO*ju^PZmzFfl(**E$RCn3G0^t zrX7?i<~QJygCf~4l;>YoU8QspJ%z!012+<>Vh-6kYs7VLD5Wut3y)tU$Id5qWOHao zdU6rPx20?zo;B~ey`CENkZp;*nQZ;8=wrHPalMM7Le?)2tx+e@K=lWQXHAUNVF#I? zRlpdEEsn-a0jckiq27?Le+-P3e9SyUFE9!pqnlsrafMf}Mji5ccj%kLn?K;Hm4V_J zuor%hQT(}xy~@`=gBV934u{5>Mw;4AqC~nOkYA;DEsKDBK3(!BQFrfJ8~(;}1d9 zo0ORJ^b}JmBs1D<4D&n|-`!&y$KB<4LgjMUlIOf_d3Qn)XsL27&aSkze3e1AjB6a; zb`*Kggw54l` z)Yo$a-v3+VrPp-7d{0+rNB_yEtdalzmmcp&S)G7fk=5gSyOhGPIhXox_g_VZY&#eZ z+8;tlY4dP65YUJkS?7|W5GQ{i%tIkznj1DTEj4sfgrp1y!eMTQgs`j)j3ArXdPPzQ z0tAD$Z4h9cVl9Uc;1o`7@@tBJq%cLu@S~+=T2!WX*JOZ{mJkL-QzjBR`?8h+kf!zu s3a&BMsy>Bfe$Y=8?~&HVf7Jh*37lHm7{7RIf1l3QmFnr7Ja}~YZyF%$UjP6A diff --git a/data/icons/lock_passive.png b/data/icons/lock_passive.png index 4ec3bdc5f3bb2e8f764ccae516d852ed51889315..7622dd82e479be6dc40e2b02eca0a3c83e563837 100644 GIT binary patch delta 244 zcmVYH7&L%UP*4y>K(KSoK>=g|$<_B>BP(H)I`{tVLP0Qq2yJwp`~UA`dz!P7k|J0q zV};=Rcc-S8g(xX0!35sjUfEHWVgwT?7d*4FqdYCu38p2zb7e*?CdOk2Eis^l`>U8ut}5B zB0hnYN64Qe@fQcq-Mt)$DZPR0&d%<9-^@3;`?Kar(cASb%PKZb>n--Z)z7tAqn(dO zHs`w4JZHzQp0*w=%inL*4=--sa(n*!r(9%frojJJAZN7SZnupH$4;k{4E{2r5eRyv zQn772pU*pv14^&g+k|8F$*WeaR>5^$*Y|x^EC>P~tnExqO!I#_5Qti>CIloD3WfQ6 zzE~{6FzomHX%K2WDW*ms;&`4%;h;+<9FxgpJRZY@j}f0vr_1FsiXs(#G#YUw25sn&xaV>n*KAX)b7Vfw$nLn&XO7dvFh)YHm zUdPb*Mo;u$z==dgP$K|>8f6j&^k6V3m&=ko91g{aH33?DV*otU2*?x^Xhf5^A)dy# z_yF;*Q%hETp_f%_lN<;@$6{z4flgMZ0;T!pkih~GBSD-^&;ijp;Jo&W{afv6J!SDs cflPr+frJ9v2d}O0_T^}G(Kv3_pM%T0FX#>2vj6}9 diff --git a/data/icons/mounted.png b/data/icons/mounted.png index 2274336f8dc21752169c1a979709b0b3226810db..7be710bc9cf0574d7923aac49603c679498c9289 100644 GIT binary patch delta 62 zcmeywc%5;AikxVGPl)UP|Nj|_7#A=wtmNh0rl@$r#^!lu=1zy*niFHS8K+L{j1>4G S(YTBO2s~Z=T-G@yGywqYS{CI1 delta 89 zcmcc4_=$0Xilsq-Pl)UP|Nj|_7#A=wtmNh0rl@$r#^!luCIfEpZ^0bViB8&#mnY^$ U3LKlJ%nDNK>FVdQ&MBb@09a}k;s5{u diff --git a/data/icons/mp3-0.jpg b/data/icons/mp3-0.jpg index 73364958a1d5cf6b040c16b7fa7dc61b047919fc..0bb50cb3804b15f1770070f011ecddf45a6a99f3 100644 GIT binary patch delta 18 Zcmdl!fouK*t_h-zx~;m5TXmVZIsido1_uBD delta 40 ucmbO~fouB&t_h-|4;jQBm<7<_#hv=|r|IDnX;QK(gjajOs$ZwCP0*$Ev0 diff --git a/data/icons/mp3-1.jpg b/data/icons/mp3-1.jpg index e4826fde1d0ceb28a94196cfda5130b5ca0e1159..6c0294f90fff69287f27809352be0cdf9ae58586 100644 GIT binary patch delta 15 XcmZ2|lx^}+wh5w*x?6P_>lOh3H0lN` delta 37 rcmbPylx_7Bm<7<_#hv=|r|IDnX;QE00WW8)$K&!7oh diff --git a/data/icons/mp3-2.jpg b/data/icons/mp3-2.jpg index 079fb16dfcb30f57bbfbb809b6e24728bbad2410..ab15948833efb1eeef81ca1a7eae1ab9225784f9 100644 GIT binary patch delta 15 Wcmdnh$-1bMb%JQ4?p9sKUKao`Oa*`d delta 37 rcmZ3~$-1kPb%LnqLk2O|ip(?y247zWEd~Y#4j^V|6xu4pIKc$~!x{*& diff --git a/data/icons/mp3-3.jpg b/data/icons/mp3-3.jpg index 420aa232494ebfce527973a3f0049cd13d18ca29..eed32fede8e8c20dac46779ac920ae76bab69a2d 100644 GIT binary patch delta 24 gcmZ4YPBm<7<_#hv=|r|IDnX;QK(gju~mqvRfu`35KGGk05w(% A(*OVf diff --git a/data/icons/mp3-4.jpg b/data/icons/mp3-4.jpg index 5de37cf7413c524b61ea7bcc05a20e41e05dc246..86ad3a3726edf91086a912f496e207556df9c310 100644 GIT binary patch delta 18 acmex(p5w%MjtQcTcCB`dTkV)Os{;U0hzDN) delta 59 zcmX?cp5xBm<7<_#hv=|r|IDi-k{{Lg(_jK`52=R1tQ%K9qNo^Eq M6=B>e!n8#l00*@YM*si- diff --git a/data/icons/mp3-5.jpg b/data/icons/mp3-5.jpg index 1abefd2c263947e408c36d3972da15fca4790951..3fa627a06a93d7058d7c0e1b6e3c55ad379152f4 100644 GIT binary patch delta 21 ccmZp9#q;JR&jis%-Bw-3R$Zp8y3E&20AxN01^@s6 delta 43 xcmaF!lBeYr&jeA?hYVt_6`5%a48Fb$S_}*f96-#_DAX#%*eb-dRfzeP2>>1i3jqKC diff --git a/data/icons/mp3-6.jpg b/data/icons/mp3-6.jpg index 711ed95392fd988b1bad27a47d2ded1f6b7fbef6..150aa866d0a3daa3b41176930a4341becdbc9506 100644 GIT binary patch delta 12 UcmX>xoq5A_<_V%3b!VRj03;a&mH+?% delta 34 ocmdlmo%zIc<_V&r4;jQBm<7<_#hv=|r|IDnX8qtLw50I~20;s5{u diff --git a/data/icons/mp3-7.jpg b/data/icons/mp3-7.jpg index 396af3556668962986a936848a3b11ea23cbc786..c2bd4b5ede7ca78aa28400cd66949b9f37b7ba01 100644 GIT binary patch delta 12 Ucmexxo9V`FrU{}Obq}uv04$CMb^rhX delta 34 ocmca{o9V-CrU{~=4;jQBm<7<_#hv=|r|IDnX8qtLOn0L;k=!TIQ{8W)cM4;%Y6@oNIYw?srlIQS%_ z#BWL8yd`@3UqXtQyFkVff0+5m316~mzArm0I^a7~< z%SiP9GWUPdtA8emn`Wr3`LMe4q zm-oT(Z;7~bFzG&NRCN*4^GKVyhQKu8B)p%^6HZAPw6wn^=AMy#;N!P&|NbkfcIuy4 zihl}`k^a&DR0=@)f7JeC3KIZcy?O;e`A2BT03;OTe@pp~Nr3u>mWz;EO8xD7(|9zO z;2ffV3Sp-_Rq%gG%@U+T&R!M)ILQC(BS0nqNC55&fBbm${vF1TukYUj{xkj0I{ar7 z{Kpyo6AAtk5&x48{*xB}g9-kFjs61+|AUJEgNpw@jEW;De+_Bow)V>B3`zP=e?I#8 z_FX~%Ns}7C?~fnypFblJyr%Z}yjS9=eYRv{4T*!tb2dJP&@WBVws}};SfEza8j~D1 z!)9>{9C1|G*ce@_VL@MCQ_c%W@WDj=!2Z=gqa42{PqSwLA;Ar4z#yMkmr%9gK?@q3 za`9B%Mg=cfh(aRl(|p|u1~Y?37r|?k&yoZLfd5jF%1zD$(kE=$?!ZUmu}`6m`f_Z6;K@#8N5nGJ0XcoD`SZvS7< z3z*1+3}yZWVZ7pr*nI2enC#D;5ARdPMW@q!3V-Z;*3-|cO|EiGfY;ea$8r0F)5$tJ z`<9oE^US&kIN^dh8x6{;!nygk8ZXgz+5!n<&&Zr3kC)+NEj>AP%d_e18__D!GhEs~ zsg?(iE_O-iY#$4GI=t)g$qwMiV3w_gOWtN$60Y3VC zG@)JE{EFs{-&oFP@0#;=PS1T9h8STP?$)%aY-FbsKQ#icwgux0elM{te@wg9?w{uk zuj_m*mylOnh%!J85#73NR$CeO?vh1-6S z3{m+h^S^7ehCcOvZ^QJ#`>-6THQoAZC;7nbdXu4Em4-LWbsY4)PCPIO)kXD*d%y8M*7!6u2B zFDZ(ON)XhI#=n5xiCET1GWP6#=!NjS} z`+p|9uf&z+B;$PLUtK7mmbLf|c@iT0p$*%+iUT}aYR&%rj;9X1l1dV)Qx`m@QytSxs`#`#lo&5b4{jEuNsE>;`Cn(Hiv=Gz%+8V3 zGj`gLuBl7fgIj^Oe5cnBu5T|^aU0;Xjn|k4q`58c1f9X}G(+n78i-v*A?A$e?1d*3 zACn0kHrb<^zuKN$#!P(azj?i&u#bodxMLLIqhVw+}w&6@YOjUZ{MNQhXn}yJ}SWR=^79x$>ys&$Qez;e|%k zbEv;@N%GUq31=G#U1oNfj6$i88K(y`oxVS;oAaBJy-vzSavu{?b%B?cTbg89znX}c(HvMzVUizJnM zrN~?wVq^P=Ggga2>Ea)u#%?%;B|FY~%DLMNJgM}KY<}{zJ@!Q39o zNrkX4nYwuWhpjz5y*3_wGw0ZVnBTzf97#94oDJ-%&6`l-cYxz}El~@_mo-jEF)eq}1}>sIzea7IgLNa%WF>9aK8nr_>J;7+=m zes`}iQ<_)^m1m^t|*Ir<0w z0o5-Y>FFBqf&uB3troqz0|%&=&ln!!=fdH+0WkQfVoeT*IND6Az>$oq(@~NF&-8It zFbsJpqJ^fSnJqE_;@F}xuY-t9 zeNb5uF#fRlv5jx$Mssm700WR9K#&ee-bEJEs#05aiVJw#x$ZAFrv0QQCbQ!jgAyHs zpH?g;gXcrhetV8ZqQzCt&In*a>D3x*?A(m;r^!uYelJEnl@{1z5ujD1xHmZBd7Bx803AFp9F!;Z9LeHq~LaP0upb zo^y1Q7Vnng(F4SXYV%2}PNbwu$|=lh`B@B`#Ud)Ff!x|XwL@E| zM)oYZmGZvqbN>_u-8%@A!}u=aq>l+3wg7!t(QA zTTQX97m~c}ViqShp1M|S^UV{)&|y@ChAZqFc1yT#gKVzEaCH~9!-tkw8D!!S(L|L2 zsopZQNt5zO_GNUB!(byyZVbA~GJS9}pE5W7=TD#hM==O_g1dbFp_QLS#?l{w6N3@; zy>T;pxbYUMcf8hjy%$KsKcxK5!DBQzimK-mqN_jI=(AmH$ymHyVG+NJ9NBH6dT%Bj zh+Sh?na6_dhqcM1KXFIhvSUMuHUF?~VGLo^&^udt9~RB6%$!NsG;ce!93GAAs_+6p zRI5z+3(RC>mJ0{A)w*#nI2YO{Xz>-{CIT7-A0L6olrtOsdjoVY}SI&nP55ChoueM78+00{5z;~V_ z^6e9wzkCtW>WD^A&k(1`C-_EWd%Lx!U1h)_3g(i;DISrPVad!6;w*c__F+ni#)8v^>!8%R^} zV)q?weAn1S!twUSe3kL*MuqN0MojitlIHUKOkga+8a zOjAn=X~oPyqfF9ics9zCG(r@{v(Wx5g8BqIF zpUtpl3deYc;9(f0=k2*(b01o&vV=YOls9#af0(fekj8XRpV4SZmZko!&%dHsDW)TB z583e^+V7~oI4R`s>zAK<<7}sprC@Vl+OF28r@$fVS}RD55HP%2tf_WLsU=D|Hu>XN zo@eVp)%Wd;I;Y~29{2GrRc2$Y4fPULzkTN;M&{=9AbWi3XhwFewaB-b*X_vfQ_YpT z^7d`342bCOv-rJz7OjEKlE0B;yhe1Vc{~6I( zl6w+BSU~!n8~u5YzUofB6QQ7O(QT|{+H8r#+Xi1uG$Cs%!_nKi6@yq#AeHe0g9}fH z02!i{v?Bm+2!tZnmv|M{)Aizdb<$* zZ$VO&yH{e`2o+w#)RO#WeRfynPfu_^&}mycDRt>=|C!Ztv9F+mdaM#byp0ix%XD}O z9YeBB@uunXs0!8F%;Oh8!hSoYU4Wm6413kI`n2Lo`@F(CHkS)J=%JEr=6qePgM}Bf z=Quy=3f6+B_^hzTR_9{Ky>(_b;?>4j1^e0^v+6gDlB<7w#nZ<+Nbj%V@dv9)VK8#fCxdx zX}~n&DC9g@Gy#S@BocMUtQaZyGZZ$s8M}bhsJJeCluH;VjB2s9Mfi8TD&5}q7e9Q~(?0kXs zUC;LKxwNykmitrxnDaIZf8HKQ;NXioS16)$FGpKV0EfZ^!rlAD#D0Z6PG9s=K$Iz~90TjVYmJW*WwIoJTy0m4;fq}Jy zf)v@>FT#TYe*S(HvakNatj6Ep+mFr=Bb!hr=xD2&3;DF(>EInx#`K#8 zfd8Ddl6!tRV0uQ5wP_xz+5nax@TX?WX#SsPm!%Ff;SwAXf_ZGN25(HYv*vPtXFO~!%8rZZ4$gfw* zuj&sy2wRFpZqw(|?G5pSsY?$W&?#yIdH|r@?{`Y4CBO$SyxYVtd+d{X6Bo{-uQauMU4Hp=4bK6WR-XO z1N+bKY!;QqpgLYo7A7>A_$j%6TVR5T{I==rhi8&c`RnkJ_%I-@DgR#;RLK=~aIH0(*ka5NlCBy7RT2aaRf_^r+H+l=Gh7l1V(J+6CrCofTX-8j*OjMK#n;A5>Q zQ=34=;4$!2I_y!i(4yIHZ;Z!{4Yl0-j4-xXcXs+4r4t-^%psvV_s}tRgGgupZjs`E zCo?lLg`QFpj@qlaT#QKe(R(0@Yx)}dCA99=Z3$>#i+(=Du~>pO9@SEOZCKf?VN9pG z&vE``&*ktTufR{xbAPVZcQI1Mj%mfsA`ydn2+e59nO_VzLoS?EH`T{!YZITdT(saH z1q&z)3)cLgmC>Htk zsR!>rvi>(fDYR5Aw?IB!6(ZJ797;#v?B`Q5>++QWs#kS$l(k5+MhE7D?5BI>gwo@i zlk9^$WVsU>+IFOt`yoYh!=`=4G_ z8k!3-lARib+V8~2&c%_Q7)F)pG{4?yye)&2hpvBvnQM=2@7OF?e5y&1#rG||HL9eT z6$x`mN3Dj&Zx4uzW8<`R#hs$Px`G76=#l5X04Pph0I20o-8w1630zwZY=}5f5w;bu z-&4(5obWA&vOmn0q~t)M25)L{yl}ujx<)k3tC4qiL<}goRH~=0N*UjhT0w>mb7OlB z9(8d>5u_}S?^ZSeGqoc!UI5U@Q|l6HrLKW??bS0xQ2hS3CfOV`{J^o9JVs4QgypH( zUy!m)B}Vem+DsdfU`~cCQla7^>TaFflK!hkhE;{l4^KLHnZ12I>uuhwr;9Z39Z@AO z?l^)P`^Vm)EZQ9l>l8U8@5{=1Sz%nmuSZGhygu)y-;wXhuS8rB9!h&&40CrlK4jyf z3cBT1MG*q&@<`N5B!St&X?;ZfVJePRkM;*r-E++ecdq$9x0Ijm?p+9dt@A8TnvX17 zotkYU>%$-W1SQKIi2;^A{p;7bIVTuyKb}saBOy*Kzn}%`b=9q?x~4W%0kyU9j;y+?Im~ z1U0P6+=6#JSEW?HXSu8L$T~2-adJSdT45#^{We^$ZI@x{wUai%XX#-`^O|5-I=pzr zbQ%cH$0>#Wm`yZb{H37<*tI{EAQlal(|X@b|Mt(7RY1OR;cpqMV^{hUP@2QR--rB=hVh&A zANjvzAG2OjeM`#hp|gq-`z}_L_uD7nzQD#17nb7yO=*$v78A+30;wBn~_W0M>Hvrt>7^ z$IGjQ;_M=+_y!x0#%(x<4)^ca_VZc-Pj57m`FDvNB7hF5dgEQsIqR+9MsZ7!4}W{O zJCAJ^G$!LsQ;~m`49TJ@A~f7KkZrHr5}C?oCi#A#CGT^m$bNcRdA?Y7-I(`)PTZ&S z0>kVp!CFsQ^@P2lFq7jEBqJgCl56n6Tfy##ca*1iaJ4Fa{z`y~Yhj3}@H?bDjl%jK7I`{Isf_5Dr)mDf@1)&u&p*o++Uhb~A{J3ZMJG>D zmuwq5;82{IiwpEX$d^}AYm!E0pbdzDiOOY@XYb(DF+oVh|u9txlL)DUid2?vT5DY=%-!V6z-zluW&nG-gUC`z7sK*7TT znhT%F(KxY&hQ<4)z%2~9X(pcjSl@ehG9y~prPKXq@T0$5=ZGts+S&|JF!?3I2(NMS zlYb>v4yvUY=|qKy&3fBX$zoCU<897@6q2^t9KT0x?$0wPL)UQ4g{+G#qD5ZsY#U`E zgVOD_YE+JVN=pt)U{`V5b>afM35!>C! zq;(%_bcuvx1ttZGP}-S?qZaT;HMYUR1oON5!;*{D?H-j$N`b-v)k|pg`t8kjktweD zz_Su=>9JHlSeJK}JhOgQXRM_;**@SW_I~THT~cQ}+l##_Hc+<%OL@r((awN^4kgAe z*H`$Fb6bR9h8WS+hYq?3?_@8i^(Y9qC=t;rmrTK*JLBX**iL=U$_2fm_s|u)so6$s zzlK!L53tmXe&Kc_A#C@bcR%caT@|rIlO06dGpFeq2o%n0#H9zYv-rHsRzKRTT0%R3_NzvhGul7;VmGM6{g`<=z@b`~SW zVhW?QKue+tm7*iahC@uoQPF2v4D}E>0{46~ipT>)v|d%rIDEIzkTq7stQY^7b3wf# z;ydRLqkyx}z2cz(_2l^-^NkPBmU;UEmg3AdAg3;Dv6i1CEkxbhAKh6kH{@IP>BcEC z%`+o;phsd0ySmG%F5kW^ArI~J;mVS}0OACV8QJ{_B2M@0-dVc8>5Ea>u^OBd6a6%C z+4cb18}`o5ZC%c`XG3b+G>(Pbv3OI}gM?H3tlujuQmcNE<_Lm={LXK}(R+??h@~u6GJ-L>@-o^#!@H)31iTE5fq@h(0 z<-He;k4dem^&%52$j*&{!hG{*=lbC*+izb0<;b()c<9rp?gBU+3Qh~#5wRN6BXXQQ zhKtGP=?@iIi$>e1wcK)YnsRi`K56)827kT@yTS%k7#4Y-)`;9SB;GU|);+chdKo^> zPi~z)`mwmxi|C6EpHw#;;LFV*Xgn)nX$K!4n)mYjsvb;28;<860_HgH6&nlDZw#^S z&i)I~QZ=v8l{T6}nai}xS8Dmj*~96ER($Wu!5>ODZ>)yDdaxzu9@>20JfZN58fCi> zT=qY0CpP53XMyrwKBXecM)qF-Ne(o+=-LMxDwu(B2E=7t8X!h{o{aQ`KoaDwPlo|~ z6-W1l@inknu4Ctk4I^S8?qF|_sIOmUl8^^z+ft=sww9bub#|3q17qLzx6$#9;JLnp zvga{8;JILO%sK7vI>K;P?rVT7cP+YO`{Y>ra(`s?Y>-ay+FW|i?5fd7RC*VmC4-2; z=)MJ5l1fG1*q|o}9~da`GqHBfDQ9EbMW}mKzl9Egmo{@fW^5C-Yg20J@V19FDFdtd zwjA8)hvG}~onPO!3dcng(-2fiM#dshVz@hcX; z;r)IOvFI>k^?8oAOVWgLhR4@d3O_c3ZakQ;YV;@Bzn19}q$8VY+{^xRmQcP>;_uUZ z^AUFjZ{NaFwr;ZkjYZK8o)Bv)rN4X8lfOhi-;-f{a&AORxr_ysI94xp?$@ z>I}S*61Uq0(TD)ZbQVZ;q^2qIyLl`(6S zrJQn>GWt$qo-E%5tu5#p7#T9X(bteVsOPh%Twk}ZGAO_|Gzn>A&UaHFZ$DOO3FBu$ zZC~p7R^Pou;uk1gzgOuui{I_ZG7AMo`H>sF030R+(t3))4AUvUA-SRjP?RT~`HrO@ zJDvKQY6dY>_0N%G8{P;Pp!8@g7;o!Y!P8o5|Idt9q&<@) zMxAZ_+#gHnGs^Jwp*@|4yb@fKf!L5G@~cFRDlgHa2oS&EJsFkg6Q>u@7b_~A@N1Q# ze%Vk=u+hHN_Pedeq+P-c9#`i-2JKxQmb|-}5$55%h*x_f;rPWTzgQt(xoz^DIO%5C zd1_|NWE&{~&2GWV>h=znneAVymSlISs@vVfQwQ$qsFQg&o)vzFwXQQHUk*e-=E060pX9Ot@gB2ifB&+=iVYXlurre@v9OI=LjhJTx_mCGlr=Xk6=(tlG&J| zJ@wo`pS7|yP2+oPqz5oE19`BxPNx?>pZ139j#;ye8=sf3VU@dmbZ&1+xs&>NT29y#e!;1p7+jR7nSx&@lp2B2vjpab}DdRG72vG+66olyKx?{0eNw=r$9iZ4? zEELdN>*K2S7)|>?I8dm zq{{fl3f;B#-rD2R!ueHZYR}P?igmp6UQYSCg%`QC=3JMYYY`oq@NelZ>Rxu$X!Ucw zo5L4CVJ5ynCRJcKqs=PgzJs|2nSHy=G9@0uD@-tP&sk?aY?mSb)3DWmI>kMjJf+wv zgfHCWnZ~$hH&F#!YsK&Ib0H;-IH*g1xT5m9U^@8R#)v^jU82+$8h^p-gJ+tx4y~b+ z;F622VBrt#&r$&G8{b@|h529yQO3KTJev>`kO16uD%=Yb$m|Cg<7Y11Dj$F77EDbq za(q^=PrE59=4-2`8oi!^(S5!6OEV;Gc?`6w9JmQAg$X=ysZGb6oeEYJO$eeo7^&o) zD;(wJoIv)pK_W~>vYSSVy{;af@H7g(#zvn`uyKw4AGaDmV zxD4->Nx-Yjbs;I}*Lj?uj* zj>Xb2-!e{3J3-rg&*db^%Gm9@@_6vf+@EDLMeGbV1HAP<9>bvb?Y=XfDz!#={&Rkp z*Sk?0r-07j1K$Nn<<#RS&ur07yK~}u)~i>_wF}g zJim9bfJ@mgfC$)LyOp|&bSya_{yH-03&GLna>9ngCOy>B2HCoLiG(ZjqV(wWUD>^K zplBoR3joGIXW46VuV8b}y7*%ScFZ6*D%!n4f$wyvwA$rXtF7MRXx+PhDz4;W>$s54 zI>S|!X#CuzhR7{^54#ZTzBq>aXnTFLR`zk9C>*=Cv^jwP;;^+9BGpa$^OIavy?0*! zimJZ!Pqw9!YoOk6dDx%LEOFr9CoRj1{k6)@7%loh~ahj~e32d?K0ehb=#dydYT`sW7Nh8jY9+<9T=t zCq&Ym6@i0(0u53ut0|P4#JqK_PmYUK(SZV`ZfHDT; zAZ>_)3;qir)mGw5`6ES8)l<}?;tQaOjBvlFnFe|wy|GPij>7u(ItCuQNP&LYzqXnH zpnQ1a&s|T%U`RqP4=E|IznrQS79wjg#Q#FX9h&5`F&UL3!SZob@0?jH&R%Lw9Nk&F z-)4Yaf0;%`B}Zw7*GxD(d=4Z-5egziUTN^2i~3hKDd20cT=Fo;VkKTw`Yy+qG>Yqe z7v{NyC@d*P#b)Y(+zKX`{YJh!~8vYtPE5FFR@ahhOrZaqUKgM0TUP+_)$osV&g@f)3;5I^y=R&&z?pWEXsjRATh;c%0u*RQGA~55}Hq8)& zZf}kwE;uM8tJj0E?bmrJMgks5G`@9%Xjs#&`7s}kA={_zf*aMr-1wr&3!7|#=>MGA z*pekAT?ziHIS-K`XVz@fraiV&^@Jc@;E9ewLKjEzpSS4wWDqs+ftazl5jn>r`a12x zyCDFwsUn^FPBcHxmAeUa-Jbr07fLD)WmugqxkAME9D9AN%gC!(uzMy?Zh$TATBiPO zyff+OKr9snm^Lb$wnyxZa^8Ja`Fo>LeC&P+5Bb<@Z~iY%)OVVo>bXyOMk^^YA!^lh zdS&}%Lw4>%8h7?n(!>H_`97O49^*6P>ddeWHIM#;_+*NzkyPip*K>`xmU(7k$tig= z{>n#Hp62W^|3ag5CIz`qZ^(r_=ue)?E)g?vdfXpPeVkL#dE3Rdd231+$^@ z{%vSsVMG7f;6b6>n#LgB!dZU+P+O#uh>3S(qb$VdW61CBOVs zh`#x+0=D7Q47(XeGWM406%ms;RRvka06lQsbd3 zpB%<kb5w8cN>!F z$jZAB0NSd|&Mh(Gl(=7Kl)Tyos?3Stb(wP_t&KU8B_U22lb*IJM8{o(=&uf1DD+NQ zMXjUu52u|D)n}ctIH+CI3xAr#P+Luo4 z!`q5W#=H-7PzkxQ`iQO^$CTmy_eF#)wC5s}*&g~M^>Q{lXM}3eOlBn<)tVwiZ+ed~ zRe$KW_d!Z1y6@iQw@j#*p+XBoR}?O=br;hXBf{IDJM;+(LP8S}o`s z<~_fNQqacivbmu3-%r@3_edhtNk#n_0v%`Wu|qUCu0|w*+Fuj zi8i;iL2a%wZqgV7+`M__q3aw&M5!-y60^$XoN)a1nVM|XC4Q;!U_G8FF%zssx&m3vAKPH6W&)riQc zme-k1&oK|t)=vtC4`Kgc4~p3wtVjsQ_g4~kE^zIWs5)*f_!&*6e4M55zBtAcU5<|4 z_6!`X>DGLwy^!^z`QV~YNh~cNZMQ-?Ir(zaK##*b z2_d{1UeCPTRPS!OT~^!#)@O9uYV8ktVAWab6Jzu$O-@TxQ&UzaY%(TIZS8#0QN=l% zk)H8GvYzT}4pU9V4R*)hW( zoKpKIl@SP|$bp`nE}knVQ9?cCR`e6mwdolRWvPrB-5<*ZG*db%Xc0a*MwrzTiaR`P zcaB`isUv0(r{a>(hQX5{-w)o8lv*;Y`jf#fUEiq}-M98?z|n*>W+`dS;K*%=lxX}{ zqe!3Wyze_H7L#RJpKB_tUdQ-wz9kNgLbn>dHMX3tB{r9!dhRotgNaT>eA10_n8ozWwt3Ysz7(knFS`XM9d zT`dX417dDDvt;w(Q(vT=c91}D((q%o*of(wmKz7RuvO|-{Pa!*@3du(`M*@B!!0Yq z>WxCMrM-x58r)gob0r>Bm88$i3GbM-m`O?fXc41pXh4T2MM3m!QtRC0+pN($$PO7J zz^QpVoe%-yk13rBD7JB!!?N=$=UEe>7&gLl6`gMg6m~w;foZ9)yickepBh3=jgul} zi9?V$TE|gJ%MQ;n^w2-*8JWS|8%CRXDmIShvdrBUZY^^z+dLdpes1uAB7}=b()7~4 zI53XD3^y9i-jHF|x~RB z5VT@Le>JKn&T}@JpBp~llh-NJg|i`Y{+_xug;Ye=@)uDk^YJP9f4)3&?K)j7SS`4* ziev}Z#w6t)FZ2xOqAJ22;XkrNx>|50Z2dOS^kmmxE4tZk4YDA=JgT|i(Xzull<3F zSo@;$3CuPRVT`h$>Hh>oFz7M3CEP~ z3Dm=8>^8-#a(y7V9a74ZKmO=c8yx0TTUEtt(Ke2hjZe9YX;x8n#yO+e`O&HBvy#P| zs)Sl|^Lbhumd}seWs{7Ga|cV&+9DfV;)VGHbirqgFz_)&H<_TVrjB4xU$gGs0oCZc z@)1h$0Adz=Cs2p1o^e4qCjiEamJx}^```T|xu_laXZ0(hQMYt=ff`WSy zg9A3MccQS~eVlmSTik~3+=v%I|Dm~5!@-F1dUPj|IpdbLlHkfB)*y1xbR`II7JM8i zH%m-(c0MLC)6qNkIFy{WisKnE#VM#}XJAxsjz-Q>J>;^^y&<4`9Q3BKrf|c7xNiNj zMw90ZsQ=qS#5=|?cFcP0IH~tRq~odrmpKz1D2FMb0%=dV{Q6^pVeQlWw6(Pry7?`e zC}rOhQ$-&0t~6rI&HC6ax47UfP#@f%83acw{1vk1l2lc@Mp|2+{R0bE{S%z22c*qu zdKdkR(=!b|PgEiC@AQ!Ce$Ls_RGNz-GKw5iDr<+m`-%_$O~JHqV)(?g7X0snKfXIk z7FUR@xZ;?qY8sUyyUtuH?0i*x2!txJ#Kic<cE#_Z`n+->SJ($>|MvBMDm15_T6__D8r{p+S@UN^h+VB< z$+qZ@6TYTQ2HFj6mOVOUsFuPA(t96QNx0umEMTwz{$j+e#CA2Cyc?e`)-Ag`3Aadw zQlCWxAIB&j(+1>=Q0h2ccIss`NFGAuxE1!8jHYYya*I)r_F6=Jq(`g~rh|VD2|v$Y zE6jNA$1X2MkQoZtFu<~)pR$GNqV+!*>5GKg2e+Y$S&IjRDK3$>#E`p%3wSN^p;{_K zo4$$GNv=Q8FsMrPDr`QMYKB)bD0Vs(7fw;*`f6<nXm{`my!=CzMEMw}nDW`m4B)zH3d0KKY#rNZX>wd|Xu&mn+?mmA|NZC%RGW z1z?o`i6ujVjZ%td0C~FM^}dQ9N*O*jP4KXr3&Y8-UmNlrY zRjn4=Eg~{jq*a3WE@9H&<`LG;tIkv|4N z<}>$B6^+L^x0YY-oEjGOt%EbStIA7JuoLk%$HDLJf z668%ySazMJIzJmz*RU^EHh@HUa~$)6-T4_i+m5#|XYNw9Xy(SMK14lSO)Z#$YfFCM zR2P&%so<)u5nbl)$9N8=M?BxFE~^%?mqyN$TNr%Fo>qoM!+3vG^-_V_@=#L`&~VqBJREN zE{~cG6c+9KWd{$KJwNTc)chbFCu*+&NnwmwAY=6z^zLnrTL65vy%&hLtqyxHg-swu z5Ps4k#&?aVn1#_TVsP7g1ls_?stI~?jrLgre~WFu*c=Pmj?z%Mmq1lvq{tV*jYftf zJ!7)u_Qd&FPWqBo&=rTtra5x>RrCOK#4^~+9k@{{Fj8z075`Q83@h1A?eU@(Z4+IL zxG;ay+)$Dy%CB@xr7d?>r|I~7PC=2;)-(;>bZm(XRTJ*;&2S|9Y<*s3r)l=SM^zon z9H|S5Arq>k^mGh(oI${$fV!?Rk#OWVxg1@*s-p*1UTw~)nf5y=CXN%ODjs~pgu42q zjXq;^K5gn>vxM!1Fnt6f24a{Zd%{RVTWPF7ZpwUPSP$D48u_y$_nDvFn7go^TV)f; z+j4iydj*O##h!hL>{nHfTd34)=Rm2>bLIl*l0T() z^emaXk!`6DMi|HSxjgKeq3`R$gZLzd&(FLX^=um zhng^azq2k1Ibk1uD=ZL^X6C?Cay+TCT%vb6zBxkoXBy>dc$s|Zn?7~~dVAa75|B$j znE|DLLhUVOR3JFvu#5ycylmevFF3>yl50YtCSYrODxSx(aQpiVtH3Z&??#TLd~=)| z?7~lD%Z|Rkin0K2*=S5ApTir%qw=1w^@+1BHd+PbJQNEJ+E6A z_$LA!UjV6{>8EEac~|3-ann6_A6wmk&j+GSTXTvCJ|VM|K@R6=7iRyW@}V?5Jh81p zQ>jX5drT+B2G$&;GNUwQTtkfr=uBvz1`XFM` z(7N)=aZ!oq@4+7QB-V34Plfy_=#Q8VA;i0*#M@Mx=tDky`Eq7`eZG5RPyPZ0IdpG; zVS#OP#F{a5up^ahq_e4J~A(YAQPuY8By>Jdur(I-mlt9``oyF%tVlmZK5HEFEa)g37`+hZM-q4!o z7QqFG=It*ZZsG{$rp!aDZ)G*J_04t_)q&;yKEy5C=PY*9E6BN0!Y zsc`Z<2y6YFDQwyPaGR9vZdKau{OXFefw`$=H)O6^(QIyaG-GOC+I=JXz~HP^0Vvu6 z?`buc`%10I-dn*)3v$;~s`)@N4!L`GRXyh9@tF^=gy>CmuAH0Dkq=6OYx{3cAcN|&#D@bmcvYHd>L|lH~K6k#+SB>FXufJ+Gg87r?MffR|r>jgI z+ql`jM@mw!fdURIuUN)6`FcJS=-cdfCPMvpC+m%w4844u?m{w0GFY?1JZaM4Ph?AL za)vAhwsUVA#E^W@<4-~BF5!Q2dOG(Hbe?Mt4wThphe!B4h*sk}3HWf}>#@neZq;x_ zs)_sBf4SJvh6Cg~!M>g)dRuvY)=RQ>~ISv5!Rv zR|*Lwk!AO}WfAF7_#Z`I`@PCPfI1GW7Af7^HhT}5v_e{S>Zxg=o{XXetEuHudes-jHDM4!Dm1De2qk)dzdiy=jY{!!6w3V zGfUOS4=wE2Dt6*a%^Y8hGaO693OXshV0b3&*82$YwYu?+76s=_Q?&)-acUKVCV;8h znS|j$k;AzmbHQ_s8bY_JLFmFbck`L5Kgy>(6LwyICbE1-OGTqw)&{+G@HLljefr(f zZRJ`vzSN&V=ryoV$ACR_%Ka7C;}=*pL#RGAA)`qI-d(8*zLkTtY91(mTIjK3=TGhs zbTcjPa_R`vNe(3KcT)RvK-cFKbC(<2T-zM7V6rZ~*@9QG0DNdNYgvJb6cu zwbdHc(F5y)07ZQ1pqWf87CA%9_mq*HZN|g_82@{ZtkJTP^6~zZ;FDohs|O!WdwkhR zzA{$x*1!B{Ja zF~QA2V+M9~Y%ZOhAQwN*1Xd4q*TgLWtXTuh<#o7)rt~PD?7@O2hO^M&Rx_Lqla2@y ziP9qGPZZG}wcgTM)(i!>#c}PF&2qZE5|v0pe2?+@+zn>J`5H@PTAoKQ1U=Quu;lu= zYhTJRj1zK1v|>1J`?=Fm=Nw6#IugGL)=2nBJkmIg&YKRX5=nYT`xhl?fBu6TFPNo( zu>GCqziXG1Td!qZ>!YWB#H}OUm5CqARgtdvY7dT76+0!bBiHLcU&xvT@yKGVvA7z4 zbQ`OlpC9oNUBFKHVa^)S>?K$7)9rih1KA1sRb2B@XtUP~K=-S^kVss8K6j>}H2|tq z3u2rm`D?eqkORF9|2=+KWKZHTuaKAJHZz&X~*@TcdY|l4tCnW(uLZR4Ojo*C@gY>AR7z|Z|kFi ze45sz9&MUatTgah6$CQX+ErdT4&CGNXN7`f<@6dh=S;?Wk(4!Me{I zEYX{u-QK*8iGmM_P66;_B#T_HoF%<3?>s2_MfR>qfJ*h>a~ayqeE-v`RF$Y#2hj&qOn3idGqa+is^>>hhof@4J6f??4{N zd5}iwMY32Gi%d&vsJBR``+1VSaX?M9=qD6?jn=kkxuY+xKzy@lXdt(uXYQeocsahU zSVUpf2GXZcr&myd{K~1SQex>HQ(9!LWe1QePh$_v_P55AC3oBV+S%~=FnfPibIhGX zuT|JUd7#8Ys6rDw0l8Jy6Stn^({l9ElruaPmrN)eQ0`W2K<{ENtVw(U;AM-V78>jB zzV;=0-6)R^YE4?@4Om;wsPXBtg%!O3rf;+Svn6V-e^et~y@MR+E3L3xSZ@Y!A$!)B zwwm5u8Q$FlGx{^Bmf#N!V#N|k7~eA}+*1JyYBL6a2c#Jl9#-+QI`zD@SSftxG?MZt z0XpOVI+27ShbZGhMF;mOY6t#2Q`BK%MLbfD=Rd zIFH)O_4m4{VsbBZoY8Z}6RoC!dmqYR?0`=b9Gxx?+kTLQtIu3(ZH9j5nxp=xVQ4`7 zf3bC*|8RZZ+m}cpA&3Z~CqYE-z2+l&i#p60ZHO|;=$#;X3xXIe+UUKF(R(M1(R(*~ z?{fP+yB~c2fxXY`taH}hYwh=S?W6F^P={0IU-!_clG`sB619FW^MzF=nP^HHUS$0G z_u8(k^&Y4X0qc76kU4^ZLr7_&Q{kLhD(+;xW3S}2#wV)L?51;02k2KlACqcOT-&7h z{H;y3W<~S`b<9%!_GMA01P49GMUar=`B`GrLwBkz*BZD#erx)7jHiYwm})DyT_Jt? zx39^!ThYC~POo2;+6HNIw%V(3k3~AX@-s;#NQ5_JhHF2(zU_8CGDYb;q;A3fHQLA- zbE5t%@O?pH*kIHjmnT1K%HE3U>CT&{V{#O;vM3=%>gRFpH1s$%J+uv9jD!b#6BReP zL2n&s#r>X3=2}xiW0oyewr~uCCE4FKDg%s6qeNVH!TS_>BVt(AJfANIj3`BLoFWJ} zxRJQw=ylWuu&~g}1(aV&!Z!SD*4;$Wh{^5s8WQl*w{THz?y>jWZr~|M zOa9Pxq(s2`0xTi}LYyYMQopRKA5N&>dUOKP_r54K)GO1Bl4H}@H~0LI0|L=yEN{Sn zj6>qGRzEV@c~Uq*j{E1Y8T_5!U`XZ#Sj<;8)CCD}!ui%7H*NVy*o;kVZI_G>A^iXN zk~B0a>O&8T5uwJxkUsByIqkJ8>#Y_i>mBfhIr;CXf=HXk!Vh{}VE1>NQ~X*V-I;Hx zgA%pv6BH6=z>YA7?Sw!>;U6D1Hj?rRPqM?<45!BqzHUWf99D$CIdJk|E2w)&uXt7d z5W9?A2ZqxGP5p%U9M?RAF+9#mIJuW@XCg1y9wg6rJi8U0(BR-Gc!JCQ#IyMIRkxa& zoqo5skU^K%N~jg%u%cuUZsU>8Fy~|Ntx%s~F{~ih&Rz~*cXsU4_D&h)x`V5Qluop^ zL$vCN#u?kM9b}9Ki+GuXuGLwWR@G&55#={y^n$z!%s#`gM{l6pV(lT{UMH;4n7B!* zT%J3w2|+~z$B`_5cSIa{kI6Mw<|NgVzO{7Nfz?Lp9HQ1c`1baz*yt&9xV|xqK{5?E zWQx}qeXC>O{UuZzdJzgg?*N&25pm6Oj%pEw`#$7j1~xD++`Or!S4v%CDlkM@_0x~( zNlL29vigcFJ~C@=ENw@07Uly~PN8Fu2L~eE&FxBvyF>~W+NXQFMalZyh}XR_u>^BK zP0>P(vIGikpOvtoZ?(M|c1-{J*^Ao*sQEgKdb78Xlg#>>1FFWd?nL;Nnr2_uLooHx zc4B~NIv$A|tXOm?Z zV8%^(SE&C<(XI8U4xYh8Li>U)NP#0Zq(Ik5PJTm~2eXfx5uL*JxqR+@@`;RVDT3Me z>(cTm>p3gk&{a92wtj(u6|3q=l5?j_YL7~slcDtFT(qzL@A=gd2ee!A9rU`N8F(qP*Vh1g7{1}00*p;uG=O{1>A%ZBJ;S?gRO&|m>ZMQljy7OOL~|$mEoh!RRRlA0dDB-B1g0=fL-y4>c! z(K@>qN1(v?=F%B@zw95IdxFzq^&Q>=qO?uq$$wI!;bzZf1u(k;DFSh7o4DHn4aAjd z6&Rr+GHu{L9Ni9BBL#VvBG1d8LLCDlz&>-6$srMzo~gWJyTq*OK?d3L&Nn(Fpc+yz z2Z(#J4MguCrhw&z5%+R**|i+bhUb<#1hZcFUl*2P`ZC_Rjv)0ZNQB9dKQd8OmW>e-Ee>>AsrH$avo0~+E(HQ1 zdD|j=Z+^WK`swkilxR1>E?wUwICDG>X%Z*UL&%)jtwUQ>Rc94V*r6pEQdVc3@}(!` zmqeUm45z%Eq^!A}tT3C)+2YOpR*j4L`|T#ntm>J|QClQhdZ1zF-R7fqPgmhpv4epG zwDzqTVmS&GbFF!kfDFdD8lrA!wx^-NsW;r4iI2GD&ks-0fnA+qY=xbx{@a>?c}6~# z5%gtnR>OhG%P8NnaXU@uuKNu#44n#*4yY=!fo?}1fTNy`+b86|HXC4tVq0a16w-xzA#$o?Tk4;2|dNUv)y z2$0!B_7p8!XT#rq=hQAd^1p($Su*!L$Url1?C^nznKN*+5>;)wKBX4D<3AjRI+>IA zW-}|3)0aifuDYZWoKd4oRN){H>pEil7sM~ zs^PkN==@U^0o^zxazID@(Q9QK#`s7(>ApGkl%QMNaxCh_Q&s0DOSMq%lJ$g;%mK9< zXT2!;SN1f|#>s4#gJcIZt-c{^eqHDf#*%FDj6(03jy|?^Uboa4UK)K&Y_{NP+`bw# z%MjvA!W-$3gwEuVU$11BlvN4mnY#*c4sH=&bClNUw&)zTpIrFZdCV)&2P4mfAJSDV zdC*>m(^vw@jC+b{dYo>$7R*26#bF=)Ag9jQMU#m|b(dh$IKSu2EIGlpRnC6V3f=qB zR0_zb9U*;B8cE5vzS;O8FaF5xT24d9d@t>K{5{sLv>}OObmJdRwdU(Idzj}xoNQFJ z)SJ^XlKf8Mpp{=Zg+OC&Ss_YZE6VH!}|eJbjVrmb2E%v2*ISOL@b~N7gX@C(L zlBp%g27c>$XAo_20u9d(Sam?)#{Fp|#HHvKZ;krUC`DN}o{6V1^87Sx|7bg}3)WZ!}6 z+(e>+m*veuRHZFAUWIz)Nj(WrXx+h>cxDG_dqYqf6i_M=vsvA~zpplG_r!9^_cCiE_&K>{=0tV-5ZYt=ut8*V*p^&YSF<#&gD zr90M0tYf}5NIR>AqYNdft38||uBR&KXx^{72sGPKK0^bHibdO_Hc6TTJ~JG8zFx@2mILNa z&!EqP|I9MG_ge5wT}PJvDa{w|>IRN>ZwfB*F7zv@YGq^XDntX8-Ozi?t9edWQ^W{> z{2^KsTcquv{O2f<7Qr%`WM&V zsEQHv#LP%#$N0RIX2*7t3z*bqk8(!cAI5FHPp4yG8~YusAw%!kDt^q{EEBo}S+jy1 zcl$vmx|?VG*1hD%?hgGOD2V-(h(enBXg_A>=9gpA(plev0Q~$&~bjp zlT&+l-e%o>+5~wxybI{m;51$zS z2hZ|9Tonn`nE|XGa-a+{$Hdsq^=!XBO~n^>u04lFO35nC#c6QUi?UwxLBEOdLm1to5^52z z#}wv^-leBFK5skG-CpW;z2eO8ZCB_n%-o>d4*FIcf|J(tUw>i2g)lxwNA9_>)%K`M zJ5Xeul(_VVL~>iNF4fi}tNtO@t={2j{2q`!Q*>+JG59cfgweRB`X<)@L~nlh=XY2Y z7A3w0@e_!d{Co14!0p5^$VtR3%E~#H^GR$_2)IB{jK-rR*R}Si0)u%dn4{;{-cLZD z!LVzThDY5AZgd1r(`bnsh<|E&g?c`ausi04di+9IzwVhp zSZ1+ccv9?}5T3PN{Oo36OxNL6G3z&FXtDVh59rixfS?gil6Ltq`4=(IjL%xps+cP}l59W~$f~Bi!_P_MdBQWaq(zqguH0b86AO#MqEt7EHu=#(MLPtg|OPYW2Rd z)kp2k#G)~5z~W(=0=@aXtyDGr7;~0u>j-*c?yKT|IH^q}tO8zD?}VgJex7HT;^SX9 zJ?7Ts;7oz2w=v9!9~Y#V=6~}-)y2R=%m=QeoMd(Et0U(C!e?(aGjvzeCf?3a=P)mq z_zkYh$sWH?9LJ0KT69DT-tj9x{BWa6sa&Wqtkw@IESDmAZyJqUSP`ofy8RXJgW|r` zwsor=5K4J|mCaR=)fK;szEdf|L{Xl6y{j;_(9kZwuMFy#%EYi+b`<1VonW&sgGGG| zTjW5??B~3JKsoI?-GnGVB`bwF1@vy?{m;<{^4fZN|3PB*s{8&_sjKQnB?|N9DuH+= zrcW=~BNsN4*&^}Fw3&JLqt#UjIas|g?k3^VgLA79UL2hXuxj8iENzsv&+br;He#7B zwhv>15EWYDCM?C5Q|fP(x(1DAR-`K@bea#-0!MHp#+A+($MpetbOQx&fCDGGomIczt&|yH!JKxx;qtUD7o%lpv6IKk7SL~y@u&iMu*2n2QMqyX%b4BUZ$G8^1Qijq} z23RL4^M9^B|m-4WuNc;+%DoSM%|?Y%PMDk4?a4L$VDUR zSX%&4g(3!X#KcIIenB+VXhp(e^MOmGQPC_dbS3O6s)a~yy1hbK*I*a-)WB`6J!yc{ zbIa9Qld}>)@v7UGp|*cjZesNN#qx>RW{_PSI^6wcGbZw&<-2~*OXs@N!prGzc)LG; zZdzoXg0+>@H8Wf-pc-H?YN3ER4%-#?GK$bX#FMuxu=&jnd!|X0qwsdY3PkTi*!O4M zqu+71xNBVF!eZsArJ-+Isk)=SKe8Zf5{%;(X}!=h7XhAn{7otne3G=a4QUm|U8|T~ zsD$XrOX9a4cp`azyxmDt3-a z%YUtG1Cd*o|JZ|KV!aWQq6;BU;-Ks;!?zNQwWk+iSs8QuJ zXEHFdN6T5TrX5w62i6`}%){FcwPGzOK_SO2CtJy&9!G#~e z(b*91Lp0qj*yG8!BfCDt(NSJ2mxxgh+I{vPdEB4W>Zl2$Z>3HOiwKJCR4Kld580fX zgXWM=XYvr3R#=sui)^zAr`|RWY`D{=IS$m&P*R&%{wOS)_%^9Kio(N*)hcc9Gt?h% zqXD4kx}Ty9{8T~)_o&f8%T2hoT{03@HtutE>^2pAtsUgyiULIrx2L0Nk}us(@B_RE z3}4{pjass*j}hmXy)-wELp+8NyUK)}zXc@)dw;7r(hpDu$E`mVp*$%3z+rOEw$9$w z-(xT#uW*)Wt1BV98(yc{Sf2QuTm)7%qMmvX^NJj6`$y%OG%l;#+?y}nu$tA|&rb4O zzc8a!sn*$X3~|Ir?L|wDcVhM~qZlf?!KE+NKV#RPVFy5es+%ARKHL^XFP^%{i%O)b z(D5gIvwAi>=0?q$|9kGS!6Qkic*9}g+~MZzj#<#c%lL;rEQ@3aN>e;w_$&=K1qs%u zZ4l$51PEU+@^S_Ky0v9p^c;Ib6%ejuohT9M-VJeh;>C7`8UQJ&``|8&d>#ce)QPNq z6cU8lM*eF!Gg^% z^?dAwp|0aYBavRw1`pbX(}dc4ttti9%xZflH#>P1h=}HKvAy@=!5tOr#4q6V$**%v zyn0Pc^HxL}f6lE2`LorBYzE2*G=MB0ShB{ea%4emA<}DUc@1eHqaCFbDp*Nct2=eI zExW{UV0Ysyuinp6AF4SkcD-z~3ta}}0L=q1D^8nt%Q=@g0CS;9sQ2;uKODbBne_fS zzyPU@#;kkTA9=~NMn1qyO3M_d-^)Gwc<_qDhR$_IPs7vhe2|L(nOp+O;#Zf02?^=e zeF(O`zo&cQ}K@4y@!EH!vGz_d%u-fh?(Isk^>yERrU}dH~%wl(qmzxXYi$tA_!!n+>&WuPt(6< z+bND4(&{K>nByR1PX3i(K17#6O(VsPioGSR-*$s9&|~#W^u-t5Fj7qjzi7PB>oSv7 zog3NV8L%H>Gb_^eA{W=I-_0|FtME8YO&wm~1U>aTSaU7%(9NlNKo6f_7YJNamSwqE z3ga&9f6!nwN%%rfL@4#kEbb?+SO4RmbrE<8KziJBFOFm6mwZXT`+oKzLIY7f#rd7* z&@_Q|X2MzOHU`P3EysEQ5-|ZwHKvp1O$&1ltC6$*&-1;+>HnP;juaV^8@yyzSufBW z@J(F_4qPRy_*D~$NI0$|%B=6CI`oz%qP|TeDQh6x2Hltyj=8u{sVyCZW#JCt#(-zh zTLoJU}P39pwVEzHK>as)mg&0`>aS<@iE`ZDJ&Ljr+k9kM;Y)~*c zw4C}tcU(aGjl%VxopY%p%(bq}=%Sb*X9V_G-)^cR*(4oHLRF^jXK~B6^~exNU)j_> zl&0D>bRw0yh`-X6<>iK-aR*G*&ytF@a?lWlc%Pj4$NRr|a$mrZX z9f9ejqnevn@jUMI_)PbHw(dlKJ?SCx1c=1+tjZA%_I=opc)63~RbW(-^)}rYm2xQg zUryEVtmIZaac*_I5eEC;+NjCO7(Dk;X)LmYe9M~gNp0x_HMPH_vF#Z_qKFXsV`bg_ zJy6I+%XD60Lf4nzkgvKcQEVu*EAL>~&Ue%-Rfdgr3H48 z_@oFqW;pljqmFGdB7~3K`m_zbUO*)&0q{Fq&+tvPj=^3=hhW#3{{)%m!4H+O)t!Ai zd}~h>i_yn1S>G%TU0Ur_z@d)?hu3jsydJjC-gm0czpaxu(n`zlXoMYad|IhDLPCK( z#5iH=VN--%!Ay)|$TaCJj4~a*@q#eBxo3ljMQhjvouo=QZEV6vlUONA{ zUeX}cDy~p-2Q*!}Es%jHJa|xrk(Ilij0u0RW6Q%E&BGJXlD8;A#HSo^((M3eRV;|i zNPA_7LvapbkM&%ecTYO^sOaugGfTu(s=G4otjy`Zm0F&N|7N`0$L}~rlxEgV;;RaE zils-_cee3@gR79E~BKoA&w-w(_Q+{(kE!@2@DR^1>5Rpo>rtin!A2~z4 z+v{gs7A@(>kn-}dK)_$wo7c<3496nVu<4FBs8PH7xGiUSE~8`lT{jzzITje-u!Q!7 zPCu2`R_K{QSe~E4m&Ae;jaesu1&u)1Afj@!eomUXbQ!?V`@}IR%JhAql8gojuC^qQCnzgRI)()pmB=qEjBP zu%87(pn;_Frz90EwZEoGxMh4q0LH8x?^+IO=D|Ah&lin0@07TSqsb#zW2|S@@m**M z=TPU7a z4^J+8vQ%}+C0EK33mm^UKjTScXIl4^{B*=n)p&aGo-L?D)y<5)Vp6lAq4ysSsVnFo zPQYT0jL{)Hcrk}_#uVdG@wHrrOjc};@g*%^{H?T+BB!Tk@BvA9ZFG7qLxtH<&FTpO z09!g>AToZtpP`~T)_-td1!Q=4TV9*^jSjS+LO+*P^dUE2*;9n8rpLA@GI>)%wb!pO;h;>V_OP;P2zN|2xrtU&};;^3d7+}3a)WOp|&4_jy z8z=0|MG7&{=~HtEx$kCsW|l_P*-=*_ULAycxhP9B%)0DCWI`AlC7{#)aJG9y)|iSY zjGS_jFYLzVEBP@xu64_2aO3V{pXE32%e+vpX&&cJWMoY$DDxGbauzgN;b$HRMEx3~ z^R9>u@?MIeLPDk|20mxo+2oInsd&J#yNMz_9Vy1B%C4f~>$pVG2-|Laq}ih(Z}lgy z06i8)2~n{uUsFxCu`v*;H?x|$F0m)WMc?O(E@}2}RITxSp!N}mos1teM>i%RmxT@T z+juKdFR`-3q{2Rqe|StP)!s2R=e>iR7|DI^o!ZUkoS?S7P8gqL#ka<~*_h^sDxi*SU$Tzk6T=^Dcw(T)wa;PP-xs zp>;HIFH873quUHk3>_D)k;-Y^0{zsiohRbAG zCuTfa9M~+jWchF|hB1|XvVvyX#UqJV@<+|`D#yF)sBusk{N>7swd6?5OAJsh@9S*l zt&Z!_VzkEU;bzAOfdy>wG;QlD6Z{yigSqej?OJsXwP#`7MNJ&r3Z*4G?24sC{Mzv~XtsF|pDY8d}N! zKYCLC-!(`tpF|dD{zuyqUgrJ2M?&IP@_P<3I|@{eN0fa%6doh?u$Pq=;Gu?Wl>PWb zOA1~h5BJ@$dnSIV?4!f}>$Ycr-~&8TJS~A{oRbz#EY1o zTK5_jucg^+?vy0G+pFy0B7f)jyc_Uk-dT@ByjV|X^NYfg2ZVWwOSkxklQ6$i)QMW) zP_6DGFLWU1B|vfER94#RP9J#u(CfDb4XVg9^m2Vhg6Z_hOZ#-slS8*fzF^MJ5qyMQJ0`-p0@e0_O|D}U|jE1lex zl10_(#-^+Ok{ftMAEYlH119NH&vd_!ML!&S*zjPrO)u1TeVa0PE9&>yEv1Mg64EQ@ zKb~d=i=6S|Q^a(BDbH$Rsm6)cD&|7hZ)VP?TZiGY zitH+rYbvCj{WMOnFW>HJSi1^<^rq2c_8qkcPS;P=K@xp{Ky z+a-9XHY$usSN>}b+#l68+xbF$H8*Arh7dB6^CP3A8v$$F%62>u4#&QO*~^n<+kBE| zd0p=2vt@mzwv+tP4?A~>Xl*|<6`l((aolzcRci)RLq5p!KAyp=zR|Z(xerf-p2_S! zes*!pg4nens`+or{rKoXCHgXvv9Xp5MNeqsmxFvTA{S=WhY~sdb=n|fu+tv770{r$ zs#kek9vQaEaNDNdsUtbW>n+lQGE>X*Z{7Hq5tkP}$F^xJ!PKmT3fY}nHgSq6e<9(- zaOn}4_V?L7il8#&#bue>c>6`pZro_+=;2(E=~`IxAEfbZQd+Dn*E&!jMw~SE`?MFM zgOJAG@C_^c2p`fqG77xsZ+$*H;74CgLxK9n-lbUq<^1OD(GKtFWhca)Vj{%(^U^O$ z*|yJIM1-S$_AZl2E^tiQ?gALGlET(vs|yTeE{ujGTBd?ASxeCZuVW;leEp4LS*!^Z zI!^b43S1Gv=_tyAWYYTe*N?gJbPh=Dj*ZT6Q&cXVn>_yX8=V#+`wMuWHDKXg2Z~>| zRjyY#7)Zs7?w1j0P8nrP6S5Uj&bvRYuNEnmw28_4zg8g`WOTV}Te;{$pmcz}D)~Xj zv!yYGGy$mEn{R5*Np4gVhs7#5NyukYPHyO^8dfG={ANixr)Hv72u|dSyfp9W>M3Bu zZ^BY1=9I}82f6{uhtD(&!SM3S+DEU!2w2i3*&#iSJPof&CDv-6#C z06ER_6v1veOa15JZQH6%zT!Y@ff5EA(7tNG`vAE&DZ!aUPflLp!8@XM5;7w2dz_m| zQY9W-kC;+sehWzD@K#+D;taBbA8%MHBGW`xI}x? z*P8uA;VejQ!rHTnY{q!>BOePQUsBam@zjiDD{2B|Kq#vzO}% zCIKSYbst;?=jdH=Rb?GS=}wk|Gi$;@GBL!Ws$TQ(|C!lJ9l7Fpfi@v%n3#}bEVQOHinhq!pI?fg? zZtjqqtKXxSjW(z`)mY0p_7Qc$##g9s%Z5-SJa z>z*+I--bCuZF0)&3;FWPY5*#4XMn_eWcK5!(&by$zSkFy0l(6&%zomY4*M~+&cW_J zxJ8VgOe4+hU1+%n2)lL%qiH2cmZ|~7pU&vXkRhMx3d&I6wSwPnKigLsLzsO~Pj^=j z>nw&W6tdxiA!NrFlD`LL0_6Z|R(lV%WBtHQb;(A59&I*z#UR9o*600pm_B;)spf=% zu-Ei~nyjL6h3vE3xK~uHu&dAAYZ(HiOQS++4Ba=F?&2PhSQr#I$B&DC#M+YuijUB^ z@I{c;j*qF^6i?jcm%;zr`j{C^omQ#Z=ES|>mCxZ*my`BqeCmVy2_#g{w_q7_q1Jw+ zBL}sN?v|@#*dUJ?*Z$B4;|z^`l5%{%eQY=+td}IqsTJ)uk2kjqB$_^d0b||Ok`q@Z zf>ly+PM{v=M_(mq*WYbC#@j$DiG^}dFMY}|_&c{o#=CTRFj_XwJ_~T#QpK|zrUo=V z@_0r14~OiBiJ{eHa>q^Udd%0+*M1(ix!$v68jTi|r>rD=FM4PHa=Nv#-Y4^0R&8Qq zPYZ#B%)XJ8Vl~ZKLbkoz@Fl11gfbU5vpt?dnZgHjc?No2>k0TicWFaG*kQ!Zd8eZ? zN`KfZCneza2Q%6Knot6ZlCny>$3oio3-*irOz8}mH~leir~i&tgX==`_qr4R;h5WB zRH>)>qwSwIo(5NHdZr9@G?PE=_K7m$JPT% zv)@AM6v^hrC9bjT^u(>m+jDG){;u|i<2b)ZeKYe$H3y!JkCVd2MR!~d@xnLWN>8FW zq2Asb9XMQLwO3(e14;MH+Mp^N{tw5;D~+Bsrl|{A^~c%ot#fVt2YhIR<<7Nec)6P< z|79eN#d-o9E+4=XAR4%Y+|h6i92MQ0yBMOL*S*vom1;=N8x%Ia(}`Z4nS-g#^j~{5 zsV)o+;?x;@=Z!gTxSJHeG%v9uL7)3=-loX#iYcBwOc^~eKDM}R1>bq|rbd7PLZ&qU zl+SFRyiSRjiTI2b^ij-XvC4FvU(?aI^XbK(ZCjW&kXl*KO<*s6_|fTU$i$vyxK!*@ z>=Bk&g5|*gC`#+WC-&EL z+mD(!stcLP`qkzfxW|9+*4ah7UH4vJmmmqU|I)~sUPJxAexY8+hsEpn{OxyPU8U$Y zst@v%9PsEXI|&)n5>DJTr9GpLx~6`vW08M2H@WC+KCpoIQd87egffR<&q(aMHye`n z;sM;Hu0`_1R{Q^OJf=&X`D-{uIP!|1R0po>*7*DFF5aCWWRQa;Ewv6V6Fsl4n8Plp z)AOBdi|))0P{=YpDRz<2(YVsRBlsT82Cc4gQBSPKIbvKU!4pRX#20 z=a#Y#STe&~GtkNO2YHpA-QVYkC+}#Mq{Qf*GmirL%!<$nH8V=9n3iuI&WxAl%|-%0 zw$q6n%7T-es5!L(%EqqLI_grc9)6u2{;4kWP~{d9;XMlzXKi>^XtlEs-$%=9{t}_0 z27QMCb+Dd&HKu0b{1wggr+Lzf)p-AwK2KjdRoK<8R?OUnS_4ylSKhfOBql9aIJqP2 z)3)vy#mmd0m#*pjhy8C^Gak|rjsCi%$8?7udoh>V zdFx;JgPf-3l}~N%Dv{5ZFFbiYoQGFIT1D1KK>i14NzHg2xOgf`AV0k_7?&RGW|4u z7DNoQh0U0+4n4tN`{`wEC&uL&wKaP6S?qt~QmjelL7oU9Fs=Itfjh z!B;H4RT-@#v+diwfviQDT6ez2DarG=Yix3HV4>Z zja}NL(0f^!4+mWHnIxJINV^wDF&J8-tv#DeHKOTCU}054{pT{u#{X1G-06PdFGp zCX=+J$GJ%#HS_(<>&P#gAnpY7LptqvcIzzyGJw<7j=+;_$3ALC6X*;bdR*9y1KgQD zD9*bwPHdMorhA>7%FPN1m1pxwo%6Lupu4u1VCGslelk&^`cVx4ke#%nwm_*Qk-wAkt!bf8N6_`gYTl+Dn3fC@85_Sw!{fhCPP7M_NveX5EGCKw zs3sD30i;#3f4Rqw`%sJ_l%}Z@k-{DUF;SI5M3yj#&jiiQJdOrQU8+86R>l*H0`@A) z3)J`VwtUWTQ4TG60eIbEea%buwj(SmUiJtr4=uD@ubtms+r$aJ@CUgkOh*K#0t4i* z9L%4!_^!vh-bNey4GS66JWw5SVBL)Wdqns?s)JKG<+H)@Wm90V`dZ!M%l-q@;;uz8 z%FDa=K-iig-_luAU{8WTP5W;%WPFDXeFtAqy-^>@-+PsDz1Mir>c1l0cO6vW?slzc zJkD;;G3@_KphUb;wNLS4!M#Ey`4PfB?`$z~8ETVFFaTjhirkBPDN6>jD$^pcRk(mwys zt3{u&o6_OoYuNW`*CQpvDfor$n#@Kde#HcpO0p_%_ila0FE5XIy2~Ep14|gzD8yhWu4Q|MtJ)_=f{9fx@Njuo#Uzs*Rue zb%h6I9A#SR+CD_!rb9%!vBD3!rvF;Gyea%|dyr4ApH8{VKvtx1-d&O;n3s-mxJwn% zziVPW$tV&@<8T#@TW#~FWQuf>NC?jhCgUdU--L{FPLz$Rctx91U$c8IcU;bAU|#z? zJ_xpEDaelgII8pa^=BrHp*(2zNUPEg)dC&==9xa7yDn=pZ7}jaPl{=hCcm;FPQ)&2 z2sn3NqF-cl*0Ay#pg9h^%9AR*O-L^av0WtbRbpn{1KKol{-Qf|jB*KXTD#AWiK`ky z6agJgnOt(!iKK^3Zxc$hL)aEWTYGp4erQ9ar0&xtv*1{gZD+{kwtSAB; zkA%^rG(Tl4#G5sFyX+q(#Sodd6RS2v5j5VELX$;&bsVzJ{5>xkUcdqa__QX*HHV7q zHE>i_2T#6C66F@-JZgc@QN@S4-jFqRGv?K4bj}HWy3(77!NFy#+G~{MGw6G}Hyd;kw{Bs30m5`aBX&>aG?&_4p^laPg(ringNl;Oh22oD{qF;W zZ}%7OGTu#Pz)w$L71+`jO^gp33myv#e)xW$XW<&XxHFHRiJHhWafk6@kK5KI!e2u8 zA?>$3jR!{#^B^<0TPm{Qk}G<67!#9ibCI8y_~N6%3)pa%R?~XkyQLT=h3Q5K0yog?m7+e$9ND%|~e3JT%?{oA1o;?un#>wqm0X*}cVJYwq~k8|@1x_6An083`H zlh{UbyWO{n7n1U!GJxs^%FaoZo}aK{A+}g21){m@BAYrq^8H;lu(^>WOpOAWTavYs6c@wx{7F!&eUoTiWTC zwB8fm4{+xEqvHJ=Kis1gua7xd^BCo} zCa5@%Bqg6*y$HntjJE`N^Wi#TDyN=mnWMs&UM=7*>1|z zJ)!UnSiQ*DR(7aW@hL+qM@Vmmj@fR)bR4Y^nPlGh*B6|Q{F2WZDM^SQ%ft7)9L&X4 z7xA_zT;g2hmFw5lx*%h_W)qhng>J|1xG)^*M_Z+&3tqMKvS9;WX6)}8aGc*m08yHI zQ`3TCo@FAMyFSWdZvZlkP1qhsB+oQVH^Q9%qVGonC;JckK+Hn_tW}neO-bTc1?Kn7 z1iI&udjhiUHwLw!H?iYJxmH%}BCjm2O0gB|BJM7nh}TuhaFwCUp&4eCL(#vNAO<#j zPOE*(Rgrb!sfLYawE(j7;X%d$Ah?%jND!@_2w-Pzo* z_m8;U)V-}Llo-vMSI;wzA)uw^B6|E{z3sE4`c3^<774f^Et~gPjYj3vgS22oEbygx z{f1=3miiO^AiQsOBz`Jfr=wMRU=z-$cnJR<1H-iGJltJE9_*N*hkcuJ0j{QGc>NL& z>C7+be%lSuzkvTWv4ZCtG~>RKmF!{+pbnLIhjvEaVoT;K8uS zHq?V~t}$am*qc{m^pEy?W~dtSGxeR{bn#`z<^=Z(LGQw=sFpKmJWAtNgOlPzXIMS0 zJ!6$&h-V6j9s}QD@1(bt=mN|1OEYAMq!4*(P@?EWP!;7eGv|dfJLRhG)@~7LgxW11ZR@P;Un_zeP}6P&US4U&Uj|)Ygwt% zgB@(OxzdJs+9}^TY)A<9Z>Ce}n`2Oo+UiMljR%YlM~f~e;&Pi}MV$p_Nq)WO+|aL) zmF!>&NUpntm8hR``xPF0W#rW>^1eS!%?#CLCMQHaCwkl^ufFtVy@lXd;?Cj=??>Cm zs6RcpR0fJC39c>HR~OVoIWwHOoK(&HCk3z9a!}X!o7(18XiWF`znbSwiIMM{L>Aa6 zqVVQF=){4On^?T$pkA&|+_uwV@KS?fXKz3|aM)jLzO~eF*ARPyMVStOaO%-z-Kn1P z<1n`XetmMzG12bDS$Qp<5;F2@{i8{0b2De!TKe*$3jV;GIA;UX*;Z%^<&#gV&E{8| z{p(53yOK_+*$0x&XwmAkY-&0y)Ci21uCs@3Z-v^ z_dOa99!vl6MS3UBqjd~4Ds|+Q^Y`A=S!?*8U$cl9NGJpNH640%MoH!uu+QlmS9JCx zs?RI)T3xy-{cGu30c1!ISC1<*`&`6?Sz=3a<4&W&mo zvuDMWp<~-{?taUS=sh!?52H1Q{&YvwEq~C)Ck}D_@}9dPZIc@BX6ZAj4>eE0QqOCi zderXFN_j2^U8VyBGo!hkJn4`lzrhVMv#-Yup2{NhPHtlG@O2TZ7WnS*|5={trU$Iz z`ajXps#)`*%f>cX_YN0ed!^8KqdziZI4csPX-jwi;pFnK_rq7!U64jLY8_GLcLkId1$@*=<4lG(wXAT0)qs0ZZzp zqRQ$T&|9*|0E@KuP(Hp{2Hay!?3R}_47)h+F*Xy!!*?V(%f%i;zuqRIyYTub z;2#c4#5F}(vQwz>-H0zuSd9V#tVOnzJ9K;|d%S8XN5 z+D(4ShFvs$T`fr%bv11`bAj=|!sD|NiS4?V=N4-ltd6xWxxX~$Yc3gTPEj5Gw30ja zDp*)n!L@7cHGODxzWGB^5AMv|{W7@#aL zD*KhHXAWlaNO7NSmjt+WEWEOk{mzw_a_*Bmx4w>6{;lkgd9m3FQ-Q|q$n{(|Y2ik) zq=-vk;swGW(}2mOAbWM)UZbt!-ko4HdXARp#vF3W(Bgip2g1_wTEAVRRhs+C4D0zQ z+DRj46-hlT(F1|ZF`RW=y%!#M*J5BdEi*}Q0|2>$1pNxDqV0REp_H=Ypi4m8^<2c2 zPvN;M%cuI5_`07*v~PQ*hLYwT-c$Ed_(>kcVs+HlO*H=Xob%IoI~#%Owdw7NQ!zdM zfvyB?mVuHE?FFFqZDZ)DwG|kyVZ*8AkTJmg@U|2+5md$>6pfLma9VP> zUs3SCOX`{3J;Kc#Rj2;hNK8_L{$QzXdUIUpVkFVJ@~x4#aYc5_to9B${tJrE4@~;i zW}nymqpBQ2$n>0czK42A6DEwZMu)JC!5IZ|-yXk5uMYUvbDHxBsna*-w`!|#4P%|= z=Hnklk6OE2YuyT49<|Zt;Yi(`UubtQ$Dc1%wzMZ~9vf?iM+0wh+bdnMrmy`=!SeX9 zxKn<47 z+%)x?ss8}1vR?>uapTHHe}e7nXsP=YCa^Q@T)(U_^v|OCz9m%{^W=h0{@3T|dYF^8 z)y*gVKSHq)7l3-95fB7KKoJoDL_`4*5ClX(5fK4kbS}q50B!~d+$zTJ)5S`fGU1Rn z{wuvp(VTDGr*k}%Bw(q7*Qybfp$&Ty9T+}}Q=5Z=r>`8)M(X7Xa@7Ol4;%IKQxJ@+ z5u%m!{{Xwcx|Bu^6>$n%;%koMb#8BRr6Cz!cU|YgcgmjXd<~D)LeOJ)+bY}k8YpF< z9tBZJOh$Tptb-BB)2gMOo8rkEdMl~>lyTW$k{q>D%ShJ^mO%POxE%CUvs=qfTap&a ze^Vy|9iH4A++#ldRRp$x4tfvZvX|1hbl=@deLmZ?Eu&*zr5ruchSgdflY#TXw@qpp zI}H66c_kZN*J2eMw&uI5aD3L$xXHt2zo@fksN2n3Dl9;fLqS^}YfEr;$Eu;4(l9_` z>5b-2qgmBh1GeP~)jpgDAh2W2Z7FSF5({yUE!DbvV{(2K)f|S5Wm&4~bi+5xapSmF znw=)nPrwNCTWX@z4sg(Y2v+KgOMiED(;SEHVCppt`aUvAEgwa0sL`xB!w1oA>WeVR z!&SZZk_q@n%r2rNyt{4x=TW8UGoUA4C~2{&2&d8`?H|RW}%)4ie}dVKbaOr?~}Bt7jters)Z&DSl{x_Okea(5L|I|Q)ck?OvEU#?H6W1jaH zJ;x=)?!6upg$Ti4Bx8NDocR$IUCGk7oz5?L+?O1cYIR=D-BZm|h=%?O+bwS^4)_b` zZODylsTI?{#Z>iN&g!vhiqjojfDU4I7*|*#tGiV)o{9-7C3(OMX)AE)J_yj*qK3NZ zn#%V8?&ZVbkI?y*^LY;3=_u9NdY*!vc(HDM{f%j-G>p|$4ydY#x19U|!>Xy5NH7!n ztbCU0sj{`_W&j63HUN7n8Eg$7vz6`BiA{B=No?|`mt>{Po{c*F9TDpo`Gq0+E)&*2 zqTBDXHKzrjsSmQoKV%POXN8L{^`NsYU({&p)`p%KT~SI4!+#S8P!=Nmu$H(Mk+ury zkGdNZgPPot;IUm0Ajv7i~b)|PV7$p-{AHz_@197-*Z)I zYQE;B%>Ct?(pO=b9OpBx&3@V?N6LNpKEmApF#D9M?sE4`S1a(VI%K z_>t@` zd8*hgJC0$K>ZUc_e@LwdC_}p~@zXw}jEn_yrJ`#GMOhsyV;vOC1~i_4FHVdY*Yi)S zIcIy9L{rEc3w>8gc2?k6yjI1kuW;s`H)fg_jhsh`9!pU0hllg=8&*LPY5N2&4w?QK z2dB+<{+fcC$w37jI|ML7(AG3;F@@2su4KO>g8O-XMEaX9(JN`uRP0n_f(?Sm5^vU*HDql!Nbt})lrAKHk(G{ZUBhFgiLu557}1OkwpZN;rKQ(8 zo|4x}((@z7Iq(C=D+-pi^AOhjPI1Fq;!5fM6WHM3_YWu3mlid*YSs}09r%DFVi!J5 zj;M6*`xUM{^6S{U@qEyJwwAbiq8GMWA&WXA| zo|NF^^;XI%!wB;wDymDNaOynOx;b1uLgkElX^`Jtmr9EM^gV(s5T( zxBz92LF*XZUZ2D`*F7l7Kgil#D(J248^}n^XB(e2587DQWVNT{wQUy>FY|%T1Wq62 zS23(^#h|{9GCqsnuK3uLqMpAddGp7d9-A}b=w$>wjd!?HTSr49Kz%ev{UK||aRyo@ zI!cNkfukg}sA+iTWCs&aRgYE>Lg&ATV`DWNr>4t868jTyj?te@VYf-Rri^<9it$2v zEhD6ef+n)Iu=2)6#0>7EqT@c1mPYrcwifj{j34H;R}}TjHMXI2^rlAJ;%He%U9hL4Gi?;xuWl-Obt4gmyzoBJ=S=X?BzS`sd zQmSItfNuIZS?#*5k`}u=VNpv>5IcaSa{7_9{SQwNDO^rtnWxORDs&p|-t1;qF#iCF zs-2P2v#f0-_>iPcM@c9o#?U>JmLqG}$Z55WzCr_Q8I$I4t}*ILcjK0!hy6=meb-22 zC%PFvDy_EqcC!JXdW8-V4_=0U9-(JJBT4@NGN_ADcn1UXTCSql!gANSr_kX^irYAo zEvk?K2zVwDax+89uJTzu9P~PW-U#VlHjK|QRkuj)}}g!T5*{pc>L5<`pTc22ffVq z1y{h|pxZX=SFZKLJLkvAX}-}MR4~)SrzmD1yAGVR^&SAKn~xMNHd-o~9bXx!V+mwA z_?&UF=SZt+HKwd}M9waB^5m1y0#}Edks75MYwIa9)WpYf-IH31IuC#}veScem^%&G zne$uY`fXlLTURt*jgW<@^z8I@8#O%~Ge?%U;=_jL#a$!42RLFzpJKgvRn4wsdD52T z+BS7J5HAfQlIKu83-T3s;ziY?5>FiC{`M9-_=T(@uiHG}l^@<;;{4W5i2DULZ2`nt z9N=cP+Ujxt02Yy$`HU$u>Z>hTCT%ZnW1MnbOU({`O&~3DE)8(}ML_GAVILRftKdi2 zbF*jB-|S3yG1FYANdExYYg_>OlBU(aOI&K=t##8-(cGfPElVnSj@>dAu!`sg;rpqk z>7O0dd<}LdotxH+i5EI(TFPC0Rsg^at)=G&-FtG?x2;#*Qrxv=vRX25>7$Ffm7~lR zqa(Pu55%T@yph#o@R3hz{*iwcU7us2DD)&u0$V2-`;tIEX0HLv4*3p>{{TTn#Jh7# z>2)TT)I%8fU)?#w!>L@dYIEa*=v3$~Q$>Qwb=) z6d|dMROt9>U~bNR4P#y%>;~#p&xn_+E14x`jJ_8B(Sn@6A2rWZy2kB9M{#nhh>zWs z!}+V#FBtW876cdSu+iY>k``YE{Sy7rWq;;v>Q2x$2ffCk*L9S`Tsi13*%;8_?dqmz^z}lN_rl5a{k)Zzo1y_l# zsvo&3?fU-4C&fN6zV$@veJf$RT`uQn9R)LhV~;{zzeT^e7j@LNJUzAzWlZR=g})n4 z<)g!!*9#M~_Md$NaW0&<5$6*_Pw-g<2WqP!lbWMV@*fvQ{{Z(~m(_fiENkico7Xzm zc^g_ATPqq|8;tm=BYHL+lxFKp?#-X@UneJLc{P?P#*L~JqtsD`H;SW2FJ~gdTGDK46Q%SR>Msc ztStr2K1Xn_vTTd$-itU!OR6;oXFlFKItU}v+JcU&OLA=+Yhf%6K1Fs;n%8z6T}aA{ zMbetKCyav>fb6s#>xFhLQ2}Mn%R^q*XX26(&Go=50h6;lb{fC6=?m3PS^xtd!4sjmu}ZQX5r%+D=FzUeG4!-;XIQO z?TjC)&Ggr6n*~hFrPNdvnsTh{=GDYQLG&Sbws5QC*1bu64?-E$OQgC#slPuZ>FK#v z3l6!lYFJw>w&_n+$8I~h0YAlG+Tih!K^}|BoFxaTEgjL6WVaT2h>E4cA|MEefFdFQ zh=>9rAS_Ijvu_1IIRL3ML|Aj+kv!*=@BEi@Tk4KMBu)=5Zg=XXs--4K&TvPC8A_$GC^QHLWjB@YNHFzK&`U6Df^@57oE?tsP6q&oP|!v z(gC zx7f+YMVe|5M}f+>&29wjvNy&aI&P_Dr`w{|GiakmD^WwrPIgoi(Sg@+vbu^u@woKL zwa-dh(YpoH8JNmG#x*q%-}$NusW9V^30XYU`RFiwl?2d$PDV%YT?%Z)#Kxwh0FnZr zsGtNA2L4MUnh+d%`>Gk*IZ4N-s_Bf`lZlMU1|5U8d^{C2)U9)J(}J&6Q3BFN30B!3 zjEoGfn9F8TS}e5`+Y$f;P{{}bISTPo8IoZfw$CU!ePg(Fsv~TKles(YrOk3R6}jryt^odlMd%X!3+AHwm_s&>^K zw_g$QbE-}j^l18D3Nl>LGAeqEk^EKC3Bdy^5r(e>Z-sEDxDk!lw~NGLw3|3>$9>U| z$pb0|9061_*y4WUAfy*2kT+Fru4{)??Z1Y}TbFZ-`IYu9F4N_^hZW;&Pj^=wE6>{4 zak}^IOvmC24}it)jXomM*2@zC__9?@cDUo{08^h>!Q+)F*A_R)N~ad09PN=gl+9}N zhPNu;Ez=pn0Z`Ok!%yPL@(Pw_(NgGIG+8q5ElXH1s3ev3v&T&cE|Npa8akYuD*Z2_ z^&YyaY&NTWvPR>BGn>lB`jgRa-66nQ9VvLXwyvn%Z?ZTM6kpj!e~BS+D{ahaL25qb zrz-K56tX<>xTaj5~)2--`DJp$hJ+9OsvjkCVi=vYQaeDKE~V0Thy z)E2G=>9`w91a*3%raZc7FyRi~1I=muQK{})Ul?l_Rq0cwPvV&Wosc}$Z^KYSm_OAcdezlSuVA2uAYdK z1hO7y7LN?|SM4`DxrIcz?@vH{Jy%?5>mv)+O_%TpV@z;apWKUn8Gqlnxrb~}yoR;YZ=s;4gVUP4a$9kT4Z8%grVl^2U#4ru3j z-0rTf4QntnlBlWNLk2nz6+FCdN#6?6?ok*=6sZ|krYlo6WN0<$`^m4uUz9oIZzv}V~)t*;Z&Y1@ma=Q)=6b z7*2b)$XwI%J1(7|vrDRmRG(t+MaWS)=EYS2N<8(^-KuL&ul*hqmjh zAHwL#!H6G{!8oPC%9~A{+Lp#0OLDjVvEAQSv~|ez3nxZAbttZ;@X4{gb~HV@f@lvU z)NhT=*!(-?UOTA6H-b;1+}Z}+L&aS<%d`-+m8|$GV*~bv+4-x>xK)mkXXL$@WY@~H zam~w_rjAh7l-2e0=AMp?;e_SRBXYI-^u5L-@zXuOCEW7xv=8pH<_K2$juSFWlTVTU zRp4iEtX?5!i)^0HM<0k!9vq4%5jw?K&+Z-cQXg%pkMTnP0HW1#Xjp zY>bk~oZrcHV(>U)$!=+)EaHmA(P^5N-C>$Wf+T)D9Ij@`S5C~fc^ZGrR>hBnH8i_1 z(l;IeC@Q#TUp#!Kc>p6DFRYDKLOMs0EQcqz*wL5WTX(fqm?^GP0L_mpyi}NYrK&0M z%XXI@pdaM6jduZi*E#2$xbKpzm0Sp(GI>kAu)Y^BhH+aim6co5+idr0%feAnlI!^x zv|MJ@497idWgp^=zwD=f(>?Lujg-=QmSg#=jQkO)lk!}T6OUKX zNx#(DS;ME-NRB=;TtOY>9XtK9Kbop%8YColmgb-G$%ST@g|~KpbV&A8lJM^D7xx7G zl&gObSLpu8czim3##mJ|5TxocTV3!})Lx0TD7Lj$5wm!7a z`YBGgRJW`zA0=hS_?$fS{>+ENF=g6cx;iGGT-hc7Hs?>DSK(Zs)K>XGW;U98kpmTS{{Z4E>F~Ie^Ac*dk2d@TPxYIjkh7aR9n|JD0(vcZLd%RG7u85d zy2f>X5UzH*w$sqnxvp>HcE@$-W@XofSBr0BlALK@K1ds)XoRgkKI+SSWEPukMQr#C zjk({%_$@IH7quKX%|j&r06bu-ZAZkLwx^(N9Z8L`1Ck?dGw!}}e~EEja^z2&)1m0Y zgxsXLpF+)FS0(D}Ebb>VIGioX!)+A}CA?MCFc-LFWNsFiwHMP=GEPo#)0`Ext$a+Y zWi)V#024xqj@ z#CNf{d626cd%Ff@-O)Z+Sd1J&vB-WJ=*E1(AIVq6tgVx5%IGkB--Xc}nkVI&`^`F^y_(*Y?FTO&?JB`E(7faZlj(&ZzA`re1w653bY+oi z8YjDYmXCdvYc*XHh~=n_-|7nhbtE!7b~k?|J{l@$+xP}kk|cC9=*vz(~O#815 zManGqbw?h%sPLDg3-dOZxC79rnQ;v{&qb+?{`F0t*0K2WYN>-%T_gjYtoaOOSHUN# zwHtRC9}=vF@sZRW)~jZss{=2EqmzXSzlrRPf1NL zt}sfgsO>#Nc#pcgX_{Kt&c&`7&((6XF1u{=^-~4S!}iH5582B6~YK9iX`r5(=M@-z1xGmRk2JhWWhVn~>90*+Y z@S1K~p3N)FvbVUOOzl0YG<9HTeZ{RO_kjyDvvH?LUnGt?d(}63{hHT20!sN)9qSG2 zk7BwHvS$uzHTJD#&Y_O`x{ch#o`v2^=d*YgEfq@FCbW8({7U;KpqBQ13XVp~(Doi? zk&r@-ONJ&v6JucIV?Y1}F?<91A5yz@2#BDNh=>9rAP9(nw{=oxrzP13bv*%HDeJMw zQ->Ci*JD0@YA&nE;VwMD?|7*$KhG&`!Ym$)gEE^bEMRYT$1;T!oWJr;@VXqAj89?oI5 z#ZMzDUqy2^v{Rjq>Jk+9x0~Hc=&V5|Mssx7j}-%lFy%Ss3VXV!Bm|AW60&+I`V{PU zc5vahlJV@u`(w#QTakxsXA@PR{9*XgL zD5s;SuE z?5!1bT#Y;KRO+b@EAjPM^<_hwl1_eWx)IsWDIQi<^0bn26^^pv2s_{@cMFLvBl1|) zZNnKQ+phRlVJR0$>qlSBV|S~oVY*UBBfnKPSnTxQWldFgEZnir@iq$i(%`&4Cu})*-I)Y<8#Y%9YiM%XQ*E_i)^@UoR`O;>0K3-9oGK< zL+0GK2RnS=DmiPw&gXTsxXIa@Q}DWZs;J_U>t<;rOB+dZ2dG+1REY^6g~MXkY;)y> z_O#hu@l&ns9xUM~JxOS|NpJ@}RTS0PCvsIhjv$fzRXf9oK5L~Sf_kz^AmLl5t8;U? z&#I_=Zad*qOHN2TZR)I$EfrOgJe|l^db)`+a7b6_=-lFP-IWCN2M3v}LuAp6RLv&) zm1(M}mATzzl@`uy?5%Y+a_r%!=D0E`vTNmMeO5ttMj=sCDFM`kRq<6wxNcB|w*zs41?9z|fR5Dv-Y5XO8eoiJ*dug-O zg|)uSrxKCkRMu4%s2xiqe`KgTr+(@BE)_fK^k%w?E2Fp;^(vvaVmwu!k;A~JE4+&9 zhY-FU4Baqg=-tWj{LtOW{i3YguJS3}yU4A-iR3MET;!E=RKN$DR2SUL$E4%|f-fuBG15q3f=W4ymY$iZj2)a_o8qv~+HT z($-h9YM9O1rMrVZ(dYcWKQ*psYUdcqC1m!?gstV=uf4(H_^Bx+xAp3L=2iE;o6`Cl z?t@k~3UJ6+$RJ?aIGP&JJ(bsl6+-Q-r@BsZDZz7dxY=o_uFj6!@?E(YTQ7t)VuMXx zt6X<%ZW$}svb7jAk>hpV*;TEzbFZ3~vUy%!(CjxSI00jGUxY_uN3K>IQGGL1O#JR# zPJU|JS$S~DFW7i3V_J$y1e<2T(NnUcR?jHG4~+AD6x~s)Tc<5mvWMaOwlSZURyD$! z(>?x26M@~k_$&j88kpDKCZvt|jyI8vu3VdAOkA5crk7=$h_unvKIwCPOwQ*e#l)Wy zve;__SO6pig<540Mm+kfyDPwMbAYE3OT*lsR&`$n<)!FkPOETl!@1}H@m(pvEgsDs zr{&dGRsmNlNT*|l;CK+Ue*^S1+(gxpbAm0Dr@Wd&(*wYtRngkg`vi|=6))=OX&cJW zHW(W!E|aNfl*r+V`EFVJx*1Lm7?cye5CvhIB$}^ zK_COJFr2)xNf_^MY`sHKjCI*XQCaX{5tHPtVsZyvl(*D}5Hp`;pD89Q#k+uuO4Nrt za?%x(vfVM}tf)IQ9;9_vt~y=$ZH%RBw|VHYegQyi`cd+oohi;e7IIsjm$A~mT3dds z+m|}*2b}GkD+Nt#lfF7=eko-ez_4QJlxj zHgkfB$~0E&k&I&JB@}H92g9GZw7oMVU^Nmqo=o-0+$+QMuzANI9++D$OK(6LFg63x zcrA^`;49?il_@tP*HomE(W~UrL5~=ZKEX+?(T%OM+@N$oi791oEb*H8OB&~4o&bVZT+5@H*B0`(=(%gK z%@eM@rL}vUazo`L4u|3^=mkZIjgiBbb$^I)YyI^tD!HEj0N%!(Ix)Yv2vXgm7(v8f z1-QQBXYT$=54gZTfmvn0b1wlJVoeI)_*wZXXXrM&IA9+oyd7a{hV06K>Dc%EUKFgy z?nlG@4IL(gV8`mgC(8;%oIhi~yKX&}^M0CX{_p6dyH11s(HL4R$L?3*%@HRKVsJT# zXW3G}hOBq@V;;+X{{TnX`-kSd{*N$qW^k;tW$s7Aqn{?>lz;Gn&!VB5h7n|g5YMvd zC+W60Z5hX&6o=_HJ0!+DvxRk@*Qr;H^f{tl6vX0xQZekPrr|6^pVbed>9^@71G91R zQqGTzl1qOjs^St}rCu@1b8wa-NbX0`P*iY+GC#4{`Yx}2j$zIj`6)+4vEYYCkCM@G z7w%W#y^ckngK@ZjVBeTl>G(4qNHoBYW!Mtvmav>gFg+DJ^gCU@bHB3HaVAycvyNuq zoG;1yC?6$mpMkXRKlN}w(z`xg2oC+$K1!BN2E&qK2jsL|K{7lUF3jSZjsnxWIDxdS|+ zq?dv3c6nIlA7$Ut@Tx7(bJx*Q&%$Vnav&c?gN_WAooLx#lDkOYPx>0UQJ!eWI38hK zD0Fpo5dvCLapQ&DPT@pAe`U9_ktYcua5;bZvOzP1Rq77Y;m}SYP-7(d+o-P zloxa7WZEL_2jZoF(NW2!?lB*Vnd9WXht%+5C*(SuAM~qTR|9FJ$@@4SoU6c>;r<^l zEZRLa#jaiAeExN&v7KO$e3YkAR5z?|A0^%uTmymG{;Ci9Rj#MA{4OW@t4E+}#r_+| zeoLA(TwY$VIE$8ccszYnY_F_~@Xs@SoI>n+p3g84b4oVyYPL_=$_IbhvHq1${+x0D z0FNNL;?RC-&Qgy3bBplS&Oi8tRmH6@QDc_AZ=15ZLZh>Ed*TE1R;r%Opbv%@eF}xa zGok+g9!KuU{v(YqG(Ti$__&XMhZwFTdbEGCu7`^^*#7_&k;(pM1+!{9Im$DL+y|Z& zx_-|UAdt}U@>X0sjMwD9f3Nu;6@f1B{fs_7GTmADso;Oe{{XtJgN>C9BfOxE-{p1{ z(tgjk1_E2nk7aJ3ftOg%!W>7kw}r>+?LGa7a^bV?wf8Hca`7KV6Y^AY@T&C@{=}Sl1#gJs_4khd07d@*!5$9|muI6rXBO-;J1=z1 zKCH^FgNgce;D1{!KjL8vQ_I7v%p)e5-$hF%jJrkFmFMKG{8Nm>&qwV40LdQ(gD))q z0CRSYe`K5R+#&<~M+$U0p4Cx|Tq)h3`@pmt^wr8fw6c8)lIuNmePED$ihm!^ho2e# zP-`8*Xh?S^*Yyo7lT*D{)V*w5jWzf}}Xw22GOA+NH|Tm?XFla@ zzZB8hRmpvdJ`ZQ4(bI35837F#R;t!L&OO}EXS0Y}9-oRjf}f>dKlz#pu7ivBy@SLu zd$Dy__>%^0C$;(*J`<3;Xx#L|y@X=2TzCTIb!}CAae&&Vlje6?e%-}OoURT0kgpgBH8d-P>hl#{RijtgrZzh(BGI}Q z`LF3+HM)t74cih(8=qyHY3|NC;;QLS6Rj;|FL(}@yak|VaN1yPY#spi zZ`Ay4q?WD;prECUfMl0AcbFIp=-&qTT}#4^A5Ce1wn~PK%_~MZ-Qrd^!971g!<`Xt zv{M!dSiog)#!HCbb+f7N(Uy$6o7sL(#q;mWoS?jkpId{CT`^LAV(L0CRU~z7lc5S| zlg|U$e7`G4w576gCu^)hz}bZf6MHk zb1~|sD1)=H=$p|!3O-jb{5y{jrUG0x>Z%4BdIArMi$5k@~bp$Unm1OnUsZRLIdi3*97V~?mvNAW_Nqjyn-Dsu0;HNFZ zl=$OT=Jo5}>t1VP#4g_?{$!eK`cIvEkk>H;- z-3D^W7|m;TBcjLd5jnXh7+E!ZM+fSxw+3Z|_<1izwsOrFg}{)~ae@{tb9pUxcJ^6) z#PY`dzN-se2Cu{+OJkL9HQZDlxA5SHNUTWQ!d`<)WCkxPwI&>i}Zid03 zyG?Aa6Vu9a9n>9&Sq7rh_WmVMGNzJIZokAb*Ypx&z^!dzx-zbftq%B^whvW*qpy84 zgX4K?#^8g6oZ-#bp0Q+BT~Tq;^?!HYY2>7+jo56%ARKstx=)1trf!;7x@Anxub~|s zoVlaaEiWFTw(43TL8vKPP|R|+a4`0J6^~YEJJy;euTRze?QHyA&_AqT@*#3tOf8Qk zt7eg#Pnr)$)6Ega-7~~m5fi11z2gp!O~(ENEpx@*#+qk{25X+5m+p(4nRa6S$>-E~ zE)&z7MXj_}GDf~i8n%(K_(>zobX_^Z{?~PO)>+vZ}dmxoqT> zbBCE2W38dyzN$=?qI0%ZTFO|Q1~Bw7mL`yP!q1Jlq-T?2 zq(0cwpN9&{WbLC}&0)wm0Q;&5wC+#f1#G9<8;+S&lG;Gd+j=SHOtPCsv71i}oU;mw zZ8pqjlohk*w1No7)lkc5Z|;Jj!V>O{V|15hYYDXDFn$dDl_Z*WHuY!Zwrtj6orViy0E_J18^Jyq&58S8?PGPEfkbu&sG?E z>!WdSo~(^;~AgHs%zDo;Zv(;viSvPD@N+^r|9c7HR77rLldW{sCZ*q(UZAW+cuH7Tqzk) zM|Q~wY+(K;A3(bYv;P1G>3BP*-K#YVTP5nLpVZ)Z-X@>g$C}$3Su#;=X)>7;rnLI? zGRqd7rr{2Xr?S%q{pV1?`k7nTBxeWPD+ks0b4y4m!ToH(E|%Oy6Hh{}(N-LF*;y&(3}_hy1w2&&j1|z< z$`_MexBDq#xQ7yRfUOeMhV&$rY`fmYwuWimc|dM=_EqIbl(zJZZN-bv-x`(*NRKdS z!2^BP?$Na3*`}!@BbVR=gSUdvIwp|n-Ea1pH;6pAlh6geY9*<;)>GOok(sJxA~rFb zpLNGe=jOA~{{YfEGCoBb*K}UArkk(gcCn?h+nDFDymzkyA+7Nwuc5j#NYLngGe>5j zjiHdR2^+I#}{x^IwDq~k@Nx>QhDJHXju~UeE4J#~V62?lWwpMC&5zN|N+InDtXnt&c9{n&y62eXeIb3d zuX#DaC!+c7#9cL8*zdJGTGpN!KcW}8%bzP7mPgEYX+1XFuc10;QCl^gl9Kais*bjb zrGiGu6S6vZ;ct?jm5a0g03~44Z5|6tUC`vOe&-%#U7H_{z^J(glHuom=DfQsZngPs z`KfNV@@`JuaIy~Vr}lDG52O!i7$Yj)BOIn7U3G%r6WuH%05*0ry4H7|DL7skZ={W; zS8tQl4?Hc;bFf8QO(Pr$ByFEH#r$w(`-S@ci%|#!mdND9&D>?Z7qNi~@0Tm?aAeAL zq|vZ0JWkaWm2%S9bj@YjcH{@U;9)+5D?@cxXd@sr{5Yf$XZz}xXA638cK2)5HkxaV zx#987(BN8gxf_p?+fAgDk3-<8c2sGThlaMj%T+_Mb8{Si?QO@(CYMXYYAIR0J>w6I|9y0+Em3uSXl zDyS*y<3F=BZE!zTD=!tUwf^LI7Ov9$jT>U^Bf^XOK!aA&!y(&}sji6s0QCT~TW+Y* z*UWw2sBM*b=pw0MKTPFaE`6D}b*MA;{TFF|dbyP0uKIuq#IC)9xL0v$btMgTo@2Ou z6V6?SYVSD|B?w3dL zZvOylJy{J`>sa4HN&ZTc{*C)m=u?|^sIluRW^{_Ng^wfO0B7c-`BMJ?j@A0~8j|xs z-RDj<;{l`Sq&rETtzgHfT4r9*JY&$z=GJ^5sHuuS#ZhOFJP zMRn4(M`InzkmF4&#GIoa_mR4fQDCQZB%zJv}uE;+^uy)xGGG>Ypmu73Dr2x(upO8}Br3ubr z+tqC0YvsZ2!id`mAK8PC$y4HAxo-s;wc1Dl{h0nLQPMzz`myv|Q|`a}vGhY~2m7$6 z;-9%50)B?3I!F=tLX>om_(=!QEw*gTC;K7vPq~@@00?~*)>HQ*z+T3mevoPXjGs`Y zyGH}jfGxu78ytVK$EtwXW5LTa=%r=9ay}gzZQ45}aWU zD?mAn6-zFKkAHv@?6h!>A60Os$ZoV+~O_#u&K_IYrneR)oQqum#GgI=yF|01LOYyfDg%A zrQl=^C;GS_>0OHb9>%nOsAt(xNut{K5@W~7YPg)e%6uuuQ}7-GpX%WM0Hs^%J3hf6 z+MT~e+4AUy<7o5pRPWHkAK8KO!qIUz?nlEjiE4X0)4M;_nt#%*bv>LZj(@5Q`Zaeu zv{P}kL+GjBp_uL67sv&o;wkicBf*mF&I_sR(@gCD09D8ORjQ}6Bo59X#(fviIdmjt zyFv-}RMK$vGIQMlpG6-TOY=p2izr&VNuN9_J21C=LPyD4XY9uI9I>wp=(M~%j1mMu zljDt*Gx&26JHkFeSH;AaS6qI@l(JX#Gv|yv1Gw9rn1ML(Azx@T4cdjArkoSgJgd6o z;lv&^;P__>o%}VY116jd`Y!78>#cIdXy=?PvF>kYCFuuhZ811>GdxBPc?Q9BCWGSD z(l)X>u6B`)##T`$3~AnfupZ&P5u7$;E*y~&k4!AC$)@G=E~G}e#qAqQN^w2YM$guq z?Xf$pr)Jk8p^^M&!#l2Tw&{7O91BB$9s?^gvsG16xw{fSHS@U`^~-K2r&Y6$Ms%IO zQU@?$-!*!rycZpgM~UhdjI`=0m>bQVx`MM?R-ns6gNQyweEqn(-$T@{{hLl2_DD0$ zf~wgjM_h%0(ca9M@FVkAdTX)UF2;U~%APx2j@a9?C~Nc4LLQ{N;L}4jyaXWuA+vY>5#R7A@$QMbL5tL_iS{0T6Z?Ml+OQAo+y~1CL}R zoJRQw2zQ}SZ;ZF1_h)W8`6}qS8=4NvTi^%q>{LyDPU8wR9m+RG=AFjgY86#J(VesW zRVuoBD$g9i;e(8-cQmx_s!_lmpcSHeDp9$-$^zVVQ%J#HIlRGanO3*e6pmqUs8ErW zROVqyd|>p>e3jEG(IAW|E@97@KTxV%!a9Wk7+2Xsoy>G+Ae=7<55U`)erlwJPb6iI z%X+IK3VC7X1Q0Xos3)a6{5c+K>^WR8?1yy8P)QaKn8#Ik%SBq*j>`cfaIN(;VeQ8+ zRghJ|f=(3!+tg!a(;0fB2}HzesQGd*3b9qumkyZsS>0VAes&7UTW;mf#N~F^Vb3^k zv4Gal^K%Si)nm1Eyo9vw4~p0ov|V<=^;rFV0B|^I&$9Guu;iRgdvl@2PBvJL)`)`a zw*hSG`VEUnIP+M=&e#ZWE!g<4Qo9kyI2w-gMi@yLIq+B=@|T&f*b~0%bY1Msc18dm zYX-g8Mje1Ly7not9CJpCzSEJ+M@6r1aF+9}<$u%st#`wawYB?CIo$YeI`v+~b5dOj zMe?&&(%$B=SBU}4Wc)+J3uId^@Z4$JEKdg`BzY};s4S0ZcfwVU)2L_DwH%KwF=csE z$at3W+vI+}$ExXBFx))I-VC1rZ@Rl$H6>N5VE86;Nbt_b^C^>unoiy zIFJu7Rb`H#j{q1!=e~7tx83KYkUA+G(l_`{6**e+k+M}TvbpKW#8vF6wocy{f(Cuo z&(a;Cul9zq)Ynrx1~x9p{wp1iTZ-y`v)w76xWaZVoq&_`>Zo0$GcQaYl?P``9?G6^e$)F^Tk04G?KQl^>b%+Tyn7!sA1gXzlVnz(RCl#U z1b8>A>LjVAsC^UV+%^e7XwQ({W7mGhR=SYq*fm2=cWWvDKb}J3`W_}!&^&ThOHAS6 z%vwjuXZnA%1^$LM_g6Q}(ToQ>D>sFgUs~IC z9?M$l9v$ipGVV*Ima3HJ88MOx^ebR#zSozFaA>G|oCjPSIK3ns>-u-0sf&5_lP|swbv?(5WZv&A~~|TXw9E&`*_h#cBT8eTTzK-F?mvmWXe# zDvEj*VC(>0>h8-77R*(KNp{4Af!P;w?si@SIbyP!tvl#$CUaL>ywEI7?D;{gr zea;G&mL`*zfsa*3BO-2a?EY)$>v%!g;?m#xh^QmRX~|V^QSb)J&?D1U=?L+Wp~}C- zm-N>rSy0z`Bj%$cGdMOV-z$#TV+kknSKChxwO#$dTeQ{6th=F(oRRfkMrnAl!Yw-} zb-PX4;dtogQ@1}{E0tGkO*umYg&ia@fH2U;0sNM7;#m)+bidTHuC?Zw!d4#0oLbZc zz1EeQk&gYUqsRxoR!4E{BgL8;c1p?$DwiIyvY=(Y>!CFVZ5y1$rV!q@?02pJSz!-wWw+E1Z0Q>GNCL zO7X6W zQ_F|3=Evl_Hw1=c2TA z?_S>7O=Ymv-fLtd41t8SA2YT9`L2i-Z5rFvMRT;QcM8Y6xzblm=dhgb@bp>D2N5q6 zv?hYr_G=vvPU71LgdcJSeyh)14=PjK=kl)Jr+m1jYCkM`vMv{J0^7nFV${4uxIKAACv}@^ny%wdkOo0^ z3fHjLG(-S6E7PrRJ226HimVW$`%oS#$jY$6)kJFm9YFP0%>MvndKlGm zr*!)xW$?<*>n)-()@HV(fX3q`cJ}}{M@6EjV!qtiDlap%IlSXN(D1-oD}kB?lhs3f zx-*iREE;%RG0aCph0|2pkGyc)a*eP&2a@B+`9!<#b4?O z^jhwc^wLMhL05Wvsp?!Xd{@p&lf77H46X+oE zzKaJ@qM4U6>;?y1s>p7;j5z1W_^dItj35wKzj^XFd`I8OX6o6eK8%xCSgbrm)3p{Y zO+gjL-B8jT$p9s!?ab5E5$L&=J{fT@vc1-8mkw$lt8`PH&n1>;6ErQ(NNDS@@e6vs z?po}Jb9$(w)DMXB2NsaDsxqsmb?j17QYbiI+W!DWYv(eG^9%Zz4+;|5$!SYksMt9g1$MhYl zc!Q$e*ma(ZZOR7hYpoIj2=nF7@(VcAy|wstc92C`Up<* zM02wG5u&whI*!i;NP8q?jSgejavU+T=Uyu5>Meh7sim3#);t_OavBRovb<*gI zO(l*Sj5j{%*vu~v4IWwaUdC)Amr}8P{HxO=A&d>rY#*K=m`zHOK3W{%b7|=fzEI z4R2ABrC8zCERIDk=;tj@*gu52h0c--9JWe>xSrcP<1IdeBz{W*uIydJZ4CEM!+tGX zA&Hx^-+9ceK0_nJEJjTaARiA@Zk5y0fW%=h7^P{-k0CwfOBVcGF4c&7m4u41niPTjw zTXk(EW{14EhPn%+MU3Y3b}{u`H)XurwH3ZP+huGO^wJErNF)zw9$PD>;Pp4y#;REEM`z(G+yhbzADlYH*Bj~Nn z$mQ8=eH$InU?@KBVeks=-2>nP_qiTJ=$!f-rKDQg?v2?*Ezq=Jw{>*xhA=iz{hTK| z_a~IJKG_?y&?#SZwD^8%`Sx(1X9`t}j!&Uu`Y#m;9-9wEe)~A`LrxEd6_u@e zmE`&u>9Y?ap*CImZS1l?v!DEcpJqOZ;=gg>n7i!7+X49~A7miz(UaxivahpyuRDch zb1UJmV-j_n1pcfQE%t1kR5Sew=57W9Fp4 zOfZ9%Er4j4db2Cfu}AxgRz#5=3N_30vqs=;y%gWr6C-y-FNq&zY`t)Ogd#z_TJzSiD=BFTQ_cnH@~*dGgr!=GhyqqfTt z4>$lUz*>OYWc#PoeH1(Sx-hEOQqK$A&;U4BN;;P@z&MlW6vkS^eN{wsAP{^;^!SzJ+PjZPAPj4wutxU*X!2bY$H3xC(rlOs+ z3THQzkfG%sN~z2a7%EheU}SV!DFQ){KHf@G;>p`(P@!`g2qXcz?5^E+IpqUd*IPM(I13xDw3g=$ z$UbXm)>=p>;Z`c^N5Xy_`Y%GeyLCAwS*fmeaP}XB6^LCd9L*p%W9B+7&s$^8NEj;} zxL5i8J}Rg67`}Sd5d1#B zgjZzgmg3GwbXEFtpuR3{T<+fmmuc;O$%A8&+>&%Ge?qhUMWBp@*@$D=YfJwC4__0U z_<>`xSB~*Aupd4gxugBB{{Vy7Srlb1Tb7@>u&A$)RO1i9@^ZPyQXBye*=WeCu67sl zPRC6U^YHdrJ)c__v~o+${{VL(-{iY-xTRMOEfz$P$Aay++FSZ@I@^QpnjWLtH@TCm?#ST{y{fXPqkL9_YzwuQOASTO*i!!69T6 z8tUOr&W&IsO#c8QV9%*7cUJP; zEfkaItGNSD)L~H1rnF_q4oGUPvL6^EBoC3w#aUO(26j`KR6*F}s&Z?yCuT^^18!_w zw0eR}o`Rvd`jsX8JiRw2mgz@O2S8oQO0-8>;f=^uG2G^8+3p_2H7`a+%AuomR3vjz zML6?{P*K)xK}>S{T|guE0V*gj^)V64GunOCbb7wyA4->xbCqA8*q(*Gw+rPM$JuKm z18>51Q9D!KSkcUC$F3c+yfwo|{TCjZg z2<>5B4)qm4dSzs7*A+W+G8cQWAl9=7ZxlHH03cES0QEzEQo|0fuOybft;G2JMNe+4 zy1ZegsDt1ESJrFFsKMoq5$zaWKVDXm@R-_t8VB-Gum1oMzo}vuE4@wtrmK_LrA%cm zpr1Y6vZdaxX#rghw7NW;RA3)K6sa{$!cm7*KifD{^LioBr)HegwLgl5kb~nRz`~l{ z6LokWXt+{S5A*X7q)B+HdHAP){vxSltdYd?J;&Us)QIR@PK}|6AGP0H^Wq_I^Hdeu zdrMQWm$Ig{!~QGqK8l)3uY~STxmNn>jKD}aQlkA>{Ed6WdfRm~8wCx%3VvsPAkba) zD`DucX|&xCI}*TlT60)U_Pg8=gOXl9irn^g_ZI4C@CPdZ!p1#qp1lsc7OR4N%fO$Q z=R1`$N&AW!1L&C9aUQ5)|m!*K*n}ak#sSucF(dfuDM$^ z2=`=~IOUne!LB(u=vDTLhJ1osf$Bj1YnUtet*NVlX}QS*5A4D456M|4)Yoc~Ot%`D z3G2-%Kh1odpNg^5)F9dJM}ye>(no01P|jRWCP48RAytR>KMDLxjWqWV@A_u0Iq0r+ z5%QhbUQ187T`j|2DADmAjKNSDO?QpCEpEb3P(1w?p~Lvi970^Hq`i(jt{-MH=HAhM z)-jsBJyIKz<_>L^ou{r2X2&JFV0aa}%e$$IC2m-9*8}1fhT^S;?Zf-Ixlo?^(NuYu zagfvE2=HFcMr3fS@h2A7(B{Ug$CHA3W!P1@!)%hNZWo5p)4lS$00MVf_APyVxV^O0 ztc|aEz!AhVpGA;S+gV2$eek}rwcQ|bAUEA|QN`n%wT&0~zKHFf6QfSo`Yz?3o+{00 zc@2%ObYSg{n9APz7ei3nTLY^cBrV)T4&O4cy*E5`jRKwqK*xA6VQdRUSvc#u?8n7) zCpo>z_h&9m{wARnsH1XPZ{>`RHW0=z0M?Cw!pkj}r^|p{k7cQ?H7?{E@8nizX{ax2 zPC~}o(aRZV+0++jHyJq!{{TsHI2dsw_$_^Hn;?8dtcHrMz<|8j*1e91$jxc4WV8dn zs<^{mGCn1W(@Zck*U4OAkT`xN#VBa#QZff!Sr8<<81+ zD}!1Gy2oz4p|lmBnAcz6Bz0vwT=G3KsawM6IEQ^}u9C_3d^i!)L`z%BJjaUK7ETLj zn@l1&>=aKvCRl@s_sYu0k6P2)W#Futrk&dFg#unj-m007u5~N1^~$->_Lt!e*oKW^ z1SIXtI~>pA7VrN6qMaL45MKeZfXgnMAF310=* zsn)A+xr*AV^iHy1HqBQ0gWq`UUo8c)7eCHM4saIWxO zC9StTJ3m&wim2hI!(tEdSZ!xx9xmtycly?H01JO%wo zude+ZdUoXFB`xmbZh7A{@?d;|f|K-V2D}*fpQx$F?lMJYe;K<=a995T-WnJBNoRaxm|F{nKcrtoUTPUjs3ED-m3aZouZ7J3`{N56CzEH*7qfUq5a|0A8gKM+ z+UaF$u3FzwU04oGb52?hy6Em5a2HK*;)*ye&^Yq`+^*(v^(9wmjxA}OcTUOd_o_PP zxMvYe*M3Vij&STAqtB>bPDWl-mxp6%9d*-6e9=VsppGU6w17N zUQ^$>*h~W(1?qv)hVKXLX^)1($yEk8`g^Ec2+xU7r2WCI_?^JL5yg9Kl$xHwNpR-`3Cv-# zv)SNfa$cb9b;RxmSIKzbjZP zRJnJx?9OW_jQZ20_Nm(2dMcjFx9=5IFH$)<58+O zEq<%HTSJVKY1+5*G`Be+qsQpGxpA`B$?{9~IrnW3uUMV@AU=Ub+T84znx0lm8-_!ebDvOGnUO`<&r@9vy6uIY zSJd;k^-kl}RPqm0xk@%V3qt-`xlpJc65nU-?~@7XLpiwYt(3^?nmyYazAxc z_fP%OozwpSbf-VmXr(X@-6|7KG0>{!z)0U^7umg2pXyGFciE5rLi6m{9%|z1cMhAV z3{F3?RI3>ceG7lt&yY{EpCGHuB!12poz@58R`CeYLLeu=1sBi#?bf?+9 z3ZD>i7Q;+R^X#63=&pZd^eOgVLY^SyMYHUlgXo`R^dCiY`!Ath{hQFK@kc5xW|KYx z=%F+%9t!R#&yo4Be#M^*DDi%z@|J;0e|H|LF;0F;=k_AJbssN*KFQ*t%22jFwir>f zZLq4o%0S5n3KqmkI2ayfM>=C#J!{KHiEvd+CCvr@07WV|vDg0qx}A)(R6hPo)41_0tFrjcQAhc)EQ@LU;V0~0Ck0);w86&O_l8LS)Z`2_@`;z;&C`co! zs8C1=8vs=7hZ0gEDJU_7KymDd0`;!O-9qsYE`(vlo}>6Eun)x3zmk**%7`BkvGP%( z#Hkodi325h$ly8=@Kek=N<>qi0Uw8PfbbP*{ zR=P6Yp+U$B(MYS0u}6%lFQ*~g&Ccq%@sBN(4rT@cIPzEKD#}L|oCjwrTd9ut$Fi$* zSsBI%Q1YuMuElg(swp|Mwhxh3`RGeQ+at|nZeb_W$w+i8mm>sYz^zr9?ov=ON{TkQ zxGfp!y0q2V^3#9^vdyY3-~;R8t+P;&I%nB*!rx;VK)@?(rv!56)mZB+nQ0uLEt@qE za5)4YRcxxXHQ@9ZE3y~p=5?Buy2G}?W7i81Amy0#TZXpE0md>Fj=sblk;(O5g?S%S znst2*Cvww#;lqRA7col)-zTH^47MX4vcxhSBSN9hcA5#fE#7Is}23RRO4ObmcKJ+(`vd&G5X#^J;gzI& zttxK!N>hr68!x+XRZJSD9FF##@SipnwR~ooK3VQB>Y6i`4wrcKH*|Gvb_j4I(5cL- z^;&|LQbI`Nu6%xu%DO|S461DF8Gh*DmL%cb8&Wy>fXN>vQ{Fk{v9xnI z_;{^h7No2gB52+73ciO{Txn`qI|E+k@6;}pD89xHnImJ>($!K%A2l?QH}{+f1xSjk z13BGd)x1i&SH@WQ4jtEWN6Au0s-DJKn`{mx_$nxavEyze3;Ur zEUc);8B;MkefG|`=pCsXrSRZWIh zyt(;%&g7GmmCeN{vnH2B7jtYF#;X;QW(s0(@KE5awp#+G_QjXy;%?s|f77*EM?!wW8nslqR4+E!IK zxXJW7<3np2P9xbFJv-Rjj4c9a3HZIoqNurkvYJXts&-UUyJtl+d7JcHtzflZXe!xJ zZjx$A+tNtfT0+?r5o;^ULu>Cf4~&iSy}pkU-@5tK}W1mBXnjWiuA`Lu{oj z0PmkAm0MygXzTM-v^MR>!m=6)Bax7}Y@W$TxmtsO8-az9(LLD&5`C4nikLOKj4RCq zB)n~pW#`SVrtwAQn3psYvbxhS5ruDohhe|6yHdl;fI6Qw!!~pzREl{dj4*)a9k*QH z+E25E(^7`&Ej0HC1LmR_A8xkU7vW<*~)Wp&{uhNEs7(}_9q;?0pZF{`*|)|wKv!O z{{Vi6R8sD`9rXZsaL(BCS88Hg)bzsQt{nc58d#=|(ZmZiMxMGb@;XUaLo?z|*$b+4 zUla7!wxf=w)pn(-YrsFNkRQuAT$8FvZ@Hvio|&=fUI-g!JLO!VcsSWusHX&g*EECU zoz>bYakq%sdD2=s6Dz^UBVrGM+$<|wa6>}z7M=0m^tHCV&jcA=14M(_z-4AJyC4su zoXI&xJhuU6r6@hcnrS}g9_r80&ugTtb;pMKvg@O3fiG+gn7$%r-1rd?@-o9Erof(pRKz z6>PQZdsTLhxr55_TN8r;=yGwl%r2wS99YtN?v0feOYI$eP5^@xp!NBy4-hyXp?IN8 z`h7{JZTArIj`7feAU5S7`OrOoou-SSxQi1YQ8bMUi zbobneF_kfp=XY$Tv49W)qn3*h#|Yaabx;NnbV9LhuzS@^zxD2Ya z$?Qbuz5XNQ4kNCb(k?ntDJ%zyx`Ds>II9%1w3}*`WCA*<(rZuGulD zql(*m4a_$v7#k}c;Bo*sT%T;>HyAq*-kEIHF-@xUDSs?iNP%;rW_HQ+9)BXfl)5Ir zsNcw16*>$3dwu*L^$rQ~F1bbn7IQ&7V_*Z<;_BgD@P4m~$nBNHa=cYKr zr|IsND~vTUNYGr?xN|W0f;dRR7M>WgPGJ2bCpmCJqr1@n(lh5s@UXjlJmQ7kWnInbVJ>@$S9Ez zkcfx^A|MEefG-^E4^<1FCutoI;nJ)FhiLJ)xs*4yc;Zi>@=@}6yCn=@ zpFedekV-Dw17N&UJFivmbl+7wE6T_N`FbghJx@{m6qV~;%h4JeCJ-Ovf)|*^$LfQA zn-vkmwmm|rJT)xKk>sioHptRt5ovExh2pJqL%M}6)a^Ys zD#~8vTz!gS0qUf_5)Rv{hcLA66e~q9Vx=hT4s4F>Dng0Nas!T0~FAt=TKLH;lPVE^qf3SXw zzA%F5nTx+>BNextZ&fG?t~(4;4~njR{XgciHtC6D>epl0Pi2wp{gQpczbp)$uh7Ti z(=_1!0M_Os%NgDJB zP9;^vZlGp4D53|d*mEvro08jzCAUqq#ohsY!NbiDwOW2a}uRtEqT# z8ypLw2iz^(+Y2_sKnino^ACo~o-BQd=a;#v=rmMOUh01VQ9e( zJF1v0jSd+EpJhjJT{qmrAk)FU8S_^tEMP8Y zAp0wYJ-=^=Zn@=WyDp+gp`#Ami~-Oq-7PCX*bJpLFlYb{is?;G8UZVobM-e!f}V-R z!wU0HP2K)15>lD~)`CXrz8HDFA~sx-m$|fK>U#to2^l%)t~Al~{{VF^D7q_+H9jy; zMa?I(WQv%ZhJn>wY2N0v07(bHswmmaM#PUraD{`*V7X+?mqQxXd?C@?Nu+f)pwskq z;lmx{qXF&p4jY2G%T)f4_t~o-ap9)0uG5uSE^Q?5E{{H02R~3(VZzWD4mT>M7{h=k zebp6`iK1SI3A>1WqB}pmgHvh8YO72~2EKzYb_cfq08qA<4*vj1PL94kl-I{iVXZql zD)`F-Pl)E|x|x*CmNFaxY1;>IRtK&-I`I365WSb}FF{u$vzgf!cPKt#&EG#X@vEQw zh@M8f88(vQ-kjDDM89#I4SbG;#en$kKr5m+d)jk`{6vASwQ7ntO7HGu zkTu}?gMztj#I_5nH-*t==%xE;t-f8O^9Zypf%|Eoq0>YH939Z- z2%rEovV`z(GT|x0Xm(OqZUGdd>(v2=M4uy5fgr?i=xb zmPoZ0n52?tXBAZJ5lj!5b8vI+xsv(%Jhh(<>fdqT?-J{+g{PUe+l$MXe3}T`>J=p% zOT3SjlNW3}-A?{&_yfn)Ph-c1509$(-%Hvjw3h(hDfow=B-FOJ_I1Y8ImvIC<;eQs zZJr!{k$xI$IT=Y^SuUNq95vMUCYZ4A5uTk_J)AzxZXH+9(m4?AE{9#0H+{l@xSv3= zZ9l{t9;2pZO}^z#R~&;O(MZ=1$z(BBMKA@fY0r_$^QBba{$zBiMqQrDmJDvAQrPj+ zDm;aYEP4v4iH!{ejr~<3)$W z(Wq%pd)`z0A>?_5*)DH3%7(g(O&J6ZTo6HCo)%@8vr>!w4qNGs(bG9Evi|^S>FR4; zqxF#cCZMJLSahEVm<_TQVcTvH*Tx?a$RjI;J6iCBQB<>4SzOvHl^eUkBzqHsoP5^L z?8U}#j!>N%{(pNU7HoI-c zaylxd@$EI-_fy|g7q~!hy$33V)|uxjV5pHcPLT!?L{1lkY1_sN(+#K~N2uq3UvhWfYq!LcW zc%%eIw<ZA}NnaDhsoP*Uy&?ylSXkrviel|OgH3}g+CW2ePP=%Q}2X!s3E$CFn zoPtMRC04Xqbv)ZU>{LyEfg7(2L-0<^!V7jggeS2cGQ2DVbY2G$j};I(LVJ??qMgxG zQ8q@AE4w~>D0v;^r=o0Vr@~_jp?F#y)lSIeBmzQ=5PED^z0mV27cjTgJCW59XD1Hp z=!9cD#N*9D@0_T?EgS9=M3FaU^~hf5Dgn@uxbji>ZMUL=c6y7!xL&9%d5owX3r_t# zl*Cd-idVwn({QDh_z!e(N_}QVQaIDgXo}iC7_<6R~mfuIQLSV$29aL zd94)6>qQzWhp;?(6)Eu+f^(3xQrQHe+-^22z~T<-EH4W|3gm0ph2tYF+^Ks%W3ly9 zaOUrWk2K{EIU@uqOsbrZV4f(j%o*Zw;^QZyD3kBuN#bdtyPV8DB-gYsJAvug3uMd zYcn5`8|l$z^IO<=11gGJYff>oK5KZ}>}2aODvJr<;n*v5_CgpzW5c5g*Yq`wPM>S@h6A6;TIbWFe6w#)1+}EL#^8P&d8$clYTZ(Nu&`!#ReLd9UKDb>m%6{f9kD;Y%w5uKu>W|EIR+^m} z)1TFVw`}@+I1$UgvbW8rfzAd`n(B^Q_b_yQ4HZ?Q8z4Wb2jr~vTt1A0`muxIg}-Lg zqkK1SH9R>H zoW~#4sSnWQy<;QYbZpu^hxR`uLpF^B{tO>wy3G2N@LA7NXy-@!8B&gzb3eNwZ~1g< zN!_?U%8qRs)`ReVOGTESsYg>ZXY_U7xJSuEH2E8HWUawAk^tm1kCLZ;nQH;dPF2=Q zWO!`V0>oMlTd`9aYb`hp`K^mSo*?Wu@>a^rQ=!kp(Op}zt|l!V5oXxvs^Ov}jg&^I z;;cZ(-1$ksV@65&EVh$}x}v6m^^w~g$l5uu{fQo6B&MRiW)g3rG3HVR;9y}@M-Uho zS$(I2`l|PCin^9McSR;f9Q+V{RYBlRylKlIq$9%;3?I#NJL_E>k*cmwszxCkO~@F@ z3V4N%9ROKb;I6)jhx&yx$lu|RWkClAwd9O*n{9-Ua6yo4eyYATU)+a>KVuwiAZ`c) zbyW>0BmyuBzJJjt5Fv0T(F=#9qy5lu--r-`U1N;;iCe$stKz}`08;ysp(WiEG1D;M zasm|5OA+wK7N_EE!-`sJDU0+1)oX7t5mH3K0%;Yk>KB54}{ zRQTX7BW;#Z7LK;HzzJn%`iWD{lDCGC+Sjm;9=KI^N6;uU9fF&b=NkobrH90fd#d;7 zn%?X_j=DKp{xO19KYymw8eW;zb5fb9TaxF+@nhtnNloc8bmQN#kV79a@&Q~RkDI54 z%URlZy=a~7WR(pP9kGM?tcI70+IlDAON>#Fale|0(`xiAryp}YrhpNX*U45fyMc|C z8E@icg5gpr>8_OW%WCi= z-pxaCiNgi85VhZ)7e4F1(cQw`Up$qT%1XU0UgBIOwoF>keECk_OfI90bybw{^87>t z;g1D%eCzDV@Z!!1sO)#gP8MdPhg?pQ?F4(ahUiGxbQvU%$SE}4r8`4#iRLYN!9dUCAbIhD}4pdV9=E{f6IWYT)p7D;Ko(N?wCKdYIp&$!B=*1euMf5aFb%kG!A zR=L1~DTSfqK2FA0IqMJ6lcgl8eQt=<_njYBa^|uLi{sCR*~kj=mL0v5iz^j$JM}w0 zI>=@m%$0;65aGJ0WSHu57tcz*3ihYq(K2b>Nk^`&(QYZ~Ttua#!+d`gKGEB=h&(!* z?3_m7t=`%hw3Rf`x$*7Pjj@lK&EWI@0L3)RtcJQxA3{L{WqXm0j_a2=f7|bddfm~( z_uLc}4#4hf4|M$d6~63R{>y)XlF?T|GaZ5)$pHuFmBnT)we^%uqiiM7Gb56nvbD{4 z4`JA~!y^k+@hh^Q3^=tEgHUNoC)A(&RXaPWLGuo7KRm6e4P0*^wno3y9IBBZD+M{$ z_ZOp1Sj(g8aK57b99MlEJFB=)#EZ6`mA?~cYh*G+Pk`GWm@68WR`#mkLx{iWi1ody zFU47FJkRAGCma1j`X8LHLj%qT7%R3p_G?xpBx3QS-Y-WI=r7V!q}wZKwS^7SOjmvv zHsMa-)}I~5cK2N+qB}8(CiS{=V^D%q=We^hgWceM{CF(4xrO^+p7p8 z`pr9Ben$&H>p#)I!wcKrQD7DNO0@3TZIupdT71J*m6$g_oj9_bx5LZS>S{Z^J!?av zm5*uPVygs=Jq|+Psrw>v_lB|;=sqj`=}R8%rMrWYJO*$_=A&mBdr$DWpZ;ax^ct3$ zFU2*j{{Rz!>w%JgC0E0tZ(40n_9xgDI! z5APMPEgW#sx47FS4gP|yj>a7gLtUTEU)!tg)lAG4aY)nqt_LfX;@Z2#n=4@ZGb1wR zsmk-bZBqY1@J1qrjK3ZguWoyYbD1E~vHexx|r$j8tozZ99%0 z=?L&^Ny@|ZR~26r5*VEgG++_lR7e;Y1BO89(^S2p5(6(`L{Ev!>tUHnPLxM+vQbvGyJ$5Q3EcEz?(Hi0o`;Rmm_a-9q zs`Wu&h=>9rkmit1RFK|@j^!tE0rXyg(clPDQv~=a(M|mc&1mY=@(5Zw^I-WYY-t;V zf};&N$sm;svg_!24mLXC(9$`Wqh>>^>SEyJbA^?~~KuMCEKX6Ds zid&#_MtYA$REo*6t!%fL+D=PweRf`VEmg0GKdO-Ei+AwzS5hk0i6TB+;O*p84up-y z>TvkFZoTC`MO&GbB{jUq;$R-D$3h0YS(Kh`7C%9?oclA=A2^~h> zVO5xc_=i;FAr$m9P&y!d6sJM*_E#scIAEzp4SVFq7m2olGTHJHsJye-(#h`-FN1Dl;%!A?-vjcIAEftKXA~6|ltss)k)f?>W za3_=kR%rSLzdbOirL_&n%GNi1N;=FQYZFK~ZWRRf0&|9qmUktvv>YA$l!wqe%XPeN ze&$ZUbYL#9xxcUpRI=GgC*Z;MTLsiyr*>gezJY|3j1{WAnfPYDlF5(7AJfHBNn~kh zCNc60W4hkgXQn+>JeFn?(<@bxuH`%DM<+&ZpP{0wwCmfDBi#KKBY&|}#|zve zAde-|(&>oY4q3SJ3fonqVVgY69-|AgywsX7mOFip1lKyA>7}a8O&FG*rZbkv*5`ks z#$VezT3YDkrm1_XTwBTMdO%M(Y8)+HsxS9p2#{%>gN|wFcai3y(#9? zY&F^bTQjbwTltpGPt)DHE}DMK${ylp?n{eK*~+}L^oLy-#;{XV@{O^Ow{=fp?I`yi zT0j9*j_fn0Fi+XB@?LzTHF?gPzJN!VLX2NB#m3c8o~$NvD={{TtmtNSJQHPQVem8Y#ePJUnR zr9bqGRk@^h6(i~X>tZ{whM#}oVFgfDb`7#Mr{N>ms`Ag$aQiZOsr8J$=8@NZv8%X= zO6nd-SR~uy@>`d)pB=Q8h0)KZz1__fTi?yf8eOupR(1fTk>*M&nPGV7dW@`o;n+g{ z#~$Y5UI$H&`>yJ&o2Auri~PD7O;Y5g4WpzFYn~hu8tqDakLr#TNBk9QO z{{RKbPwY3TgR%CrpHQHGVeL-S{{UGy^C4m3FGc&J+pqh-W2#STt{)tT^*moTIA`)w zAKHIHy}%7g7JTqp^+>@LU3zR(v)G?hw_{R4_A5x&AMO3oN67yGul72acAC)~ z`F5kGcpl^VD#*J^aPp%8`i>a<&IupEa(L`Zs!l(woO=~9oryIw&nc^L`4wjf{{V09 zzri0T_x{IG-1}B&TT=sL)Un9H&_oG8$zhtiw?2}N!Cgs5RaaX)v6iqkn`Dn1twBTB zGU+}((^)Ae%c9Bcy@KL{9rTho`I53w>)I>z-~Rvw{{WW1slU+CmhL=O)7DKfr7|_{ zC7|t$pA~YKk5?*+aZeRLIdikjS_v8O3w_7fX5IkI@`L27Y5NRYatmgeq3Gepq7CP;+G>Z7bw4Rr z%1%CC>GrA6vPu3bYMlKB70H|y?gzs6j2@~n!m8N7?&Wp@;gs=Z=)ZGBtwa%anWTh< z*J*pr0Ub$?oGbOSw3dsik*uEMH3N@@OeMHKnz6q?-RaK6zaKSEQ=_Wn7^=7{dx)$;ukye)Q>Yj>2C93myvpjSW)H%)i94uvnO#HGmjzy8~j@qNWvzy~M z9TnaR$mGMC;JA{4?ZjO@wZB%ybBVnoxWoZIncZYo?$EmSz(?NNQI+vGth5pXk>`*3 zE;;bIzOZTk0KZeBIgwsvqp@R|r1jg)R>3GE1dREvVblGwG{mnFUMcIW(v66zfbx%; z+PYtjdPh@+{oQ_}o$mdCC=LhPIbLPhH`nHiJ0X!=yEALSARsrzPj5wz(%u;>0b_&P z)H$RPg~^W9T@yG|t*>Lq<=swe!^T0%$)@dnRa6|^wr&&L-Q7ZP z0tEMUy|j7?WLF70^Q z;@S{w>yARr=N>aYrOQ7osF%SkdpT4m6OcEM!-px~rW&f+Hd z4_EsJTi+Vg%+c8uUEXX(CsmoiRmuQ7y5ze<6DZHN7FEBwRZkwPlTRJjr(=Ii)wU z*$nVY`n6v&n-5XT2CI07#|VR0WtnY_hVCLchO#j{0Io)dyJN{y$K1gGIdN&h;KRc7 zyK4+OP6hp(64}m4d_fr;5{ZOOQp0Q1_zq#pJ0Ryu%_JD>4SvdYa^%?}9bK(jC%hQz zfP{BYN1p{64N#FG4q$j$t&=`#)08N(rvk)#JD9M~)hV;Dg*8-~Kl!JcCz)K7No=IK zRZ1t)1z0_gc8u53bQDoykd~hq@|-MnQt+IlZ2}!#P%kbHKwkX~xz z$EEgzj&XzcajL&Es9oVWXvxdV8~~wsFkG)>Q7tWv9GDN2t=!mmea3 z!Q#MzH{~O~#)paoi=rQeNAKVV>Ictxu058QK?uI#=l16U(es&ZKUMCs_Hk7d^Qw_J zI0pPm7pbeliWV+ilQKrmrw1D-RWsXjQO+XKiJ(#xPaI@535(V)^!$sFMnyV#kj zP&aA})-V?_5I*4Yk+qC)kKMiy>nQk?pu2tO6w!_ADFijluDzVO5vr36OP!+x=P`5Z zD$4el`4U0~B`*w}%FD@EHcii(1+Gb06d@F=yXI!G;kZ+TYy*FgPOB=-J#nKmm2Rw- zBp!|3oZY_gK$a!@N_+vrJCLeM)?rg8y~V8>7vR;_Iuf8rvsPJ#WDyusq0`EAVW=Q~|iv0s88Af~akTrn9zWehVt zyP-iosRpZp?F6T)@!HxWZl?W)rM(*^!wjj+{?0+GPB@~eE>J(%2wM@d?1Q4CBd!tK z5Y2S@{;7m&*hcvUCX&tYjpkvxGDOkK380p-CrucRW?P*6;Q#AeG9R{)LoUwHj~MqC9AiNY_!%@(-YkjNVf_6!i-R$_ z59nao$&Z(4V|0c)y@rD=-_myh=}lA!%sWao+36AwFlF+hkB}Fq-|z;TPqL3v*pIaQ zfM#W+pM}pUnl78p$k0Kb`R~k`$V#OvO30Fd(9*L6F}z!@gkPE4*luuC-sVcLF>up- z)aIFyJ{}0C?>7m3Jc)purWoITIy;9i6Zku}W~K7)*3+t}2B_Ax+#_5po`b{dM&kKM zZ_zkg`JZVJQ+?B4kJL2cy%3Fv40rn9n;28EZ%mqV81PbIea6m5=OCD1auCxieI50g z1dCX4YWVQJV7iM%#j4m@!q@K;g8V2nMTfXBUx=0n%!ep_!Ly8=61r?<9Dm9SIH#rw zedt3i1j5IpYUUjhi;3|O;t)KmqMmS=@*dw|)>aSiPL9}9JkdkHT@*~{v^hZc=Tj#Y z2u-n%$4DHWFKdJkP>(NL+Pujj#pHLhDlXDKf#}WD-)sUJ2Kg`gn&+&@J_YEpv5PaV z7~v;-XHWO5)($ifwAIUtPzqOC9~RnwvJN;SJ;^rzMwA2Am!ApnJuxqu<>G%@CWSX@ zzIPXV;D~B-$OJo@UM}`CL6(ZkSaqfNdB`~SR81A^+z6Ar>JZD`7Z*o1(Kfw} z6QsI_Z7QqKqkLjBGehgf1y+?MnZLby08^@``dFj@-2+b-v=8e6<%Li!WM$J-XYyqjW{he?S_XYd*@e`-pdy5;J->Jy#o zdC$%WndD;4K-}R~e3Q56B}i5|yuqF24ce8v=Ax%83Tw^II_ay}lW?|Kc6CLSfpu~` zOs37)5xqUtM61Fee-Tw#;svqVZ+h`(6a|gb>oldkrahBN<-r!nvmE?HZ9FbB$4aMH zoB1w+=Sxb~7j-e3w!{iNZ?>_Kcr6GljTFnS*AVCV-w5u9{5rXHgBh4Q@#A#MJ~iBE zrRCs!Z#!XjGT}6*ND`cCxySem=#o17I;B;j8HBaxI+tQ@kP&?t-HDw!e>yAT4ExhX zZv3|80Xj4cY=YhM?RgZPXA=@``i^7K+?uDdE%HO=%l{yi22QHdx0+cEZZ?CK_}BRD zX9=99^-H&^isPNy1Q#h5uyLG-2^|-%UGzY#dvhXeEn`I=;8Bw``z~p{+m7LeNB#ni z+bJNUy0uo>&-LXMUpC@_LtKb)*vJl&!$9yKtRd6=F2nP%rmmJv*^)4si_{ffW$X6R z(~fTRFbM^ST&a;XuLVxU^2D67L(_tsx~lNU^jiTO=UttQq+lVhs!}NEh9j}~t#chtihJjI3b*0PT$U`_f(5Vqfk<)nj)oKKFxpkh zFA{06f7~OyLW_v%ZF!OeTQD3ZP$TyxmuhdijvJOlFWd^ zM`CyvOh4|0LjO)q3I~OfODBDALMlC7Lj7HEkKOz3%rF$>g4y9~$M8&SOG96l@RtAy#Q{iQl0zf^r$r-hqc6sPg4Z(jZ+@zG9zj}$&h|iSo0kA zB{;?@xJwS|=)HXR<}Ft^ws_>7J#Mlz+|>I6dQ(Uqm+`41v=FOzN#+mA>N}`xlOiun zq+s#FzB12Zb$sX#IguY3I)p5K|`n$ zCxc#yCCIY6zFBnoqBfMY32IM$tj2&Brc5rQn2VQD z{DKRQgLxRoAv$tVc)X)TrK0{|=Tybmo-{>>8c_sG@H&vpMMMpzLi{2hhL=!b?S%#F z<}KUq`A>*e4OisKXlU9q0yoUCfUzB3v3 z9wmeWv&+=fsa!&wf+6)>8JB;~n5GcjYCP~mi_xUyBnZC&WDLKlM5@+$Gc9(e=rZw8 z{Gwj$B)>L%iCY2|YuZ@;BJiLu$hviVU@j4hq#z_G17o}NI0vZJ;7(x!sac$g2O~uL z6-L&)SGn$)JIbeEnZu^i3GlLh)S&a}nuD!1ZIq5tnAtKY_Nz;jXMu@uG%R-QwsaLc zkmYPO4v25EH`15Fe=6t>F|Geh&J;jDr#@b2^&JkcZwP*$yB_Oo>YaDs-a~nLQ9E~4 z(Nm$8k%#cN_7CH}@TkHTY3N_Ri;XrxCoX246qK%7c7=V3)rHatnP)!=2k4mVOF`S^ z4{{itPvdgiy6YI{;+(h4faxPx?0X(ClGvItH)MkDd|Km4x$j7Vw425;RXpEFmD)b0 zCzxEt$D#5=rbc8<0vm>hnC;}H;cp)&ue~Pb!XSM?_h9hV^6%xV@Jzvz&ty$;Y;Hehlc(7 zW8va6k<()AV#g7ZUO1O$Rm>6HI+1F~H_&ML=xxkO(fvyCjgpdY+s#K^%9-|zq8Fix z=`>C7>?U7+{4@L@S#P(N)Nnznug`Na=@5fuUT7K-rt zGtCC!eJgD`*Qw{X`=pdEH*T$1Lnms9a5uD`+UHqE$4zcS+!!apJn|3+tqk3ThM2o^ zU38V(fvwv@_~W*^={u^JL=)2Id0l}StCkux#h*>a?tfgP#m60=8NpuQ>NuqK^f=2` zw8K}nL$Wd7^+;w$%(rCOSROw&C84dzbvb2oBE;K29+5T=p=@!Uw!C#M@%@{Um)8b? zDRB*;~!dW!!S4ACVVD z;GZpZ4%sA`AO=a|8??oI(j;>t;8MUw{*4hs#UdvI?TUT~&wk#-3<|+jK+s=;cJ|O% zRA&al4S{0tyPfD0YF9Zw*2dvYV!TP6?u|MLtmdf#;Yc*n zQ97WV8Yr2^u7*2IG^ND(1MjBjCx;8Oa$T0TJQLSD3Ep7f6k1;`fTBp%1am%l2hs7& zNtsxk_rcg&j5vbi?-0T?e_pg)s*$XMTY#1&HdT>y8&aA{&*F&{J(o(@G$rY=TIxh` zY@C8`s`ik3I4K4bz^Yt(?^-3#4T;Q7z*=pXw~(TiPzxr2J%li6<7*q3Groitee`<^ zD?PX7IK?q?S`HI3z(-bgg&E`~`K}=ZE~ZKlrccRdqZ;)LRD$@setMrU2l8p;l4NsK z6mcA*?I$@1FgWJv9#NtRaeZG9J&3Fxf@+ai!GMvVRGNc7=%3cO)gOe=1CV;Pmd++9zXfrQFSq zy#$JGfZYAc{-|Uq51%pYx+j*hU8+cB4_GB4NI!B)3ql==6GFCag5Xi8So?_+9?PPp zxU&$dAP+xqJyQgDa}jn~_*5dk@`d04T$be49;-b8Lj^Ih8W{MSh1L!P@?W1Q7|6cGTSE^t{#cSAT80cj<&Z`Z@FpqVVr4>!yGwirzLHns7|?Pw}XU< z6&1}>sow;4+-`9}OpT^cylaoxs9tFxvbiG$;Gu*@bDNv@OYV2GyenQ`p>ki@^pZ4@ zDc(3Wv{6B1(Dk6GcI1OxJgbpO+tvy$1G^x#Orv?HrJ-RpF>Lr zH2)a;6u%JYe&@+l*7PZ%QqC&b?TYY?wm5%z6O(KKa5`>yWwdX(_jsfhE)$pemTnzb zHLKIMwfk@@_LFF9E6#+2`utQ@QTe;A^vUaEQCd4x=W`~-JtDrP?)w>(`(Mk`Ui4dZ zPwA;S;A=PeEKD{jB7T5VGsRas__E*4--m5a+|wfgfP%4SB-R0CG36`_3HFzGnG z^JdZ|>G|E5CiM?lcAXsXYtF}uHsIZk5qFgwOJu%1^x7IVq(5q{OJY&$8mDDzk7W=P zEoEdub)>+f(@y1p@W_9r*j`9FQBwrmYP~SC7}+t)K!VSP6drGf7iO<$Tn!I|5x2+- zeqwfOu2u_q6}*i+#suTa!*(mM$#HlG2OJ#q9jd5G|FEl+V(1zURZ`0ZExd}87CXbH zZSJ^Cj$sKS+$nOr1ONil%DF<}C)9VdgGao=Q9MO;I{sO_p*wH!uu~(TeOQvt!+gj! z$6+7@auSjgiPn8bY)Q?9TTsSY=K?Qr-ikmle(9pQn0=v zL1DBRy$Y6O@1<;nYMCGb?Pe|=aYz5Sq-{>YRk~*h*OeNdS3rEnK9$uUktv%f3)AtB zBZlns)5P-e%#eU&4Jy6`2j!o z-v`3Adm%7USHXdOx{BMwk44z4sn!CEBRPtaKWa-wp<+>6!V4F`4a)o1UCzcNaY?Q? zbPkiM@kzY7PHlH^0Lo74ubv8(!iTfa(p=EcI_qQYtjRAy9K^y#q>B=f!`1oJw>2fw zqbA%QN?^YxuzuDMc1KLGC1y?qEC%pXjCjuk-I`?)*ZkDsSd11Pe>sCWTddUs4w3i7 z23KRVl?D9LSY&(LU%+<*|Gxkg;1|)iBXQaZRrj=@((7uB>ttTXx_8P|DVOzSDH9PP zlg_cH&JhePi3$_iH}&hxoDJ-t!elX?SqryZ9I35|$+V%PG1n+n_0bu_C+ZvHyVT|` zb3W63dI!Nwo&|Ga>~=-1!}9uFAC0L6jgedLl+60AMEDf^t1{l)D2wi$oZDsveUy)G-FdK**paLEUXC1!C4|Oa z3&4k8Gw@^Pn0`uMf#{nW6m=k6TXlhNa-hhR6*N@jMic2D-p+FLRZYhE_6!K`8rwZkVIwPKQ_u&m^L&A zL)qR~y<3RAX?CQC(2g+FGTq~c1J*rpOp6P}`^wpicZZiH)wV|^OF7LXy}wJ|wAUJL z?^V9){RJSY$V$yqme>($8%{jSRuyK<-e}#jw9=)7VOjsM>qY)U*ch$EWMT5%aNg0h zo)dqPOJL?E%l|y`MMGou%LT4pqAYuFM%ig5wu1V!hNe)lqB3tRMT|X9duke<&&UWv z#lq?6#>?Pez^f)PgM(fiu4TJeMkSl=my)J_YNta%xm$Kh_g8ca|HGd!Yo9s||83Uu zQ_{irY$3S=C)wYM=2LH~RYr14%+GCxKZ&F2ChMwJwZDwVmAl?_hbkAAbxR*n5CY$; z_X8OiWWOc!*4DHZ0$K+!U^ThM#jxx(UZ|KD=T2%0CfA~{`0ZFtau3EPJ8s~M`V*A7 zqG+V-cxt7OEK(!S5SKAP*_z1{^CAbF^3B}tfXzYM=E0K+l02l8!cdaW=7J2V!CgZ3 zV6Su$)!#b=n*A0q%G_kbb(^33*4S23Vc3$}_h_@mv1(2C9kk3NjHG4g&W~*!soR0{ns@@56LSqVN#E)5dbLZBF`a~4^>T`6{mj#2r zfR?qtfYI;M6ejJ~j~p|E$IZP?S*kC;KUpG@IL37!q;*g5O$b+Ya}pk0M@5J~As+4a zbu(|b0=M=iN|di2f7`kqO+8gmC~}v^M2_xUCqZq7@5}A#j|5%H5^kTKU2^SQ@wc2& zgR_!4kSU6sao(pi+3?eP*Uf03JWd_&6id>)IOw2%SGJ`r)Eg5$C7Su(tbwxnn1`sd z^iYTNbm70yJ=N~w2#TOCYi}#BX?-$XeXNp>h855W-Y$)0A zmbqWRjO9agZzg79w-fDDnw!FEd1SWx;Wudn)b8jps=DIYjO4)&3)O1QIVoy4<`)D$ z2YzwQcOescVx_0l zLiFd;EZ_?sE|$b&_$g`oL^&Nw#tlR%tA5_S?c6{QUWId>49>puV}E7xN?9i(H(c@v zE1~cF0?J~4zpR}oxamNRZzzH?xsNSHJm!!)@WGMQW+<70328nTq^f6l&^;g^+JY0a zvLBszbiBNt;d#0|D0qo87&F2|LiI~?xytS6h81Kx=P*ALmj0*V49lKtv6+6v3ER?e zTEh{h(Nga}!8c+fO5Y>6^PVGp`z5!Aw_(77L$E(v$igO($bAXx;iI~`Yl9v+g%&Sw z0?JlM?;q=r;RuvhKkp_UgtIFy#c>vl@XEu0$V?n()1v&3-T5ERt$&4xEOjz2d3Cit z`KrWnVZ+C{DmYXWHOj36=YA{oIbc*_l3weG5cX5%yLQY`RdC5;d%A?7fWIchGP=ov`$lXl#`>HZ6tsVDVpR_eLc znGp@k$BUU$Qi(0#y3bjH0qGw&e%7BAdV~g@n$WLW1?9G*sHk4J8{Fb|C?}O~L)##v zOg?rEYY+$}O&S}>Y%6xegaiTE#Ao#{0Ox|uPLI2$)p%J?Q&rFF*z4xJLO<3LoY2a! z-l}_YBaGcXc(0YFSVttxH#hdqS79zPVZ9&x z5R%jhUzl+_h=*Og&U(Vp-3QWU>}1asRW@X-tzOI87G7)94&!c158}r5S~Z1&%0T&* z3?D_Dold3gvHGU;*{7x*d8B7HnC;GrIWsOu9=KO|cg#cF0@~JuMdl#QnG5qWrFN># z?%?6Cu7WsXYG?X)9z&q}&wljVNrU&l1D`wXCz`8X8hk}sWa+xM{Fn~bJE~h3q~2h? zh!PmAkW3%gASp17m{Po*b%vf&em=dyyPKZv+dh0BbS%<#z;vf4_WjXZX1ds5d-;i=K{sbaccCrwK!M9NisB28JQk(o2FwZ! zeXixYviL7x|AWu=@y>5@Uw-ssrOtWa6$yj$ZpofYT>R+Hg)?pwPj_?B^2aElkK#8^ zlYapmFxJ(HpN0L7wTTP#^SbuJ7wh`@Cu%F~zEj|!AE!%h+UkisV=U-B12^~Q2{|4L zl*!mFrCnCQW@BbXn;rQHp)b&YeI7}H!c{VFklP12V&Zko)LqYl)-SC8vT}4VWZ`4N z*o^mc+ly-4STV`nr&7fXP6Nw?Va@omwWTYR&vJ>^O-`1Hx^hA1yg8BX%-1TKkSsDr zCu+tcz2L-Rr(BtRE{7~K6eOLF60jF(3nb6-QeZ5WP(GxvpLI$Xu*&JVvQK1t+!YVN zikkZm{CdY^Q5N#g`nJ?t#vb}e169?zT~4ZZ>~9sCHjOLY?HrFWg_{G z;+_-Ualxs8(-IT%%eWqed82Qid*e?`y~2DC(baP*y6EJ=y6ffYf#39$=RR&+hyek4bW z{HMRD{8Y|w8C`r4n^G50LSu7;EW6!^LgVt#@;$X2mYIvStR0h9L{}#`?X;!2O)f{7 zIcqOCLdzo>b;@|n#eQ}vIHcA_C&K(!S7(G3O!fWEj72wyBzhS(IZIyByg&Tzh1I6P z2L^X`t1l!^z>j|K4kdd}zcTfBwA+0Z2|#!IXj4>No(dwfEGSDhxoiv&?4P{>vZj#- zZGT;?jCNbFeWZj5+rzn?%g$X#yUUH{9&%Y=LSVM$b~)>|wk+SKI*`zbu+;FHGJ5XB z=ZDsS9^qJ%8*~V^dC8pO(t%`G6RFkr@y4IWJT)LS|gB!a|Nzv58Eo znxc_a0^7zT&e3)~@N2e+2sL#DOhc?>_v_-pnCdrWS=|^3(n1y zF{zbULiV;Dpzn=03v$+rJ793A1+gf#u*iK z(Q(Rt=%dm~*co-o&1fQIpY~)vNl6^wVWss>7yYP$yi2HY9hC4=lo1w7O&PTZWb?Ox! zwIJrgDpnVABP8`iV9S|s&C^&(sqnr9`%ih_MUMcEtmKM61H*&wqd)`UkiI(fgua|j zhs>H#Hp8_^0mQs(_EnwDI8-D+c+h4mI9`I~cZKb<*>TDM`CwKkkc82XIQTq5N?pwVUhq%zj$8PnR25bLz zi_8_9Az|CFcIT{w7MFqC@U!T6Yz@~iNa+)drP$4P@Vx~V&tmbbB+?6HF+{#T}eKL$3L=(({|~&lcHJdn{lvZK8bd}f!Gv_;(y4vP-oh{={nbu_hExlax8S{ zb+YLd{quR8@`ZTJS~+t|&^W4RjqcG|vJPwX9f=VkFRo^)Gm`vmeRgU+i6s-055^7@ zK^yw{Gs&oB`UXu800;m8;NgprC0f~f-5Jq~mvyfV!z!tmWrR}*-i;JDH$A#m7qmAiZorlMo7 z*te42zkZ2-4;6$TuybC0H8iQE5x|U~bRQ(LFQs>xCr={dzSESSLe@{kA@stHmt4i& z?i4DI0S>m@8esoyTQabzOmn;SaX4-sq%>MOy>cjX$EtcPD~K$fdX(*FvxymWYiVhb zezkGJ9Sh8{E6>wgxdPVqjvv2hqX;6%iNkEQug4$^L~TOG(poixs2m~{@Js`_K%Qd< z|6W-41n?JNzW))vZ@J1#xp~Pe=lQ;o*r~mA--@y8Tf3iZ*m2{sj@rem;xYdOl|Jw1 zCOQ1=vT~P>6q!>Gc1s^6Qu}vI2(PqY`@Nmdi_2v5p@Ey=x*IRoLABVTTaPb9I<~RE m{uFO}e^~x`lxF%rojh0{?q7=U|6Ts?bNK)8eSrVF^nU;|ogMuE literal 117178 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�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 diff --git a/data/icons/mute_zap_gray.png b/data/icons/mute_zap_gray.png index 01325a527fccf3798afbff3d4bde6a1e912e9c22..9ba42bdcbd8d020215f1f51526b1d9d3b557d509 100644 GIT binary patch delta 526 zcmV+p0`dLQ2&V|JB?5l|>`6pHR2Uh}!LdtKVHm*S-}`=_=bjriSkO{5^bb@NMvGtu zLN>SrK@jc{WYBe!xJ#L%lWUtxZBao(4N)x`G&Kcnwdy_hob$ck+sPJ3-FzO79zi$^ z7rA(qgZr`_nfe$!sEA4ks-iA2sA^W#7=j4HZll38mx=ed6yO=C7Kb(8*U>e}4d z$BB5QqJ;-vfUj4Qyq$ZG6H`1-=Z~I(k@SHIa1O>l)Gi2rQDx{@#S{SDgLMwj{qr9tx9i?*I+YpRM74x$O z7_KZsvsN9yzfNl^+N4nP?HaUBcJqKwZd%YK*2XXoy;b7(|hdYP}WlvmAswdj#PyoTKM2E(8N4Kwb;D Q00000Nks-uM6N<$f<6@Zs{jB1 delta 569 zcmV-90>=HP2+|0!B?5l}7fD1xR5;7c)B95rQ4|Mo__`5DxztuA$Zvk(y6XM77)O zOP4N(qiQUkOr>*qeayIF6p9m*Q@L#@X9liCU&7|b)6lND+Q45Cqr#R*zQypCx!8fa`_gZK8KQki2g zdsO~gA0ULn1eJe~NNM7An%ls36U~3is?0K&ak)G7-a*2-QND#ci*sjMdUqE(KmXU$ z7c&g3Lx%-W6px26=;vGb5;exA)dI4=_FAon)l6CSU({Wn8E1c(DXwMtclD)#O_po5n`Mo+%4AUko000000NkvXX Hu0mjf>mCjk diff --git a/data/icons/mute_zap_green.png b/data/icons/mute_zap_green.png index df45758291ad80229be3ba965b6aa2ad92fa4789..746ff165f2e2a2b44109b680d45930e86bf0520f 100644 GIT binary patch delta 508 zcmV?*V@S+et)0R2Uh}!7)pfVHCje|2fa&jUs~xYKewEK~h)^37Rz6 z76joQ4GPhuAK_kz!tt(c4YdUgL7We?ZN%7>H+s*iJ9Gv1!92{(jGLYN$Q<+0h=;ZAp)|swl}QEfpuj;j^ZEJ`>tTi& z_ZMp^4Vj|!hO9q-4RvKq2a}poGFFAn4mzk1(WPW$n(TD13NT!M0cE2(|8z`eDq2H= zZ+F3h8Z@FF6Ebz+b%47M*THPCy3tHm(Ma!p)BE_7t?z8_(20swL}q@udG#KkA^1Qw yXVVZgWgVoPM3J6qyOW8l97hC)1mPrt)8{W|zz`g-%+QRuc*9_0Qjax{Y(%XJBtJkw`I;$r67(EtD;CEa!D~RX`i{ zPv6~h$Q}c`ckagLmy+oxLxf?f4j@diiQ)fh+c^({2y5cZUoC*XWB(Puz)6CqwbvqhsHCxRlxLU(1mdelVA_L~kG$VdV z5b*m06oRbG-Uvq`!_UkEX&?h|YK4-?fF4!^A_zd5lq3YEuFT9{Q?7Gxk!Wn;VUjb@ nMABwnXFwerOTO`cpo^zJI!3u$z58ya00000NkvXXu0mjf&`txp diff --git a/data/icons/nagra_green.png b/data/icons/nagra_green.png index 69b3683747c52a47800986acae0c62b9cf74f87e..7682759cb621bb0ab4efe20913f91dd3fdd57539 100644 GIT binary patch delta 48 zcmb=+o8YW1=IP=X!XcY%ap3R~2Ih2u9JiE09y5lrc`PD}Z71Dh00K`}KbLh*2~7ZQ Cw+`C? delta 64 zcmd0+o8WA%=IP=XQW58R%8-|VfrsfJ*Ma?VEDEa@E_qnY%7cX>47cX>47cX>4<@bCT4t2P$U yI&POY6Zr#|>nZ^Rha{14Aibx3lm*feK`Nz6g# nThogC9oRSQI`N3%`Daz(l?&w#w>fAEGXR07tDnm{r-UW|B?up< diff --git a/data/icons/not_mounted.png b/data/icons/not_mounted.png index abb294e0f34381721592f0322012c4d9ed43b4e5..b394ba62b06796c271709d065d00bcec8c17fb7c 100644 GIT binary patch delta 40 wcmcc2xPx(mikxVGPl)UP|Nj|_7#A=wtmNh0rl@$r#^!lu=1zy*niFHo05yvbumAu6 delta 67 zcmdnNc$sm6ilsq-Pl)UP|Nj|_7#A=wtmNh0rl@$r#^!luCIfEpZ^0bViB4qzl->|M diff --git a/data/icons/notyet.png b/data/icons/notyet.png index 314e33e2880c95bc7afd07010d90cd3ae4a3953f..c22f319c376d9fbf874a025931cfee321314fe10 100644 GIT binary patch delta 50 zcmc~!m>|K)$jrdNplX||G*MArf!ou?F@!@lSwRpeXu!b8_1r@Q$YStx^>bP0l+XkK D<_HP7 delta 61 zcmYeuo*===!OXzGprOkjJW)|zTg=nNF{C2y?EynZps0hv-{9S)21!he0t}2V?`KH> P#TYzY{an^LB{Ts5$j1-* diff --git a/data/icons/numericpad.png b/data/icons/numericpad.png index 94b61c2b1318a043f0aa1fa7efe2c3ef6b9f644e..101b57842826912d31532ff1e6bdc9f203d73193 100644 GIT binary patch delta 616 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 Q000UA07*qoM6N<$f)}QAg#Z8m diff --git a/data/icons/polski.png b/data/icons/polski.png index 2afcc3a2d77e03ec4f90dc6bf1a5c68d7a19d688..6e728b8c5f7cdae788ae820fa3836a0ac62e453a 100644 GIT binary patch delta 54 zcmYd|njpc+$jrdNplX||G*MAhh2PV~F@z&JIpF}~zyHU(81@(Nf4o=mg%zlT!PC{x JWt~$(69AjF5hnlu delta 65 zcmaz_ogl%bP0l+XkKFWnM1 diff --git a/data/icons/portugues.png b/data/icons/portugues.png index 36b621e82dd40ccd68363851ed55dc41efc6286c..02065e92a333c3e4d488d1dabd5d8c61ca6f8281 100644 GIT binary patch delta 113 zcmV-%0FM8w0;d9yy=qlSL_t&-m1AUNfPnu{nvrY)Mj-f&B*4n}lYxPQ@jFa_lMw>m z!vq8w-->_)Ucdw-pei1~1QZzWDKp+tWxNG9RE_ZlgC^rOBx|*R8ZJ@jbc6r^>`WCA TYxEEl00000NkvXXu0mjfa)~S0 delta 117 zcmV-*0E+*o0;>X$y>3}aL_t(|UaikJ4unt;15kf*&N=72d;jB6fJW2^cYcj!usgW( z9yneQpCHKq6qP{J4b!q6m%#H8gi)Ljq*-2+RoxJ@9r^*|M8M_+Shwfwe*FGd|KiID XEa(KEb;J0z00000NkvXXu0mjfHFh=` diff --git a/data/icons/power.png b/data/icons/power.png index 9520a99d531cb31dbaf04704e6e8fb64da753c64..2f7da6ae821037cd0b728c4899670baea34842cb 100644 GIT binary patch delta 162 zcmV;T0A2r}0*3;SZGVMHL_t&t9b@4C4+b9?KF{a?f=+vepDv+!&(hN7GyHHl68AVK zt)Jn$^<%%saYySJzV}`7d+hrnpW*wyNp_FC-sCfUyBB0^?EcmsiLtK9*u?9#J;Rr} zYs$v8&w&i7x6?B3EdnwG*S&l9O35F{5MO(%P}!g1lZ&yDk{hzIJ_F1d0J7OiBx@wE QoB#j-07*qoM6N<$f|_blA^-pY delta 187 zcmV;s07UV7P-*2=^xBFmW=-clwN9B;MaHxQ)A}9>+^m>N_bXc#4Im zYH|RbSB~zopr E0JcgHvH$=8 delta 62 zcmXS@nc!@x;_2cTQW2MW%8-|Vf#Zk+%Y%4-);$`R3!|fFJ+U;^>Eo; R@$C#i;OXk;vd$@?2>_=r7100y diff --git a/data/icons/powervu_white.png b/data/icons/powervu_white.png index 1d7eced5f1114f46c522c5d6c926b89171a87358..07c4c8d5a073f506427a8244a007e6e5a22ca409 100644 GIT binary patch delta 50 zcmb;^nBc4{;pyTS!V#Tp^SQN?k&W*|LaOni6^RU+7`IMgeOhJ_&ddM=p00i_>zopr E0JcgHvH$=8 delta 62 zcmXS@nc!@x;_2cTQW2MW%8-|Vf#Zk+%Y%4-);$`R3!|fFJ+U;^>Eo; R@$C#i;OXk;vd$@?2>_=r7100y diff --git a/data/icons/powervu_yellow.png b/data/icons/powervu_yellow.png index bda2b3f016d0b7fcf536d571017680390f03c2a5..6e95a8d9cbe8dca648d410a6132c819e2665898a 100644 GIT binary patch delta 50 zcmb;^nBc4{;pyTS!V#Tp^SQN?k&W*|LaOni6^RU+7`IMgeOhJ_&ddM=p00i_>zopr E0JcgHvH$=8 delta 62 zcmXS@nc!@x;_2cTQW2MW%8-|Vf#Zk+%Y%4-);$`R3!|fFJ+U;^>Eo; R@$C#i;OXk;vd$@?2>_=r7100y diff --git a/data/icons/radio.jpg b/data/icons/radio.jpg index 0113c51ea67ac3f3721f000f72639f59eb9d60f3..4a9072c536bee00993a2b6d8a3c7a380ea00ddeb 100644 GIT binary patch literal 65088 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 literal 193824 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

    Xgb}1r)Qz* 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�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 bwij`J!r}_r?O4z{hri0--{Sj;Z!i7{Rcs#| diff --git a/data/icons/radiomode.jpg b/data/icons/radiomode.jpg index e09002e45d06775bab6d26cf35526ee3d4012702..7dff6838e1d6f7f88073a2565ed40dcb22f7c303 100644 GIT binary patch literal 144042 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 literal 207315 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®GJapzy}7fRLiE?N;*w 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 diff --git a/data/icons/radiotextget.png b/data/icons/radiotextget.png index dae4678c8eda295e113a844ca02ea1f5c93a62cb..7948c469dd460f200123756a2a514cfcd46119e9 100644 GIT binary patch delta 84 zcmZ3^xPWm&u&;%ui(?2!bn=S-|MxdO{Qv(yy9A#B!^NM^>l==gD-^DKz&OR?KZA=5 oL!qNi%Mr_N_JG_3W(PM$hWc;%!CQZ2n=k-@r>mdKI;Vst01R9qzyJUM delta 91 zcmV-h0Hpt*0jB|wQ&c}mL_t(|UOmjw2>>As1JI0hW4VDhS|_k8l==gD-^DKz&OR?KZA=5 oL!qNi%Mr_N_JG_3W(PM$hWc;%!CQZ2n=k-@r>mdKI;Vst01R9qzyJUM delta 91 zcmV-h0Hpt*0jB|wQ&c}mL_t(|UOmjw2>>As1JI0hW4VDhS|_k8l==gD-^DKz&OR?KZA=5 oL!qNi%Mr_N_JG_3W(PM$hWc;%!CQZ2n=k-@r>mdKI;Vst01R9qzyJUM delta 91 zcmV-h0Hpt*0jB|wQ&c}mL_t(|UOmjw2>>As1JI0hW4VDhS|_k8~XN!r=6BAn`F1|rha+9RwK56L#($eQ-W$($$KhV{EWNrQb|NqCYwUU5NR4EDa z3ua(sVq@o(Rn{;zF}1X|v3Ce4D(>v-pE7mY(q*ewuivooz@g*6@-Ef`)iWk}yStd) z+jcV>$ob^y;usgCIw@{{=(MzB-~Zzoih_$)w-{7yE-89; zE^{I;+toF4)TN~_Fw6X`;=H2xu7eHP z4{MyAj{Mru{z+8MJe9p5lldUqhP$V^t#hwuzfa$gUGpt6ZTTLJ+;i(U9aB{M{bTp( zcXf%O$y3cUIam`Ld*xK2#psndi5aq zF_dD&FCd6`u!4U+K#7!qr(SX>LQJjeP_PbF7w%Ir<$cZ4pf5O(*Tc87U|Ao=3>FEkU5Q<<9xDN0T zNB~x%sOdM9wZ06rSE6WrP^_%=CE&Zi=jwqTKqyi%faF97MX)DJfDND(TE49HvrvS! zLSYp+>GNf+t7Wb40~gi`g>}nUz4{5@Gw{Lr1lG)78IXDW2@l`&@NwX^73_v0OO~JU zf9rvJK;pPSa=GE@JLG#Fp7MEXwlPqzPH%2r0j}EN`}F>5_-THA5ujMFzW}y9z5-P2 zUeVLZfG@xU`~0=faFm1<>-9IlHt-m@ZMjvT0qg?T2U>c7cGuJQT9`B)YU1-B=jIk> z8;xtgdyoGCJa>0!(sb!hL%TjPY05BDf5*=@8t+V+(u(7kz*(=p>)oODby{)UY{l_D zFasR(^@5HuLnre1ZyvriLcQ|vU7!jijtf#_7$%V(Hg!Eb24w P00000NkvXXu0mjf>?|*5 diff --git a/data/icons/res_000.png b/data/icons/res_000.png index e291a796cdf0af81527f851ade71ff4013ac9eab..0c69fd74abda372198b5fb41aa131ec09aba08c2 100644 GIT binary patch delta 55 zcmb;`o#1RF>*?Yc!XcZyCO@I##EN4ac*E#Sj0#ltvGvYc%*XoCb?$00p=**? TZB?%tGXR07tDnm{r-UW|)5sOJ diff --git a/data/icons/res_1080.png b/data/icons/res_1080.png index 08ff896c84c2bc0d283d0638223228711f909b3d..072c559299bb156751e596d3131ae5a459efd7b5 100644 GIT binary patch delta 84 zcmbQiIDv73v#*7xi(?3fZ1Rf#|Nk={1`_rLG6@L=4Fc(M-z5$1{H>Gs$l0BHprFip m4nwh{P=YFlYyz``8zY0Zp}PLEyOSarfWXt$&t;ucLK6UsEFPW! delta 92 zcmbQhID>J5bEt!-i(^PdoNLcUP6h=5X5&lwFWCAPuVsG0qQs?_kS;l2e2XQACtsh8 w!p;c{J5OBZzV)svfK}Bl;>sbl|A|b&vf75~`Ub4A%NT&b)78&qol`;+0JRbx@&Et; diff --git a/data/icons/res_1280.png b/data/icons/res_1280.png index 3361714afade5d0afb08dd91ffe025819cfec668..c75519a8deb4f4ba32046fb49bf10d8eda010859 100644 GIT binary patch delta 89 zcmZ3)IF)gNbC9j4i(?2!bn=S-|Nk={1`_rLG6@L=4Fc(M-z5$1{H>Gs$l1;NWL9%W si9jKb#~fDAIe&RVnl3P!F{Fqv@O)9LjoPx!jR6QeUHx3vIVCg!0FiSe0RR91 delta 102 zcmV-s0Ga=l0ipqrLtjcsL_t(|UPa8Y3BVu}1kfAlcNxhsvVr4RTUqG@At<*&PYnJqD(Jmu@Cmu2MqKkecr;!EC2ui07*qo IM6N<$f`?fusQ>@~ diff --git a/data/icons/res_1440.png b/data/icons/res_1440.png index 1aca5187330b393e89521b714f1eb6bd511ce0bd..cbddf2ea092a6d67304bbd36ed6b89afd7579a54 100644 GIT binary patch delta 84 zcmbQnIDv73v#*7xi(?2!bn=S-|Nk={1`_rLG6@L=4Fc)g=Nc#M*!|Y7V+Ze(x^}^I no&!f}1q#nGc(UJMm=MUolCF9nOL|#30}yz+`njxgN@xNA{edC9 delta 90 zcmbQhIE`_FbFiJKi(^Pdoavd3oD2#)E*GUWrFTu;%A6r4(5ZYQa^9?j&kr8_@OZ*< uvX#l>!X_@aZSMPv>sMKP3$SOG`*4MkC0+Hv#=toYAmHih=d#Wzp$PyuUn33x diff --git a/data/icons/res_1920.png b/data/icons/res_1920.png index d7dcf931aee3935b567b6dcb73d881b2ae24ba6a..34c4f819a27aae967ab299270fd93ffc13c5632b 100644 GIT binary patch delta 93 zcmZ3+IFoULbC{#2i(?2!bn=S-|Nk={1`_rLG6@L=4Fc(M-z5$1{H>Gs$l0BHpy1o% woCP=1GZhlqRL(W2oU^e{Z&<>d!*D`_;md5*FVdQ&MBb@0E*Kl%>V!Z delta 106 zcmV-w0G0ol0j2?vLt{=!L_t(|UPa8Y5r7~R1JLZ@5~*Cz4OqZEtQ`PcfaBoK!dB11 zGJK%0c|~#w7O6nejUC{?pN>dhHnvEFXSM8|jM)gS@YlhA(GU7n1@xOGr>BMajsO4v M07*qoM6N<$g8IEMn!$*RA>g~>x+AAe+8Kbr)78&qol`;+07n@mrvLx| delta 105 zcmV-v0G9um0i^+uLt;%yL_t(|UOkLK4S+BdL!SZ+V4}x~ngkLYU;!(TCG3U)4j=&s zsI(Oi9#p5ZjT(I!7yA3heVY)IIQjG(l56Q1>COOee%b00000 LNkvXXu0mjf!VxCT diff --git a/data/icons/res_352.png b/data/icons/res_352.png index 8268baa2fd0ea19c7792973389ac866d996a5941..e4950b81ebbab68f28e8141573c704ab9fa42f1d 100644 GIT binary patch delta 89 zcmZ3?IF)gNbC9j4i(?2!bn=S-|Nk={1`_rLG6@L=4FboXM>BN(Hg$N{E5qE@{8^>p sNFlSr_X4JnM-}oOV(XZ57*1#~6ueNHH}}YbXa*qgboFyt=akR{0KzRKkpKVy delta 103 zcmV-t0GR)k0iywsLtsluL_t(|UOkLK4Zt7}1Xo67+!Hwns05Nas06S=)5lrp4ogqsE2Z$gtdH^V!Jk47 rkLECT%x0KsagTjc>uUyS1|u$p!q-Y0io4f0GXR07tDnm{r-UW|)3GHZ delta 102 zcmV-s0Ga=k0ipqrLtjcsL_t(|UOkLK4FDk!11sZX>=QW%Kmy4*I15;T7e5T}00}tg zEla{@lBVt8B_~KOWIzt;=M*Dq>_Je{qiC|Dw_;Be_hAB4{c-Ceu!qd!xc~qF07*qo IM6N<$f;eI(^#A|> diff --git a/data/icons/res_480.png b/data/icons/res_480.png index d256eb04b16b92e56928c62d2e04ba2ca6ea5844..7cb2c1bbc89fcdf0c7b32ecccbd29a3535f7df00 100644 GIT binary patch delta 88 zcmbQkIE8V7bD)igTe~DWM4fj`$*gL_t(|UPa8i4Zt7_1kfAFWroTKNLkHNBLy+Q diff --git a/data/icons/res_528.png b/data/icons/res_528.png index ef9575b3bb0170fb6b044ab2d55d1815c4de7903..2efc9954776865dae3f6e639007d850ca061e684 100644 GIT binary patch delta 91 zcmZ3+IGu5VbBMjCi(?2!bn=S-|Nk={1`_rLG6@L=4Fbo{pJwR%{hLRk&ohsC)2z2V u5`1#ZU9uL*Y*Q_4>iZZc@oivKSjD}A94fsJIINnaW9&Q+ zJS+ULqdl}r@uf4vjljJ03O^6J?vy*9wVMG5JYD@<);T3K0RTysA{qby delta 100 zcmbQlxPWnjbF7D_i(^Pdob4Gy-U9|aE*F^t*c1~J8Uzopr E0A>#*<^TWy diff --git a/data/icons/res_576.png b/data/icons/res_576.png index 5201da738fc0cac2c6ac9bdb1e943d9c840f3fca..4e68aa9fd227d29b000cceabbce41d5a5324b7b6 100644 GIT binary patch delta 93 zcmZ3%IFoULbC{#2i(?2!bn=S-|Nk={1`_rLG6@L=4FbpCpJx>O%_Grgn8&bb)^`a5 w8Jj%zDYofsPwp{p;yXXV(BTrJ8AFN)Lw}mmt@ufG#SB2;>FVdQ&MBb@02YZP82|tP delta 108 zcmbQqxPozlb83L6i(^PdoNLcU-Ub5!=Cg7<54$E^)re?Pa!zT`U{d@TtJcAyyrHqu z$uW6u>Q4htah1CfjCG0W70SZy;&Y$5FVdQ&MBb@0CVFfnE(I) diff --git a/data/icons/res_704.png b/data/icons/res_704.png index f13b1a52fb81d5559645928348e47c04277f58f1..8d0069e8661d7d5ec7975ec6ba315d0509e3cdcb 100644 GIT binary patch delta 89 zcmZ3)IF)gNbC9j4i(?2!bn=S-|Nk={1`_rLG6@L=4Fbo{KV|6r?eOS8u0ml!Suf+^ s#7u*O$p;F25a<=eoU{qMlU|=GD$8L-4JO&`}boFyt=akR{0M>&f1poj5 delta 102 zcmV-s0Ga=l0ipqrLtjcsL_t(|UOmh~4Zt7}1<@~n)IbkdSYegW1R2H&Hg$OSR))E)IoIKl s0e{B?2BG6mvK?Al87J{=U{qMlVEJ01?o)1yIRg-Qy85}Sb4q9e0J!=j8vp*00000NkvXXu0mjf@;5dv delta 170 zcmV;b09F5h0;~d%ihqqsL_t(|oMY)=VP}zG$zyWB%9|FfcH%u-iO42x74?I#}E$LWS-jE3|8f@91Ke@X>C+{ny??JhQZU- K&t;ucLK6U<8xSx6 delta 66 zcma#coFKu;!OXzGprOkjJW)}?K-$yAF{C2y>4}4aK+%I6HvPZQXZl1kr02B_Q{4@Q VkMDfmsRJb#JYD@<);T3K0RXV^7YYCX diff --git a/data/icons/rot.png b/data/icons/rot.png index a835f45861181ca132c6a43a3be986fd6f048712..6b5acc916827c6a3dc01afbf3ad2ff8e6917ea52 100644 GIT binary patch delta 125 zcmV-@0D}Mg0pkIXZFXTvL_t&t9R9&V3ce_$%t%{5p2=WM7-Rw zsp`b{0^nGWS5$j`7EwhPDSH%5Qt_l9iP(c6)fOiiPX-d&0oKomzSAemwjM6umJP?!(xI~R+|!EceDG{m6c=M)Go$$DI}C#H^@)R> zk|Bk!LGGdN?rdoem*})Di9xlFBkv-002ovPDHLk FV1i8yMOXj; diff --git a/data/icons/russkij.png b/data/icons/russkij.png index fffac38b7912d2ff0e20fe091c2274795e6fc0b0..caacac067e891b80a80eac57c1994b8267d5ff59 100644 GIT binary patch delta 68 zcmb;_oFKu;!py+H@b>PbpoxldMzWqRjv*Y;$pKAFY?RX@O1TaS?83{1OSki7`p%f diff --git a/data/icons/scan.jpg b/data/icons/scan.jpg index c0309d561550fe5f12c3063475c7391063725ee8..e0c8faa953a515a79351c1e5d7ef725cd6f3cac7 100644 GIT binary patch literal 128613 zcmb@tc|4Tu+dn?CCuEz-F8iMBLiVvU_BCNFAsV}E*%GphE&INVv5&G$NrmhrV=I!K zA%zf8ziZUp=e|Fm=lMR*^LqW5f3EX7m*aRJ@8f-**L9xP juLFctKv@}2j1RxLr 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 z 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Π+cd%PT?F|#x#}!oj3SNcCV6t2o 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

    MO^#(G^s?hrQek@h8= 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¨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 Rlyez?z|+;wWt~$(69BVc70Uns diff --git a/data/icons/seca_white.png b/data/icons/seca_white.png index 416b65ce9f86b1beed3f01b1d4b4e93a840fab7f..2ba599d037e258967618023599d6dadbb1276e90 100644 GIT binary patch delta 57 zcmb;^pWtjF@9E+g!Xcad!1C}B24;2%ft-2F9A?b?bIw*gw`of#=Wx&I9}9SQN4ZrkQ?!>2Og(Jj4E?OZ3rG>^}uE Rlyez?z|+;wWt~$(69BVc70Uns diff --git a/data/icons/seca_yellow.png b/data/icons/seca_yellow.png index de6a2fc46e2a7674519cd4393a4d7b5cfdd644ac..365111aa9d18721513596791c550fecb509c4f28 100644 GIT binary patch delta 57 zcmb;^pWtjF@9E+g!Xcad!1C}B24;2%ft-2F9A?b?bIw*gw`of#=Wx&I9}9SQN4ZrkQ?!>2Og(Jj4E?OZ3rG>^}uE Rlyez?z|+;wWt~$(69BVc70Uns diff --git a/data/icons/shutdown.jpg b/data/icons/shutdown.jpg index 4831422df5cccc454957f1d45333bf42a719f98d..4c0c0bbf93f254f19bb45815eeaecb8c7127f427 100644 GIT binary patch literal 208257 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%0ANoVU))V`rRY<~@*E>YfstN&<3HGo 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

    G_klZlqMYTYaOQXj= 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πuGb@Nj)BhiTk_+j9mD>& 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 EAJ3M+D*ylh literal 96714 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

    qinher(?8W{`e?$2ORL>+R4)S++!dm}FakYU!G_ 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

    gUr6E;4bdYO#?L$+ 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 &~K;qFJiZ#Ja0i1v`NYb-xpPi4T-cqOL? zx%!LHQ32v%#Fr9GuX+m4oC%upoAah)AyOfgew)&lTS(L9aW(TwX3yrfhQ-j%B}BmX z#(E)SOq&twpqHuih+Mc`mQSgZaW)lgumlAUu7Oc6t}J6>9Tg06NaWx_5N8^fg(-fMRTzf+C^=8-NmN#LvrCc z1tnC4&NMwgbt>!g%n+x%kWbB>{HF)?pb}zcyA};9@v%eiY-Go@qPJ>2xIVWp+nuPM z+rfH~?Ee!2{AW?YqzxgZ$Cvs>WOu8Iph~OLs^cmw{;sLs-hH#Z^+9ZTR7`pyp zM%CuxPCGiN`%_oC{Lti}?9lT4!%!7K+DsRp${nu}RJax^nbNlQsVm1A+z0UX1rIAf zv#AcUrpEQ0xzDI>CDn;&|3$d>{4+IjG~$9#x-VU`cgP(@d3hN5Yx~b##RXA~yz94S z&hP&2hGz_ zTG5E~hUI17r@rXIy>yD!6!$eVS9AH&-%2x7UyM9z`Xp_oj?uFV!_Q^RcpKEtS#!J2 zrFlY2Mi=++VW09u7_WAV%OYpOgT_v8Q?JO+jhi$fGYsjW6=BZfdX}?UI)~hE=g0`7 z|LS?!KAz~bCPsG|_|BDr14g5y68AIQNO(S?V~xcGFQzl%4uBj-5ct0EJoskk1s7Da zv%Imq+I4!hc3-z4cxrUzENkF+K3H}QZ~R+TwqL+AA<7ljOHhs|X*M3-5s#B4U}h<@ zZv&1!)`5P+IUuj(q?=H|s42E@2j!ohCeq04;7 zvfmCqK30ZC`hOz$|2Kt=ZZzKRaB8mxbx;RHBb_D$Vf>Oo>OoxRZODULCRFJS&~fia z=#gX;DU~$Dl?CGu-8wp+--v73#oPj>)T+t*b zVrMFvp~dOzP%SE6>UX@Hv)F&$;ostq8g5FbP)mj#&(>7FREL1qhB0MR;%m%yKOfIo z?6t8mur%PxpRv~L`BCsb7x<7CJsDXyC!TRRcmIAFq-OR;v3tD0&HfP-sY1nng(e=D zy$2AAlkX}zzWnGeJ7d?bDAVTNuOoJU^}AchqSb->#W;;oY2>)lHC*DGahuegO?FE} zMk*8IRprZE@tD);!B~GAC;Dt zb}c&18kKNREQriU2Uqc3=n$T0dT_&~XqaZpkrq`*5xz*BxW2~y_F4X=XageQ@D4OR z&ssQ#rvVEdXI`+HHZXn_4`oa=f-omHGtq0t@)OC^i-!-c8RD%vjh;+Y;kv2=1$}34 z?VGyWdr4D0e^o(5AXTkd{>!~^eSeS8Asbv!2_QCYD=eEk0@J4*$CkawIR415Sj`J} zsIaezS>77V!_4UPd{kZR9zMK)oBaev?aYm1v9a}ejAP8bi+yB>{y7x+NSnR%)KrrE z=p1{J8-1qqH8pv*s#!sr%K#q8+J18aYr8QJkq%hFPk41e$y@*S;E(E7j=}E~8{2*# z8{P9Udy8V5^z7@&;(w$D|L^GZzkYHau|uy0I4IqB67;n8Z1z|=c7PN77W1~Nr7P)* ziWm)yO$7BW#CqJdFhqVHuKlg@nk^i#gKQg{2hCOZ*A>O&f~{6N;+@>aH2@GrzNS1} zy3Rbh$oNk(G2DK&_WngBefwl8F9GbH?|#qP5P__-agV+P8mD1%PcqBi(sOX&$F+YXV*Af%04JE=CGfZf%tpFfWHHeS3y; zb{p#bv6Kz&d;e2w*el<9-{?lGwb97OxJ|c=lk&3 z5{xCW#g&S_XYp<(CMGtk)+!bCG>8elmm_ckqFU7}KP`ULhf3eRAMD2vfuo_@G3DZM;qVm{4M_?7r8**KJfMJ!4 z9fhkpSo?LM(CbdqUk?h8k~97KNc|64L%FgE#YSP2VdJhlUZmv{2=#U6P8TjDnaXt` z2PWu4k18L4Xdgmk!06lN+zq9sVIdlc)tP0iZnu<}XK)nxKN)X6he@iPXG+Kg=OAWY z<<-Ygp(Mxh2M5+3JNP2pGAmeSXUARnI&wWGUE5e`VV z@|N*rw)c)OR1|s*_=_-l?RP3sz+*sjyT@h+Mz)?y>{6?PtA-_^S&yDyWyOe|%C&Mj zkG$<4>F`2xug2~R$I`Z1a(Uw-r?(D2sd4g!6C=)y9V4lq3Jq6O`OA+V^XD$w>3#C} z_+_-)N5@~K=*{wr<*JbIBSiJdJ99D`f*|oT;N5JY-7Jp(qQN()!!m>=6B^AXzdlY# zWOm=-#P5KYc3M$4$|&wLQi)ynCm{p18iRZvHwNKQMKX%u>^6RO=}6=0i2$0S74N1W ztcJ0AX#J+3jHw#C^7ljYT4L`$N4eFUvf8Tk4-pk$Q%+M zLm*_5;ip-XNLupoi>f!S&@AwCQTdhzn3K{x9@2OR1w%ImpD_IPlN|mRrNqN$@5b`#)lO!qB{mG1aOhO<*}fB7($Up<4%msO zFb~CBDz90pglH&Y(223Qr;lUUp~7T4h(}T1Er)aE8N&#mlP4Xp6ug* zW1|h5;+nyQNYFyP+BV}7U2X9yDKnar1^1yOHMa0kDWb%GEFWMpS^pxVHdL}L>I$k` zLNf|ggOho!1JVnWapL^KL_RZex7Bu&w;Y=hN=+zsIZ@-erbw89@w$yz!G z(;;nR-zY1{nQ_QNh|!Twg5KT{&5(iI6WUI59vZ>%c1m;@3dUyPL@fb)U4;B}Qs-gs`ky1>>0OqzCO=UEUx+aPq zfyi+_jRbsPboyw2qG-(TQna5Hn1X1v)eG)TOwOLPzp8>I`+ikvuFs=g(djgynhbD% zH$-%3!_8dxm2z0!Bgqr{EbY|Cs30)nXH6EX7PZ)8u`&$pY%@_4QG|xd9rSBxXM7u_ z`xrAeAkD&tB?|8~lw1YvJiiy=AM+Fjf!C%nv%1Qi9t$YH3`*bw<<8v|gUi@_V#>7f>*K%uiP-{d6yMmXE1)(j3Po#0qje+=bK)%wA0oKCVHg9{b z!J%Re`iM-U#A2*eW?$@4M@>y8lEG0F)C59U{|Y@cR0L?G=d-ffV7Xy?WVY%n9UA{}|nIP`3 z_B5Z+`uw}}wlJ)m=S#LKp_#*N(nN_7;`*>Jj^2iT7t_q<{bP&xy;Lz}0ex!FD0bi< zQX!;1qDe87W$PN; z?5nF!-2p}_BKk0`cNyb_g>^-jY(~_;S-$V!DrU-*jQemqWjn2u zOf6w1-(OQ1nID(DN_uYSoqie{`7pVv!rJF&m(*>LPzanOc64|+~M0M+caT0xG2?}ArDr=e*FQ$ zDY{DMMGckKBT`k622$9@)tHBFktR8jS#_uZ2GJkjXbh*MpidcDwN01?()BwtE0Y@= zp=(4cX+I-D0{EaXLUzNBNZusc5?qi&Wtx+XftPngMYDO%WGsqJ=1bF9ylHbz;H6-rp)I9 zkJ`X|6%fjV2i;nbc*nppp>a9VG^o~0$=RL#!&X(W+9$#5|Jrc7RQ)g^{I-IkJ^=qkW&7Mlp zcyf9G4{a^Tonw`t7qP6H`wt7&!I zK|k{~Kb0q!u_ZF$Gj}@^i|JSgSYFMpZkc#V2)Dc=WDP7ZuUtfeL;fU;BIe$633_lG zn{KB3HvGe~QoT=Ht&c~ZVh&`pLjg@II=Dodai7BJqVBoLn+Y&#Cd8wBYN<~-$%5{A zHG1_9vx7fqJIfb5+o0FuMXJLJ_VGmne}OC=mWnBxU@_Z8;bxt>{_=%Vb`0+~z@Juy zxY>A*@+I)Ije9 zHUyi#Tj+k)Z4jj;Dk$<`@=j$$$twDC1M1Qtxcgs_l@!iwn;bn8Y+WN$G3?7k-otM8 z0>|K^nE#43cN~rQk&QEkikf#F2ojB-!QC%K-F)&Jhdh&?{zaJXd3qLBBoGEwH7moH z_I$P#3_bTDi2dV6Fb>-`od(Kp#LldTrQZqMv<}L|0DW|ZcrClfK=IP7#C+r|xCUM) zp*>Gb*itVOTG5cO%~>NDCV&t3FIId^XakW8?g8sRYOo!jtzhQxjo7&2doQfz+-pHN zxpPzeAXA{9ty+?5EY^!AAJrMc%9~RQRj?1z$3)Abqn-4Vx3^A|)fRC8@CGoILg^xAd;KDo)Wv&bR>1m>eTIoqH^f z0#5jvqw$<{gpmp!Y|)HGoeC_*+m~xwamTh%MEJu;8jv{HOo-Wu_D2o_UyqDTGh;$a zpf2RKaWj)|Kdx@HP6WZB0el#1zgac@fsZ!u(n82OHHuS~B2|tBTq$aS6`LDNPN9a${8`?egT;GX{-%&fJ88 ziAB!}e*(xu)NIkFcnGyhJ>~>z`VvSSQ5?_A@2GRhmLU?n3B6CdR#{gjsB z74dt$S$j-CLYtf1w#d)CxJC)Q2$UDagJu!S<0C*TX$6*Oc&-#c`U`(YohFFH9@L)8 ztJ&e>XY7FLNwz3DD+(hUF|0$L`P}JYlcVRs+iQu0t!D3{#u5=ET)N;VYk+?Dl5?x3 z*J`PMT_u+BR=yV+71wsI)9|igm<*3HnyPs5;A)lhLIPdsCf>%?5Bn+k*Q%oB_J@yD z5Jwopjk$K9YTkg*mUQzK7k%-A{|dgcrL6&&q~*#{2V|9u+Npb$SE-LzEQ(AE+k|f; zuba$1Sgj^1V<)+sjf(l4Yb&lVkWi7#iC}{~X~I#2@O_>nUpU32)&OwQy>%}$P9+oU zbu2IH`L&-tu`f&`hrXLN0_PI@LiX%kMJwXLHkqdgQjVgFjxWCQAeN_t3Nbu63f${# zuKU(7p3)*mm%=Dh_)!#z9{eZZuw9K=KPh_qIpJz)84$$?x{uqsFP1a5iw=#~)VX5C zTz7c#mn)kNDN-O1q}Q1vs)OIh`KJ1p+1RoF7eeA+0MtMF-B$uFM-=|uBeOH=rbXw7 z&)G`dgV8idH)*!2+bxBUQX+sq1HEPyUkTo2Nwd~o&?~zhbg5n#ikktgv^e#xex#rG zj_=-&+AJ@or@O_MfX}o2veVwEE$doSVMSwtDU>nG$Q_pVPAA!R4Z0#CYI=WV>6vwA zoBg2bbja0vNUOHTCtFEA4d9=OVdBz}-e!CYsexRJEdLizS$$zu3`mNXH zwadHfWG*^dx#_M;0>8n8G4B8)+mrjXu|`J&HP`oXRN)H%VZ_p>`vYxraalicwG%rQ z3FnJn@!w|KxoK7{ly+dJm_Q`?lnn}FL>rY6Vt=BmQT+6Mg06DE=a|~Y8lU@TPs+vVK}G3mAN@g z@d1TvCQrV7=|_0ca(@A32IhE0-`XAP-G0!$PRXaI}o1yFD?U%XZQ+KEVvMC$)xrS;UBz+C) z-s!1MAzCyT67CUscnv($_YqAw$6k%+dMz1n@4a)q2cpK0N?)T#c%bc?=DG(;XJg%% zZ3JX0d4_=`&Pvb;!h~nZQ!h9Ci?Kd$xzb)^@0oWVKg}@6*L2#K+KCgivTUYO4U6DL za8WC}H+xD{e!r?XlrUHF z-~9B_gwK}v?6>SbZkD{6E23V5R!1Je+7EDQW5XDjeqdWJQfD%=K1UMv*3EWJ-!}#`@snvX3Dal9Y`GDY zCBF0F5iY32eD1afqSxX1qku?mE2Vt8srmvalzq;nlaav8aC^N zPKgTsEDgj)<{Jc2R6?A;2)CAnm+*VWOVa{}5??R(6a8n|@6$Pw7qnNyA;xBEsld5b zJhCsNH^&fsXZ~!kt=!-z2pi3r{RUDV-tOcEY<4zk*G@R`9=dFOTet>V3y_$Df%GPO zbIDGwJUo0l;wnT3;WIrGsT=4w!uhV5kze&L0%lTshNY=ws->^k>XDazFtoi;;xKEnhY^E-Yfd$V%Dg$%gt1=xO{<;d3L;Mc+n{{i$ z?lIYZkDU`etf1dndELG9sk03WQIKOHvzpgxkBA=;>DfoV+f>*De;f7JI}!MEvwipp zM?|aLSt!PXUL`A>{eg||TtT4Xr9Xc9M^f?7$^*`|n(f%zBbDSAu}cK)$drJsJ!xnp96sEz0OCTe zRip}g?(ThSS?2_7CAet@!^&is%Ea6cx!B}i=<}yQnR%REKM6V{5XW7HW>ljT321=w zhI3L)nfvY%{kf4$7vlkzyb!XegR#K=h-O}8vD6fUJrui8y{V--LY-QwOj36dbwdFA zhja0Muz%?pcic!Iu3<$yvLd#){r)-}6Fa>z7kP&C$Em9hW_hBu)QP+p(R{Af0Kq7HFLTsXe z^l#viGowB0Dehhi1gepd(z&pqdwULleVap>hd+PP(`dxXY_&La5A;t?R*f*-G&)kX z%*sCim(lqiCkji}zPw;V#=EpBtD1~B2&bQnfwLDKu>QEZcxgiv=nAmtt|o6WSGo!= zvv6IClbF-z*RL6IR>wc#k%u=T>hE4Z@*I<=9gHjdQ54fhH_LoOUcrWgE>x0RTxJcm zB8eMWsp$zcDJO$m4XzR>yo;Z;pc1g3y}zCqbtNasp2+T- zc%d-mU8LlVNA=)|6B!t4nnXJ_e9rrAd|aNl53e1YF5;Y=&m#VR5grM9%T8sJZu1%* zN1vhU&xqYmz<<7nOQqr?n%D8Kzvz7K9eA(|Z-W+`4t=M$pO5@O4K-x$U*+l-jAYI- zH4J0MFFDIFD(tC`fhuE`@2>ky1zGOCPPw@N!G%oesXjlyV6Gj*t{NUU@0(fMK_n)V~3t?0BV z*QTpWtDzDCIE#0qbMvL@dc$&43(!|xmF=1@1fRJtm{cgSvb((lWks^0kN5RNG^=!L zjD~Z2J6lv}FIBJz{vxdZsDQe&%fWgb`(As9S6$5QMU2Os^%@mZ>%n;Y+v@dnOEKdp zRfk(Q%@2*_NP&mi)qt33MvHC+Jn<0JOAt`Z@rQxQrj1<4EuzOGIh-aYPIYEA^ zS950+^MaR>)f7)fhs=-JukoK8AiYRp?eWd?3neQls$c8hR$Io;uD#28+n~|5KLk_FN0+xZMOAzf~hegq2{k zA_SyG2ETL>*dlqoC}E{kEHs-6&u!XRB^;15AF9OfQk&mdwh0T&HfkkiDZr(jyu48= z=b}3f%PlA}Z%SM$hDM4W#M8yhLRGqY;5)DqrdNmlAoUyweW2BH<86sZ%VCYdv(5R} zwc(0F;pyf@5U3mbp`-L=dzT_*w{n&I0Vp-E^~44F1XDrUb&cFL*gFIqmrYNvKiJ!k z9{34=^6MgUwxl2OwuKuR4=LJgigR|}bD94p^SFlf*n}}tKxd3Sy37zTsHw$$u6rOJ zohp$HNSrY{C+D78$1<UaZk^%`fzP z9dnwNAQ|D#^f#O4;)`^L+Do0H5gwl)StU#kP>;Qm>w|cx5vXNx8oQ2My`fdy=2~UO zhfF2XnDEaLY%N#6_$uv0SEJkYmSeRIy-d=;_uGihUxZ!rpEUZMkp>C>K+mrY^ImL* z;6A&Ye-SFXJYApRA~=V<2-1CrJg9i`iBprEUz&>tgiJrHN>rk3i$KU*uMWnj>tIV9 za=iThrM(fh7My;(jA5;zV=Hgj&ca34+eMS^f|Md`|NATtx2UEaY4Q7U#uwsTsC?Pt z{8mUUA43T^I-Q2Ph|3?Z*#N7l6}XxyXRX(uX4N!8TR}gtE2S}%^*O11!>||9{pvkD zDh+2v&G|;KH7l{=O{KlOAwN6j35g_cUbsM^bs+rzz#!F!&dae5u*mW;6cI-jQ1hqA zS!mF>)rXc+3zGbCd4?`O5v9^{^$twMXe-SAbkjk!Az&_?QEQ{pltIycghUpr+BX(h zGoZh z7pdTd736rjpY>eEoq+HX!iyqStfw2N$B`?`*d6txiAMH;g)`2Ld3XV+Hrv)XZHrNk zzqPlF3dH=SgkNxQPc4ysJdH7*D$eW17{H{dc7$cdGK`5ziD)jey7;JJM-3h^hra*BmP_#&~P-u%=@IrC-;*?^gxD+S2TX2^k zy?M{M=Nspod%yFI`}2;GAA97-9$TLMthMG`Yfg9>w46r8Fs_)B9I2*K5@OE{QY9$g z+7u9Zaf@v^xl%FFnEckTO8e_q*!3rdiO=~4417=GcuaW7jqf?6E($Rymc~u!JA(qg zWUxmO<)^VCu`-nRnWk;NsF2!*zaQXMmwHLzvHcu-EE=$}`eCkq^cTsqf&zvkMD(Ca zK-#!=L*Bw&Wla%a>^E!vIn%n+K%Q%RU?dHm7DohyJw3(e^Cflv#X+28q%&4^4_%FQ zq$BYgHDiBbwGYZMCT%tJh#O~Tne_eE#h9QRyZkSlEY6bye4W)#5*)*Y-o#1Xr#{He zgwlF2KYINyskiKfqA%%+%Csb7-FI@!`Ye|cjqq) zK$^lpb#>)3$3G7u=n-@#Ew;H`&q>!Q9gWQE9T*1f?g_Xp05n|(+mo9P%IT88L-i)d zol4u}8ZqSHFzMwPNC9@gL@$}Pa<5GD1n9lhKpGA&xfOfw@QICOPJRdQ<5AR#$Aq84 z$Nlzm8S$`VYFSBXp~uXtC!;Y&0556~Cag^g5gldFeQQ$3O z7{d5xauMxDv3GgSs7Q)p&P!fa1LUvX#~bWQRk@8ODv!5mzn)Km65O^8{6q9EY@G#F zc3!P%^AcB&9?V@kj!ue37f|R3W;{Li?5Utpzu!1w-n-wgt|C>cfr_k4nJIKe1+a+z z!e3Is7-#$|lKtmiTnY53J!k`#e0*D?F}9Rw+Xfxtf_B))JP%dfY<)=q4GOPQ6CphO()^aLF9%4q3lhRfo zSCOeXlGfN7HZT#XYp$Z{nEn+1XsqK~+;dp^czM5U?@w!s3|x;2A6LX@hCdIObI$No zN~B2KW4}GPGEY#B8b_P4hbE(2I+-r& zn2?y&L%UVV*&t>_^t-x_Lz*GS32GT;j2_f0%;vWw8|wzP;pM4r3za71j9)mS3Mch| zX}5G<_DxBe?Ulig&r#M|96u$z(j}kz>nR35Yl2Ohytb7Q0G7N(Uisg-aAg*t(L{@} z)ug?Q#1{vu#C&wn@Z%IP3H(fHl;c@>LDL8StWPc|5DA!VYGVtBl)j*zKD<{s$@6QE zba8QY`A*aQw=2S{;6|eAJIS1dx?vYBgZFe>W%^YdeN?hJ*FjGeA2`y(obdx0}QNnRGxD@eJ zhB!+dz0Tq1Q7hmytrw>IP3iK#RgsFSqrcmvCI<(MAN?|U9EK@Sn9E%F{If2Yx`7r( zT#!NnISc+&aUd$rBM_gT9M_~sl9A^b)i|wOT2V@OdV<_^;hsmCKAz(@sOcND`DPUd zW{75)L!>5Zw0b>n52-g-SMvNo_bt=sz-YwkRY8D347`abnNn`l{qPt zorT*e3qCFtIi>s;LGs@nTw`Aj6cM+HP@37DQdufNYP-Z~&?p2vu*0H?zT4882(%fq zQlRuem|`}$L{JhJi+%0DC=mWCbgfL`!kSMvo7mBAxckMezeu21bI8oH#A&5`;#ycs zVTg+G@SR|Envd{+_>P4urQ_s{ZIvF9Z90tYl})i6L#x=jz46)j#Fw@XW&c);cB|df zcRoi@5%)EBkBeC!+ab!Vf(+(xTcO=M`1DUFF#u+|4=k?X*p>m58*Pj=hodYBhGP1s z^L}b}5)4HOSltk;6mBrk0iq z06-(GIo4H~+*Ntb8>qDwV{98~mxU}QZ$ECl8VLBxf>EjX*33r)_2I)<(tW4hosl_v zA2cvVeV9&X+$-?Xz57`k1Wsyd(E&^=jvg|0Kev$f_PC>4E$rO_u@CyO+gOIzRHHqo zTZ^|71zEeObw*eG<8Mk`=RLUdbJzDcGgDhEyj(}y-7qa=v*_ws?l~Ix2X4jRejW3i z@>xSr7KpthEQGPlRa^R2MQ*+M3$^}_%1rKCxVAh#e;&MQ)zW@6xvtDaNpHwjVB@e? zJ^^gogdLRMmf=^zlbdD{xF@51By6p10>?i1#flVq3b7g0KkQ9SKkEig2DVS-@3*ee zXmXtLXq)R@Q`AomfXM9!dT>q;;N*k)QcZG7-DXdbh)3_58lw#ld4Il>PP6YKnO}*$+p2U1)CtJ|DJH#JuR5kSEnI(~kpNS;15K`uZ4SY_+%E z)_$$^B`9T9I%ywh&D1t4?e3$ZKQE~=iHLOPR>wA)D!}02pmDlXv5} ztdyj2If{^ss6tep)W}+hu$R8rmK6{;;cTmX%`w;iU8X69n&&0k!r>v3U_iWdtjbl& zBr%K)6{Fk3W_Y&96maT!R-o=aFQ`*2`RI~FDtmZP(_zzoB59#=whEBQOA=1YPEO^N z@ROa|XM1^v;3J0jztY104LTgNENVV*EO<>w_(6jlr4Y>Eka&!4a&R8p_TvN>{LT8! zD3AZ~AbJdMV|eLx^wkeY+<5zJ8Dy3a9W-hE27WA!EGtiCV`}CvLR^Am%MHUl2W%Im z<+vR(X?~?QNz~ctPfQ)0y}GL0sWfg*PnpxUd2iQN;KP8BjPR_4xG8$qmnaFn3gWG2 zi9fS6r9(s6!#ta!Y4*PtMw=Mi-%DkXA`3~QGLLl{wE5HD732xa?hjzAgC}loT_i8B z0eD5Z8cpl%)P6A#-YqnMUeKzrtSuB@+zs9iH^5N)dP3_U zU9nPzD7}zb{&?-A{DS&OLm^fB*_Zs3$<=6G5xgghI6xs5M*=BJ0Y|ri-(bYsefAge z?e4E8Y;LKNz1N-! zyVzGCN?Kn5MsyLMqxD1Rf~lJTkzlq2?WUk#5Gu^OA(Ff1=0mJ1w}cs>Ic@TosfwV* zmT`p_mU^1|gm82!6&?Y5+cx;8>wJ$0-AeXGR?rZM_ow`v43>4KGrbw)7rF1!Pqxtl zTxq?R4UQv8wK}un`%4iK9~j+49Nv-XsrTo*W0B#_Zs#jYy6`vtUS1J3DErl896Vp! zUtYB8GDK4(OlKyI8(7j1c+x)nZ%+dYKGQO!UFbMoady}{iYhUofHFnG`R@=4Y`+!> ze2vg~gM)+N`{EbfH&8K#x}NM(Lgh$EoQ~-@j_D0HGrDVGKVW8yW}EZS?hb{T^LxM3 z5C=hi=DzzF|L4KNMcdvn3fFfw0M=Tw)}z-P7of%(ut$}7e^~eDfo;sl>&5Y#^Ycug zSowN9${an-WVVim#{DaABw#^{7nw_yWmm_O&Ww%DhqeNKTQ*0PhEI3;bmB1kU@us^ z>XnU^i8KgRiLllF`AnDAr}VO_(OOLL_`6F!6h$5S3>RR2Zjf{?`Tg8XQn=m8{bWH? z@^+bq12tM3@4~M|d8o3Q-|+nGs^zUX@vyyDm4&>(fftzlef-MxgAhPJ-1(86@7X z;9h4=9haaXb>{kbbd#aIKFgQS>q*)a3uIf+Fq54{{#3clGW}0mu{^|%lfecM1v3PqA0A$o9VA(;8 zCp;enrF_;0pN(UM46xO71A%*Vn-Qx#5@MexGW%U5CO%KlP~ixOYh*g<`gl=eYh*A# zg4BsXx5OJhu5`rTDBal)wwjx0Qr#;eUScCD=yN`4p-uTfjqU^Z=1=xvmgCX@r;~A5 z(LIh=zN1ROOG*w8pei$@Ti~n^olzBL-aCriOvIpyw<>4e!Hiq;t_vrnGI4FsE$(=) zyS=BAH6VuEL2rh%>}#q=j16jl`}FTnd!XR)|vFvXx$}yg*)= zM+YNsbdV5RVw+}I*2SCfv+{nW((WFo*J(*I{a=0GHvUvO2#{?8f1_@Ni4Y&FQjIcJ zrH}SzkA|dvo1nrKzQ#$QC7!i_C+j2Z`K!Fi*@|@WdbIsh$o&BCj*RY{Q&;wJJ;L)M z_)1Ioz!g(+J3kWkB|$Zh)YA#QcyU^-&d7oPhW4Y&vO1?1%*6t{gOlrtFVOBUwQt)$ z>^2gXTt&GEAW)`I)%X)`|M>VC-^g{2VLaY0s%lp!12s5zhl$xo8~FQLW2^Ft6VtEBK6i<3d+7$UP}8V7E}l~%X%ND?4&Dh(!w=g_e)Wn*nKXp zD~HTA<2FuRA{(|nWsvgu2uS{nYItm=?;?|Uj&pDrA1D;EhjfpAdHq>`Rk^@}K{1a1 z345VN`S>rH<|TE948`x5>x@A*>$`5lBrHT&soxXC$-!1c5Rw}vxX{6DnbI=&sZ{?y z!yJ|QTC4kFFlUtxd^z}qcCGwdLX~4S)L_^VDr(|J5TQBkg06f1NiXF;*}R~ue^=+l z#Wa1CxQ!xZl=!6W4b~=P2OM~8PY#r0zC~IZ%0YSLhY9Qta77?hjl! z5P?}Xiaxw7c3pT9D!j4?qw%%*R$%Bg5nR-Q;PlZQQZe$=(hN-H%cvZvn2K+Iq<o^ zdW)l(BUGl0ZLlkMs}P)R{@j6^J${4;WrO*tlskWauYcv_c}Y|c-RkYz?z1MzA;VZ5 zg?u}^+<05dpu)0S(K=W%4#0`>M_G8%ZKjJo@@TIgsFYo+{Lp?BH2Zi0Uy9Q$x1AjA zcaBj2+y6?w0jqXFlcK^sjF(HpW#BsLll2!oQhV4&-|C#wUnl03+LL6|_CxipHMjfy zzCh%Y^7joQpsu{*Pg24nRhUtPvow2#rswEH;j927Na4ZHyC?gA3r=oS zC|Z6Z<`QU$N;>I7`Ad5O17vUH?;=$1bEJ1I?|RUZZnxF2Ovu7V6kz7hgMXZh=0Kw7 zoO2`o3et_)t&R!2eO;GT)yEytT9EU%n2GWd;)tbhGnP zzeBziZC~hLN7?!GIC`li+54n-IiM5)52@md!&$z6F`lT%#B*esX--#0&xlU&e*ZnY zHMEHCwlcp0V%a}u11gCRLPaNwg{iIRs~fG7L|=^=lh}hgsg~Vgvk`F`6u4A*s$|@b z&xaW>HHInl-8GSf@kNSrS$`>OI{Sgnl0WV@O+Gp$Etv@(P;~Ef7(S^9A7kg5NWjIX ziJ8A?Cu$_~O{)=aOS=BasRhf2cMS`Q6LUE4YBgxs-&JgnBcfUk-@PPulv zF>#1%J#%_xaIX;`5MLKsg7V}FI_jusy24iv_O)YBJsFz4q?ZFEV-HuOkVkhPHMLe<#rXr8U`Fg$Ab^y96b~%2*s=Dl;?JC zraGm=y(bPmGjR(gZ=+1~$vfUomRkMfP`0`=E#+`2rQP!#g##oPy0^Iy%Rp7W( zYTs0;v|3V+$8B^-rXGPMG#H%`az9cKVo4N)d+i;oqJW|aaT@|DoT;fhL&1JZLBj#H z@oC*SdEP|1fhSyQoU2WQfyupI$zET)Q*Z6lpvApMIze?1qvX%)bPFwt52@Ic?u6OX zW#%Rxr%HrOXozxTm0PZtzy7w*KIx#N9p~!?1{9LJOtIHG{itOaqn2oWmT>@cZYh4p zi&)(jOx1=)-RXYl%`x9a^$)dpUdh+e*xd$V2s51%UGDXJAq~~PCbG^>`rN0)iR?|q zz1f^&@X^Y110zgh?0~D(pufPw|3UbfoPrFYfp=;O7SBmB{+(b|_Y5;8ymI%pZTpr- z>cK}H3Tmk%OyuDUIb!1)1)~EXU&X>=OQU9t=W%jaXk@<)joLeHuuA$5O@)HK*(&^| z=U$Fs#TYsT`=0AMhMXDQp0!H98@N%WgDF=G9jJ`jN^7Wr0fu;rPm)d}IvwGrYPMG_ z#NW>rC?v^ZK-p2|@93DoMN=gVHaHZD3Yu6YX>Aa&vL@ZXtoth3lFbnl8yH%{!f z=iN!%WcXZE2l)<`JR87%pXnj8LTwE))8Jc7T5k@rIyNE$44>R?cvih}sb$U>H_@#5 z<@}Dhz1LGDS#9E&Uf6sm)$>8p5RTd0nm&8XQM*7T1}DMl3&&)Oa2IQs`1kc&_dv zvxVN;a*bDF3*B0)_thfjn;fvkUg)f|q8lOcEO>Cgfl%C>S9EF3)&TYD70Ma=t?qh$ zY-*I}c}SQ?NI@yNo)|AJ64AaajpI61c}yB3s2WaZJ25Ml->)*0ATw6|Q z9dG+)QjIP9)k&Cr`7V#^>!3P*C1$unw4dzRg?is$({Tm_lJ4;4%(o659e z91rG#J>Qf?VSq_E*`CYDhb}plEQR@e+H2ajdg|DoVM@Lc(T^6 zvOi=ho(7Jrz_O)0mk(bj&l7NDKr5EwvIa`36V--)Ks8~#IqdMcQ9dRo6Im)Ya(>yH zV5bk?FkB4c4d!P|%JzN4xVW~eZ0;#uOD%x8Y<`@nt+1-hC1=?{L(kfMR8sp+QF2#c z7v7}aud2(oeg({W=JIm+P(!H4X==*?Bp21mUM!JO9d3&&F$*oqo&2k~XPPs{4Ask4wVatz-Kqf))ai%PGFYAy6 zkFQz_w34PjvkcO~Is9sWAG0RC;Vz`AdOYumito#*c_VP#K3KdYXj9s2kot8J8ntt4 zp~wn>stP3m)Nz980L6|vtIh$zn4pK}ocpem_&ep?yf(EumDK9GA+~YTR$=S$N*>V> zad}bhS71bzbLd=x&?ozcBWIE>l7E%1&-Ws*nuBWC^w|_3v>buW5iD%Vz#$g_l{U>X zt<|-4?OqM-KZ7u|AkZi5%!zY?roe)aMg*Tfj6eL}zxD=d z`(rR8yfcikQ{Z(hN*ie*4gb&Nne6j5x;aDeUQ;qhkVHS5ZH0U zX2zcfgae?SN_xvo_=@No>p1eg4q1Sqa^Ivz<}*>jv3xK0Tt39L#`cQSyM${E4X`&P zDV6!!etSeaiZIY6qslH%ENT{*QclnGY?|Av;jOD>)3u=&MDX{eT6AogYctp+&3%Sl zdUd?lx4A}xC9GfMT}y)RY0Voi();6}>mO#v$0Pgq`1I~^t?-g>Ut&5+zx(j?MmWw| ziVJg`_^-`A*Qq~b=04#+)}6`Dm;2FczRnmcQ1E{E7gB6TjM``2ehoSgT}*}2Ki|KM zv0mE$y=OlKA+*hCjgy3^=Vz!CeRTZ{>cEQx$hjNUZE}*Mt0AYAgIU2J-1RrUAF7$+ zvaT0Z%mi`m!mL7XMsC#$GptMXYt02~>siH5>$BIcT9xt}UnPXZkaE6&g1HrWEyjF! z@ag6cynM=L9KF{@ue6$cw0OUmbGv!E*ZFdFRmhz#c|$Q?Fb zEQ#e%SWMbuWiAxi^EvhIaMu0%;_iXIH%OZZZwrW|P@8zE% zw&XJZU8Ap-V}S8wsKLV7Q;b9A+)8)EN$Pz|4pi>h)A6}4%l`g1Sx0TGXH$rm1Gy*j zpQ>4b&KM?##wDc3O(#6yGM#zkcG0NtQza{l#D#qZ` zt5%gxwfs;H<_C>Ow8dh}YN0o5zZ^Iuypw)r_|t66WSSEWb7j>ZZYGF3T**jLW8i*V zzt5b`Cu7$ZbJtcSbLu?h;E^sRi7}kaF241B{qDMWV%fL~f^68`ssRv}6>jcHM3}Cg zKhRrj^&)RB}_Fk60| z4B4xh?T$=BnXD{|9W2aDx~>aF1yX0NwXBL84mjJZC=93vp(u0~h8^oj>&JL)FNgsg zCgF0cwbxyL9x7ygO}>&U&uBPn{6oTeN)CzWsyjtsJTG+j^x{Z(-)l}Zw)uWWG!{r( zH&qPBt(~iVvd@S@u2ro1@$fMfPbV=XAuD?fS=AV$74X!BL5fPY+YHtQWUJz^ql;xD zRpZ2N#237;{^UvIX0?$=pgem1Z4k3bDe_<%pe{K6ND?ysLx@AxDUm#HZS$HIVfooB zv7+81EK?haG(dQ@eB<9gzKdXDDV_TmZ4b3fs^#tdhH?Yhf;XaMuMDhat9gKulo)Ic zFXpI1X!xP!+6bE75}zT8?xWvTMGA}+B{zBxbPmXY1G6nPoYv*c#9F(RIZy^nU(mo0 zFu_O2k<;G59wU0jvf%GH0Yhekxc{=@VfWM7&}Q^kEmpc| zzuT|?G=2pz?q@6{C^N3HH6|KcE#OdhfH5lwa*tKAhfjiAMTqqO1+MsOmDBkOB{oSm zsFXKG3NZj$`D7Uk$YUOX0)PJw&~BKjD-{jv$$9YxY5^xo{Vnvjdq5M1sPm2tvR#^Y zdQq4z!{$z%5}|bz{ha|$Js2v{@|U34-N@|s&uM9f3-}~C7AYL|jwvizJJOYbVh-0Q zeCD8%_Ds8rbkJtEnk13^tX+|DK*&-&+`u1OK1)i>y&IG^XT|_=$~axSu(JBOlim)@ zy4x4Cq(wvAGiZ!We!p9$7dup}0RrO-iDGaXNe3W(1ure>)0gA0Yh=f-juP>?x;U2~ zNKdriTyA?2+)9s`Oyz7_#%h7rb=F#c@(UmJ#R-4?J8&a^F(j_%u=tucCDlZ3eKbgR zN|f0~X&bVrQ{i!%n%GjxD_*RB+~rw4R@SM39(_*vtyJzK)wOJ~1rms0nB&N7xx^N(OPz5dzO^N2|*(G}ih^W+*=^>NBHpWRbd%T2>UPX@=-TspUWQ2Xv> z;BJvO^H_zL{rqRUYf3)Fenb`ivUY2M15qDq2A`!=JivI|{+7|M2sy!;iQJfL&J<)y zbJfl56DPS=UbBnTW(%|QOyaMz8mal9QC=6kAV6o-rgGK&c&*KbT`P3)a~3_PNr$`% zF$+{K4%^VxDQcoJMk80|OUtZaxirbP4Md|016b1iEi#n=crZ`C!t(J3f3%`3MD*CV<# zv~FX!0gnwf?&FBIJTV>=+YKahK;|8DiZsqG|HP)l&*4-gZWbJSYMI260xC;ebn9oD z;3`xX!^5q)<60Z(w153o*3kYUYwc^d8J~9alPu^v%3d;S#aAQgvQm4v$g{?dE42>|71P?c6A_gp+87!DH6IU)w3oU75H@e-{X=#myH5rHr}pz` zKifrAuJ?AR`$U0a8V1Pa7kvB}wffMNI!6n+N&-%RjWf zg;nD6Kj?yhYv|$(KE>g1+p%NGU9ev!z+jApErr%h_JHIHM{kP^P&r%+it|OcSrupn z7M!$w_j*jn9EKjh#12)}1lj(1z-mYwSbP%jz0DtCKpAyFAa%K&*T;buAY7Dtx{eQu zzng8XcSSb3z)iH!4jwa~`|c;dP-19pv}X7#u1s??&)z0T`L>#Xp8xW#lqg~V=Iy1Mx%1@IV*ZD_W)$lxknXH|Hy8F2u0_X$ogsV3 zXs|H6jV}^EEexe|{yIf{-pk&NAh)oXtn^u921LmN`l0`fgTYA p(ksedC*a}Ent9in`DV2rv3)F}{(DXHkIVb7>-_)f0Ptt#e*rvN_fr4> diff --git a/src/nhttpd/web/images/neo.jpg b/src/nhttpd/web/images/neo.jpg index 9c8e6ceb0dd978cebaf1080c70bf592891d5e95d..03d0c1c02b03196107137a7e603373ad1f8cebd7 100644 GIT binary patch literal 85804 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 O^%;;&mH0{f|2F~92P%62 literal 87496 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 z z>pQqK=9WcorD{dlP6}x0po>;QLi{j)lD|3|sb=3$^~u{m;o;k;RNzds?{bqLjPPuk z9;-2S66hYI;o5ZS{B_n@{ZaShUDxz-&+k4)D3a%)_>T`y*Z?@UVM*VvqBucYoiujr zW?zYzGP1y06k0A-{038(`zk!mFIM)8t#^BTA73hc9wA+AD{1e&nfnlXAtrgm!@g(M z!|hzgI?Ff7@vo9@2DkEz7wRkx^myE#e@Ptst>9Xofs3Wxp+=iX4$xJ-?$dWk=Q}iweSTAH~hkau^T&-STspe}S+e-v0hh zHJsaj!ub6}>ur$xRnjEVNu&2xy^76D8T>Sl=w*~uAabZH^h~I3y&!lhe=5`1b%i3X zS4e%}8XKBqlh+SC$sG;2qUXZtoOArZYtA(^9gGhjwh*7lnJZo}j(><2~>0(CNv zF)ZU`Y2~a!$Iq+FNt}`cX~>MO8M2`MTe?dF zm{mVb5n};aU!bt{j5uxO5iC2sV11e^DVnt&KLkl@pGn!or9nEQ?R|#fPouuEd?jKL@D?aVWD-j|K@CWez zjh#ByuFt{Y1|$d|%3G?0(#70H_?6VJ{Fx=DoPSx?GM$$>Bq_99ThrehP1qQ(*l$$9 zoiDe!j461@?pBpDKPm7Pr=&4HR&@_i@e5crmVyuGUDF*lNmna1V#D)q?Q4D$IRaT# zgo8LNbnqLtwksI^>|TB#lH3m#Ua0Io=p9cSdOqxiRvE3ECG13Nh;u9;BJe>-0zF#` zFVc@ZorPiV;*V&p&8=MoOa>GIgnuz;KW<)r8hLi0tyflA_5Ot!VpM@`=HiF?vXc7d zs`v)bRM)Et_Ioe>2cT~Xtq3BxXmYtdIN~u`#843FNPMKF*!Y=;s&XRBr=G&t7B!Q* z#>O)F+h0u2KDuGTQf@IX@(^SbS_HuI#SnY5{1N8QbAie0*AKVEau% z-ay(s^zQ2VNB9if%|PQhod`S@sv=ik2kk-H>bjwh?r_cLrXb-`lo|xBeNmCGK_x^| zzr~PQ82YIv={aW~yeYr+a$!TK9cjzsvpd?vJgW=AB;i6P|CnV>262WcD0dQTuf* z2#K8_c#g~#n3x-lUrUf{U2vkU1zjyZn6Ll)Zk0oaXIqDCylEfpraBN`q~wh>P4l;V zZe5J6HEUa|?w9RP<`lfjDU-cH_V%~emUN}AriJUe1E%O*yZ~XS2K8uz8IB7IO$Z8N zd(Ek8V^jMa&F}pLNwRfJyD~7mJyU3_Na$%aU^jOtZ4>jdJGHXbP^9+mR!-Yyz`+O+ z9uHnrRAY{=O8-S6TDP=ymaDR|Re`o02S1kQB4*+nB#V>v{g|rQaYk>2m#9*^fJC

    +C)?6ajNx!r8E4m_0{i33`HB*s7Ad&K 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�a3;Z& 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 diff --git a/src/nhttpd/web/images/rc.jpg b/src/nhttpd/web/images/rc.jpg index bd181e7c8f58a4322517050db6b9aaa5e5a4994f..b9138f366bf19fbd91d90fdbf0aaad8414e54bc3 100644 GIT binary patch delta 119 zcmX@@_t|HHDD!Ow=gGp1jx7H{j1WdAlLHKb9E=Yb8kiZC7?=bZnFSgDA7PMTU|?ir uWMpJO048P@RyIa<4xp^(@mPzeOU)iHwAu>&R5Hw!aar~&{WE*0ni delta 310 zcmezDbJ}l$X#GQmXRZ~QX$%aWo>~kX3=9mc3_^^|42(b)2pcjoF~|UEFCaDovPFP2 zP%(or6GBa9I}2EC6;K=m9GzVhf-8$lQge$HTr$%$OA>PwJaZG%GxO3Jj0_CStqcvV zjLZ}aEv!r|>a9#nfmSk1U}s)D{|6WZIT#->G%zzNF)#@-G7B>Pzs=AxQNnRz otdr~!hJ`@?vNAG){0sw3%q*;IjO-i}FS}2cW0c%%&1j(t0M0xxZvX%Q diff --git a/src/nhttpd/web/images/rc_sagem.jpg b/src/nhttpd/web/images/rc_sagem.jpg index 9b0c203d7857860ddf4a2e7a16729484d472153d..047a24d1fe72797681b3ca319d5202f75cc4cfa3 100644 GIT binary patch literal 13162 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 literal 13186 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 delta 793 zcmV+!1Lpje2J{Ay83+ad001BJ|6!3KQ-1>LNklMBUfl*>qn zMDuX+fBf?OBmec=kGfyKf75$(&dZk!H~>HZF@XrDY#DDGV}nZ;2IkSVF&h{}zButm zJ2n0_)YU2#<`a2gog$%*%K(4?VzSFnkTccMU&zfS&XDNR%fQUc%wTP8!=Nf-#DA>B z>&mdX{~80(kQ;6(y6o5t004puOmlZ%bv+qa(#Oh0%Sl;u?z7&v}} zU^4(9fWTp}bmn%3V<(QI7y_a}u75ar^6bCMd%yqu@$H8+HUj_xh((x3fkDEai^1I7 z1gPO3!#}7YfBybv`2PJD!>TjFKud&y{!X{ld8XC+K3sKh3d7g$-xz*8lx8^hWDCR74^MzfvKd&J85w^3`u+dU?|(o? z{X=m9Kmf6Th*PIefhhSmZ-3r0Y&bS;_nKECMt2^u2>pX3QU+F5Mh2Gu{}~w>{{Q_0 z3|LrLfB--MF~X8E2t0UjpFvekjX_OKoq^LZ|NEi_KMp|=euh6k|NcL9<=MY0cV7Q| z_36j|ub)10U%vZ_;q20MMt}ffL3WOUf+EB3U%z2oPW`Yc|7TbEF@H!(i!lBL0-*mH z8UFoYx_syP&yD@jLLfx|0mQ_B2V7j0!6kuT!A!ThGJG~LT-ayo3esVU^;e|N}I8QgrZkrfI(+&V$<8n ziI9f?000640wO|uDN2YbO^PZ>gep&qD^HCpQI9N7jVw`)Eme{)R+KPUmM~eDGJji{ zGh3N6T$)XBDot@KO?9Z&Ql1F%%NPnx_fT2`_ zpI?Qr+ljH>i?`*DrgD*|bd<4cl)vhhmzS2o>zJ0ApvLK5?nWf6~rpxTE$>*=W zrm@N8w9@ak*7Ud5^1HpizR#|}$A7xP&%VLh^ugTq!pgG3%)G+Svdh=N%jEXa*w53^ z)zsbT)aLos>H62*>e$}u;O+Y6@b~EK+J38?C|mN^z!uc^z`=h_4f7k`1SYs z_xAet_xbnt`uO+z`1t$${Qrpz5Dx$V02y>rPE!B?2NM?_CoM~5X^Nz&y?@8c*zE7{ z^!WV!3){F90002PNkl@*J-Yzpgw- zz^NCRl982`>aFFY1QuZC7itZQb_#dbN=WvS2fKqo*u+5JP%E)G-p^VNBme{g##*t( zNl_lAx~dQXMlCHh&A3o!X;n=vhyX||#NSZ?Yz9og*V9%OMZnd@LK#^=MO{Ww11JCh X=0_wMsv}+&00000NkvXXu0mjff*(D@ delta 758 zcmVMBUfl*>qn zMDuX+fBf?OBmec=kGfyKf75$(&dZk!H~>HZF@XrDY#DDGV}nZ;2IkSVF&h{}zButm zJ2n0_)YU2#<`a2gog$%*%K(4?VzSFnkTccMU&zfS&XDNR%fQUc%wTP8!=Nf-#DA>B z>&mdX{~80(kQ;6(y6o5t004puOmlZ%bv+qa(#Oh0%Sl;u?z7&v}} zU^4(9fWTp}bmn%3V<(QI7y_a}u75ar^6bCMd%yqu@$H8+HUj_xh)I%9he6$rlfm5F z1gPO3!(SijeEj-` z;mxjVD@81}HJd|eOmiWSO{-Hm^(xw0g6**Ccn{R(JJbe3$;ry-V zz%X0MaCKWX*bsmKVuYnc7=M_vx%u?D%kNE2UDsq-*yzuoAuq=8eFuwJ&h9? zcts=_SXhD4&B(|A5I`*0LiWt!R7PaO-hTPb@a@k(hJXM5GjQ?>f@5ul$pZus3j-10 zGcZ~|{rt=D9Z3KC_ZLMDAb^N6;LVp`3@=}QW%%~%F9S0Rsuq9%B51&`pFbETOkT(E o^W#SbCU$lPb}nudd4K=|06gLqj(_X=ZU6uP07*qoM6N<$f=Ux|O8@`> diff --git a/src/nhttpd/web/images/y.png b/src/nhttpd/web/images/y.png index 64d55055a4d18674ea83ea108e014a824ee1d3c1..b1f19f54988908d8ebac6ff210e4285731152d64 100644 GIT binary patch delta 659 zcmV;E0&M+^2k!-t7zqRe0002pSoMIBAya<~nW3Sfs;a88 zva-9oyTil7%*@Qx)YRSG-R0%w?(XjP_V)k(|3XETB>(^dDM>^@R7l6w*H3a1K@`XF zZ$zU+;&1^=ZXid<4fF`^tuov|FJPG)BsY+i+qiUL6?lTMc4H?JK?wX@^!%Uh;Vplt zQfD{Jr}}lj*RN+l(wZ0AbvdN%kj@VFb>fgNfHt-L-Y0Qr18~*i20-G_2q0;jorgC7 zJc`2+(2>Idz$6NNK*!R&NL0`rPHTW(c zuz=H0>{7~dsFP;rEa9LDr_D^x;As>3UHPF5ho$-#aMM`#x_nzey#nB}fYW~n^ksY) z*bp`7WBc8gm30z=X&H}85jqM&S8cL>rG?8djeY9xZh^O9=vyc2h*7C5b+{_UUIEWy zP~&1qSL>lFTof64Sv!rYFkSeOw1R`H7I>QtIm??R4Ab+fry@-e=$FH{axH_roCT0@5>z;X_NR~r?udfWgLnt(r#9{ZvmZTh)wH(-Bp z8+UH&&F&__(d3uZdp@XvTf~j_2pUK@p4K&ZFL7f8G&q!hyQ}5au$+hXJ816~aSu`5 z?L__<^;$dNg4kYXQaoR8w!dF!#!T$a=zk3W5*)XI7VbI1O#~88HsMrjwNGI^km5P= zbX-2`IHR5BaZ%G7A5kqbJaHx!=(MD44UBa zODbg7>vp9)R`J3C6T5`RSxzby3Bd;7GW$5=56M^W3 zgVR&$lr<_iZ^&hua1IN%ErexjZqCs`ZiC9VgMgUjKGUedl=<>LHVp&@eeO-}FG zqB!)b@=^)@vdmenw0~FO2`TTG`vo%9?o{RBmM-r4t9q#PDkW(dsd)%D>wQ~;Ck9gI zEv5d8_b@Y#(BRP@796^kp@@H4W3+gU&t?4@{a8$ z7XfP|(4HUgLk`0w5X=EuV?iz6iQJj5;U=_1nJ$*`(jj~2M}h39?^~rZmp%Kq^?9sU zSqVWnfZ1x}kZ}JI5@qvor5f>wRjTZJFg22xom>XWuN3qoIFU9UWSHw!Z2@PnD_Br_23`nZDp!uhUdgUQ+gF&*laVr*UH~z zs`0j;V>YJ!yEe@84D%erJYj<8=Qiu}UccPUjqw5#yp758vz~vOdbb7D^t5<`zIse$ wUhl}RGE9Bn0#-|0r`jHCEAcdnY2M!f09byqI&3c{KL7v#07*qoM6N<$f`G)CT>t<8 diff --git a/src/nhttpd/web/images/zee.jpg b/src/nhttpd/web/images/zee.jpg index 0bc5b871b8821a0d5e3709157acf805bc39a31fa..7bbb8ae61a0ff77e4f51446019fefad406e144b5 100644 GIT binary patch literal 97480 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

    ;dFmXN4dmp4#i>-(-|pwxBy@NOxi$0ntXYrex! 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

    VQ!0( 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%0A&HmeNbf2nxqN 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%0AlaG{MFWTFdr(RWM>;C`@ci|M3 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 aMywYu`aOQ@zsS!4mfUVxdXNGD diff --git a/data/icons/softupdate.png b/data/icons/softupdate.png index e469f3494b57f82afb1eb78cc82794ecb8e52101..83e0ed36efb9b611855d7bb84dd3961a04f5ced7 100644 GIT binary patch delta 279 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 z z(O3$ZoOU?iuDHt zDy^925goS*i4LYlaAuV60&F!p(m_QxHhZ}G$l~*2jdmx`< z`y$}SsSTc(lrh8F<$|MF!(Tib0Fa$yBh7nh>uS)EB$I_!qV6Il%COAjaN1Otb`rzx z(z7j>7F}c#m98^ylS^(T_^z8KS2JP_ZKS+#nf)vW73y5@A}dc=X_TP(w3Pd24Uu-j z;}q)&UEyF_pa3aY1iwGH?nb4>M}AdE=I-@^StFQ!A#&XPHM7H89l;7o1NtY>3>xu; zR!k$Vjj5PVbxerQ>W{1`HHSjP%oh#gQ{Z;gh*jN)olVI@Gf#ZLO7$0K*s_@`G>|3)(&rPGKxj$24Xd6&<}LTJV{O;u0#UEPh%F#-@BQFez`W%t9MlK=c!0@jaoHi)<6RPoQamGiBcUsgILqzPF+hxzEr-{pGK!k7aLr<9oq9%agck%b> zKhangLhLo0^(@5nN7W@?auEno)#t%MZ6F$E_{aJQBiD)73C-48f@@eaT4W1bOisLg z=WbFW`#wQ-q<#;-q18(RYg}F+(C_NH8%$-MQ+<}mM6qSa7>nTho+0et7dCgCwmyY9 z(jqN`!CH;vkqRL*@gDP?SJ2OqP34~Va#jr;`m{h|{2D(OZBmhDS!61Qh}qanp!MJpU*P*XE2$8Fw0cUsl*ED^O+s56wf!JA;fOq3b@)(?$0yk zpuo_T{by#smiRe-AyA;$%O_TXG+^l{At>pZn2NJ6ec;jnTftvEoMtdNR)|su|Ie%S zp!yDG9~t}=4(@Ld!1XbxSBHGKV-}4nCnx7p7jWjSAAqVDYAd6uz=wot{JbmoV-f0$b?BFo%IRX0UZTE zIZNr9kVtMh|NaoTy!I(Nxb}}_E5M)rJJw15*7;Vd{mSsgO8cMWFpw|{7tp@W8Q0*W z0n}oy8vk)=yabE#d}%Q@pQ;r1#S0O%GF-`vT-6Yj7d#A)6oDG^J=`(+p%8eYH&56A zx*CkW1=bAMXBC~#B%N0Ogmm84#j$YO3Y&b?sR@~8bCt+rkFrKK&j z6ety>5GZcN-QBG?1TRn|5ZtAu6ew;*8mvfghY%oWp#+K*Ndm#8P~2VKo%f7yuXE1W zYwvT`THiOu9_ReSG?J0bF=yuUT=#wbE~KZWhqrm>?Rs;ft^oipykR=Cd_KBq1y`?< zyDC_I(OQJ?oiX<~J=fs7agH_4y-}|SfQkeDL|J+RSFUch!Fl7ja4^X+YS)evR9o&^ zKe}(7PQl#RsP&DveBn|%v2y7zSQ-UDf@;ptt(^Ykxhv}utc&;{;W~bplGS|xU>pdP7)Y^drrHk3TvmFBOUzCH@ISd!6#r+}(7)h-BEu(x7r5-a zS4st+WdEu8(1frnz41X)fw!OSky8ZGR^cx(35?D3WBd0QI@|S%=@ql>zJNCZr*BUHy z(0V=On^zSTpGOYD2z?1zYZHPm0x2eh6T#a^3COIkSU&QEOJP9j0HNa?G-zE3fr#ND zk3LA(rF5!+=~}WTD$m3;lNWu25-8XA%`yHvLFRLFSDx;*Wv~R#5o#3^e%8l_O5dM?l3*i`*mt`FaEN2jXO zYH1Qbi`eeIqg4n?Ub_Ct3hMDS*+-pivvQ16!V_v5x$w^3YiCZigCs}6Ky6b9MvJ8< z*Tr!FS@XkrY(reR7N0sdbYn#9I@YM!q6!kJ+0wUeWqJv#6s1!Ca~A*!)?+qR;QB}--d}6lgIkUF^!8KVRMYZW#!em zkxQIK$vu26H!XmwQ?K(3R4G?+`76_edV%DPgNHONoWpuwE71m7hR<7yL_hMXFg*I+ zi0gn0Y4nA}jMyNk;-VxvyLC+W2`_X(`y20$wwS%zgg?kQ-^h6Wx|!`5yLu6v{%Ynk zoZ7orB8){|U`loUf@1fz;F}a$bo@=&9x}>7a5eKF$<@GY;!H*p?`C(TOF~i%M;3Uo zZ{+kjcfFPWPqwx!B^TY(T(!d_*CH$LQ;t$Q`l_cQEnQ(3C_NJgh%7TeUtlzo=`xL` z=>Zh#s+qG~th~$RONk+|?A%*~ucBP*X95rCEF}692vuAXrNU8ztiK+O?>z6$|0aUx ziFdzEF#fd&vGoQE^)hVYck+4vt=+X2@!yX8pn$9Dhp=FcDZbN;&w>aQLhFPCSL2#3 z1@>ARh5)Ikx@NlM{NUCjc@hc>b{K7rM@6k+qtAZrE_h<-iOOr+OqtRu&IBN~P~WN$ zrhN8@+W#JM3cyF@!Fcg)hnChaX7XIEm-5}W(4-Dg4TU#E>`WPTpZ>y&72B1XC&=(e zCRc77+1f%JR_N;f?9{0BCSOes=y(>!RHrSgvVhlcb&mOkc$c8QEEgESj%0H%=c|Za zcxsAD$*+z?Hs5FzN|>JYi`iO+i@(^^vOD4Rhbmxci2I@C!~@_ul00>26*-Ny{eVS2auozu#yC8mc8T(#&LB-CqcpypOx;?ufE z!Om{?8!uBBpH0L7$TEdVIJh?wK^YZu{l5D`+-s(NQYrSIAu88(+^G-k(kD zD%vkoL+@haQ_+B?RxXT_Ga_NA=wr-62PK}Z)*UxTxzc>KQS*|nap3NF(2Fo#aP{5Z z`-C8tTKV<9({mz&!IEu;(GnTgcql4*J(%cRHq524?8iS5cYgk&p^dxN=4mzM(0IM@ zB88}+Lj&a6cu(PHefD2?Xpy4|k7ac+H=WL{c=KeNjGv;$6{Vv&O-(LvI4rq2RG#9w zNx5)8svl_C0M10!Hm~KK~I=i>#z3ruyCQGZLBE97qm_dLN)(mZO}g z>kQxY&zoVXvfCG)$;mv$2vVE6O#u6rflRz(P4QLkbSp)~b6a;hzf>8AdDQ2(EC>A->Ko-G0BSC=W#D0gq`Uo?G{jt@(3RrluUR z#CkXV@B&ZE^^1YBu;fWQ48w`NqjPzJi`JxfCD5>-s zQKcK(<5ngZW3$Yi`tN5c%kyU`uSX{bO|Nlf#q*x=O(YJ{cvHMyvbEE&Juc+WJnd3~=^&<291`$We;uL7_`M z(qQvZf58GkA>hMyNbMdi{o8F9eLV&@G|_pTwrOU#QsuZdm{>BmY4GBZU=s*XdVU=B zOmWStPxbeXd6bT1e04g?^OK&1&8q2XN@Ah!^T6jmMgo$gQ&KFP#`mR3QGZwoVq~yW9K+^Vzo=@cL@}R2%s&RTDVaKh zSErTG@BY5vhf4`%BWRsxFvM>6pLb|Dhc7&8+gTW`AQ(#kOV>DKT&|^1KnR(BAfk0p zS$VfwhHoZ>>t3i{-4S@X8(`OutO?G2P%uNq*l@`66GRUV2vxl4alehxN&}`B6k8(6 zQ6f|)jWj_`qj*6;%ff!|EB0Le zUuQIA%T4hU7UuNck&v&sZg${+^@A$;@`>`sDlyiwNpGz+i)V`Zje${&m+0w_tuf~V z#1gUZ9QMB)64$G2(bd$wTbk~!TVi28SfGnOyrJ0DEPpbn+&|YWv|ujT$?v4dy)*k_OD)Y<5ap zdt}lq{9Kr-iKbBS?U3UWo6$tSU-q~GxxSf%n8L#oOpHxs($#6#t-~VRh5{JZ%rkms zCMta?R1j_!0#IZx!L1>ZtceA|EpY>g-Gc1jmevcv)5ZMmLg;-PS8^t=k7sp`Zc#SO_%MRcQ%%2$^Snzs|Kea)+W$tG=U;o=+ zKjq6Eu3=NVhRt|X}wc74=R z3ONmxej-xqUzu(Vl}CogjB@$)qn-oJvn1xRL11TYy|2t3OfaNZ_Iuz(mT!4=wt~Vl z>-Y|j->G5q>KD#z<;BIWeHBvXqg=Mx%H}Fy0x-e5Ac^$Cf{m5(=1KVtqQ}Xujv%7h zmE?Xr^5^GXW@WXjF@_K>d)tj&*YeLhX^AAXwJncI&UznzdFvfvxorU!dx)LQg+?lsRyhW;D0M0pvglp~0UWvj)G^7cgZ@tB zb+5zAtI>g$=2`+>xc56zUy-potg#_^KW92mp%Y9_A{94fEGR0#RYj5DoToTx?M2hQ z_lN=7^AUSyY~aMvS07V3sJ+yTqg07C-`*1WZ3I%D7=Dk2nH9tzdkz7S?S=GXVf(65 z3DT(M>Rw)xJl0$-H)#d^dt3o1up484IMhJ+9k@2x!K@|v-gdMSq+P1hJaksg{_Gr!^LHFCw@$p^3|FTc=&P|IK#G znrphOYzS+Ke1e&VHFJhN775D6{iyduuL*EG+47Wqenv) zL!95;8yJNvsydx@R;0iV6N-DZ$r>s%)CY;ZeHsN?a|@)AwYLh(QujSkETxSH^5a(_ z=m$L>wtm*WG$9S7ex4l6{K@Zqbh@k1lQ?W&q1%H7jG z(k;oG*q7(a$1zr1t0B?(dp4i%yh9U7CuiIqGG(WlPi0kPHK$OT1d8~~H8j9ujw)>*jO z>-&PZQ77-h;@o~X-Si6W!gWR59~SH)JT$$0#=RLw2z{tSy2?*FRd=?MNA}**aQN;5 z1aPM!cipqBJn})J2CeyfdaL%7ih0^+7)?MEC`|!E8mj^!Xq3P+5y2({PxZ%y1vNEtw@XGwXHBh^yROqt2<>JVeE4r`; zBzwJB#f`ER);8S_cdD?=A-*YZoM}AK-}4oYc4Rr)EM1XyBG{R}`3sNX+-b9H_sdRc zap<499fGce<;IX_H7pG$zMJh6znXU(UbpfG6ZjtoQB0SW+Dx1gR_u&y7M6ximnC-j z75Tp~>HyhfBEfa5x^+<%;RaC0c`1;_*xB^!$~I}?i+u&ga2*@2^~6NFH0L*J>-QV0 zV3w}i%`3qI_*<_kn`YSuw7e`~b4aNbslV{5TuV@f zrkg*SPVwzopP)&@c#qFtAkpQUSyFaB2KB8}U#He?ZI>z7-fTYN3UbU%X~M%s3h+46 zbQVp_jUtY!eA$~STYVD4YKNn8#flP{kI-1Oag<7|7UyTLE`gS|1X5dR>60=ij%ZUk zqo2_hue}?@g{9{5zu_mwa=Mum9%i*0j>A47ANpuugARs7j_x-P=3Rm%hwb^U`e%h> z%1Nlldc;ax-+jx;nx@ISn^RJor?!7RsDf~os4mW`Y(}ezj+oK9_gzB7fsBw zZ!N;@x_uIu)zJpGgCc3CEQ7Lt9j>X8r0`rtowrxmdo>TpsM! zEM6b~g+~tdg$r|r=XgN3xjinoLbUhJZz|m9E1Tj2)VZ4=krU=w!!WY=YLcsr#Jz*6 zX#ZaskH}k&cU@f+ZWB`v5?gLQRXvypt(<@@2RdY~5|G+<5Fx`qDnBebGA@ExKx{^z zIa3!<$2AyexV0#=@9KIo?%30LFHGO`W%%aX9ke8zgf9jgt+mHkc-bW^DSfWUU&DkT zXrysQp|Y);L#RhGg2PsV*&)0wL$u0`y0QSGYpitIwaGC@K;%Fx(>}yG!^v>>mfn`Jd6><&UL$ zm=s2(6!)oLHm;yg-tLvMt}Q+P6GpbWq_2czUrhQnKN0?XZO0;i&;H+k0X^H7H!Loycw;iZF22Qyc zn%L&NAe4Yi#e~PcUTYuSLt+g|GV3pN4M;3>h*ljBR+VKq#@I*D1FY}6iAd5m9t^@D zV{%skV$H@%+9R^r&lcy8w#~5F^|``Il-NEzT+P}wM~2jxCXJicYXp56<@Wn}(D?Af zY;!gqzxr^Es!-DwOO^bR!B*CtwROI)CxUd>gKsCvTbpoUS}ZDLJDjGld15JILlxWH zb;H$Rnmfp_3Rt+MVpvB?rsUrxD|y{`MKZhYvaw&j_` zox<_pg;+_?^}8)an`|sjBo$+5jqz zr8vKegqS$yiR4tK#LK%^E@!4?OV0*z5Nl6V;g7lp{9CDc5_Q$R+9)JWStInuS%T2C(yUad}*wk#`UD7Mk`>+@&Q}y@|Xs@JlO>BfdBu$aQ7Rt2q>PHnp4ER2vQmLW-whzpW7~NgCuPWn0 zt1#1EJs&PfAs*vJywf1;r#V=A(xjC!QjzlQ=3CcE-dU(mMS#s5w!X~Jz`4rd z^+Fn%Q@i#0PFKk^z<1cY{b_9v$B%swdziHSbODef8GaW9+(=zpUWM?l;q= zn$dk0iGerTEhgGnrQI$u_f5N{8-r6sq&{69T)oInYNZOiVBsPdaL-SfAOk!vD_z=DQZibhZsCg; zWgW-GGO`wBJ#KkBc^3aes(y|!`zmBoPYjvLn2o1X!Kn&E8LNZ{!UP5wO%d)Mqke8{ zR!RxE6U^S8uJ0kIEr^_b?EnIjeVzBc9f-8o-mT%mE?A7BN5YVu=XuMu3E<}~g{e+{ zS$|0v$|f^t0}L4UTG+P14O?a>Q6w!^3X~#GeH;B#Jg&$KiB%~m6K8wqPt&VN#8f&X z^#oAiuTEglp2G-j)wKbBi*Cu%VcU>{c0vYU6H9vA&dgasI%}fMc8$IE&6jK=>?^&l zGpAMfd8ZT8V_`#Ze?2!uy|4%|G@GG3bRKp^ZUq7!f8`ZpQ7whq zg^z$eraEkusF^`guO#X_1H-Kp1$2q*6WhniT!u;$gB>z{KWbgAx_t2^!`QvW)UPNXGC&5*GW4KoTc8SLR@a_V_YyVeB$yCRd-4D2f#JJ2f zk@{9^)_panp7pZF@1a#xbYH5hINOV+m*B6xg#gdoT$Kh+QsR0v`325G=0_Z+IyNDD z?`tgFT$x$BXt{T9I)0Rh*UY<$J?Bee$#(OVz-b$ZJE6y97cZz8uiS8zh7DSjk)#Lc zNGBP@tyWjfUsgF7-2>z|8i8vx#kBM~c&i*H$p9yJVeLw-mZ4sK-8jS%f>YVHHA^#> zzon8kf9Te_W^IcQ9wYTfhCZPRT=n2Uhq%wvV-5E0O6^9&v1P&R4w%!WL#dd>LzF*5 z;v^Ir;oPh|A*|y=7jkb|iq9j7*2`yPv?#u_OuNX7ZO1S!c6h58L?S7MIN?cW^$GOu znYZ>h?`J)!v|4>()M7~joTh$ty-;O7XbB6)e}3{+aLa<#N=KJ7r=E?f1=*V`8w@%W z8i^c%`?3DVg=vhVpNfJ;N;85wmxEVa<5$8&g0vVELV274<$&>TNd z^^RD6pa{gn*A&2P50K~}Dx&ggf5qkX2lPPZa(MkOJZ~B2Uvx|;PoX5k0hG!J} zQUWu@gq;;HE><{G_Dk$1#9ub98|%pwG8J|cSOz6+WL4#Sn{kt}cD%itUt)9Yn;mQd zG{mMsKB_1g>g@UKRQ0c)v~=y`2H1I+1YKfmYsB=&GSuU}Na#$%rk|s9Tf~9kJX3Rf zT~d%&9da~!C6DnU@jZ-(rbAI*s5o%oU?X-C61w{~GhKmx^S3P`(OQP=2Bh1m%mrUF zX!s%|Z5KW<8&a`6X;8eRiT(8po7p!F8Jk($+q+DuFP&}N=8;^r?)D2+d0k=Udk~nK z60m6e0O2kb1#`u~ZD(iK35d*6z^&vmyAaYwwK=l?cZ zb4n_t=YL*nw3ziV`%}O2BV6y4K5kgp%~s+GHhA$o#*bz7J_F82b4L}oLspM{HY@30 zyz^`fK?Za7Zg4FxxrMI*nI-n6g-%t3rx|2Mkd05$xAbg#Z|L|EfJhRI0vx+Y(S->; zMHbaS$4(BLNlu%CNQ`@t@exsQj^SV;bjE`t?vU|>h4w(a&=oe=$2d}>f^-Q z=F!JeX6`B;jG0ymJ1s#YYU>*udwkZH%$ZF&b>Y}f9NybKzbZIvoNO&&Vzww}P_ z)-0uD2Vp0jK~rUk#gT9e;@fwR68joumWn_G4x7M4t67N`o5y@y+@`1XI_Ga${j5Vh z8wYFoW;b}y!%>q zM5X@1D~Qy%M7jTt(~SmLg+A^)@&2VxoS#&AX+49Jz+wmtLttM1wUO-kdjhGF@y?fJ zaVJW>>v)fAx`xx2!rh=6!6+r@2|q6;-8`?nM4}SPB{`_Wqjw!!53M;@=;Z({TMqLH z2_fv|d@37rT}a%{PAd%*P*av_YwNJVC78x%s6)vKPklAGz7N;0jA}UHL`TMl*sDRK zLR5`pJr<=YX zTyNjXR+r1K&{f{r2QGMbB|h5;UKFl(pbgcWLdvxMz9LUXlo#T+uX|i~hZsIh3>uMs zo@KUebuTJ7-gQetkMF5cm%*l7(!4S~p5L3^3hrkglKZ-Xjx~;gokJ6)YC$X_-H-cKjUGHH z^*F1}0?b7H=G5U~E|i+hKoMPTvLfdvl1guevQsvl6Jx#})Q#0D`yP6cknpW69F%-f zT^AgbSmOfsWvqyvM+ueaPEzRaNL7j&V_s(}la;B+?0xgPWnakVdacP=TIR84K|6Nv zK}Oj4&-Cff1r2itsT4wItSQw{->6gbDabO?`q6W9`p<_w`*y zbnvgn8GC&jua)<&uB~gzCac_M+P_P#zYDNeG)uQDo9UaQ9j9t^mX5eL)8WP7P0tS z679XA4vLmg6i&`A@i;dD8=%Ep7U5q5=z?Mf%{wW?g7pm4bXofAssHSmn)mlAS79EU zHj~C%w@K8lPd4J%Mhe%0U;ToBokrvOS|jX47JnpB)xRo|Zsw+{MHXu!#x>M;>Myo; z-v{1cZ@-IGB)`*(S6*P@q}{zv93oEz9<1`#(uFg9y^h^1&T>^iexn=dcv*U;z}S7x zkB}~mh$q_{2yOT^xl3o!q8q-?D`k#I|F$78-x#F>@DTuX+RiL28n1JfJAZAcOmws1 zk}5AZOMm_aNRwGpF7l`tNj2oUD#iLk$veC<;Q^g6efTJB?k~KBU(j*>`EfL0B6;Ra zX3t6(ql|8uh5H8TS+r(&T-6WynlGY{m=?KwR~H9^1uLa?9Int2$~*NwMGkHbRUxPs z0DA>~Pe!-j90|sJ_f|Xk$^&Hk7GQn61q42)CEsq`BSqdW%}rJXC#*pE(h!%-$K%K4Z(RFN*= zS%R~ZvC3j-WQ{NEQz z`NeqVV+E2$EY_>+%Ojlf7$$l6blfxC?S>s$>$b(5j(O0wXt7j*yZ#rA=a-LS z5mUQmH!0xVy<4326kL^gUY1Z>l&D}3dG$gemWdJ+IS#mxvtnl3baY;1bqCGf0ZQ36 z8Kg+hKqhC{4vi6F+>Wf6#@9jm>CY)D-rA;~RoZqpTM_HS$*)1jE}0SGzdB5FT4vMD zb>zE0={FZIm*Ji-KSZAYEC0sNf0^5m1+vX;Xw84QU+}-${5$#YJBO*BK+0E6ToE;l4L(TclEiwO%Wo+T$YC}>&)UJ9emE!>8BQj5ZDz7h%N7B%XUG2Wh$!?|X(fSyz zuyrYDh{e0B05^fP(W_$f+(ll1$lN^b#$O|O5%ReNRD z2u?pO?j z_Q@LmJoAYoXyb6nf{+GQ*PCX_IP?d97t5~r{dm6}N$WKF`=(-TR+(^zfb(o?S_ZN- z+Wk{W5;YuWtkAsVg-L7W3{P1IW!EY59cL(`(+PI>fn4+T*578R}}dD ze9hgvdW7_?aQ?v|N&mj*tI#ljhL4R#%ZHU8pqW2jhiDk=O(yZa8{wIEv+^ zGs~k)*L_88x*cSI-rCZRlGz>lD?3(g0;Eq=-o4j@@tSi`waq1*Ypq6fNw_mtA2@aE zGuh005#A3qJLo@@PBT|?rK?^-cyN2QsSOw~Sw-%t_Y@)NhsraRIRI#_!O4zPURN0- z(xdmz7m)c%3JG|NwM^1JAZB4cC75(>{Qi;Xt_Mf z8@oSI{P$ML*z#Z07vaR&e||FsPWinnqczYH>R4_=SG+pgDX2_#3Dz1sQhJQ*nq?z| znYDusm0mM$xFGB1I&(C#<|jUO-p@h)kkh?9Np$lypb$esa;8lNWJ9am0`&K@OFT?u zLlNyxi1AJ)L;f$J`BQ5ok8bWEcUl6ChhmZvp{tU8o2Kj zb5}<8cg~bM=b<7qUEy4l=Cu>+_tBW^g<%JG_q9*yNH1iJ;Eo5;!Kh^Uxhm5Q{Iwk| z>VhF%FL9<)LUk@Fz{_NA!zzW{hOT<|w&#!O7U0Z2l&y^LMg#7feL3L=4ONAH3f=L` zrdT@*_#xke`0_&T5>fja=OURU3Nqqo$`1e7$t0VY52KYyHU?rm znO+1c zRTlZb?K6aJpZay1Sr)@6lD5i|H!r+rDR0O2x2GnyUo(RGBbbnkt*%9c zLw%^AZ*}&=&(~nB{>T6OtfDprBTf^5CMEUe)+seP5==$O#bDE;JG6d0_nXhjs!K&3 z`lRS8xSOoz?zawm#IzR7;;|U!t2TC{JN_JuOc`Ac=pfKJj2D#P`h z?p{IZn}<$kp+XIUR9T3v>K>rvcCIY9|1!b7GU%T%k3}t^33Y?{XNTxaK;RSi79!nXFmhV=Y;%x;0xr~3JW)^#c%nX8zTY+zZJ@J z%!XW%TL#c*a?BL`;>$?C%j9vrR1^Why~n;a+O5(CMiNl~8pdzS&^@h5U6X1GzdsUM zj8O3cj=+tgl$qd-f`V2`1te?oBwfRF0OJh7dqOmOHY59~l=H_fcS~Gq7F8 z8+RTtlQSUpQVyB0atJ{ad(bt8EGk$dE0BNAtS>j?S~4Ss0vN9Y_`Y+`(2(M1lz}*O z$mxj^W3KjEMw76shI5CoVNkL5FX&U4x83@n);)X5(t4@ND5aYfJm`Osd0yM!lX-)8Vdz@D z3_a~JW1Pk?g!>$l0oiT4!7YB}leMKUQcRsn&Gf?qw)a za?Kho-bS>~3#<363lT=@X7y^oLQ;2FG%UO2^=r>MAH5+ZF}QzCG`8JyrCB^9-^$ zF7finf{3xE;#{DgYTwUpP9lxWrSxWpM%rb>&cs4=T+=*EIHzd2slB+l1LYKr<));W z!R3qs_>zm|bf^BzZV+y^v?X8v{w^g_7z8sW%BEai$ZyIy`hc@jGwYMTwO*vQ%xPU< z$Tjn+ukYaSXmuE$=#Zm4@Ng8R#l5qPcPCXu{fw~(FFd#)g#ZbB36FVPOs!DdnNTzQ!9d*?hMkj&_oct`Qz#XXXGs` z$}Rog!_=;*9ok2Nk-$%)WoCEvf&DVj(o&OB6dYcVOjcYMW;t40CV+_HT46T95R?H8 z>&j^>8lzz$CAFsgYC@35dQz$Xq`5n}|@j5+~@vLc)2BTQZ+hrJRcQYo6zR>{1;YhrL|f{1R7}^2&ND-$WRsm)qS&1=qb^Pn#P=Q zFol_2$wXi%0ks7vdm4+;c~$yu{7_h83)};opYO(KM`o*`0!51GNV&*~)x7Jmdx7O+ zI$j0eDpM#ywuen3c0*2gcCcr05|Y^}ff;O2xgNNbjCXx2%Pbe{3rUugNqN{o#tK#6 zq5xJx(uf;PofE0L(lS%NGp;_j?P^Z)xxM3+=;K87J!4{@wQ@`dXY-t{cbmBoxM<8M z9(Uimo|)#DVAW5x(G3FyNzHC9uFRGA*Jh!sT#5Pq5tX9TV-5-R9`Xn7DB+;Tfati8cJG176v6`J@`cPM~g4T z(ynygw&=}CZ9^6eUktiCBoE+c39n2ElV#`W?NAWx!E-6SU!eonqw0s<&=XsPuQ9Qx zw$N)hP%^bL5m!HnsMprez$$CV?gOLn&Z8@~{8`8GqZ|Dy;`d^GFF{(bMK;TF^gRoj z1~{kn1@&ZjXhDp&xngzSXc8uE0O~DRP$ev}sCjJijiJDjoZ+*=pb%I0dpu}Y8SfI9 zl6U%yDWJ*NHKA@_QvPU>F7DYu^@00Z%dFp`4$1Wqw ztDokcxGH|vV6=o9BO@hnkHo+1hm_L%ML5O7m18VW_4YQv!zf zXK>36PN>>*X)CQEaA#cJ7-E zqLcBoG(lgDcnb+!v>!WD5RP|3NVzIU_q6mF{0-u?WS_8lVf{*j+KGufk&)3I`8pvO z<8di)KoN~4HO0w(ipE=r-a>W9VZ+z%QM53X3etg2<{9f zTV_sx*sM1Uk#IwUO=3EW;%3V$i&4F9^*)OVj#rR4>9whqQ7)NDDG3#peuiX%Ly?G-xeC0BZQs5~Z7_Cy_lPviXdTJE3v`VWcli{}6 zmQ~?r)+sszry2=Lw}qj#47mioQwQ{)c%+c`EuXrcn^N}okp%N10(AevJ29iXwHLWE zF~2I>PM796V6{9*)cm2N5DYi#%@y;gk;j;T!?~c(v(50O~5RYK2y^gtGtlSqw z%{^=tpPcBu_y%pk0o7OIi<;Pra1GUr9=l!;%oB+&wtkg66Hc7JL9;)DxW4qmhsHZ zw`CV0molnHA9jqYlqT!vU7AOBic#Gk(qUf@Q6g4){YFhlvKA@f*SkRpWCDAnr(*df z z&a)n4pO1kVdM)vixr9TN{i7_oirn{?c%Gh&QlATqKS+$hWaXAl2*-sI8`*8c->0Nh^O)HpG z!iwSQ$48IK;w_hSP~X>mWlLdcD@ zX(dY>$#B5rd#5?G?VNSyR7Dd;JNCaI06Onx%h$viMv%Z6D76y@t)FD4w^s5}bLgVv zO46O**{pmtC11~|EnEuC3-YL2TR-Pe*R6b{_=!mU1{-Nw(NVe;82(X?z0oMH zG{OcV?q6O%ZWy17SD@^7+N2est%D8+;eYO;i3~WtU2>^v)SLqSSuglHkd^eGUd1V`AByyGE{jJ>|D08vdAGj)pVp`L z|Ip?35}k~~1Pa}q%Te)Bq4gLJ} zSv*x4yNBKatd&nIghCIgbEG6r>#HBHSNQJ%IwqDga$jvqsX;4Wg4YAet7UBhieba! zGqyHf1^M&SZ$BZ#Hb2Gt8KbuOl*zGa$w5Hc|{ zOEJDH0E%WRPrl4uV%)5Boe&T^1oJcriny|mp4Zj2wG-Jh;D4>O;60xx_8unBg&mL| zDcKi7U0+B&))Q2r;R65aUOT-r;9>Fc#(f+!DO9!BQgMennrqcvk{23|L9s)H!tK6poJP{|p1BWA2i zXDC*f`ZyOm#p4N)dH{PTwow9|x>USmNlu(iN{h}ONba15V8htzKmzyqW zJt@wu#p<#A;;_1#>25kOfJ5>kA0J?zvQinuHwem>qse&6fS=w-s@}ov4%gIonq#d2 zqdA!ca?c%|>>T4GcDX&M0K2%W_G}`A`y5$#e4VZ#@&tUk<+YltOGD}y>;_R$V~@Y` z>oY%VN7~TLsxPg|2WExqfQIFu9BwagnxEG5vlyx!_(RI;)?$c9bYXy4f2i15X$czM zDn)Mw&2Jf|&8@6RXf2o@7cXOtuLdzO_7aE&gX9(MXbNpNgnn>|l(C=Ohnvl@^L#li zHl=b0VI2<1#j5S@ui6jauVNIFj1tN*91o9aod-_4wXSV=rZ>$n=N72t&W-D~FYSFu z5~v#isR7Q3Vs-DddXGNyQI2mw0W0CH6(P9fMaYtnpf)u?S9|%Kxtk^%`BaYX=ngMadTb8aR~OptKOMo%iiZO*V!z4^3YYtL(_|s3Ghku$V}-8 z&5y!B+)ys6^R)!|Me3JrhzYzX@&EoyYkB;D0#Ez&@JpxCx+kaDF1rl9zpn#wb2G zsq@GJZe&?R&bUmbHGUDMjz$3UL1E7g6}{45e+23{;U`P>|D34KmY?)%7k&K#6BCog ziwiY96r&LiFs~v`0gvLMU8JE+V|UuQ+iWouxF*_>q`&)5>ldX{6<1u9Ew(W z_Tdo!jaoKxF#S;5Yq?4MmB`ss|ASs_UX^>m37{p6OG*OXqhn=q)O3B?HjuhUB4+jj>e4P370jJ8F{D<1Y|IePJe`_$0 zi2G#y4^5p*S*uT-fe=}rpR9|ZxPZr1dB*T&H*zV(kkZ`;HH(1!Q;i^M_ zpPIjY0Dqsuf6}Hp1DoBq|Dk;Se=lbLe_|_^itsys?BDf|f60RRc|m?!!GEU@{|`9g z|3B@Bxr_U@_i(ojVNpLWQ_S>X67&f}{WE%8t{Bdx@Jujb literal 164547 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 z%0D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 OcY~LIZIeWQ8~-1QURA#U diff --git a/data/icons/subt.png b/data/icons/subt.png index 33b0b0f2d9692313a049f0e1538b31b445e48dfa..cf2cec1abeaf4d3080fa1f5d4948246ad93db929 100644 GIT binary patch delta 127 zcmaFLex7lH1Scai0|SGqZLZQpMdxe=wg8_H*Tb{4{{R15Hn!&&zoZ@Wj>%2%|9i~QjOW7|K4aG=u4y~g$*eA`kYo$cnZGt7@@>Z%rj=_rof=pg?RbOC hYR~NaSNivQIl~fjKCMgh68?gM*wfX|Wt~$(696b#Nu~e* diff --git a/data/icons/subt_gray.png b/data/icons/subt_gray.png index 581a52c08296fc556e00106a29316e47a28ca3b6..71edc56c3bd26dee1fe5405ed0ccc66d386d0503 100644 GIT binary patch delta 97 zcmV-n0G|Jq0gwTZ7zqIb0000bJ#8Y9AtFsUNklKK=ND&QFTeQ*M00000NkvXXu0mjf D#2_X> delta 102 zcmV-s0Ga=g0hIxe7zqdi0000eEe}(XAtF*eNklxAoNeogi zdyZJrdBj}F85N`h0A-U_#1#2LrU3?j#{d8T07*qo IM6N<$f>xd)4*&oF diff --git a/data/icons/suomi.png b/data/icons/suomi.png index 1a48e4dc376b6e1f6fe76006acdb0bffcd6411ec..98f064eb7433ba2f2e0600b1420621a7297d46e1 100644 GIT binary patch delta 58 zcmd0cn;^l-$jrdNplX||G*MAhL)g>BF@z&JIpz1!j?RC^4FYDG4As8`_}lfGEP=`x NJYD@<);T3K0RYDl5U2nE delta 74 zcma#cn;^l-!OXzGprOkjJW)~9LfO;BF{C2y=s80!1_qu(4xj(~i*v=kS!bTsCHA6) e=~?Tg8w`pX47N|xbLD{A7(8A5T-G@yGywoFloy@= diff --git a/data/icons/svenska.png b/data/icons/svenska.png index b7c5f77ad7d37de429795b61ea84efdf32c24e26..2711ed979a0e12305aa8ebab03887280c6d0415f 100644 GIT binary patch delta 91 zcmV-h0Hptl0fPaM7zqLc0001Dofq*f002ovPDHLkV1haL9dQ5v delta 98 zcmV-o0G3_~2s5l_m!Y6mAPhpco>esIf&*q5ev#dS;f&mCT MUHx3vIVCg!0FD!saO9Q8J;GID5u|_v5o-< NJYD@<);T3K0RYM$7oPwC diff --git a/data/icons/tuner_2.png b/data/icons/tuner_2.png index 7749a9993071174600d51e8c8e06df59526e753a..af38d4ad8bbf82d595536ba973384e63bc489b10 100644 GIT binary patch delta 56 zcmdnaxQ%f_tD%gii(?3fZ1S4*>3_~2s5l_m(s%Y~pTZ`G)URI|&btWf|68aP!T!saO9Q87^)U_TIUzOppNx NJYD@<);T3K0RX~B7cKw* diff --git a/data/icons/up.png b/data/icons/up.png index 7f92806ffc0bd1887ee1444573364aa90e1d7aaa..d18f6fa30bd2a3a9c432b0d0dc96c0a9976e043b 100644 GIT binary patch delta 137 zcmV;40CxYg0*eBWihpcLL_t&t9RLzD=$~lq-KbGh93P x=)J3qvrsf9&PbMb)x2qC23FPo9ft2S^Z^J=!7%l#Qm_C3002ovPDHLkV1jK`RSEzA diff --git a/data/icons/via_green.png b/data/icons/via_green.png index 5a3117f650fcca8a59ed11a67d3bb0caf6c17430..96423c79bca2702c60f89b1aa5d330303895278e 100644 GIT binary patch delta 50 zcmb;}nBc4{;pyTS!V#Tpao{k6i$Fv7*~83E0R?Ow42P$&O;nq_?*;=9c)I$ztaD0e F0sy*s5n2EM delta 61 zcmXS@p5Sbu?CIhdQV~~r%utYlf#a|P%aQ%_xK?Or9QS(HKBePrZO7@wjEASOOJYD@<);T3K0RYs=7nlG5 diff --git a/data/icons/via_white.png b/data/icons/via_white.png index ed2529236b4db9978681584363bdd7377e7095a7..c0b0a7d2b28278389f76e405066f5cd5aedd4458 100644 GIT binary patch delta 50 zcmb;}nBc4{;pyTS!V#Tpao{k6i$Fv7*~83E0R?Ow42P$&O;nq_?*;=9c)I$ztaD0e F0sy*s5n2EM delta 61 zcmXS@p5Sbu?CIhdQV~~r%utYlf#a|P%aQ%_xK?Or9QS(HKBePrZO7@wjEASOOJYD@<);T3K0RYs=7nlG5 diff --git a/data/icons/via_yellow.png b/data/icons/via_yellow.png index 72674b0850ff1cfb3b006ece1e8ab52cb752dac0..7234c6ee623633cdfb75c85b0d432dc72c43f14a 100644 GIT binary patch delta 50 zcmb;}nBc4{;pyTS!V#Tpao{k6i$Fv7*~83E0R?Ow42P$&O;nq_?*;=9c)I$ztaD0e F0sy*s5n2EM delta 61 zcmXS@p5Sbu?CIhdQV~~r%utYlf#a|P%aQ%_xK?Or9QS(HKBePrZO7@wjEASOOJYD@<);T3K0RYs=7nlG5 diff --git a/data/icons/volume.png b/data/icons/volume.png index c0340666594003a886b34b481b3745bc4bed1aa9..985a013ea2586fa5f3f86da2f591626ca648be22 100644 GIT binary patch delta 69 zcmeBRY-F6^Y^Ukz;uyjqo1Bo5kdTv@ke5_pHu0gq`r&@RHhvF|6RccJOB=WvPDw~H YtS=J$JjM5|3|mVW>}ufY;uum9XWOO7$Dkl^*z4QJ)2zjl{1;8+U^z44%obUewTn~u{5E!f gO|QA+`BJ)&aea~C=c&>n#~6UX)78&qol`;+08p(R8~^|S diff --git a/data/icons/volumebody.png b/data/icons/volumebody.png index c921998b3c777bc1d0432c2ac6ba44a53bb1a185..3ba8dd13e2f0af70f352757930df078de8633763 100644 GIT binary patch delta 79 zcmeBRY+;-r!O6tTz`$^F&qBS4iW=5xo-U3d5>t~C7I1X5Jz`}1u~b>&$p6QT<{DGf j63nk_*(9*0E@WcR^=W&)xoyD=piTx)S3j3^P60YD)Pz|cY$d;RHODFUj1cg!tdxRm>t>wezv oFVzDyj-p6`P$lwpaIka62B0YD)Pz|cY$d;RHODFUj1cg!tdxRm>t>wezv oFVzDyj-p6`P$lwpaIka62B0YD)Pz|cY$d;RHODFUj1cg!tdxRm>t>wezv oFVzDyj-p6`P$lwpaIka62B0YD)Pz|cY$d;RHODFUj1cg!tdxRm>t>wezv oFVzDyj-p6`P$lwpaIka62B0YD)Pz|cY$d;RHODFUj1cg!tdxRm>t>wezv oFVzDyj-p6`P$lwpaIka62BVb$V3DG|Nlo5fpf2y zGAjT%%q2m7!9Z2lPw_eexts+ak;M!Q+(IDCc|K)!OXzGprOkjJW)~9O4ZZFF{C1H@A-v-3=BMn95(&GWGWgMYI~2>y+f0= gQgYfV^EvgB4v`Gma_j75ff^Y+UHx3vIVCg!06)eSn*aa+ diff --git a/data/icons/x_green.png b/data/icons/x_green.png index babb51ee0e419e7198776695dc2594d816c1bd59..6eff02b8c21bebc46d025df8a951a4e10dc7241b 100644 GIT binary patch delta 50 zcmdnQxPfs(tG1Y@i(?3fY_i3H!$%mHPvp#FzH#(m7DMp^7WNws_a-m^fv2mV%Q~lo FCIHoy5?TNN delta 52 zcmdnMxQTH>tFDBni(?4K^<;|!hZ$T18qPekWN@1CD8Y>3W)=HSPVXN)3_#%N>gTe~ HDWM4f`XLgG diff --git a/data/icons/x_white.png b/data/icons/x_white.png index 827901bfb6ab006fc7d7b69aacfa9988b276bf55..ab3bbdd743c702fe1677ce9f6abe3a2fb4730bf6 100644 GIT binary patch delta 50 zcmdnQxPfs(tG1Y@i(?3fY_i3H!$%mHPvp#FzH#(m7DMp^7WNws_a-m^fv2mV%Q~lo FCIHoy5?TNN delta 52 zcmdnMxQTH>tFDBni(?4K^<;|!hZ$T18qPekWN@1CD8Y>3W)=HSPVXN)3_#%N>gTe~ HDWM4f`XLgG diff --git a/data/icons/x_yellow.png b/data/icons/x_yellow.png index 5ef02b578eabe13917571a2dcecd9f79fe9db71c..39843e345c27674e5d8b5aaff40b1800f23a2d8d 100644 GIT binary patch delta 50 zcmdnQxPfs(tG1Y@i(?3fY_i3H!$%mHPvp#FzH#(m7DMp^7WNws_a-m^fv2mV%Q~lo FCIHoy5?TNN delta 52 zcmdnMxQTH>tFDBni(?4K^<;|!hZ$T18qPekWN@1CD8Y>3W)=HSPVXN)3_#%N>gTe~ HDWM4f`XLgG diff --git a/data/lcd/icons/lcd2.png b/data/lcd/icons/lcd2.png index 27c8a4ee74eeabde8857f5951b99910063416449..47baf51535a77188d0fd77c551af4376c3a45959 100644 GIT binary patch delta 83 zcmdnXw1;Ve8T&_17sn8d;EA^T9NRA)`ILGgqwdOwv;_Cw{zlfX-vX}NG<fIk_9p7l>!;edf-a&sKKjheSj`K7Z+1W)AxhMlHsr ouP^@4Q~7l9Yx0c#GmdKI;Vst0Ci{|vH$=8 diff --git a/data/lcd/icons/power.png b/data/lcd/icons/power.png index a3667e75c509698e81ddfb70b945356055437159..7f331916ad6f8108ececcd44e13bd02dae484880 100644 GIT binary patch delta 305 zcmV-10nYy50^S0UHh&XIL_t(2&&ATcO2j}A0N`2T5s^R+j&zb(+S_<=n8pXN6Ks48 z?`+({(js6R?gcE)N4QEG-@$Z()t)Jwg_v=a=*?WE;LpGo9|N@ delta 307 zcmV-30nGm10^kCWHh&dKL_t(|+GF?+1>gVw|EItj&H&?o{{R0^!0P{S{>S5tKQu(+ z89q)Bp1{G=(D30HV++=WqDIj%MNPIbl zAB@O+JD?TF4zK}YWPSw{6U+YqHDjRoq`DW~zv$s12jo9M2~P%;@Z@h`KnZX52Mj3j z!Tf;%CB7K{F)X6QCoq+x#5aTef7JBA{~tBIplK%`008A!vPwq!^w$6Y002ovPDHLk FV1kt8oM8X} diff --git a/src/nhttpd/web/images/fb.png b/src/nhttpd/web/images/fb.png index 3bc0bd32fceb21d70368f7842a00a53d6369ba48..da7e7f031fda5e1ddef740a1342060c0ce6e7e48 100644 GIT binary patch delta 390 zcmV;10eSw>1IYuB83+Ra001a04^xpLH-7-SP)t-s|Ns9{aj8*psd}2kjj`Qtkimtl z-BEF=QF5tMbE#8vs#JBWRCTOYcCA-=u2_1oSbMQre6n1Av|N6*UV*n?gSlXZx?zR8 zV~4$Dh`wfvz-W%cY?8=ql*w+C%5Rp-Zit zl{a&IvOTgt^AJIre^S k{D}F~Hd)&=$;JP^0e+uT7y1wj_y7O^07*qoM6N<$f@lNNaR2}S delta 398 zcmV;90dfAx1JMJJ83+ad001BJ|6!3KH-7x7KOgwzJNu3H-PO&@UpeyZQXi7jKe-Hk?r z-sue;aDce_XqkvXP+W#F_*ot`jC*p+`y3!B_XZ$UQjE$J&WLp4R0@8q7yy?)%K;Pd zTT26~+18+5uUi^)i5U*?#;$Gs2Tq>~t-GL(Ef(m{8kswXp~xu=%;edY4{1^EpawnC s9&`tCtoAOOtOCoRRRVN;8#@Jj0SXK*0FwJ-UH||907*qoM6N<$f{xs?@c;k- diff --git a/src/nhttpd/web/images/hd1.jpg b/src/nhttpd/web/images/hd1.jpg index f28f85be77fe2f448e3bed9f6af5311ad5ad5f76..2cfd4998ce0e7c173e672847de77875028d0babb 100644 GIT binary patch literal 96676 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

     %s ", classname, timestr.c_str()); yresult += string_printf("%sChannelListEvents[channel->channel_id])) { bool has_current_next = true; - sectionsd_getCurrentNextServiceKey(channel->channel_id&0xFFFFFFFFFFFFULL, currentNextInfo); + CEitManager::getInstance()->getCurrentNextServiceKey(channel->channel_id&0xFFFFFFFFFFFFULL, currentNextInfo); timestr = timeString(event->startTime); yresult += string_printf("
    ",classname); @@ -547,8 +543,8 @@ std::string CNeutrinoYParser::func_get_audio_pids_as_dropdown(CyhookHandler *, t_channel_id current_channel = CZapit::getInstance()->GetCurrentChannelID(); CSectionsdClient::responseGetCurrentNextInfoChannelID currentNextInfo; - sectionsd_getCurrentNextServiceKey(current_channel&0xFFFFFFFFFFFFULL, currentNextInfo); - if (sectionsd_getComponentTagsUniqueKey(currentNextInfo.current_uniqueKey,tags)) + CEitManager::getInstance()->getCurrentNextServiceKey(current_channel&0xFFFFFFFFFFFFULL, currentNextInfo); + if (CEitManager::getInstance()->getComponentTagsUniqueKey(currentNextInfo.current_uniqueKey,tags)) { for (unsigned int i=0; i< tags.size(); i++) { @@ -811,7 +807,7 @@ std::string CNeutrinoYParser::func_get_timer_list(CyhookHandler *, std::string if(timer->epgID!=0) { CEPGData epgdata; - if (sectionsd_getEPGid(timer->epgID, timer->epg_starttime, &epgdata)) + if (CEitManager::getInstance()->getEPGid(timer->epgID, timer->epg_starttime, &epgdata)) sAddData+="
    " + epgdata.title; else sAddData+=std::string("
    ")+timer->epgTitle; diff --git a/src/timerd/timermanager.cpp b/src/timerd/timermanager.cpp index 9a34d4f89..83227c53c 100644 --- a/src/timerd/timermanager.cpp +++ b/src/timerd/timermanager.cpp @@ -33,6 +33,7 @@ #include #include #include +#include #include #include @@ -46,9 +47,6 @@ time_t timer_minutes; bool timer_is_rec; static pthread_mutex_t tm_eventsMutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP; -void sectionsd_getEventsServiceKey(t_channel_id serviceUniqueKey, CChannelEventList &eList, char search = 0, std::string search_text = ""); -bool sectionsd_getEPGidShort(event_id_t epgID, CShortEPGData * epgdata); - //------------------------------------------------------------ CTimerManager::CTimerManager() { @@ -1113,7 +1111,7 @@ CTimerEvent_Record::CTimerEvent_Record(time_t announce_Time, time_t alarm_Time, recordingDir = recDir; epgTitle=""; CShortEPGData epgdata; - if (sectionsd_getEPGidShort(epgID, &epgdata)) + if (CEitManager::getInstance()->getEPGidShort(epgID, &epgdata)) epgTitle=epgdata.title; } @@ -1222,7 +1220,7 @@ void CTimerEvent_Record::getEpgId() { //TODO: Record/Zapto getEpgId code almost identical ! CChannelEventList evtlist; - sectionsd_getEventsServiceKey(eventInfo.channel_id &0xFFFFFFFFFFFFULL, evtlist); + CEitManager::getInstance()->getEventsServiceKey(eventInfo.channel_id &0xFFFFFFFFFFFFULL, evtlist); // we check for a time in the middle of the recording time_t check_time=alarmTime/2 + stopTime/2; for ( CChannelEventList::iterator e= evtlist.begin(); e != evtlist.end(); ++e ) @@ -1237,7 +1235,7 @@ void CTimerEvent_Record::getEpgId() if(eventInfo.epgID != 0) { CShortEPGData epgdata; - if (sectionsd_getEPGidShort(eventInfo.epgID, &epgdata)) + if (CEitManager::getInstance()->getEPGidShort(eventInfo.epgID, &epgdata)) epgTitle=epgdata.title; } } @@ -1270,7 +1268,7 @@ void CTimerEvent_Zapto::getEpgId() { //TODO: Record/Zapto getEpgId code almost identical ! CChannelEventList evtlist; - sectionsd_getEventsServiceKey(eventInfo.channel_id &0xFFFFFFFFFFFFULL, evtlist); + CEitManager::getInstance()->getEventsServiceKey(eventInfo.channel_id &0xFFFFFFFFFFFFULL, evtlist); // we check for a time 5 min after zap time_t check_time=alarmTime + 300; for ( CChannelEventList::iterator e= evtlist.begin(); e != evtlist.end(); ++e ) @@ -1285,7 +1283,7 @@ void CTimerEvent_Zapto::getEpgId() if(eventInfo.epgID != 0) { CShortEPGData epgdata; - if (sectionsd_getEPGidShort(eventInfo.epgID, &epgdata)) + if (CEitManager::getInstance()->getEPGidShort(eventInfo.epgID, &epgdata)) epgTitle=epgdata.title; } } From 8d02122425f1cc9755eaf9f41332836cc7f0e6d3 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Thu, 30 Aug 2012 14:46:57 +0400 Subject: [PATCH 234/317] eitd/sectionsd.cpp: add channel_id mask in getXXX --- src/eitd/sectionsd.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/eitd/sectionsd.cpp b/src/eitd/sectionsd.cpp index a30162cd5..767ffc392 100644 --- a/src/eitd/sectionsd.cpp +++ b/src/eitd/sectionsd.cpp @@ -2253,7 +2253,7 @@ void CEitManager::getCurrentNextServiceKey(t_channel_id uniqueServiceKey, CSecti /* ugly hack: retry fetching current/next by restarting dmxCN if this is true */ //bool change = false;//TODO remove ? - //t_channel_id * uniqueServiceKey = (t_channel_id *)data; + uniqueServiceKey &= 0xFFFFFFFFFFFFULL; readLockEvents(); /* if the currently running program is requested... */ @@ -2504,14 +2504,15 @@ bool CEitManager::getEPGid(const event_id_t epgID, const time_t startzeit, CEPGD return ret; } /* was commandActualEPGchannelID(int connfd, char *data, const unsigned dataLength) */ -bool CEitManager::getActualEPGServiceKey(const t_channel_id uniqueServiceKey, CEPGData * epgdata) +bool CEitManager::getActualEPGServiceKey(const t_channel_id channel_id, CEPGData * epgdata) { bool ret = false; SIevent evt; SItime zeit(0, 0); - dprintf("[commandActualEPGchannelID] Request of current EPG for " PRINTF_CHANNEL_ID_TYPE "\n", uniqueServiceKey); + dprintf("[commandActualEPGchannelID] Request of current EPG for " PRINTF_CHANNEL_ID_TYPE "\n", channel_id); + t_channel_id uniqueServiceKey = channel_id & 0xFFFFFFFFFFFFULL; readLockEvents(); if (uniqueServiceKey == messaging_current_servicekey) { if (myCurrentEvent) { @@ -2567,7 +2568,7 @@ bool channel_in_requested_list(t_channel_id * clist, t_channel_id chid, int len) { if(len == 0) return true; for(int i = 0; i < len; i++) { - if(clist[i] == chid) + if((clist[i] & 0xFFFFFFFFFFFFULL) == chid) return true; } return false; @@ -2694,11 +2695,12 @@ bool CEitManager::getLinkageDescriptorsUniqueKey(const event_id_t uniqueKey, CSe } /* was static void commandTimesNVODservice(int connfd, char *data, const unsigned dataLength) */ -bool CEitManager::getNVODTimesServiceKey(const t_channel_id uniqueServiceKey, CSectionsdClient::NVODTimesList& nvod_list) +bool CEitManager::getNVODTimesServiceKey(const t_channel_id channel_id, CSectionsdClient::NVODTimesList& nvod_list) { bool ret = false; - dprintf("Request of NVOD times for " PRINTF_CHANNEL_ID_TYPE "\n", uniqueServiceKey); + dprintf("Request of NVOD times for " PRINTF_CHANNEL_ID_TYPE "\n", channel_id); + t_channel_id uniqueServiceKey = channel_id & 0xFFFFFFFFFFFFULL; nvod_list.clear(); readLockServices(); From 3f5a0e5bb13152a8cf2f745d09284b67e8174da1 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Thu, 30 Aug 2012 14:50:01 +0400 Subject: [PATCH 235/317] remove channel_id mask for CEitManager getXXX calls --- src/daemonc/remotecontrol.cpp | 2 +- src/driver/record.cpp | 4 ++-- src/driver/screenshot.cpp | 2 +- src/gui/channellist.cpp | 2 +- src/gui/epgview.cpp | 2 +- src/gui/eventlist.cpp | 2 +- src/gui/infoviewer.cpp | 4 ++-- src/nhttpd/tuxboxapi/coolstream/controlapi.cpp | 6 +++--- src/nhttpd/tuxboxapi/coolstream/neutrinoyparser.cpp | 10 +++++----- src/timerd/timermanager.cpp | 4 ++-- 10 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/daemonc/remotecontrol.cpp b/src/daemonc/remotecontrol.cpp index fbc608f64..79bacc428 100644 --- a/src/daemonc/remotecontrol.cpp +++ b/src/daemonc/remotecontrol.cpp @@ -396,7 +396,7 @@ void CRemoteControl::getNVODs() if ( subChannels.empty() ) { CSectionsdClient::NVODTimesList NVODs; - if (CEitManager::getInstance()->getNVODTimesServiceKey( current_channel_id & 0xFFFFFFFFFFFFULL, NVODs)) + if (CEitManager::getInstance()->getNVODTimesServiceKey( current_channel_id, NVODs)) { are_subchannels = false; //printf("CRemoteControl::getNVODs NVODs.size %d\n", NVODs.size()); diff --git a/src/driver/record.cpp b/src/driver/record.cpp index 2436db6b3..f10f922d3 100644 --- a/src/driver/record.cpp +++ b/src/driver/record.cpp @@ -399,7 +399,7 @@ record_error_msg_t CRecordInstance::Record() CEPGData epgData; epgData.epg_times.startzeit = 0; epgData.epg_times.dauer = 0; - if (CEitManager::getInstance()->getActualEPGServiceKey(channel_id&0xFFFFFFFFFFFFULL, &epgData )) { + if (CEitManager::getInstance()->getActualEPGServiceKey(channel_id, &epgData )) { g_Timerd->getRecordingSafety(pre, post); if (epgData.epg_times.startzeit > 0) record_end = epgData.epg_times.startzeit + epgData.epg_times.dauer + post; @@ -799,7 +799,7 @@ bool CRecordManager::Record(const t_channel_id channel_id, const char * dir, boo eventinfo.eventID = 0; eventinfo.channel_id = channel_id; - if (CEitManager::getInstance()->getActualEPGServiceKey(channel_id&0xFFFFFFFFFFFFULL, &epgData )) { + if (CEitManager::getInstance()->getActualEPGServiceKey(channel_id, &epgData )) { eventinfo.epgID = epgData.eventID; eventinfo.epg_starttime = epgData.epg_times.startzeit; strncpy(eventinfo.epgTitle, epgData.title.c_str(), EPG_TITLE_MAXLEN-1); diff --git a/src/driver/screenshot.cpp b/src/driver/screenshot.cpp index c24ca5437..95a146daf 100644 --- a/src/driver/screenshot.cpp +++ b/src/driver/screenshot.cpp @@ -369,7 +369,7 @@ void CScreenShot::MakeFileName(const t_channel_id channel_id) } pos = strlen(fname); - if(CEitManager::getInstance()->getActualEPGServiceKey(channel_id&0xFFFFFFFFFFFFULL, &epgData)) { + if(CEitManager::getInstance()->getActualEPGServiceKey(channel_id, &epgData)) { CShortEPGData epgdata; if(CEitManager::getInstance()->getEPGidShort(epgData.eventID, &epgdata)) { if (!(epgdata.title.empty())) { diff --git a/src/gui/channellist.cpp b/src/gui/channellist.cpp index 0d52faf6e..65c5286ba 100644 --- a/src/gui/channellist.cpp +++ b/src/gui/channellist.cpp @@ -1542,7 +1542,7 @@ void CChannelList::paintDetails(int index) char buf[128] = {0}; char cFrom[50] = {0}; // UTF-8 CSectionsdClient::CurrentNextInfo CurrentNext; - CEitManager::getInstance()->getCurrentNextServiceKey(chanlist[index]->channel_id & 0xFFFFFFFFFFFFULL, CurrentNext); + CEitManager::getInstance()->getCurrentNextServiceKey(chanlist[index]->channel_id, CurrentNext); if (!CurrentNext.next_name.empty()) { struct tm *pStartZeit = localtime (& CurrentNext.next_zeit.startzeit); snprintf(cFrom, sizeof(cFrom), "%s %02d:%02d",g_Locale->getText(LOCALE_WORD_FROM),pStartZeit->tm_hour, pStartZeit->tm_min ); diff --git a/src/gui/epgview.cpp b/src/gui/epgview.cpp index 9bf54faa6..919a869d1 100644 --- a/src/gui/epgview.cpp +++ b/src/gui/epgview.cpp @@ -948,7 +948,7 @@ void CEpgData::GetEPGData(const t_channel_id channel_id, uint64_t id, time_t* st if ( id!= 0 ) res = CEitManager::getInstance()->getEPGid(id, *startzeit, &epgData); else - res = CEitManager::getInstance()->getActualEPGServiceKey(channel_id&0xFFFFFFFFFFFFULL, &epgData ); + res = CEitManager::getInstance()->getActualEPGServiceKey(channel_id, &epgData ); if ( res ) { diff --git a/src/gui/eventlist.cpp b/src/gui/eventlist.cpp index 141631200..4a2ee9eef 100644 --- a/src/gui/eventlist.cpp +++ b/src/gui/eventlist.cpp @@ -156,7 +156,7 @@ void CNeutrinoEventList::readEvents(const t_channel_id channel_id) CEPGData epgData; // todo: what if there are more than one events in the Portal - if (CEitManager::getInstance()->getActualEPGServiceKey(channel_id&0xFFFFFFFFFFFFULL, &epgData )) + if (CEitManager::getInstance()->getActualEPGServiceKey(channel_id, &epgData )) { // epgData.eventID; // epgData.epg_times.startzeit; diff --git a/src/gui/infoviewer.cpp b/src/gui/infoviewer.cpp index ab75da82b..8312763cb 100644 --- a/src/gui/infoviewer.cpp +++ b/src/gui/infoviewer.cpp @@ -384,7 +384,7 @@ void CInfoViewer::paintBackground(int col_NumBox) void CInfoViewer::show_current_next(bool new_chan, int epgpos) { - CEitManager::getInstance()->getCurrentNextServiceKey(channel_id & 0xFFFFFFFFFFFFULL, info_CurrentNext); + CEitManager::getInstance()->getCurrentNextServiceKey(channel_id, info_CurrentNext); if (!evtlist.empty()) { if (new_chan) { for ( eli=evtlist.begin(); eli!=evtlist.end(); ++eli ) { @@ -1265,7 +1265,7 @@ CSectionsdClient::CurrentNextInfo CInfoViewer::getEPG (const t_channel_id for_ch { static CSectionsdClient::CurrentNextInfo oldinfo; - CEitManager::getInstance()->getCurrentNextServiceKey(for_channel_id & 0xFFFFFFFFFFFFULL, info); + CEitManager::getInstance()->getCurrentNextServiceKey(for_channel_id, info); //printf("CInfoViewer::getEPG: old uniqueKey %llx new %llx\n", oldinfo.current_uniqueKey, info.current_uniqueKey); diff --git a/src/nhttpd/tuxboxapi/coolstream/controlapi.cpp b/src/nhttpd/tuxboxapi/coolstream/controlapi.cpp index f5e496eaa..d737dbf0a 100644 --- a/src/nhttpd/tuxboxapi/coolstream/controlapi.cpp +++ b/src/nhttpd/tuxboxapi/coolstream/controlapi.cpp @@ -893,7 +893,7 @@ std::string CControlAPI::_GetBouquetActualEPGItem(CyhookHandler *hh, CZapitChann if (event) { if (event->duration > 0) percentage = 100 * (time(NULL) - event->startTime) / event->duration; - CEitManager::getInstance()->getCurrentNextServiceKey(channel->channel_id & 0xFFFFFFFFFFFFULL, currentNextInfo); + CEitManager::getInstance()->getCurrentNextServiceKey(channel->channel_id, currentNextInfo); timestr = timeString(event->startTime); firstEPG += hh->outPair("startTime", timestr, true); @@ -1502,7 +1502,7 @@ void CControlAPI::ZaptoCGI(CyhookHandler *hh) t_channel_id current_channel = NeutrinoAPI->Zapit->getCurrentServiceID(); CSectionsdClient::LinkageDescriptorList desc; CSectionsdClient::responseGetCurrentNextInfoChannelID currentNextInfo; - CEitManager::getInstance()->getCurrentNextServiceKey(current_channel&0xFFFFFFFFFFFFULL, currentNextInfo); + CEitManager::getInstance()->getCurrentNextServiceKey(current_channel, currentNextInfo); if (CEitManager::getInstance()->getLinkageDescriptorsUniqueKey(currentNextInfo.current_uniqueKey,desc)) { for(unsigned int i=0; i< desc.size(); i++) @@ -1642,7 +1642,7 @@ void CControlAPI::SendAllCurrentVAPid(CyhookHandler *hh) t_channel_id current_channel = NeutrinoAPI->Zapit->getCurrentServiceID(); CSectionsdClient::responseGetCurrentNextInfoChannelID currentNextInfo; - CEitManager::getInstance()->getCurrentNextServiceKey(current_channel&0xFFFFFFFFFFFFULL, currentNextInfo); + CEitManager::getInstance()->getCurrentNextServiceKey(current_channel, currentNextInfo); if (CEitManager::getInstance()->getComponentTagsUniqueKey(currentNextInfo.current_uniqueKey,tags)) { for (unsigned int i=0; i< tags.size(); i++) diff --git a/src/nhttpd/tuxboxapi/coolstream/neutrinoyparser.cpp b/src/nhttpd/tuxboxapi/coolstream/neutrinoyparser.cpp index 0ce62cf6d..a4ba3bce3 100644 --- a/src/nhttpd/tuxboxapi/coolstream/neutrinoyparser.cpp +++ b/src/nhttpd/tuxboxapi/coolstream/neutrinoyparser.cpp @@ -287,7 +287,7 @@ std::string CNeutrinoYParser::func_get_channels_as_dropdown(CyhookHandler *, st sprintf(id,PRINTF_CHANNEL_ID_TYPE_NO_LEADING_ZEROS,channel->channel_id); std::string _sid = std::string(id); sel = (_sid == achannel_id) ? "selected=\"selected\"" : ""; - CEitManager::getInstance()->getActualEPGServiceKey(channel->channel_id&0xFFFFFFFFFFFFULL, &epg); + CEitManager::getInstance()->getActualEPGServiceKey(channel->channel_id, &epg); sprintf(buf,"\n", channel->channel_id, sel.c_str(), channel->getName().c_str(),epg.title.c_str()); yresult += buf; } @@ -392,7 +392,7 @@ std::string CNeutrinoYParser::func_get_bouquets_with_epg(CyhookHandler *hh, std: if (channel->getServiceType() == ST_NVOD_REFERENCE_SERVICE) { CSectionsdClient::NVODTimesList nvod_list; - if (CEitManager::getInstance()->getNVODTimesServiceKey(channel->channel_id&0xFFFFFFFFFFFFULL, nvod_list)) + if (CEitManager::getInstance()->getNVODTimesServiceKey(channel->channel_id, nvod_list)) { CZapitClient::subServiceList subServiceList; @@ -409,7 +409,7 @@ std::string CNeutrinoYParser::func_get_bouquets_with_epg(CyhookHandler *hh, std: t_channel_id channel_id = CREATE_CHANNEL_ID(cmd.service_id, cmd.original_network_id, cmd.transport_stream_id); timestr = timeString(ni->zeit.startzeit); // FIXME: time is wrong (at least on little endian)! - CEitManager::getInstance()->getActualEPGServiceKey(channel_id&0xFFFFFFFFFFFFULL, &epg); // FIXME: der scheissendreck geht nit!!! + CEitManager::getInstance()->getActualEPGServiceKey(channel_id, &epg); // FIXME: der scheissendreck geht nit!!! yresult += string_printf("
     %s ", classname, timestr.c_str()); yresult += string_printf("%sChannelListEvents[channel->channel_id])) { bool has_current_next = true; - CEitManager::getInstance()->getCurrentNextServiceKey(channel->channel_id&0xFFFFFFFFFFFFULL, currentNextInfo); + CEitManager::getInstance()->getCurrentNextServiceKey(channel->channel_id, currentNextInfo); timestr = timeString(event->startTime); yresult += string_printf("
    ",classname); @@ -543,7 +543,7 @@ std::string CNeutrinoYParser::func_get_audio_pids_as_dropdown(CyhookHandler *, t_channel_id current_channel = CZapit::getInstance()->GetCurrentChannelID(); CSectionsdClient::responseGetCurrentNextInfoChannelID currentNextInfo; - CEitManager::getInstance()->getCurrentNextServiceKey(current_channel&0xFFFFFFFFFFFFULL, currentNextInfo); + CEitManager::getInstance()->getCurrentNextServiceKey(current_channel, currentNextInfo); if (CEitManager::getInstance()->getComponentTagsUniqueKey(currentNextInfo.current_uniqueKey,tags)) { for (unsigned int i=0; i< tags.size(); i++) diff --git a/src/timerd/timermanager.cpp b/src/timerd/timermanager.cpp index 83227c53c..ef84e1526 100644 --- a/src/timerd/timermanager.cpp +++ b/src/timerd/timermanager.cpp @@ -1220,7 +1220,7 @@ void CTimerEvent_Record::getEpgId() { //TODO: Record/Zapto getEpgId code almost identical ! CChannelEventList evtlist; - CEitManager::getInstance()->getEventsServiceKey(eventInfo.channel_id &0xFFFFFFFFFFFFULL, evtlist); + CEitManager::getInstance()->getEventsServiceKey(eventInfo.channel_id, evtlist); // we check for a time in the middle of the recording time_t check_time=alarmTime/2 + stopTime/2; for ( CChannelEventList::iterator e= evtlist.begin(); e != evtlist.end(); ++e ) @@ -1268,7 +1268,7 @@ void CTimerEvent_Zapto::getEpgId() { //TODO: Record/Zapto getEpgId code almost identical ! CChannelEventList evtlist; - CEitManager::getInstance()->getEventsServiceKey(eventInfo.channel_id &0xFFFFFFFFFFFFULL, evtlist); + CEitManager::getInstance()->getEventsServiceKey(eventInfo.channel_id, evtlist); // we check for a time 5 min after zap time_t check_time=alarmTime + 300; for ( CChannelEventList::iterator e= evtlist.begin(); e != evtlist.end(); ++e ) From a391bf32376250ce2a476b239438aec7d6b3f28c Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Thu, 30 Aug 2012 15:54:49 +0400 Subject: [PATCH 236/317] lib/sectionsdclient/sectionsdMsg.h: cleanup commands, comment unused --- lib/sectionsdclient/sectionsdMsg.h | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/lib/sectionsdclient/sectionsdMsg.h b/lib/sectionsdclient/sectionsdMsg.h index 527b45cce..4595a80ca 100644 --- a/lib/sectionsdclient/sectionsdMsg.h +++ b/lib/sectionsdclient/sectionsdMsg.h @@ -54,28 +54,12 @@ struct sectionsd enum commands { dumpStatusinformation, // commandDumpStatusInformation - allEventsChannelIDSearch, // commandAllEventsChannelIDSearch pauseScanning, // commandPauseScanning // for the grabbers ;) getIsScanningActive, // commandGetIsScanningActive - actualEPGchannelID, // commandActualEPGchannelID - actualEventListTVshortIDs, // commandEventListTVids - actualEventListRadioShortIDs, // commandEventListRadioIDs - currentNextInformationID, // commandCurrentNextInfoChannelID - epgEPGid, // commandEPGepgID - epgEPGidShort, // commandEPGepgIDshort - ComponentTagsUniqueKey, // commandComponentTagsUniqueKey - allEventsChannelID_, // commandAllEventsChannelID - timesNVODservice, // commandTimesNVODservice getIsTimeSet, // commandGetIsTimeSet serviceChanged, // commandserviceChanged - LinkageDescriptorsUniqueKey, // commandLinkageDescriptorsUniqueKey CMD_registerEvents, // commandRegisterEventClient CMD_unregisterEvents, // commandUnRegisterEventClient -#ifdef ENABLE_PPT - setPrivatePid, // commandSetPrivatePid -#else - dummy11_setPrivatePid, -#endif freeMemory, // commandFreeMemory readSIfromXML, // commandReadSIfromXML writeSI2XML, // commandWriteSI2XML @@ -85,11 +69,13 @@ struct sectionsd numberOfCommands // <- no actual command, end of command marker }; +#if 0 struct commandGetEPGid { uint64_t eventid; time_t starttime; } __attribute__ ((packed)) ; +#endif struct commandSetServiceChanged { From 6eaa28449b84dbe9c1f9e9216874aa0f93b299aa Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Thu, 30 Aug 2012 15:55:32 +0400 Subject: [PATCH 237/317] lib/sectionsdclient/sectionsdclient.cpp,h: comment unused --- lib/sectionsdclient/sectionsdclient.cpp | 122 +++++++++++------------- lib/sectionsdclient/sectionsdclient.h | 51 ++++------ 2 files changed, 75 insertions(+), 98 deletions(-) diff --git a/lib/sectionsdclient/sectionsdclient.cpp b/lib/sectionsdclient/sectionsdclient.cpp index 6d6da6b4b..4c6e16c0c 100644 --- a/lib/sectionsdclient/sectionsdclient.cpp +++ b/lib/sectionsdclient/sectionsdclient.cpp @@ -56,7 +56,6 @@ int CSectionsdClient::readResponse(char* data,unsigned int size) return responseHeader.dataLength; } - bool CSectionsdClient::send(const unsigned char command, const char* data, const unsigned int size) { sectionsd::msgRequestHeader msgHead; @@ -161,7 +160,61 @@ void CSectionsdClient::setServiceChanged(const t_channel_id channel_id, const bo close_connection(); } +void CSectionsdClient::freeMemory() +{ + send(sectionsd::freeMemory); + readResponse(); + close_connection(); +} + +void CSectionsdClient::readSIfromXML(const char * epgxmlname) +{ + send(sectionsd::readSIfromXML, (char*) epgxmlname, strlen(epgxmlname)); + + readResponse(); + close_connection(); +} + +void CSectionsdClient::writeSI2XML(const char * epgxmlname) +{ + send(sectionsd::writeSI2XML, (char*) epgxmlname, strlen(epgxmlname)); + + readResponse(); + close_connection(); +} + +void CSectionsdClient::setConfig(const epg_config config) +{ + sectionsd::commandSetConfig *msg; + char* pData = new char[sizeof(sectionsd::commandSetConfig) + config.network_ntpserver.length() + 1 + config.epg_dir.length() + 1]; + msg = (sectionsd::commandSetConfig *)pData; + + msg->scanMode = config.scanMode; + msg->epg_cache = config.epg_cache; + msg->epg_old_events = config.epg_old_events; + msg->epg_max_events = config.epg_max_events; + msg->network_ntprefresh = config.network_ntprefresh; + msg->network_ntpenable = config.network_ntpenable; + msg->epg_extendedcache = config.epg_extendedcache; +// config.network_ntpserver: + strcpy(&pData[sizeof(sectionsd::commandSetConfig)], config.network_ntpserver.c_str()); +// config.epg_dir: + strcpy(&pData[sizeof(sectionsd::commandSetConfig) + config.network_ntpserver.length() + 1], config.epg_dir.c_str()); + + send(sectionsd::setConfig, (char*)pData, sizeof(sectionsd::commandSetConfig) + config.network_ntpserver.length() + 1 + config.epg_dir.length() + 1); + readResponse(); + close_connection(); + delete[] pData; +} + +void CSectionsdClient::dumpStatus() +{ + send(sectionsd::dumpStatusinformation); + close_connection(); +} + +#if 0 bool CSectionsdClient::getComponentTagsUniqueKey(const event_id_t uniqueKey, CSectionsdClient::ComponentTagList& tags) { if (send(sectionsd::ComponentTagsUniqueKey, (char*)&uniqueKey, sizeof(uniqueKey))) @@ -277,7 +330,6 @@ bool CSectionsdClient::getNVODTimesServiceKey(const t_channel_id channel_id, CSe } } - bool CSectionsdClient::getCurrentNextServiceKey(const t_channel_id channel_id, CSectionsdClient::responseGetCurrentNextInfoChannelID& current_next) { if (send(sectionsd::currentNextInformationID, (char*)&channel_id, sizeof(channel_id))) @@ -321,8 +373,6 @@ bool CSectionsdClient::getCurrentNextServiceKey(const t_channel_id channel_id, C } } - - CChannelEventList CSectionsdClient::getChannelEvents(const bool tv_mode, t_channel_id *p_requested_channels, int size_requested_channels) { CChannelEventList eList; @@ -375,8 +425,6 @@ CChannelEventList CSectionsdClient::getChannelEvents(const bool tv_mode, t_chann 3: keyword search in EPG description (INFO2) In case of a match, the EPG event is added to the Eventlist eList. */ -#if 0 -//never used bool CSectionsdClient::getEventsServiceKeySearchAdd(CChannelEventList& eList,const t_channel_id channel_id,char search_typ,std::string& search_text) { int nBufSize=0; @@ -437,7 +485,7 @@ bool CSectionsdClient::getEventsServiceKeySearchAdd(CChannelEventList& eList,con close_connection(); return true; } -#endif + CChannelEventList CSectionsdClient::getEventsServiceKey(const t_channel_id channel_id) { CChannelEventList eList; @@ -481,7 +529,7 @@ CChannelEventList CSectionsdClient::getEventsServiceKey(const t_channel_id chann close_connection(); return eList; } -#if 0 + //never used void showhexdumpa (char *label, unsigned char * from, int len) { @@ -523,7 +571,7 @@ void showhexdumpa (char *label, unsigned char * from, int len) } printf ("\n"); } -#endif + // 21.07.2005 - rainerk // Convert line-terminated extended events to vector of strings char * CSectionsdClient::parseExtendedEvents(char * dp, CEPGData * epgdata) { @@ -617,7 +665,6 @@ bool CSectionsdClient::getActualEPGServiceKey(const t_channel_id channel_id, CEP return false; } - bool CSectionsdClient::getEPGid(const event_id_t eventid, const time_t starttime, CEPGData * epgdata) { sectionsd::commandGetEPGid msg; @@ -673,7 +720,6 @@ bool CSectionsdClient::getEPGid(const event_id_t eventid, const time_t starttime return false; } - bool CSectionsdClient::getEPGidShort(const event_id_t eventid, CShortEPGData * epgdata) { if (send(sectionsd::epgEPGidShort, (char*)&eventid, sizeof(eventid))) @@ -721,57 +767,5 @@ void CSectionsdClient::setPrivatePid(const unsigned short pid) close_connection(); } #endif +#endif -void CSectionsdClient::freeMemory() -{ - send(sectionsd::freeMemory); - - readResponse(); - close_connection(); -} - -void CSectionsdClient::readSIfromXML(const char * epgxmlname) -{ - send(sectionsd::readSIfromXML, (char*) epgxmlname, strlen(epgxmlname)); - - readResponse(); - close_connection(); -} - -void CSectionsdClient::writeSI2XML(const char * epgxmlname) -{ - send(sectionsd::writeSI2XML, (char*) epgxmlname, strlen(epgxmlname)); - - readResponse(); - close_connection(); -} - -void CSectionsdClient::setConfig(const epg_config config) -{ - sectionsd::commandSetConfig *msg; - char* pData = new char[sizeof(sectionsd::commandSetConfig) + config.network_ntpserver.length() + 1 + config.epg_dir.length() + 1]; - msg = (sectionsd::commandSetConfig *)pData; - - msg->scanMode = config.scanMode; - msg->epg_cache = config.epg_cache; - msg->epg_old_events = config.epg_old_events; - msg->epg_max_events = config.epg_max_events; - msg->network_ntprefresh = config.network_ntprefresh; - msg->network_ntpenable = config.network_ntpenable; - msg->epg_extendedcache = config.epg_extendedcache; -// config.network_ntpserver: - strcpy(&pData[sizeof(sectionsd::commandSetConfig)], config.network_ntpserver.c_str()); -// config.epg_dir: - strcpy(&pData[sizeof(sectionsd::commandSetConfig) + config.network_ntpserver.length() + 1], config.epg_dir.c_str()); - - send(sectionsd::setConfig, (char*)pData, sizeof(sectionsd::commandSetConfig) + config.network_ntpserver.length() + 1 + config.epg_dir.length() + 1); - readResponse(); - close_connection(); - delete[] pData; -} - -void CSectionsdClient::dumpStatus() -{ - send(sectionsd::dumpStatusinformation); - close_connection(); -} diff --git a/lib/sectionsdclient/sectionsdclient.h b/lib/sectionsdclient/sectionsdclient.h index 4065ffc2d..3d2d0d438 100644 --- a/lib/sectionsdclient/sectionsdclient.h +++ b/lib/sectionsdclient/sectionsdclient.h @@ -36,13 +36,6 @@ class CShortEPGData std::string title; std::string info1; std::string info2; - - CShortEPGData() - { - title = ""; - info1 = ""; - info2 = ""; - }; }; class CEPGData; @@ -69,7 +62,7 @@ class CSectionsdClient : private CBasicClient int readResponse(char* data = NULL, unsigned int size = 0); bool send(const unsigned char command, const char* data = NULL, const unsigned int size = 0); - char * parseExtendedEvents(char * dp, CEPGData * epgdata); + //char * parseExtendedEvents(char * dp, CEPGData * epgdata); public: virtual ~CSectionsdClient() {}; @@ -86,8 +79,10 @@ class CSectionsdClient : private CBasicClient { EVT_TIMESET, EVT_GOT_CN_EPG, +#if 0 EVT_SERVICES_UPDATE, EVT_BOUQUETS_UPDATE, +#endif EVT_WRITE_SI_FINISHED }; @@ -126,6 +121,10 @@ class CSectionsdClient : private CBasicClient { time_t startzeit; unsigned dauer; + sectionsdTime() { + startzeit = 0; + dauer = 0; + } } __attribute__ ((packed)) ; struct responseGetNVODTimes @@ -165,35 +164,25 @@ class CSectionsdClient : private CBasicClient std::string epg_dir; } epg_config; +#if 0 bool getComponentTagsUniqueKey(const event_id_t uniqueKey, CSectionsdClient::ComponentTagList& tags); - bool getLinkageDescriptorsUniqueKey(const event_id_t uniqueKey, CSectionsdClient::LinkageDescriptorList& descriptors); - bool getNVODTimesServiceKey(const t_channel_id channel_id, CSectionsdClient::NVODTimesList& nvod_list); - bool getCurrentNextServiceKey(const t_channel_id channel_id, CSectionsdClient::responseGetCurrentNextInfoChannelID& current_next); + CChannelEventList getChannelEvents(const bool tv_mode = true, t_channel_id* = NULL, int size = 0); + CChannelEventList getEventsServiceKey(const t_channel_id channel_id); + bool getEventsServiceKeySearchAdd(CChannelEventList& evtlist,const t_channel_id channel_id,char m_search_typ,std::string& m_search_text); + bool getEPGid(const event_id_t eventid, const time_t starttime, CEPGData * epgdata); + bool getActualEPGServiceKey(const t_channel_id channel_id, CEPGData * epgdata); + bool getEPGidShort(const event_id_t eventid, CShortEPGData * epgdata); + void setPrivatePid(const unsigned short pid); +#endif bool getIsTimeSet(); - void setPauseScanning(const bool doPause); - - bool getIsScanningActive(); - void setServiceChanged(const t_channel_id channel_id, const bool requestEvent); - CChannelEventList getChannelEvents(const bool tv_mode = true, t_channel_id* = NULL, int size = 0); - - CChannelEventList getEventsServiceKey(const t_channel_id channel_id); - - bool getEventsServiceKeySearchAdd(CChannelEventList& evtlist,const t_channel_id channel_id,char m_search_typ,std::string& m_search_text); - - bool getEPGid(const event_id_t eventid, const time_t starttime, CEPGData * epgdata); - - bool getActualEPGServiceKey(const t_channel_id channel_id, CEPGData * epgdata); - - bool getEPGidShort(const event_id_t eventid, CShortEPGData * epgdata); - - void setPrivatePid(const unsigned short pid); + bool getIsScanningActive(); void freeMemory(); @@ -235,15 +224,9 @@ class CEPGData CEPGData() { eventID = 0; - title = ""; - info1 = ""; - info2 = ""; fsk = 0; table_id = 0xff; - contentClassification = ""; - userClassification = ""; }; - }; #endif From 7d1bb02f6a79714d0389a52964a2fd415cfcc182 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Thu, 30 Aug 2012 15:55:50 +0400 Subject: [PATCH 238/317] eitd/sectionsd.cpp: cleanup commands --- src/eitd/sectionsd.cpp | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/src/eitd/sectionsd.cpp b/src/eitd/sectionsd.cpp index 767ffc392..5305359f4 100644 --- a/src/eitd/sectionsd.cpp +++ b/src/eitd/sectionsd.cpp @@ -1183,24 +1183,12 @@ struct s_cmd_table static s_cmd_table connectionCommands[sectionsd::numberOfCommands] = { { commandDumpStatusInformation, "commandDumpStatusInformation" }, - { sendEmptyResponse, "commandAllEventsChannelIDSearch" }, { commandPauseScanning, "commandPauseScanning" }, { commandGetIsScanningActive, "commandGetIsScanningActive" }, - { sendEmptyResponse, "commandActualEPGchannelID" }, - { sendEmptyResponse, "commandEventListTVids" }, - { sendEmptyResponse, "commandEventListRadioIDs" }, - { sendEmptyResponse, "commandCurrentNextInfoChannelID" }, - { sendEmptyResponse, "commandEPGepgID" }, - { sendEmptyResponse, "commandEPGepgIDshort" }, - { sendEmptyResponse, "commandComponentTagsUniqueKey" }, - { sendEmptyResponse, "commandAllEventsChannelID" }, - { sendEmptyResponse, "commandTimesNVODservice" }, { commandGetIsTimeSet, "commandGetIsTimeSet" }, { commandserviceChanged, "commandserviceChanged" }, - { sendEmptyResponse, "commandLinkageDescriptorsUniqueKey" }, { commandRegisterEventClient, "commandRegisterEventClient" }, { commandUnRegisterEventClient, "commandUnRegisterEventClient" }, - { sendEmptyResponse, "commandSetPrivatePid" }, { commandFreeMemory, "commandFreeMemory" }, { commandReadSIfromXML, "commandReadSIfromXML" }, { commandWriteSI2XML, "commandWriteSI2XML" }, From 338fd16ec764707563d7da765423c2379fe503ef Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Thu, 30 Aug 2012 17:57:23 +0400 Subject: [PATCH 239/317] driver/record.cpp: remove not needed struct init --- src/driver/record.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/driver/record.cpp b/src/driver/record.cpp index f10f922d3..b11a6fbb1 100644 --- a/src/driver/record.cpp +++ b/src/driver/record.cpp @@ -397,8 +397,6 @@ record_error_msg_t CRecordInstance::Record() { int pre=0, post=0; CEPGData epgData; - epgData.epg_times.startzeit = 0; - epgData.epg_times.dauer = 0; if (CEitManager::getInstance()->getActualEPGServiceKey(channel_id, &epgData )) { g_Timerd->getRecordingSafety(pre, post); if (epgData.epg_times.startzeit > 0) From 25e4a396d7cb8096d81db2ca73a07fc5bfba5f7d Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Thu, 30 Aug 2012 18:11:14 +0400 Subject: [PATCH 240/317] gui/channellist.cpp: fix p_requested_channels allocate size --- src/gui/channellist.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/gui/channellist.cpp b/src/gui/channellist.cpp index 65c5286ba..078e5e467 100644 --- a/src/gui/channellist.cpp +++ b/src/gui/channellist.cpp @@ -186,17 +186,16 @@ void CChannelList::updateEvents(unsigned int from, unsigned int to) } } else { t_channel_id *p_requested_channels; - int size_requested_channels = chanlist_size * sizeof(t_channel_id); - p_requested_channels = new t_channel_id[size_requested_channels]; + p_requested_channels = new t_channel_id[chanlist_size]; if (! p_requested_channels) { fprintf(stderr,"%s:%d allocation failed!\n", __FUNCTION__, __LINE__); return; } - for (uint32_t count = 0; count < chanlist_size; count++) { - p_requested_channels[count] = chanlist[count + from]->channel_id&0xFFFFFFFFFFFFULL; - } + for (uint32_t count = 0; count < chanlist_size; count++) + p_requested_channels[count] = chanlist[count + from]->channel_id; + CChannelEventList levents; - CEitManager::getInstance()->getChannelEvents(levents, (CNeutrinoApp::getInstance()->getMode()) != NeutrinoMessages::mode_radio, p_requested_channels, size_requested_channels); + CEitManager::getInstance()->getChannelEvents(levents, p_requested_channels, chanlist_size); for (uint32_t count=0; count < chanlist_size; count++) { chanlist[count]->currentEvent = CChannelEvent(); for (CChannelEventList::iterator e = levents.begin(); e != levents.end(); ++e) { From 95b6e1234691261a7c3669df42328eb2dee463ee Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Thu, 30 Aug 2012 18:12:07 +0400 Subject: [PATCH 241/317] eitd/sectionsd.cpp: remove unused getChannelEvents() arg --- src/eitd/sectionsd.cpp | 5 +---- src/eitd/sectionsd.h | 2 +- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/src/eitd/sectionsd.cpp b/src/eitd/sectionsd.cpp index 5305359f4..cedda59ee 100644 --- a/src/eitd/sectionsd.cpp +++ b/src/eitd/sectionsd.cpp @@ -2563,16 +2563,13 @@ bool channel_in_requested_list(t_channel_id * clist, t_channel_id chid, int len) } /* was static void sendEventList(int connfd, const unsigned char serviceTyp1, const unsigned char serviceTyp2 = 0, int sendServiceName = 1, t_channel_id * chidlist = NULL, int clen = 0) */ -void CEitManager::getChannelEvents(CChannelEventList &eList, const bool tv_mode, t_channel_id *chidlist, int clen) +void CEitManager::getChannelEvents(CChannelEventList &eList, t_channel_id *chidlist, int clen) { - clen = clen / sizeof(t_channel_id); - t_channel_id uniqueNow = 0; t_channel_id uniqueOld = 0; bool found_already = true; time_t azeit = time(NULL); - if(tv_mode) {} showProfiling("sectionsd_getChannelEvents start"); readLockEvents(); diff --git a/src/eitd/sectionsd.h b/src/eitd/sectionsd.h index 45db009f4..2181502f6 100644 --- a/src/eitd/sectionsd.h +++ b/src/eitd/sectionsd.h @@ -60,7 +60,7 @@ class CEitManager : public OpenThreads::Thread, public OpenThreads::Mutex bool getEPGidShort(event_id_t epgID, CShortEPGData * epgdata); bool getEPGid(const event_id_t epgID, const time_t startzeit, CEPGData * epgdata); bool getActualEPGServiceKey(const t_channel_id uniqueServiceKey, CEPGData * epgdata); - void getChannelEvents(CChannelEventList &eList, const bool tv_mode = true, t_channel_id *chidlist = NULL, int clen = 0); + void getChannelEvents(CChannelEventList &eList, t_channel_id *chidlist = NULL, int clen = 0); bool getComponentTagsUniqueKey(const event_id_t uniqueKey, CSectionsdClient::ComponentTagList& tags); bool getLinkageDescriptorsUniqueKey(const event_id_t uniqueKey, CSectionsdClient::LinkageDescriptorList& descriptors); bool getNVODTimesServiceKey(const t_channel_id uniqueServiceKey, CSectionsdClient::NVODTimesList& nvod_list); From 29ecf0d7421f5eeed7bc01942aa91e6fa4a6d5a6 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Fri, 31 Aug 2012 12:00:52 +0400 Subject: [PATCH 242/317] locals: add new locale for playback bookmark menu head --- data/locale/english.locale | 1 + src/system/locals.h | 1 + src/system/locals_intern.h | 1 + 3 files changed, 3 insertions(+) diff --git a/data/locale/english.locale b/data/locale/english.locale index d774de83a..98be2cca6 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -1159,6 +1159,7 @@ motorcontrol.store Store Motor Position (a) motorcontrol.timed_mode Timed Step Mode motorcontrol.user_menu User menu motorcontrol.west_limit Set West (soft) Limit +moviebrowser.book_add Add bookmark moviebrowser.book_clear_all Clear all moviebrowser.book_head Bookmarks moviebrowser.book_lastmoviestop Last play stop: diff --git a/src/system/locals.h b/src/system/locals.h index e8604244c..39ab0ca6d 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -1186,6 +1186,7 @@ typedef enum LOCALE_MOTORCONTROL_TIMED_MODE, LOCALE_MOTORCONTROL_USER_MENU, LOCALE_MOTORCONTROL_WEST_LIMIT, + LOCALE_MOVIEBROWSER_BOOK_ADD, LOCALE_MOVIEBROWSER_BOOK_CLEAR_ALL, LOCALE_MOVIEBROWSER_BOOK_HEAD, LOCALE_MOVIEBROWSER_BOOK_LASTMOVIESTOP, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index e7418153a..48c4d9a98 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -1186,6 +1186,7 @@ const char * locale_real_names[] = "motorcontrol.timed_mode", "motorcontrol.user_menu", "motorcontrol.west_limit", + "moviebrowser.book_add", "moviebrowser.book_clear_all", "moviebrowser.book_head", "moviebrowser.book_lastmoviestop", From dc1e60eee10325e1babc85ebb80c3ccf4dc02110 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Fri, 31 Aug 2012 12:01:46 +0400 Subject: [PATCH 243/317] gui/movieplayer.cpp: change playback bookmark menu head locale; change 'new bookmark' menu point locale --- src/gui/movieplayer.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gui/movieplayer.cpp b/src/gui/movieplayer.cpp index a542c066a..dbdb1b020 100644 --- a/src/gui/movieplayer.cpp +++ b/src/gui/movieplayer.cpp @@ -998,13 +998,13 @@ void CMoviePlayerGui::handleMovieBrowser(neutrino_msg_t msg, int position) #define BOOKMARK_START_MENU_MAX_ITEMS 6 CSelectedMenu cSelectedMenuBookStart[BOOKMARK_START_MENU_MAX_ITEMS]; - CMenuWidget bookStartMenu(LOCALE_MOVIEBROWSER_BOOK_NEW, NEUTRINO_ICON_STREAMING); + CMenuWidget bookStartMenu(LOCALE_MOVIEBROWSER_BOOK_ADD, NEUTRINO_ICON_STREAMING); bookStartMenu.addIntroItems(); #if 0 // not supported, TODO bookStartMenu.addItem(new CMenuForwarder(LOCALE_MOVIEPLAYER_HEAD, !isMovieBrowser, NULL, &cSelectedMenuBookStart[0])); bookStartMenu.addItem(GenericMenuSeparatorLine); #endif - bookStartMenu.addItem(new CMenuForwarder(LOCALE_MOVIEBROWSER_HEAD, isMovieBrowser, NULL, &cSelectedMenuBookStart[1])); + bookStartMenu.addItem(new CMenuForwarder(LOCALE_MOVIEBROWSER_BOOK_NEW, isMovieBrowser, NULL, &cSelectedMenuBookStart[1])); bookStartMenu.addItem(new CMenuForwarder(LOCALE_MOVIEBROWSER_BOOK_TYPE_FORWARD, isMovieBrowser, NULL, &cSelectedMenuBookStart[2])); bookStartMenu.addItem(new CMenuForwarder(LOCALE_MOVIEBROWSER_BOOK_TYPE_BACKWARD, isMovieBrowser, NULL, &cSelectedMenuBookStart[3])); bookStartMenu.addItem(new CMenuForwarder(LOCALE_MOVIEBROWSER_BOOK_MOVIESTART, isMovieBrowser, NULL, &cSelectedMenuBookStart[4])); From 1e1a3265e6aa5fb40f4fb460f7cab5a1a91f12c9 Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Wed, 5 Sep 2012 23:42:10 +0200 Subject: [PATCH 244/317] - tuxtxt: fix creation of /var/tuxbox/config/tuxtxt/ --- lib/libtuxtxt/tuxtxt.cpp | 9 +++++++-- lib/libtuxtxt/tuxtxt.h | 3 ++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/libtuxtxt/tuxtxt.cpp b/lib/libtuxtxt/tuxtxt.cpp index c629daa6a..2a9da1f0a 100644 --- a/lib/libtuxtxt/tuxtxt.cpp +++ b/lib/libtuxtxt/tuxtxt.cpp @@ -18,6 +18,7 @@ #include "driver/framebuffer.h" #include #include +#include /* same as in rcinput.h... */ #define KEY_TTTV KEY_FN_1 @@ -82,7 +83,7 @@ void gethotlist() hotlistchanged = 0; maxhotlist = -1; - sprintf(line, CONFIGDIR "/tuxtxt/hotlist%d.conf", tuxtxt_cache.vtxtpid); + sprintf(line, TUXTXTDIR "/hotlist%d.conf", tuxtxt_cache.vtxtpid); #if TUXTXT_DEBUG printf("TuxTxt Date: Mon, 10 Sep 2012 19:18:32 +0400 Subject: [PATCH 245/317] locals: add hint for rotor move voltage --- data/locale/english.locale | 1 + src/system/locals.h | 1 + src/system/locals_intern.h | 1 + 3 files changed, 3 insertions(+) diff --git a/data/locale/english.locale b/data/locale/english.locale index 98be2cca6..3219c99bb 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -976,6 +976,7 @@ menu.hint_scan_logical_hd If both SD and HD channel versions present\nput HD to menu.hint_scan_longitude Enter your longtitude menu.hint_scan_manual Manual transponder scan using\nselected parameters menu.hint_scan_mod Select transponder modulation +menu.hint_scan_motor_18v Use 18V when moving rotor menu.hint_scan_motor_speed Rotor moving speed in 1/10 degree\nper second menu.hint_scan_motorpos Select stored position number for\nthis satellite menu.hint_scan_nid Enter decimal network ID diff --git a/src/system/locals.h b/src/system/locals.h index 39ab0ca6d..fc39162e1 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -1003,6 +1003,7 @@ typedef enum LOCALE_MENU_HINT_SCAN_LONGITUDE, LOCALE_MENU_HINT_SCAN_MANUAL, LOCALE_MENU_HINT_SCAN_MOD, + LOCALE_MENU_HINT_SCAN_MOTOR_18V, LOCALE_MENU_HINT_SCAN_MOTOR_SPEED, LOCALE_MENU_HINT_SCAN_MOTORPOS, LOCALE_MENU_HINT_SCAN_NID, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index 48c4d9a98..eedc2a634 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -1003,6 +1003,7 @@ const char * locale_real_names[] = "menu.hint_scan_longitude", "menu.hint_scan_manual", "menu.hint_scan_mod", + "menu.hint_scan_motor_18v", "menu.hint_scan_motor_speed", "menu.hint_scan_motorpos", "menu.hint_scan_nid", From b0bc4299ba29e1569e2e26952f18dff8134fc7aa Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Mon, 10 Sep 2012 19:19:05 +0400 Subject: [PATCH 246/317] gui/scan_setup.cpp: uncomment removed by error rotor move voltage --- src/gui/scan_setup.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/gui/scan_setup.cpp b/src/gui/scan_setup.cpp index e92b3211e..b59936c4a 100644 --- a/src/gui/scan_setup.cpp +++ b/src/gui/scan_setup.cpp @@ -585,10 +585,9 @@ int CScanSetup::showFrontendSetup(int number) nc->setHint("", LOCALE_MENU_HINT_SCAN_MOTOR_SPEED); setupMenu->addItem(nc); -#if 0 mc = new CMenuOptionChooser(LOCALE_EXTRA_ZAPIT_HVOLTAGE, (int *)&fe_config.highVoltage, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_SCAN_MOTOR_18V); setupMenu->addItem(mc); -#endif mc = new CMenuOptionChooser(LOCALE_SATSETUP_USE_USALS, &all_usals, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, this); mc->setHint("", LOCALE_MENU_HINT_SCAN_USALSALL); From 52b2528da470040e498ad6489c8248aabb4829b4 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Mon, 10 Sep 2012 19:19:36 +0400 Subject: [PATCH 247/317] zapit/src/frontend.cpp: fix debug --- src/zapit/src/frontend.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/zapit/src/frontend.cpp b/src/zapit/src/frontend.cpp index f96df7683..159f1895f 100644 --- a/src/zapit/src/frontend.cpp +++ b/src/zapit/src/frontend.cpp @@ -1171,7 +1171,7 @@ int CFrontend::setParameters(TP_params *TP, bool /*nowait*/) //printf("[fe%d] tuner to frequency %d (offset %d timeout %d)\n", fenumber, feparams->dvb_feparams.frequency, freq_offset, TIMEOUT_MAX_MS); //printf("[fe%d] tune to frequency %d (tuner %d offset %d timeout %d)\n", fenumber, freq, feparams->dvb_feparams.frequency, freq_offset, TIMEOUT_MAX_MS); printf("[fe%d] tune to %d %s %s %s %s srate %d (tuner %d offset %d timeout %d)\n", fenumber, freq, s, m, f, - TP->polarization ? "V/R" : "H/L", feparams->dvb_feparams.u.qpsk.symbol_rate, feparams->dvb_feparams.frequency, freq_offset, TIMEOUT_MAX_MS); + TP->polarization & 1 ? "V/R" : "H/L", feparams->dvb_feparams.u.qpsk.symbol_rate, feparams->dvb_feparams.frequency, freq_offset, TIMEOUT_MAX_MS); setFrontend(feparams); #if 0 From a3bfab0bcd0a9326bc47e957e689df9a968bad8f Mon Sep 17 00:00:00 2001 From: satbaby Date: Tue, 11 Sep 2012 20:31:33 +0200 Subject: [PATCH 248/317] remove doubles include --- lib/libdvbsub/dvbsub.cpp | 1 - lib/libdvbsub/dvbsubtitle.cpp | 2 +- lib/libtuxtxt/tuxtxt.cpp | 2 +- lib/xmltree/xmlparse.cpp | 2 +- lib/xmltree/xmlrole.c | 2 +- lib/xmltree/xmltok.c | 16 ++++++------- src/daemonc/remotecontrol.cpp | 4 ++-- src/driver/audioplay.cpp | 2 +- src/driver/netfile.cpp | 2 +- src/driver/pictureviewer/fb_display.cpp | 2 +- src/driver/pictureviewer/pictureviewer.cpp | 1 - src/driver/pictureviewer/pictureviewer.h | 2 +- src/driver/screen_max.cpp | 4 ++-- src/gui/audio_select.cpp | 4 ++-- src/gui/audio_setup.cpp | 2 +- src/gui/audioplayer.cpp | 2 -- src/gui/audioplayer.h | 10 ++++---- src/gui/audioplayer_setup.cpp | 6 ++--- src/gui/bedit/bouqueteditor_bouquets.cpp | 6 ++--- src/gui/bedit/bouqueteditor_channels.cpp | 4 ---- src/gui/bedit/bouqueteditor_chanselect.cpp | 3 +-- src/gui/bookmarkmanager.cpp | 1 - src/gui/bouquetlist.cpp | 1 - src/gui/cam_menu.cpp | 19 +++++++-------- src/gui/cec_setup.cpp | 2 +- src/gui/channellist.cpp | 4 +--- src/gui/epgplus.h | 1 - src/gui/eventlist.cpp | 2 +- src/gui/hdd_menu.cpp | 16 ++++++------- src/gui/info_menue.cpp | 6 ++--- src/gui/infoclock.h | 2 +- src/gui/infoviewer.cpp | 4 ++-- src/gui/infoviewer_bb.cpp | 4 ++-- src/gui/infoviewer_bb.h | 1 - src/gui/keybind_setup.cpp | 4 ++-- src/gui/mediaplayer.cpp | 8 +++---- src/gui/mediaplayer.h | 4 ++-- src/gui/mediaplayer_setup.cpp | 8 +++---- src/gui/miscsettings_menu.cpp | 14 +++++------ src/gui/miscsettings_menu.h | 1 - src/gui/motorcontrol.cpp | 2 +- src/gui/moviebrowser.cpp | 16 ++++++------- src/gui/moviebrowser.h | 12 +++++----- src/gui/movieplayer.cpp | 5 +--- src/gui/movieplayer.h | 12 +++++----- src/gui/network_service.cpp | 4 ++-- src/gui/network_setup.cpp | 6 ++--- src/gui/parentallock_setup.cpp | 2 +- src/gui/personalize.h | 4 ++-- src/gui/pictureviewer.h | 8 +++---- src/gui/pictureviewer_setup.cpp | 6 ++--- src/gui/proxyserver_setup.cpp | 2 +- src/gui/record_setup.cpp | 4 ++-- src/gui/scan.cpp | 2 +- src/gui/scan_setup.cpp | 13 +++++----- src/gui/screensetup.cpp | 2 +- src/gui/settings_manager.cpp | 10 ++++---- src/gui/subchannel_select.cpp | 2 +- src/gui/test_menu.cpp | 8 +++---- src/gui/timeosd.cpp | 3 +-- src/gui/timerlist.cpp | 1 - src/gui/update_menue.h | 2 +- src/gui/update_settings.cpp | 2 +- src/gui/update_settings.h | 2 +- src/gui/upnpbrowser.h | 10 ++++---- src/gui/user_menue.cpp | 28 +++++++++++----------- src/gui/user_menue_setup.cpp | 2 +- src/gui/vfd_setup.cpp | 2 +- src/gui/videosettings.cpp | 4 ++-- src/gui/widget/colorchooser.cpp | 2 +- src/gui/widget/listframe.cpp | 2 +- src/gui/widget/menue.cpp | 1 - src/gui/widget/msgbox.h | 1 - src/gui/widget/stringinput.h | 1 - src/gui/zapit_setup.cpp | 2 +- src/neutrino.cpp | 7 ++---- src/neutrino.h | 19 +++++++-------- src/neutrino_menue.cpp | 8 +++---- src/system/configure_network.cpp | 4 ++-- src/system/setting_helpers.cpp | 4 ++-- src/zapit/src/zapit.cpp | 4 ++-- 81 files changed, 188 insertions(+), 224 deletions(-) diff --git a/lib/libdvbsub/dvbsub.cpp b/lib/libdvbsub/dvbsub.cpp index ad67f055e..21a2b1bc6 100644 --- a/lib/libdvbsub/dvbsub.cpp +++ b/lib/libdvbsub/dvbsub.cpp @@ -16,7 +16,6 @@ #include "Debug.hpp" #include "PacketQueue.hpp" -#include "semaphore.h" #include "helpers.hpp" #include "dvbsubtitle.h" diff --git a/lib/libdvbsub/dvbsubtitle.cpp b/lib/libdvbsub/dvbsubtitle.cpp index 43297eade..b88ed4d6d 100644 --- a/lib/libdvbsub/dvbsubtitle.cpp +++ b/lib/libdvbsub/dvbsubtitle.cpp @@ -22,7 +22,7 @@ extern "C" { #include #include } -#include "driver/framebuffer.h" +#include #include "Debug.hpp" // Set these to 'true' for debug output: diff --git a/lib/libtuxtxt/tuxtxt.cpp b/lib/libtuxtxt/tuxtxt.cpp index 2a9da1f0a..9ef4c5c67 100644 --- a/lib/libtuxtxt/tuxtxt.cpp +++ b/lib/libtuxtxt/tuxtxt.cpp @@ -15,7 +15,7 @@ #include "teletext.h" #include "tuxtxt.h" -#include "driver/framebuffer.h" +#include #include #include #include diff --git a/lib/xmltree/xmlparse.cpp b/lib/xmltree/xmlparse.cpp index d0a531824..f2c2c5fd2 100644 --- a/lib/xmltree/xmlparse.cpp +++ b/lib/xmltree/xmlparse.cpp @@ -43,7 +43,7 @@ ChangeLog: #include #include -#include "xmldef.h" +#include "xmltok/xmldef.h" #ifdef XML_UNICODE #define XML_ENCODE_MAX XML_UTF16_ENCODE_MAX diff --git a/lib/xmltree/xmlrole.c b/lib/xmltree/xmlrole.c index 27d5c41ce..23b3a62c4 100644 --- a/lib/xmltree/xmlrole.c +++ b/lib/xmltree/xmlrole.c @@ -18,7 +18,7 @@ James Clark. All Rights Reserved. Contributor(s): */ -#include "xmldef.h" +#include "xmltok/xmldef.h" #include "xmlrole.h" /* Doesn't check: diff --git a/lib/xmltree/xmltok.c b/lib/xmltree/xmltok.c index 4634a0356..989ea638b 100644 --- a/lib/xmltree/xmltok.c +++ b/lib/xmltree/xmltok.c @@ -18,9 +18,9 @@ James Clark. All Rights Reserved. Contributor(s): */ -#include "xmldef.h" +#include "xmltok/xmldef.h" #include "xmltok.h" -#include "nametab.h" +#include "xmltok/nametab.h" #define VTABLE1 \ { PREFIX(prologTok), PREFIX(contentTok), PREFIX(cdataSectionTok) }, \ @@ -265,7 +265,7 @@ static const struct normal_encoding utf8_encoding = { { VTABLE1, utf8_toUtf8, utf8_toUtf16, 1, 1, 0 }, { #include "asciitab.h" -#include "utf8tab.h" +#include "xmltok/utf8tab.h" }, NORMAL_VTABLE(utf8_) }; @@ -274,7 +274,7 @@ static const struct normal_encoding internal_utf8_encoding = { { VTABLE1, utf8_toUtf8, utf8_toUtf16, 1, 1, 0 }, { #include "iasctab.h" -#include "utf8tab.h" +#include "xmltok/utf8tab.h" }, NORMAL_VTABLE(utf8_) }; @@ -319,7 +319,7 @@ static const struct normal_encoding latin1_encoding = { { VTABLE1, latin1_toUtf8, latin1_toUtf16, 1, 0, 0 }, { #include "asciitab.h" -#include "latin1tab.h" +#include "xmltok/latin1tab.h" }, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; @@ -490,7 +490,7 @@ static const struct normal_encoding little2_encoding = { }, { #include "asciitab.h" -#include "latin1tab.h" +#include "xmltok/latin1tab.h" }, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; @@ -501,7 +501,7 @@ static const struct normal_encoding internal_little2_encoding = { { VTABLE, 2, 0, 1 }, { #include "iasctab.h" -#include "latin1tab.h" +#include "xmltok/latin1tab.h" }, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; @@ -559,7 +559,7 @@ static const struct normal_encoding big2_encoding = { }, { #include "asciitab.h" -#include "latin1tab.h" +#include "xmltok/latin1tab.h" }, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; diff --git a/src/daemonc/remotecontrol.cpp b/src/daemonc/remotecontrol.cpp index d6659148d..24846d294 100644 --- a/src/daemonc/remotecontrol.cpp +++ b/src/daemonc/remotecontrol.cpp @@ -41,8 +41,8 @@ #include #include -#include "libdvbsub/dvbsub.h" -#include "libtuxtxt/teletext.h" +#include +#include #include #include diff --git a/src/driver/audioplay.cpp b/src/driver/audioplay.cpp index 3358043df..3ea3fd4d4 100644 --- a/src/driver/audioplay.cpp +++ b/src/driver/audioplay.cpp @@ -34,7 +34,7 @@ #ifdef HAVE_CONFIG_H #include #endif -#include "global.h" +#include #include #include #include diff --git a/src/driver/netfile.cpp b/src/driver/netfile.cpp index 2b6303cb2..8b0a85890 100644 --- a/src/driver/netfile.cpp +++ b/src/driver/netfile.cpp @@ -101,7 +101,7 @@ #endif #include "netfile.h" -#include "global.h" +#include #include #include #include diff --git a/src/driver/pictureviewer/fb_display.cpp b/src/driver/pictureviewer/fb_display.cpp index 469b07815..95b2a9b0e 100644 --- a/src/driver/pictureviewer/fb_display.cpp +++ b/src/driver/pictureviewer/fb_display.cpp @@ -18,7 +18,7 @@ #include #include "fb_display.h" #include "pictureviewer.h" -#include "driver/framebuffer.h" +#include static unsigned char *lfb = 0; diff --git a/src/driver/pictureviewer/pictureviewer.cpp b/src/driver/pictureviewer/pictureviewer.cpp index 39ca3203d..3cef358f1 100644 --- a/src/driver/pictureviewer/pictureviewer.cpp +++ b/src/driver/pictureviewer/pictureviewer.cpp @@ -3,7 +3,6 @@ #include #include "pictureviewer.h" #include "pv_config.h" -#include "driver/framebuffer.h" #include #include diff --git a/src/driver/pictureviewer/pictureviewer.h b/src/driver/pictureviewer/pictureviewer.h index 094a11217..011fa8bee 100644 --- a/src/driver/pictureviewer/pictureviewer.h +++ b/src/driver/pictureviewer/pictureviewer.h @@ -30,7 +30,7 @@ #include #include /* printf */ #include /* gettimeofday */ -#include "driver/framebuffer.h" +#include class CPictureViewer { struct cformathandler diff --git a/src/driver/screen_max.cpp b/src/driver/screen_max.cpp index 404fbb50a..601d46206 100644 --- a/src/driver/screen_max.cpp +++ b/src/driver/screen_max.cpp @@ -12,8 +12,8 @@ -#include "global.h" -#include "driver/screen_max.h" +#include +#include // -- this is a simple odd class provided for 'static' usage diff --git a/src/gui/audio_select.cpp b/src/gui/audio_select.cpp index ab66db7b6..cabf99de6 100644 --- a/src/gui/audio_select.cpp +++ b/src/gui/audio_select.cpp @@ -47,8 +47,8 @@ extern CRemoteControl * g_RemoteControl; /* neutrino.cpp */ extern CAudioSetupNotifier * audioSetupNotifier; #include -#include "libdvbsub/dvbsub.h" -#include "libtuxtxt/teletext.h" +#include +#include // // -- AUDIO Selector Menue Handler Class diff --git a/src/gui/audio_setup.cpp b/src/gui/audio_setup.cpp index 4cf8ee6a5..ec407188b 100644 --- a/src/gui/audio_setup.cpp +++ b/src/gui/audio_setup.cpp @@ -33,7 +33,7 @@ #endif -#include "gui/audio_setup.h" +#include "audio_setup.h" #include #include diff --git a/src/gui/audioplayer.cpp b/src/gui/audioplayer.cpp index 60359eb71..4de5e4b28 100644 --- a/src/gui/audioplayer.cpp +++ b/src/gui/audioplayer.cpp @@ -60,14 +60,12 @@ #include #include -#include #include #include #include #include #include -#include #include #include diff --git a/src/gui/audioplayer.h b/src/gui/audioplayer.h index 07a6c6fc5..92ff2a2bb 100644 --- a/src/gui/audioplayer.h +++ b/src/gui/audioplayer.h @@ -34,11 +34,11 @@ #define __audioplayergui__ -#include "driver/framebuffer.h" -#include "driver/audiofile.h" -#include "gui/filebrowser.h" -#include "gui/widget/components.h" -#include "gui/widget/menue.h" +#include +#include +#include +#include +#include #include diff --git a/src/gui/audioplayer_setup.cpp b/src/gui/audioplayer_setup.cpp index 4dea21a80..5ebee8d9a 100644 --- a/src/gui/audioplayer_setup.cpp +++ b/src/gui/audioplayer_setup.cpp @@ -34,7 +34,7 @@ #endif -#include "gui/audioplayer_setup.h" +#include "audioplayer_setup.h" #include #include @@ -44,8 +44,8 @@ #include #include -#include "gui/audioplayer.h" -#include "gui/filebrowser.h" +#include +#include #include diff --git a/src/gui/bedit/bouqueteditor_bouquets.cpp b/src/gui/bedit/bouqueteditor_bouquets.cpp index 6cfb749f6..157723695 100644 --- a/src/gui/bedit/bouqueteditor_bouquets.cpp +++ b/src/gui/bedit/bouqueteditor_bouquets.cpp @@ -35,19 +35,17 @@ #include #include +#include "bouqueteditor_channels.h" +#include "bouqueteditor_bouquets.h" #include #include #include #include -#include #include #include -#include #include -#include "bouqueteditor_channels.h" -#include "bouqueteditor_bouquets.h" extern CBouquetManager *g_bouquetManager; CBEBouquetWidget::CBEBouquetWidget() diff --git a/src/gui/bedit/bouqueteditor_channels.cpp b/src/gui/bedit/bouqueteditor_channels.cpp index 00fa4d5e0..86cf9a28d 100644 --- a/src/gui/bedit/bouqueteditor_channels.cpp +++ b/src/gui/bedit/bouqueteditor_channels.cpp @@ -35,10 +35,7 @@ #include #endif -#include -#include #include - #include "bouqueteditor_channels.h" #include @@ -53,7 +50,6 @@ #include #include -#include extern CBouquetManager *g_bouquetManager; CBEChannelWidget::CBEChannelWidget(const std::string & Caption, unsigned int Bouquet) diff --git a/src/gui/bedit/bouqueteditor_chanselect.cpp b/src/gui/bedit/bouqueteditor_chanselect.cpp index e2f787e44..9eadfe56c 100644 --- a/src/gui/bedit/bouqueteditor_chanselect.cpp +++ b/src/gui/bedit/bouqueteditor_chanselect.cpp @@ -35,17 +35,16 @@ #include #include +#include "bouqueteditor_chanselect.h" #include #include #include #include -#include #include #include -#include "bouqueteditor_chanselect.h" extern CBouquetManager *g_bouquetManager; diff --git a/src/gui/bookmarkmanager.cpp b/src/gui/bookmarkmanager.cpp index d7f81a167..4da3d7427 100644 --- a/src/gui/bookmarkmanager.cpp +++ b/src/gui/bookmarkmanager.cpp @@ -43,7 +43,6 @@ #include #include -#include #include #include #include diff --git a/src/gui/bouquetlist.cpp b/src/gui/bouquetlist.cpp index c433ffad4..3aca47ae6 100644 --- a/src/gui/bouquetlist.cpp +++ b/src/gui/bouquetlist.cpp @@ -33,7 +33,6 @@ #include #endif -#include #include #include diff --git a/src/gui/cam_menu.cpp b/src/gui/cam_menu.cpp index ae836ced5..6da597a76 100644 --- a/src/gui/cam_menu.cpp +++ b/src/gui/cam_menu.cpp @@ -22,6 +22,7 @@ #ifdef HAVE_CONFIG_H #include #endif +#include "cam_menu.h" #include #include @@ -31,25 +32,21 @@ #include #include #include -#include #include #include #include #include #include -#include -#include "gui/widget/menue.h" -#include "gui/widget/stringinput.h" -#include "gui/widget/messagebox.h" -#include "gui/widget/hintbox.h" -#include "gui/widget/progresswindow.h" +#include "widget/icons.h" +#include "widget/stringinput.h" +#include "widget/messagebox.h" +#include "widget/progresswindow.h" -#include "system/setting_helpers.h" -#include "system/settings.h" -#include "system/debug.h" +#include +#include +#include -#include #include #include diff --git a/src/gui/cec_setup.cpp b/src/gui/cec_setup.cpp index 605fa262b..edc861b6b 100644 --- a/src/gui/cec_setup.cpp +++ b/src/gui/cec_setup.cpp @@ -31,7 +31,7 @@ #endif -#include "gui/cec_setup.h" +#include "cec_setup.h" #include #include diff --git a/src/gui/channellist.cpp b/src/gui/channellist.cpp index 7a4d42231..0f4752998 100644 --- a/src/gui/channellist.cpp +++ b/src/gui/channellist.cpp @@ -50,16 +50,14 @@ #include #include #include +#include #include #include -#include #include #include #include -#include #include -#include #include #include diff --git a/src/gui/epgplus.h b/src/gui/epgplus.h index 45adfb0ae..b03aed939 100644 --- a/src/gui/epgplus.h +++ b/src/gui/epgplus.h @@ -35,7 +35,6 @@ #include #include -#include #include #include "color.h" diff --git a/src/gui/eventlist.cpp b/src/gui/eventlist.cpp index 496f545cf..5780eaef8 100644 --- a/src/gui/eventlist.cpp +++ b/src/gui/eventlist.cpp @@ -48,7 +48,7 @@ #include "widget/hintbox.h" #include "widget/buttons.h" -#include "gui/bouquetlist.h" +#include "bouquetlist.h" #include #include diff --git a/src/gui/hdd_menu.cpp b/src/gui/hdd_menu.cpp index 178c56192..5bec11a8f 100644 --- a/src/gui/hdd_menu.cpp +++ b/src/gui/hdd_menu.cpp @@ -48,18 +48,18 @@ #include #include #include +#include "hdd_menu.h" #include -#include "gui/widget/stringinput.h" -#include "gui/widget/messagebox.h" -#include "gui/widget/hintbox.h" -#include "gui/widget/progresswindow.h" +#include +#include +#include +#include -#include "system/setting_helpers.h" -#include "system/settings.h" -#include "system/debug.h" +#include +#include +#include -#include #include #include diff --git a/src/gui/info_menue.cpp b/src/gui/info_menue.cpp index ea5ffd0c7..bb8470a48 100644 --- a/src/gui/info_menue.cpp +++ b/src/gui/info_menue.cpp @@ -34,9 +34,9 @@ #include #include -#include "gui/info_menue.h" -#include "gui/imageinfo.h" -#include "gui/dboxinfo.h" +#include +#include +#include #include #include diff --git a/src/gui/infoclock.h b/src/gui/infoclock.h index a03abf2a6..73b4ebb93 100644 --- a/src/gui/infoclock.h +++ b/src/gui/infoclock.h @@ -6,7 +6,7 @@ #include #include -#include "gui/color.h" +#include #include diff --git a/src/gui/infoviewer.cpp b/src/gui/infoviewer.cpp index 595044fc6..8320e457e 100644 --- a/src/gui/infoviewer.cpp +++ b/src/gui/infoviewer.cpp @@ -32,7 +32,8 @@ #ifdef HAVE_CONFIG_H #include #endif -#include +#include "infoviewer.h" + #include #include @@ -48,7 +49,6 @@ #include #include -#include #include #include #include diff --git a/src/gui/infoviewer_bb.cpp b/src/gui/infoviewer_bb.cpp index 1d0f8a193..e070b7e71 100644 --- a/src/gui/infoviewer_bb.cpp +++ b/src/gui/infoviewer_bb.cpp @@ -32,7 +32,8 @@ #ifdef HAVE_CONFIG_H #include #endif -#include +#include "infoviewer_bb.h" + #include #include @@ -49,7 +50,6 @@ #include #include -#include #include #include #include diff --git a/src/gui/infoviewer_bb.h b/src/gui/infoviewer_bb.h index b41c0afcd..349be1a7a 100644 --- a/src/gui/infoviewer_bb.h +++ b/src/gui/infoviewer_bb.h @@ -42,7 +42,6 @@ #include #include "widget/menue.h" #include -#include #include class CInfoViewerBB diff --git a/src/gui/keybind_setup.cpp b/src/gui/keybind_setup.cpp index ae783f70e..608046f6c 100644 --- a/src/gui/keybind_setup.cpp +++ b/src/gui/keybind_setup.cpp @@ -47,7 +47,7 @@ #endif #endif -#include "gui/keybind_setup.h" +#include "keybind_setup.h" #include #include @@ -58,7 +58,7 @@ #include #include -#include "gui/filebrowser.h" +#include #include #include diff --git a/src/gui/mediaplayer.cpp b/src/gui/mediaplayer.cpp index dd4422e0e..30172d0f5 100644 --- a/src/gui/mediaplayer.cpp +++ b/src/gui/mediaplayer.cpp @@ -31,17 +31,17 @@ #endif -#include "gui/mediaplayer.h" +#include "mediaplayer.h" #include #include #include #include -#include "gui/movieplayer.h" -#include "gui/pictureviewer.h" +#include +#include #if ENABLE_UPNP -#include "gui/upnpbrowser.h" +#include #endif #include diff --git a/src/gui/mediaplayer.h b/src/gui/mediaplayer.h index d2cfe042e..a52199d8b 100644 --- a/src/gui/mediaplayer.h +++ b/src/gui/mediaplayer.h @@ -30,8 +30,8 @@ #define __MEDIAPLAYER__ #include -#include "gui/audioplayer.h" -#include "gui/personalize.h" +#include +#include #include diff --git a/src/gui/mediaplayer_setup.cpp b/src/gui/mediaplayer_setup.cpp index fe48d6646..f10df62d7 100644 --- a/src/gui/mediaplayer_setup.cpp +++ b/src/gui/mediaplayer_setup.cpp @@ -35,17 +35,17 @@ #endif -#include "gui/mediaplayer_setup.h" +#include "mediaplayer_setup.h" #include #include #include -#include "gui/widget/stringinput.h" +#include -#include "gui/audioplayer_setup.h" -#include "gui/pictureviewer_setup.h" +#include +#include #include diff --git a/src/gui/miscsettings_menu.cpp b/src/gui/miscsettings_menu.cpp index 01ec9cfb6..bc05e028c 100644 --- a/src/gui/miscsettings_menu.cpp +++ b/src/gui/miscsettings_menu.cpp @@ -35,13 +35,13 @@ #include #include -#include "gui/miscsettings_menu.h" -#include "gui/cec_setup.h" -#include "gui/filebrowser.h" -#include "gui/keybind_setup.h" -#include "gui/plugins.h" -#include "gui/sleeptimer.h" -#include "gui/zapit_setup.h" +#include +#include +#include +#include +#include +#include +#include #include #include diff --git a/src/gui/miscsettings_menu.h b/src/gui/miscsettings_menu.h index 888d91915..84e4e72b5 100644 --- a/src/gui/miscsettings_menu.h +++ b/src/gui/miscsettings_menu.h @@ -32,7 +32,6 @@ #include #include -#include "gui/widget/menue.h" //#define CPU_FREQ diff --git a/src/gui/motorcontrol.cpp b/src/gui/motorcontrol.cpp index 6c42ab6d4..8b43f99f5 100644 --- a/src/gui/motorcontrol.cpp +++ b/src/gui/motorcontrol.cpp @@ -36,7 +36,7 @@ #include #include #include -#include "gui/scan_setup.h" +#include #include #include #include diff --git a/src/gui/moviebrowser.cpp b/src/gui/moviebrowser.cpp index 243a870e2..199f3a485 100644 --- a/src/gui/moviebrowser.cpp +++ b/src/gui/moviebrowser.cpp @@ -53,23 +53,23 @@ #include #include "moviebrowser.h" #include "filebrowser.h" -#include "widget/hintbox.h" -#include "widget/helpbox.h" -#include "widget/messagebox.h" -#include "widget/stringinput_ext.h" +#include +#include +#include +#include +#include +#include +#include #include #include #include -#include "neutrino.h" +#include #include // for statfs #include #include #include -#include -#include #include #include -#include #include extern CPictureViewer * g_PicViewer; diff --git a/src/gui/moviebrowser.h b/src/gui/moviebrowser.h index 1f1bcf637..a18f19fe3 100644 --- a/src/gui/moviebrowser.h +++ b/src/gui/moviebrowser.h @@ -73,13 +73,13 @@ #include #include -#include "gui/widget/listframe.h" -#include "gui/widget/menue.h" -#include "gui/widget/textbox.h" -#include "gui/movieinfo.h" -#include "driver/file.h" +#include +#include +#include +#include +#include #include -#include "driver/pictureviewer/pictureviewer.h" +#include #define MAX_NUMBER_OF_BOOKMARK_ITEMS MI_MOVIE_BOOK_USER_MAX // we just use the same size as used in Movie info (MAX_NUMBER_OF_BOOKMARK_ITEMS is used for the number of menu items) #define MOVIEBROWSER_SETTINGS_FILE CONFIGDIR "/moviebrowser.conf" diff --git a/src/gui/movieplayer.cpp b/src/gui/movieplayer.cpp index a542c066a..ca6be2dbc 100644 --- a/src/gui/movieplayer.cpp +++ b/src/gui/movieplayer.cpp @@ -32,9 +32,7 @@ #include #include -#include #include -#include #include #include #include @@ -42,12 +40,11 @@ #include #include -#include #include #include #include -#include "libtuxtxt/teletext.h" +#include #include #include #include diff --git a/src/gui/movieplayer.h b/src/gui/movieplayer.h index 2afd1a8b6..1ede8b215 100644 --- a/src/gui/movieplayer.h +++ b/src/gui/movieplayer.h @@ -34,12 +34,12 @@ #include #include -#include "driver/framebuffer.h" -#include "gui/filebrowser.h" -#include "gui/bookmarkmanager.h" -#include "gui/widget/menue.h" -#include "gui/moviebrowser.h" -#include "gui/movieinfo.h" +#include +#include +#include +#include +#include +#include #include #include #include diff --git a/src/gui/network_service.cpp b/src/gui/network_service.cpp index 6585c919c..450c49953 100644 --- a/src/gui/network_service.cpp +++ b/src/gui/network_service.cpp @@ -28,8 +28,8 @@ #include #include -#include "gui/network_service.h" -#include "mymenu.h" +#include "network_service.h" +#include #include diff --git a/src/gui/network_setup.cpp b/src/gui/network_setup.cpp index 97e5c879b..f3f6083e2 100644 --- a/src/gui/network_setup.cpp +++ b/src/gui/network_setup.cpp @@ -34,9 +34,9 @@ #include -#include "gui/network_setup.h" -#include "gui/proxyserver_setup.h" -#include "gui/nfs.h" +#include "network_setup.h" +#include +#include #include #include diff --git a/src/gui/parentallock_setup.cpp b/src/gui/parentallock_setup.cpp index 8a7d867a1..364dd9423 100644 --- a/src/gui/parentallock_setup.cpp +++ b/src/gui/parentallock_setup.cpp @@ -34,7 +34,7 @@ #endif -#include "gui/parentallock_setup.h" +#include "parentallock_setup.h" #include #include diff --git a/src/gui/personalize.h b/src/gui/personalize.h index 3c9c8a242..c9c7b4c2e 100644 --- a/src/gui/personalize.h +++ b/src/gui/personalize.h @@ -52,8 +52,8 @@ #define __personalize__ #include -#include "gui/plugins.h" -#include "gui/user_menue_setup.h" +#include +#include #include "widget/stringinput.h" #include "widget/stringinput_ext.h" #include diff --git a/src/gui/pictureviewer.h b/src/gui/pictureviewer.h index dda45557e..2a72c7728 100644 --- a/src/gui/pictureviewer.h +++ b/src/gui/pictureviewer.h @@ -33,10 +33,10 @@ #define __pictureviewergui__ -#include "driver/framebuffer.h" -#include "driver/pictureviewer/pictureviewer.h" -#include "gui/widget/menue.h" -#include "gui/filebrowser.h" +#include +#include +#include +#include #include diff --git a/src/gui/pictureviewer_setup.cpp b/src/gui/pictureviewer_setup.cpp index 601638c6b..6dd9be459 100644 --- a/src/gui/pictureviewer_setup.cpp +++ b/src/gui/pictureviewer_setup.cpp @@ -33,7 +33,7 @@ #include #endif -#include "gui/pictureviewer_setup.h" +#include "pictureviewer_setup.h" #include #include @@ -43,8 +43,8 @@ #include #include -#include "gui/pictureviewer.h" -#include "gui/filebrowser.h" +#include +#include #include diff --git a/src/gui/proxyserver_setup.cpp b/src/gui/proxyserver_setup.cpp index 38c8990b3..b4600e7f0 100644 --- a/src/gui/proxyserver_setup.cpp +++ b/src/gui/proxyserver_setup.cpp @@ -32,7 +32,7 @@ #include #endif -#include "gui/proxyserver_setup.h" +#include "proxyserver_setup.h" #include #include diff --git a/src/gui/record_setup.cpp b/src/gui/record_setup.cpp index f9ba63afb..67cafe8d9 100644 --- a/src/gui/record_setup.cpp +++ b/src/gui/record_setup.cpp @@ -39,8 +39,8 @@ #include #include -#include "gui/record_setup.h" -#include "gui/filebrowser.h" +#include "record_setup.h" +#include #include #include diff --git a/src/gui/scan.cpp b/src/gui/scan.cpp index 75324cfd1..670afe1f4 100644 --- a/src/gui/scan.cpp +++ b/src/gui/scan.cpp @@ -38,7 +38,7 @@ #include #include -#include "gui/scan_setup.h" +#include #include #include diff --git a/src/gui/scan_setup.cpp b/src/gui/scan_setup.cpp index e92b3211e..73f1f5735 100644 --- a/src/gui/scan_setup.cpp +++ b/src/gui/scan_setup.cpp @@ -38,13 +38,13 @@ #include #include -#include "gui/scan.h" -#include "gui/scan_setup.h" -#include "gui/motorcontrol.h" -#include "gui/bedit/bouqueteditor_bouquets.h" +#include +#include +#include +#include -#include "gui/widget/hintbox.h" -#include "gui/widget/stringinput.h" +#include +#include #include #include @@ -53,7 +53,6 @@ #include #include -#include #include #include #include diff --git a/src/gui/screensetup.cpp b/src/gui/screensetup.cpp index c004b564d..fd51c7def 100644 --- a/src/gui/screensetup.cpp +++ b/src/gui/screensetup.cpp @@ -37,7 +37,7 @@ #include #include -#include "gui/widget/icons.h" +#include #include #include diff --git a/src/gui/settings_manager.cpp b/src/gui/settings_manager.cpp index e1ac9e752..724fac6d7 100644 --- a/src/gui/settings_manager.cpp +++ b/src/gui/settings_manager.cpp @@ -34,12 +34,10 @@ #include #include -#include "gui/settings_manager.h" - -#include "gui/filebrowser.h" - -#include "gui/widget/messagebox.h" -#include "gui/widget/stringinput.h" +#include +#include +#include +#include #include #include diff --git a/src/gui/subchannel_select.cpp b/src/gui/subchannel_select.cpp index c059e8344..86b0a6a1c 100644 --- a/src/gui/subchannel_select.cpp +++ b/src/gui/subchannel_select.cpp @@ -38,7 +38,7 @@ #include #include -#include "gui/subchannel_select.h" +#include "subchannel_select.h" #include extern CRemoteControl * g_RemoteControl; diff --git a/src/gui/test_menu.cpp b/src/gui/test_menu.cpp index b46f22dd8..bb6e3aae7 100644 --- a/src/gui/test_menu.cpp +++ b/src/gui/test_menu.cpp @@ -30,7 +30,7 @@ #include #endif -#include "gui/test_menu.h" +#include "test_menu.h" #include #include @@ -45,9 +45,9 @@ #include #include -#include "gui/widget/hintbox.h" -#include "gui/scan.h" -#include "gui/scan_setup.h" +#include +#include +#include #include #include #include diff --git a/src/gui/timeosd.cpp b/src/gui/timeosd.cpp index 3e3345bbb..0d80900c2 100644 --- a/src/gui/timeosd.cpp +++ b/src/gui/timeosd.cpp @@ -29,8 +29,7 @@ #include #include #include -#include -#include "gui/infoclock.h" +#include //static CProgressBar *timescale = 0; diff --git a/src/gui/timerlist.cpp b/src/gui/timerlist.cpp index 45803538a..6bb48b4d3 100644 --- a/src/gui/timerlist.cpp +++ b/src/gui/timerlist.cpp @@ -55,7 +55,6 @@ #include #include #include -#include #include #include #include diff --git a/src/gui/update_menue.h b/src/gui/update_menue.h index 683bdae0e..8948a49f6 100644 --- a/src/gui/update_menue.h +++ b/src/gui/update_menue.h @@ -33,7 +33,7 @@ #define __software_update__ #include -#include "gui/update.h" +#include #include class CSoftwareUpdate : public CMenuTarget diff --git a/src/gui/update_settings.cpp b/src/gui/update_settings.cpp index c6a432bd7..07de21474 100644 --- a/src/gui/update_settings.cpp +++ b/src/gui/update_settings.cpp @@ -37,7 +37,7 @@ #include #include #include "update_settings.h" -#include "gui/filebrowser.h" +#include "filebrowser.h" #include #include #include diff --git a/src/gui/update_settings.h b/src/gui/update_settings.h index 1c9b44198..c58676774 100644 --- a/src/gui/update_settings.h +++ b/src/gui/update_settings.h @@ -34,7 +34,7 @@ #include -#include "gui/update.h" +#include "update.h" // #define USE_SMS_INPUT diff --git a/src/gui/upnpbrowser.h b/src/gui/upnpbrowser.h index 03b6cc7b8..c4495d5fc 100644 --- a/src/gui/upnpbrowser.h +++ b/src/gui/upnpbrowser.h @@ -32,11 +32,11 @@ #ifndef __upnpplayergui__ #define __upnpplayergui__ -#include "driver/framebuffer.h" -#include "driver/audiofile.h" -#include "driver/pictureviewer/pictureviewer.h" -#include "gui/filebrowser.h" -#include "gui/widget/menue.h" +#include +#include +#include +#include +#include #include #include diff --git a/src/gui/user_menue.cpp b/src/gui/user_menue.cpp index f36e5f40d..088da8b19 100644 --- a/src/gui/user_menue.cpp +++ b/src/gui/user_menue.cpp @@ -41,20 +41,20 @@ #include #endif -#include "gui/user_menue.h" -#include "gui/user_menue_setup.h" -#include "gui/subchannel_select.h" -#include "gui/favorites.h" -#include "gui/audio_select.h" -#include "gui/streaminfo2.h" -#include "gui/epgplus.h" -#include "gui/movieplayer.h" -#include "gui/timerlist.h" -#include "gui/plugins.h" -#include "gui/imageinfo.h" -#include "gui/dboxinfo.h" -#include "gui/cam_menu.h" -#include "gui/pluginlist.h" +#include "user_menue.h" +#include "user_menue_setup.h" +#include "subchannel_select.h" +#include "favorites.h" +#include "audio_select.h" +#include "streaminfo2.h" +#include "epgplus.h" +#include "movieplayer.h" +#include "timerlist.h" +#include "plugins.h" +#include "imageinfo.h" +#include "dboxinfo.h" +#include "cam_menu.h" +#include "pluginlist.h" #include #include diff --git a/src/gui/user_menue_setup.cpp b/src/gui/user_menue_setup.cpp index 85e510544..b1991d760 100644 --- a/src/gui/user_menue_setup.cpp +++ b/src/gui/user_menue_setup.cpp @@ -35,7 +35,7 @@ #endif -#include "gui/user_menue_setup.h" +#include "user_menue_setup.h" #include #include diff --git a/src/gui/vfd_setup.cpp b/src/gui/vfd_setup.cpp index 2373eae4d..30f62d1ab 100644 --- a/src/gui/vfd_setup.cpp +++ b/src/gui/vfd_setup.cpp @@ -34,7 +34,7 @@ #endif -#include "gui/vfd_setup.h" +#include "vfd_setup.h" #include #include diff --git a/src/gui/videosettings.cpp b/src/gui/videosettings.cpp index 51f5f9763..f59e02752 100644 --- a/src/gui/videosettings.cpp +++ b/src/gui/videosettings.cpp @@ -41,8 +41,8 @@ #include #include -#include "gui/widget/hintbox.h" -#include "gui/widget/messagebox.h" +#include +#include #include diff --git a/src/gui/widget/colorchooser.cpp b/src/gui/widget/colorchooser.cpp index 58f319069..075155a9d 100644 --- a/src/gui/widget/colorchooser.cpp +++ b/src/gui/widget/colorchooser.cpp @@ -44,7 +44,7 @@ #include #include -#include "gui/widget/icons.h" +#include #define VALUE_R 0 diff --git a/src/gui/widget/listframe.cpp b/src/gui/widget/listframe.cpp index b5c79b107..8a9678ede 100644 --- a/src/gui/widget/listframe.cpp +++ b/src/gui/widget/listframe.cpp @@ -51,7 +51,7 @@ #include -#include "stdlib.h" +#include #include "listframe.h" #include diff --git a/src/gui/widget/menue.cpp b/src/gui/widget/menue.cpp index b973b7eb0..e4c8a971b 100644 --- a/src/gui/widget/menue.cpp +++ b/src/gui/widget/menue.cpp @@ -31,7 +31,6 @@ #include #include -#include #include #include diff --git a/src/gui/widget/msgbox.h b/src/gui/widget/msgbox.h index 85905a4f0..ead68cda1 100644 --- a/src/gui/widget/msgbox.h +++ b/src/gui/widget/msgbox.h @@ -54,7 +54,6 @@ #include #include "textbox.h" -#include #include class CMsgBox diff --git a/src/gui/widget/stringinput.h b/src/gui/widget/stringinput.h index 0da2a07f2..0a5a5aea9 100644 --- a/src/gui/widget/stringinput.h +++ b/src/gui/widget/stringinput.h @@ -37,7 +37,6 @@ #include #include -#include #include diff --git a/src/gui/zapit_setup.cpp b/src/gui/zapit_setup.cpp index 12bb06ec4..f8e18168c 100644 --- a/src/gui/zapit_setup.cpp +++ b/src/gui/zapit_setup.cpp @@ -27,7 +27,7 @@ #endif -#include "gui/zapit_setup.h" +#include "zapit_setup.h" #include #include diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 3ea3be5cf..8d563a613 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -39,7 +39,6 @@ #include #include -#include #include "global.h" #include "neutrino.h" @@ -75,7 +74,6 @@ #include "gui/rc_lock.h" #include "gui/scan_setup.h" #include "gui/start_wizard.h" -#include "gui/timerlist.h" #include "gui/videosettings.h" #include "gui/widget/hintbox.h" @@ -107,12 +105,11 @@ #include #include -#include #include #include -#include "libdvbsub/dvbsub.h" -#include "libtuxtxt/teletext.h" +#include +#include #include int old_b_id = -1; diff --git a/src/neutrino.h b/src/neutrino.h index 97b483a7c..3ff32bf3e 100644 --- a/src/neutrino.h +++ b/src/neutrino.h @@ -36,16 +36,15 @@ #include #include -#include -#include -#include -#include -#include -#include /* CChannelList */ -#include -#include /* st_rmsg */ -#include -#include +#include "driver/framebuffer.h" +#include "system/setting_helpers.h" +#include "system/configure_network.h" +#include "daemonc/remotecontrol.h" /* st_rmsg */ +#include "gui/channellist.h" /* CChannelList */ +#include "gui/personalize.h" +#include "gui/rc_lock.h" +#include "gui/user_menue.h" +#include "gui/timerlist.h" #include diff --git a/src/neutrino_menue.cpp b/src/neutrino_menue.cpp index 3e8ddce2c..d4f5b98ee 100644 --- a/src/neutrino_menue.cpp +++ b/src/neutrino_menue.cpp @@ -48,7 +48,7 @@ #include "gui/bouquetlist.h" #include "gui/cam_menu.h" #include "gui/dboxinfo.h" -#include +#include "gui/epgplus.h" #include "gui/favorites.h" #include "gui/hdd_menu.h" #include "gui/imageinfo.h" @@ -59,7 +59,7 @@ #include "gui/miscsettings_menu.h" #include "gui/motorcontrol.h" #include "gui/movieplayer.h" -#include +#include "gui/network_setup.h" #include "gui/osd_setup.h" #include "gui/osdlang_setup.h" #include "gui/parentallock_setup.h" @@ -70,11 +70,11 @@ #include "gui/settings_manager.h" #include "gui/sleeptimer.h" #include "gui/update_menue.h" -#include +#include "gui/streaminfo2.h" #include "gui/test_menu.h" #include "gui/update.h" #include "gui/vfd_setup.h" -#include +#include "driver/record.h" extern CPlugins * g_PluginList; diff --git a/src/system/configure_network.cpp b/src/system/configure_network.cpp index ead2b3227..7ba9342ec 100644 --- a/src/system/configure_network.cpp +++ b/src/system/configure_network.cpp @@ -25,8 +25,8 @@ #include #include #include "configure_network.h" -#include "libnet.h" /* netGetNameserver, netSetNameserver */ -#include "network_interfaces.h" /* getInetAttributes, setInetAttributes */ +#include /* netGetNameserver, netSetNameserver */ +#include /* getInetAttributes, setInetAttributes */ #include /* system */ #include #include diff --git a/src/system/setting_helpers.cpp b/src/system/setting_helpers.cpp index ac601a102..f5826451a 100644 --- a/src/system/setting_helpers.cpp +++ b/src/system/setting_helpers.cpp @@ -76,8 +76,8 @@ #include #include #include -#include "libdvbsub/dvbsub.h" -#include "libtuxtxt/teletext.h" +#include +#include #include #include diff --git a/src/zapit/src/zapit.cpp b/src/zapit/src/zapit.cpp index 143ee9ef3..eb86e40b5 100644 --- a/src/zapit/src/zapit.cpp +++ b/src/zapit/src/zapit.cpp @@ -69,8 +69,8 @@ #endif #include -#include "libdvbsub/dvbsub.h" -#include "libtuxtxt/teletext.h" +#include +#include /* globals */ int sig_delay = 2; // seconds between signal check From 3389defb1753dad0f9a5ea5f5aecca0477eff46f Mon Sep 17 00:00:00 2001 From: satbaby Date: Tue, 11 Sep 2012 20:33:34 +0200 Subject: [PATCH 249/317] start SCRIPTs with-my_system --- src/driver/record.cpp | 8 +++++--- src/gui/audioplayer.cpp | 5 +++-- src/gui/filebrowser.cpp | 2 +- src/gui/movieplayer.cpp | 5 +++-- src/gui/scan.cpp | 5 +++-- src/neutrino.cpp | 11 ++++++----- 6 files changed, 21 insertions(+), 15 deletions(-) diff --git a/src/driver/record.cpp b/src/driver/record.cpp index 269a4b442..6fc811b67 100644 --- a/src/driver/record.cpp +++ b/src/driver/record.cpp @@ -40,13 +40,15 @@ #include #include #include +#include #include #include #include #include #include #include -#include +#include + #include #include @@ -1452,7 +1454,7 @@ bool CRecordManager::RunStartScript(void) return false; puts("[neutrino.cpp] executing " NEUTRINO_RECORDING_START_SCRIPT "."); - if (system(NEUTRINO_RECORDING_START_SCRIPT) != 0) { + if (my_system(NEUTRINO_RECORDING_START_SCRIPT,NULL,NULL) != 0) { perror(NEUTRINO_RECORDING_START_SCRIPT " failed"); return false; } @@ -1466,7 +1468,7 @@ bool CRecordManager::RunStopScript(void) return false; puts("[neutrino.cpp] executing " NEUTRINO_RECORDING_ENDED_SCRIPT "."); - if (system(NEUTRINO_RECORDING_ENDED_SCRIPT) != 0) { + if (my_system(NEUTRINO_RECORDING_ENDED_SCRIPT,NULL,NULL) != 0) { perror(NEUTRINO_RECORDING_ENDED_SCRIPT " failed"); return false; } diff --git a/src/gui/audioplayer.cpp b/src/gui/audioplayer.cpp index 4de5e4b28..96424233b 100644 --- a/src/gui/audioplayer.cpp +++ b/src/gui/audioplayer.cpp @@ -66,6 +66,7 @@ #include #include +#include #include #include @@ -317,7 +318,7 @@ int CAudioPlayerGui::exec(CMenuTarget* parent, const std::string &actionKey) g_Sectionsd->setPauseScanning(true); puts("[audioplayer.cpp] executing " AUDIOPLAYER_START_SCRIPT "."); - if (system(AUDIOPLAYER_START_SCRIPT) != 0) + if (my_system(AUDIOPLAYER_START_SCRIPT,NULL,NULL) != 0) perror("Datei " AUDIOPLAYER_START_SCRIPT " fehlt.Bitte erstellen, wenn gebraucht.\nFile " AUDIOPLAYER_START_SCRIPT " not found. Please create if needed.\n"); show(); @@ -329,7 +330,7 @@ int CAudioPlayerGui::exec(CMenuTarget* parent, const std::string &actionKey) m_frameBuffer->paintBackground(); puts("[audioplayer.cpp] executing " AUDIOPLAYER_END_SCRIPT "."); - if (system(AUDIOPLAYER_END_SCRIPT) != 0) + if (my_system(AUDIOPLAYER_END_SCRIPT,NULL,NULL) != 0) perror("Datei " AUDIOPLAYER_END_SCRIPT " fehlt. Bitte erstellen, wenn gebraucht.\nFile " AUDIOPLAYER_END_SCRIPT " not found. Please create if needed.\n"); g_Zapit->unlockPlayBack(); diff --git a/src/gui/filebrowser.cpp b/src/gui/filebrowser.cpp index 9bfc94f0e..62abedeae 100644 --- a/src/gui/filebrowser.cpp +++ b/src/gui/filebrowser.cpp @@ -61,7 +61,7 @@ #ifndef NEW_LIBCURL #include #endif - +#include #include #ifdef __USE_FILE_OFFSET64 diff --git a/src/gui/movieplayer.cpp b/src/gui/movieplayer.cpp index ca6be2dbc..a51e04ff9 100644 --- a/src/gui/movieplayer.cpp +++ b/src/gui/movieplayer.cpp @@ -38,6 +38,7 @@ #include #include #include +#include #include #include @@ -175,7 +176,7 @@ int CMoviePlayerGui::exec(CMenuTarget * parent, const std::string & actionKey) startposition = 0; puts("[movieplayer.cpp] executing " MOVIEPLAYER_START_SCRIPT "."); - if (system(MOVIEPLAYER_START_SCRIPT) != 0) + if (my_system(MOVIEPLAYER_START_SCRIPT,NULL,NULL) != 0) perror(MOVIEPLAYER_START_SCRIPT " failed"); isMovieBrowser = false; @@ -213,7 +214,7 @@ int CMoviePlayerGui::exec(CMenuTarget * parent, const std::string & actionKey) bookmarkmanager->flush(); puts("[movieplayer.cpp] executing " MOVIEPLAYER_END_SCRIPT "."); - if (system(MOVIEPLAYER_END_SCRIPT) != 0) + if (my_system(MOVIEPLAYER_END_SCRIPT,NULL,NULL) != 0) perror(MOVIEPLAYER_END_SCRIPT " failed"); CVFD::getInstance()->setMode(CVFD::MODE_TVRADIO); diff --git a/src/gui/scan.cpp b/src/gui/scan.cpp index 670afe1f4..7b66492b4 100644 --- a/src/gui/scan.cpp +++ b/src/gui/scan.cpp @@ -52,6 +52,7 @@ #include #include +#include #include #include @@ -248,7 +249,7 @@ int CScanTs::exec(CMenuTarget* /*parent*/, const std::string & actionKey) if(!manual) { g_RCInput->close_click(); - if (system(NEUTRINO_SCAN_START_SCRIPT) != 0) + if (my_system(NEUTRINO_SCAN_START_SCRIPT,NULL,NULL) != 0) perror(NEUTRINO_SCAN_START_SCRIPT " failed"); } @@ -310,7 +311,7 @@ int CScanTs::exec(CMenuTarget* /*parent*/, const std::string & actionKey) g_Zapit->stopScan(); if(!manual) { - if (system(NEUTRINO_SCAN_STOP_SCRIPT) != 0) + if (my_system(NEUTRINO_SCAN_STOP_SCRIPT,NULL,NULL) != 0) perror(NEUTRINO_SCAN_STOP_SCRIPT " failed"); g_RCInput->open_click(); } diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 8d563a613..6879eaa1e 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -96,6 +96,7 @@ #include #include #include +#include #include @@ -1745,7 +1746,7 @@ void wake_up( bool &wakeup) if(!wakeup){ const char *neutrino_leave_deepstandby_script = CONFIGDIR "/deepstandby.off"; printf("[%s] executing %s\n",__FILE__ ,neutrino_leave_deepstandby_script); - if (system(neutrino_leave_deepstandby_script) != 0) + if (file_exists(neutrino_leave_deepstandby_script) && my_system(neutrino_leave_deepstandby_script,NULL,NULL) != 0) perror( neutrino_leave_deepstandby_script ); } #endif @@ -2686,7 +2687,7 @@ _repeat: return messages_return::handled; } else if( msg == NeutrinoMessages::ANNOUNCE_RECORD) { - system(NEUTRINO_RECORDING_TIMER_SCRIPT); + my_system(NEUTRINO_RECORDING_TIMER_SCRIPT,NULL,NULL); if (g_settings.recording_type == RECORDING_FILE) { char * recordingDir = ((CTimerd::RecordingInfo*)data)->recordingDir; for(int i=0 ; i < NETWORK_NFS_NR_OF_ENTRIES ; i++) { @@ -2946,7 +2947,7 @@ void CNeutrinoApp::ExitRun(const bool /*write_si*/, int retcode) if(retcode) { const char *neutrino_enter_deepstandby_script = CONFIGDIR "/deepstandby.on"; printf("[%s] executing %s\n",__FILE__ ,neutrino_enter_deepstandby_script); - if (system(neutrino_enter_deepstandby_script) != 0) + if (file_exists(neutrino_enter_deepstandby_script) && my_system(neutrino_enter_deepstandby_script,NULL,NULL) != 0) perror(neutrino_enter_deepstandby_script ); printf("entering off state\n"); @@ -3224,7 +3225,7 @@ void CNeutrinoApp::standbyMode( bool bOnOff, bool fromDeepStandby ) standby_channel_id = CZapit::getInstance()->GetCurrentChannelID(); puts("[neutrino.cpp] executing " NEUTRINO_ENTER_STANDBY_SCRIPT "."); - if (system(NEUTRINO_ENTER_STANDBY_SCRIPT) != 0) + if (my_system(NEUTRINO_ENTER_STANDBY_SCRIPT,NULL,NULL) != 0) perror(NEUTRINO_ENTER_STANDBY_SCRIPT " failed"); if(!CRecordManager::getInstance()->RecordingStatus()) @@ -3268,7 +3269,7 @@ void CNeutrinoApp::standbyMode( bool bOnOff, bool fromDeepStandby ) } puts("[neutrino.cpp] executing " NEUTRINO_LEAVE_STANDBY_SCRIPT "."); - if (system(NEUTRINO_LEAVE_STANDBY_SCRIPT) != 0) + if (my_system(NEUTRINO_LEAVE_STANDBY_SCRIPT,NULL,NULL) != 0) perror(NEUTRINO_LEAVE_STANDBY_SCRIPT " failed"); CVFD::getInstance()->setMode(CVFD::MODE_TVRADIO); From dfa32314696a66b83c9acece67ec9576e06688cd Mon Sep 17 00:00:00 2001 From: satbaby Date: Tue, 11 Sep 2012 20:34:53 +0200 Subject: [PATCH 250/317] move safe_mkdir & check_dir to system-helpers --- src/gui/hdd_menu.cpp | 2 +- src/gui/infoviewer_bb.cpp | 2 +- src/gui/record_setup.cpp | 2 +- src/system/helpers.cpp | 45 ++++++++++++++++++++++++++++++++++ src/system/helpers.h | 2 ++ src/system/setting_helpers.cpp | 45 ---------------------------------- src/system/setting_helpers.h | 3 --- 7 files changed, 50 insertions(+), 51 deletions(-) diff --git a/src/gui/hdd_menu.cpp b/src/gui/hdd_menu.cpp index 5bec11a8f..88b618954 100644 --- a/src/gui/hdd_menu.cpp +++ b/src/gui/hdd_menu.cpp @@ -56,7 +56,7 @@ #include #include -#include +#include #include #include diff --git a/src/gui/infoviewer_bb.cpp b/src/gui/infoviewer_bb.cpp index e070b7e71..b8e2bb967 100644 --- a/src/gui/infoviewer_bb.cpp +++ b/src/gui/infoviewer_bb.cpp @@ -55,7 +55,7 @@ #include #include #include - +#include #include #include diff --git a/src/gui/record_setup.cpp b/src/gui/record_setup.cpp index 67cafe8d9..aced80cda 100644 --- a/src/gui/record_setup.cpp +++ b/src/gui/record_setup.cpp @@ -51,7 +51,7 @@ #include #include - +#include CRecordSetup::CRecordSetup() { diff --git a/src/system/helpers.cpp b/src/system/helpers.cpp index 4e3758ad4..bd4d598ab 100644 --- a/src/system/helpers.cpp +++ b/src/system/helpers.cpp @@ -28,6 +28,10 @@ #include #include #include +#include +#include +#include /* or */ +#include #include @@ -102,3 +106,44 @@ FILE* my_popen( pid_t& pid, const char *cmdstring, const char *type) } return(fp); } + +int safe_mkdir(char * path) +{ + struct statfs s; + int ret = 0; + if(!strncmp(path, "/hdd", 4)) { + ret = statfs("/hdd", &s); + if((ret != 0) || (s.f_type == 0x72b6)) + ret = -1; + else + mkdir(path, 0755); + } else + mkdir(path, 0755); + return ret; +} + +int check_dir(const char * newdir) +{ + + struct statfs s; + if (::statfs(newdir, &s) == 0) { + switch (s.f_type) /* f_type is long */ + { + case 0xEF53L: /*EXT2 & EXT3*/ + case 0x6969L: /*NFS*/ + case 0xFF534D42L: /*CIFS*/ + case 0x517BL: /*SMB*/ + case 0x52654973L: /*REISERFS*/ + case 0x65735546L: /*fuse for ntfs*/ + case 0x58465342L: /*xfs*/ + case 0x4d44L: /*msdos*/ + case 0x0187: /* AUTOFS_SUPER_MAGIC */ + case 0x858458f6: /*ramfs*/ + return 0;//ok + default: + fprintf( stderr,"%s Unknow File system type: %i\n",newdir ,s.f_type); + break; + } + } + return 1; // error +} diff --git a/src/system/helpers.h b/src/system/helpers.h index 9fd335f3b..29f96dd4c 100644 --- a/src/system/helpers.h +++ b/src/system/helpers.h @@ -24,5 +24,7 @@ int my_system(const char * cmd, const char * arg1, const char * arg2); FILE* my_popen( pid_t& pid, const char *cmdstring, const char *type); +int safe_mkdir(char * path); +int check_dir(const char * newdir); #endif diff --git a/src/system/setting_helpers.cpp b/src/system/setting_helpers.cpp index f5826451a..677b696f9 100644 --- a/src/system/setting_helpers.cpp +++ b/src/system/setting_helpers.cpp @@ -33,7 +33,6 @@ #include "configure_network.h" #include #include -#include #include #include #include @@ -44,12 +43,9 @@ #include #include #include -#include #include #include #include -#include -#include #if HAVE_COOL_HARDWARE #include @@ -566,44 +562,3 @@ bool CAutoModeNotifier::changeNotify(const neutrino_locale_t /*OptionName*/, voi videoDecoder->SetAutoModes(modes); return false; } - -int safe_mkdir(char * path) -{ - struct statfs s; - int ret = 0; - if(!strncmp(path, "/hdd", 4)) { - ret = statfs("/hdd", &s); - if((ret != 0) || (s.f_type == 0x72b6)) - ret = -1; - else - mkdir(path, 0755); - } else - mkdir(path, 0755); - return ret; -} - -int check_dir(const char * newdir) -{ - - struct statfs s; - if (::statfs(newdir, &s) == 0) { - switch (s.f_type) /* f_type is long */ - { - case 0xEF53L: /*EXT2 & EXT3*/ - case 0x6969L: /*NFS*/ - case 0xFF534D42L: /*CIFS*/ - case 0x517BL: /*SMB*/ - case 0x52654973L: /*REISERFS*/ - case 0x65735546L: /*fuse for ntfs*/ - case 0x58465342L: /*xfs*/ - case 0x4d44L: /*msdos*/ - case 0x0187: /* AUTOFS_SUPER_MAGIC */ - case 0x858458f6: /*ramfs*/ - return 0;//ok - default: - fprintf( stderr,"%s Unknow File system type: %i\n",newdir ,s.f_type); - break; - } - } - return 1; // error -} diff --git a/src/system/setting_helpers.h b/src/system/setting_helpers.h index 149a5e082..a8eda16bc 100644 --- a/src/system/setting_helpers.h +++ b/src/system/setting_helpers.h @@ -144,9 +144,6 @@ class COnekeyPluginChangeExec : public CMenuTarget int exec(CMenuTarget* parent, const std::string & actionKey); }; -int safe_mkdir(char * path); -int check_dir(const char * newdir); - class CTZChangeNotifier : public CChangeObserver { public: From c6ae7255ace282f590dc50bad30108b470d3c409 Mon Sep 17 00:00:00 2001 From: satbaby Date: Tue, 11 Sep 2012 20:35:47 +0200 Subject: [PATCH 251/317] -add wakeup_hdd & file_exists to system-helpers --- src/driver/record.cpp | 4 ++-- src/gui/audioplayer.cpp | 4 ++-- src/gui/movieplayer.cpp | 6 +++--- src/gui/plugins.cpp | 16 ++-------------- src/gui/plugins.h | 1 - src/gui/scan.cpp | 4 ++-- src/neutrino.cpp | 9 +++++---- src/system/helpers.cpp | 24 ++++++++++++++++++++++++ src/system/helpers.h | 2 ++ 9 files changed, 42 insertions(+), 28 deletions(-) diff --git a/src/driver/record.cpp b/src/driver/record.cpp index 6fc811b67..cf0e3388c 100644 --- a/src/driver/record.cpp +++ b/src/driver/record.cpp @@ -1454,7 +1454,7 @@ bool CRecordManager::RunStartScript(void) return false; puts("[neutrino.cpp] executing " NEUTRINO_RECORDING_START_SCRIPT "."); - if (my_system(NEUTRINO_RECORDING_START_SCRIPT,NULL,NULL) != 0) { + if (file_exists(NEUTRINO_RECORDING_START_SCRIPT) && my_system(NEUTRINO_RECORDING_START_SCRIPT,NULL,NULL) != 0) { perror(NEUTRINO_RECORDING_START_SCRIPT " failed"); return false; } @@ -1468,7 +1468,7 @@ bool CRecordManager::RunStopScript(void) return false; puts("[neutrino.cpp] executing " NEUTRINO_RECORDING_ENDED_SCRIPT "."); - if (my_system(NEUTRINO_RECORDING_ENDED_SCRIPT,NULL,NULL) != 0) { + if (file_exists(NEUTRINO_RECORDING_ENDED_SCRIPT) && my_system(NEUTRINO_RECORDING_ENDED_SCRIPT,NULL,NULL) != 0) { perror(NEUTRINO_RECORDING_ENDED_SCRIPT " failed"); return false; } diff --git a/src/gui/audioplayer.cpp b/src/gui/audioplayer.cpp index 96424233b..2a7b74855 100644 --- a/src/gui/audioplayer.cpp +++ b/src/gui/audioplayer.cpp @@ -318,7 +318,7 @@ int CAudioPlayerGui::exec(CMenuTarget* parent, const std::string &actionKey) g_Sectionsd->setPauseScanning(true); puts("[audioplayer.cpp] executing " AUDIOPLAYER_START_SCRIPT "."); - if (my_system(AUDIOPLAYER_START_SCRIPT,NULL,NULL) != 0) + if (file_exists(AUDIOPLAYER_START_SCRIPT) && my_system(AUDIOPLAYER_START_SCRIPT,NULL,NULL) != 0) perror("Datei " AUDIOPLAYER_START_SCRIPT " fehlt.Bitte erstellen, wenn gebraucht.\nFile " AUDIOPLAYER_START_SCRIPT " not found. Please create if needed.\n"); show(); @@ -330,7 +330,7 @@ int CAudioPlayerGui::exec(CMenuTarget* parent, const std::string &actionKey) m_frameBuffer->paintBackground(); puts("[audioplayer.cpp] executing " AUDIOPLAYER_END_SCRIPT "."); - if (my_system(AUDIOPLAYER_END_SCRIPT,NULL,NULL) != 0) + if (file_exists(AUDIOPLAYER_END_SCRIPT) && my_system(AUDIOPLAYER_END_SCRIPT,NULL,NULL) != 0) perror("Datei " AUDIOPLAYER_END_SCRIPT " fehlt. Bitte erstellen, wenn gebraucht.\nFile " AUDIOPLAYER_END_SCRIPT " not found. Please create if needed.\n"); g_Zapit->unlockPlayBack(); diff --git a/src/gui/movieplayer.cpp b/src/gui/movieplayer.cpp index a51e04ff9..f35e55c4d 100644 --- a/src/gui/movieplayer.cpp +++ b/src/gui/movieplayer.cpp @@ -176,7 +176,7 @@ int CMoviePlayerGui::exec(CMenuTarget * parent, const std::string & actionKey) startposition = 0; puts("[movieplayer.cpp] executing " MOVIEPLAYER_START_SCRIPT "."); - if (my_system(MOVIEPLAYER_START_SCRIPT,NULL,NULL) != 0) + if (file_exists(MOVIEPLAYER_START_SCRIPT) && my_system(MOVIEPLAYER_START_SCRIPT,NULL,NULL) != 0) perror(MOVIEPLAYER_START_SCRIPT " failed"); isMovieBrowser = false; @@ -214,7 +214,7 @@ int CMoviePlayerGui::exec(CMenuTarget * parent, const std::string & actionKey) bookmarkmanager->flush(); puts("[movieplayer.cpp] executing " MOVIEPLAYER_END_SCRIPT "."); - if (my_system(MOVIEPLAYER_END_SCRIPT,NULL,NULL) != 0) + if (file_exists(MOVIEPLAYER_END_SCRIPT) && my_system(MOVIEPLAYER_END_SCRIPT,NULL,NULL) != 0) perror(MOVIEPLAYER_END_SCRIPT " failed"); CVFD::getInstance()->setMode(CVFD::MODE_TVRADIO); @@ -301,7 +301,7 @@ bool CMoviePlayerGui::SelectFile() printf("CMoviePlayerGui::SelectFile: isBookmark %d timeshift %d isMovieBrowser %d\n", isBookmark, timeshift, isMovieBrowser); if (has_hdd) - system("(rm /hdd/.wakeup; touch /hdd/.wakeup; sync) > /dev/null 2> /dev/null &"); + wakeup_hdd(g_settings.network_nfs_recordingdir); if (timeshift) { t_channel_id live_channel_id = CZapit::getInstance()->GetCurrentChannelID(); diff --git a/src/gui/plugins.cpp b/src/gui/plugins.cpp index 8a0e1c7e9..06b8b88e8 100644 --- a/src/gui/plugins.cpp +++ b/src/gui/plugins.cpp @@ -96,18 +96,6 @@ int CPlugins::find_plugin(const std::string & filename) return -1; } -bool CPlugins::pluginfile_exists(const std::string & filename) -{ - struct stat stat_buf; - if(::stat(filename.c_str(), &stat_buf) == 0) - { - return true; - } else - { - return false; - } -} - void CPlugins::scanDir(const char *dir) { struct dirent **namelist; @@ -370,7 +358,7 @@ void CPlugins::startScriptPlugin(int number) { const char *script = plugin_list[number].pluginfile.c_str(); printf("[CPlugins] executing script %s\n",script); - if (!pluginfile_exists(plugin_list[number].pluginfile)) + if (!file_exists(script)) { printf("[CPlugins] could not find %s,\nperhaps wrong plugin type in %s\n", script, plugin_list[number].cfgfile.c_str()); @@ -423,7 +411,7 @@ void CPlugins::startPlugin(int number,int /*param*/) startScriptPlugin(number); return; } - if (!pluginfile_exists(plugin_list[number].pluginfile)) + if (!file_exists(plugin_list[number].pluginfile.c_str())) { printf("[CPlugins] could not find %s,\nperhaps wrong plugin type in %s\n", plugin_list[number].pluginfile.c_str(), plugin_list[number].cfgfile.c_str()); diff --git a/src/gui/plugins.h b/src/gui/plugins.h index 9fab562b2..f37cc0704 100644 --- a/src/gui/plugins.h +++ b/src/gui/plugins.h @@ -97,7 +97,6 @@ class CPlugins void scanDir(const char *dir); bool plugin_exists(const std::string & filename); int find_plugin(const std::string & filename); - bool pluginfile_exists(const std::string & filename); CPlugins::p_type_t getPluginType(int type); public: CPlugins(); diff --git a/src/gui/scan.cpp b/src/gui/scan.cpp index 7b66492b4..0c6587f83 100644 --- a/src/gui/scan.cpp +++ b/src/gui/scan.cpp @@ -249,7 +249,7 @@ int CScanTs::exec(CMenuTarget* /*parent*/, const std::string & actionKey) if(!manual) { g_RCInput->close_click(); - if (my_system(NEUTRINO_SCAN_START_SCRIPT,NULL,NULL) != 0) + if (file_exists(NEUTRINO_SCAN_START_SCRIPT) && my_system(NEUTRINO_SCAN_START_SCRIPT,NULL,NULL) != 0) perror(NEUTRINO_SCAN_START_SCRIPT " failed"); } @@ -311,7 +311,7 @@ int CScanTs::exec(CMenuTarget* /*parent*/, const std::string & actionKey) g_Zapit->stopScan(); if(!manual) { - if (my_system(NEUTRINO_SCAN_STOP_SCRIPT,NULL,NULL) != 0) + if (file_exists(NEUTRINO_SCAN_STOP_SCRIPT) && my_system(NEUTRINO_SCAN_STOP_SCRIPT,NULL,NULL) != 0) perror(NEUTRINO_SCAN_STOP_SCRIPT " failed"); g_RCInput->open_click(); } diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 6879eaa1e..01cb36036 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -2687,7 +2687,8 @@ _repeat: return messages_return::handled; } else if( msg == NeutrinoMessages::ANNOUNCE_RECORD) { - my_system(NEUTRINO_RECORDING_TIMER_SCRIPT,NULL,NULL); + if(file_exists(NEUTRINO_RECORDING_TIMER_SCRIPT)) + my_system(NEUTRINO_RECORDING_TIMER_SCRIPT,NULL,NULL); if (g_settings.recording_type == RECORDING_FILE) { char * recordingDir = ((CTimerd::RecordingInfo*)data)->recordingDir; for(int i=0 ; i < NETWORK_NFS_NR_OF_ENTRIES ; i++) { @@ -2701,7 +2702,7 @@ _repeat: } } if(has_hdd) { - system("(rm /media/sda1/.wakeup; touch /media/sda1/.wakeup; sync) > /dev/null 2> /dev/null &"); // wakeup hdd + wakeup_hdd(g_settings.network_nfs_recordingdir); } } if( g_settings.recording_zap_on_announce ) { @@ -3225,7 +3226,7 @@ void CNeutrinoApp::standbyMode( bool bOnOff, bool fromDeepStandby ) standby_channel_id = CZapit::getInstance()->GetCurrentChannelID(); puts("[neutrino.cpp] executing " NEUTRINO_ENTER_STANDBY_SCRIPT "."); - if (my_system(NEUTRINO_ENTER_STANDBY_SCRIPT,NULL,NULL) != 0) + if (file_exists(NEUTRINO_ENTER_STANDBY_SCRIPT) && my_system(NEUTRINO_ENTER_STANDBY_SCRIPT,NULL,NULL) != 0) perror(NEUTRINO_ENTER_STANDBY_SCRIPT " failed"); if(!CRecordManager::getInstance()->RecordingStatus()) @@ -3269,7 +3270,7 @@ void CNeutrinoApp::standbyMode( bool bOnOff, bool fromDeepStandby ) } puts("[neutrino.cpp] executing " NEUTRINO_LEAVE_STANDBY_SCRIPT "."); - if (my_system(NEUTRINO_LEAVE_STANDBY_SCRIPT,NULL,NULL) != 0) + if (file_exists(NEUTRINO_LEAVE_STANDBY_SCRIPT) && my_system(NEUTRINO_LEAVE_STANDBY_SCRIPT,NULL,NULL) != 0) perror(NEUTRINO_LEAVE_STANDBY_SCRIPT " failed"); CVFD::getInstance()->setMode(CVFD::MODE_TVRADIO); diff --git a/src/system/helpers.cpp b/src/system/helpers.cpp index bd4d598ab..6038eea98 100644 --- a/src/system/helpers.cpp +++ b/src/system/helpers.cpp @@ -32,9 +32,33 @@ #include #include /* or */ #include +#include #include +bool file_exists(const char *filename) +{ + struct stat stat_buf; + if(::stat(filename, &stat_buf) == 0) + { + return true; + } else + { + return false; + } +} + +void wakeup_hdd(const char *hdd_dir) +{ + if(!check_dir(hdd_dir)){ + std::string wakeup_file = hdd_dir; + wakeup_file += "/.wakeup"; + remove(wakeup_file.c_str()); + creat(wakeup_file.c_str(),S_IREAD|S_IWRITE); + sync(); + } +} + int my_system(const char * cmd, const char * arg1, const char * arg2) { int i; diff --git a/src/system/helpers.h b/src/system/helpers.h index 29f96dd4c..ec3074d6c 100644 --- a/src/system/helpers.h +++ b/src/system/helpers.h @@ -26,5 +26,7 @@ int my_system(const char * cmd, const char * arg1, const char * arg2); FILE* my_popen( pid_t& pid, const char *cmdstring, const char *type); int safe_mkdir(char * path); int check_dir(const char * newdir); +bool file_exists(const char *filename); +void wakeup_hdd(const char *hdd_dir); #endif From 86632f0369c43dc3626c4ba74cb375c1f0c61832 Mon Sep 17 00:00:00 2001 From: satbaby Date: Wed, 12 Sep 2012 18:28:11 +0200 Subject: [PATCH 252/317] if curl version --- src/gui/audioplayer.cpp | 2 +- src/gui/filebrowser.cpp | 2 +- src/gui/update.cpp | 2 +- src/system/httptool.cpp | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/gui/audioplayer.cpp b/src/gui/audioplayer.cpp index 2a7b74855..308cecdb3 100644 --- a/src/gui/audioplayer.cpp +++ b/src/gui/audioplayer.cpp @@ -144,7 +144,7 @@ void CAudiofileExt::operator=(const CAudiofileExt& src) #include #include -#ifndef NEW_LIBCURL +#if LIBCURL_VERSION_NUM < 0x071507 #include #endif diff --git a/src/gui/filebrowser.cpp b/src/gui/filebrowser.cpp index 62abedeae..4e7f07f1f 100644 --- a/src/gui/filebrowser.cpp +++ b/src/gui/filebrowser.cpp @@ -58,7 +58,7 @@ #include #include -#ifndef NEW_LIBCURL +#if LIBCURL_VERSION_NUM < 0x071507 #include #endif #include diff --git a/src/gui/update.cpp b/src/gui/update.cpp index e6afd19ba..32551ec9f 100644 --- a/src/gui/update.cpp +++ b/src/gui/update.cpp @@ -59,7 +59,7 @@ #include #include -#ifndef NEW_LIBCURL +#if LIBCURL_VERSION_NUM < 0x071507 #include #endif diff --git a/src/system/httptool.cpp b/src/system/httptool.cpp index de17a1c0c..20bd5fba7 100644 --- a/src/system/httptool.cpp +++ b/src/system/httptool.cpp @@ -24,7 +24,7 @@ #include #include -#ifndef NEW_LIBCURL +#if LIBCURL_VERSION_NUM < 0x071507 #include #endif From e50a5ef013177ff4ce85c86e219a79acd26d2ddc Mon Sep 17 00:00:00 2001 From: satbaby Date: Wed, 12 Sep 2012 22:48:15 +0200 Subject: [PATCH 253/317] /bouquetlist.cpp: close Favo also with RC_favorites --- src/driver/framebuffer.cpp | 2 -- src/driver/netfile.cpp | 2 -- src/gui/bouquetlist.cpp | 3 ++- 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/src/driver/framebuffer.cpp b/src/driver/framebuffer.cpp index ab4a80c3e..b727ef51e 100644 --- a/src/driver/framebuffer.cpp +++ b/src/driver/framebuffer.cpp @@ -38,8 +38,6 @@ #include -#include - #include #include #include diff --git a/src/driver/netfile.cpp b/src/driver/netfile.cpp index 8b0a85890..3a235e3fa 100644 --- a/src/driver/netfile.cpp +++ b/src/driver/netfile.cpp @@ -105,8 +105,6 @@ #include #include #include -#include -#include #include /* TODO: diff --git a/src/gui/bouquetlist.cpp b/src/gui/bouquetlist.cpp index 3aca47ae6..009885b51 100644 --- a/src/gui/bouquetlist.cpp +++ b/src/gui/bouquetlist.cpp @@ -352,7 +352,8 @@ int CBouquetList::show(bool bShowChannelList) loop = false; } else if ((msg == CRCInput::RC_timeout ) || - (msg == (neutrino_msg_t)g_settings.key_channelList_cancel)) + (msg == (neutrino_msg_t)g_settings.key_channelList_cancel) || + (msg == CRCInput::RC_favorites) ) { selected = oldselected; if(fader.StartFadeOut()) { From 8e3f4917ce998fe3d1b681230755575c56bf35e8 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Thu, 13 Sep 2012 11:23:56 +0400 Subject: [PATCH 254/317] cross-configure.cool: enable flac --- cross-configure.cool | 2 +- cross-configure.cool.debug | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cross-configure.cool b/cross-configure.cool index b35b48763..60daab140 100755 --- a/cross-configure.cool +++ b/cross-configure.cool @@ -27,5 +27,5 @@ export FREETYPE_CONFIG=$PREFIX/bin/freetype-config export CURL_CONFIG=$PREFIX/bin/curl-config ./autogen.sh -./configure --prefix=${PREFIX} --build=i386-pc-linux-gnu --host=$HOST --without-driver --with-target=cdk --with-targetprefix="" "$*" +./configure --prefix=${PREFIX} --build=i386-pc-linux-gnu --host=$HOST --enable-flac --with-target=cdk --with-targetprefix="" "$*" diff --git a/cross-configure.cool.debug b/cross-configure.cool.debug index 4ae70b853..10f42ba3b 100755 --- a/cross-configure.cool.debug +++ b/cross-configure.cool.debug @@ -27,5 +27,5 @@ export FREETYPE_CONFIG=$PREFIX/bin/freetype-config export CURL_CONFIG=$PREFIX/bin/curl-config ./autogen.sh -./configure --prefix=${PREFIX} --build=i386-pc-linux-gnu --host=$HOST --without-driver --with-target=cdk --with-targetprefix="" "$*" +./configure --prefix=${PREFIX} --build=i386-pc-linux-gnu --host=$HOST --enable-flac --with-target=cdk --with-targetprefix="" "$*" From 576d3d9da01a75b9bee77b503f8aab07014be806 Mon Sep 17 00:00:00 2001 From: satbaby Date: Thu, 13 Sep 2012 12:59:18 +0200 Subject: [PATCH 255/317] infoviewer.cpp:fix showSysfsHdd --- src/gui/infoviewer.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gui/infoviewer.cpp b/src/gui/infoviewer.cpp index 8320e457e..691c9662f 100644 --- a/src/gui/infoviewer.cpp +++ b/src/gui/infoviewer.cpp @@ -1364,7 +1364,8 @@ void CInfoViewer::showSNR () g_SignalFont->RenderString (posx, posy + height, sw, percent, COL_INFOBAR); } } - infoViewerBB->showSysfsHdd(); + if(showButtonBar) + infoViewerBB->showSysfsHdd(); } void CInfoViewer::display_Info(const char *current, const char *next, From 5c89d3937f24dd7b5f6e9cf5fbe5ff9c9098b57d Mon Sep 17 00:00:00 2001 From: satbaby Date: Thu, 13 Sep 2012 14:40:24 +0200 Subject: [PATCH 256/317] moviebrowser.cpp: fix vfd --- src/gui/moviebrowser.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/gui/moviebrowser.cpp b/src/gui/moviebrowser.cpp index 199f3a485..3558b9f0e 100644 --- a/src/gui/moviebrowser.cpp +++ b/src/gui/moviebrowser.cpp @@ -1300,6 +1300,9 @@ void CMovieBrowser::refreshLCD(void) } else { + if(CVFD::getInstance()->getMode() != CVFD::MODE_MENU_UTF8) + CVFD::getInstance()->setMode(CVFD::MODE_MENU_UTF8, g_Locale->getText(LOCALE_MOVIEBROWSER_HEAD)); + CVFD::getInstance()->showMenuText(0, m_movieSelectionHandler->epgTitle.c_str(), -1, true); // UTF-8 //lcd->showMenuText(1, m_movieSelectionHandler->epgInfo1.c_str(), -1, true); // UTF-8 } From db17a4ee6fb328cdae82cdacb21ad1bbd61984b1 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Thu, 13 Sep 2012 19:13:49 +0400 Subject: [PATCH 257/317] driver/record.cpp: fix fd leak, if record start failed --- src/driver/record.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/driver/record.cpp b/src/driver/record.cpp index a5ff08e7c..50de25279 100644 --- a/src/driver/record.cpp +++ b/src/driver/record.cpp @@ -171,10 +171,10 @@ record_error_msg_t CRecordInstance::Start(CZapitChannel * channel) record->Open(); if(!record->Start(fd, (unsigned short ) allpids.PIDs.vpid, (unsigned short *) apids, numpids, channel_id)) { - /* Stop do close fd */ record->Stop(); delete record; record = NULL; + close(fd); unlink(tsfile.c_str()); hintBox.hide(); return RECORD_FAILURE; @@ -215,6 +215,7 @@ bool CRecordInstance::Stop(bool remove_event) printf("%s: channel %llx recording_id %d\n", __FUNCTION__, channel_id, recording_id); SaveXml(); + /* Stop do close fd - if started */ record->Stop(); if(!autoshift) From 106c59a79251084d5bb74d692532af0d7e7059c5 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Thu, 13 Sep 2012 20:07:18 +0400 Subject: [PATCH 258/317] driver/record.cpp: always call RestoreNeutrino(), if record start failed --- src/driver/record.cpp | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/driver/record.cpp b/src/driver/record.cpp index 50de25279..8f32bf937 100644 --- a/src/driver/record.cpp +++ b/src/driver/record.cpp @@ -891,23 +891,25 @@ bool CRecordManager::Record(const CTimerd::RecordingInfo * const eventinfo, cons mutex.unlock(); - if (error_msg == RECORD_OK) { + if (error_msg == RECORD_OK) return true; - } - else if(!timeshift) { - RunStopScript(); - RestoreNeutrino(); - printf("[recordmanager] %s: error code: %d\n", __FUNCTION__, error_msg); + printf("[recordmanager] %s: error code: %d\n", __FUNCTION__, error_msg); + /* RestoreNeutrino must be called always if record start failed */ + RunStopScript(); + RestoreNeutrino(); + + /* FIXME show timeshift start error or not ? */ + //if(!timeshift) + { //FIXME: Use better error message DisplayErrorMessage(g_Locale->getText( error_msg == RECORD_BUSY ? LOCALE_STREAMING_BUSY : error_msg == RECORD_INVALID_DIRECTORY ? LOCALE_STREAMING_DIR_NOT_WRITABLE : LOCALE_STREAMING_WRITE_ERROR )); // UTF-8 - return false; } - return true; + return false; } bool CRecordManager::StartAutoRecord() From 2d0642d36df537767c4e8feb23fa07c066e368dc Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Thu, 13 Sep 2012 20:10:53 +0400 Subject: [PATCH 259/317] driver/record.cpp: fix temp timeshift file delete cmd --- src/driver/record.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/driver/record.cpp b/src/driver/record.cpp index 8f32bf937..e952976ea 100644 --- a/src/driver/record.cpp +++ b/src/driver/record.cpp @@ -224,7 +224,7 @@ bool CRecordInstance::Stop(bool remove_event) CCamManager::getInstance()->Stop(channel_id, CCamManager::RECORD); if((autoshift && g_settings.auto_delete) /* || autoshift_delete*/) { - snprintf(buf,sizeof(buf), "nice -n 20 rm -f %s.ts &", filename); + snprintf(buf,sizeof(buf), "nice -n 20 rm -f \"%s.ts\" &", filename); system(buf); snprintf(buf,sizeof(buf), "%s.xml", filename); //autoshift_delete = false; From 12eee1db1e6250ae0eb0853551db612e7defd7ac Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Thu, 13 Sep 2012 20:18:32 +0400 Subject: [PATCH 260/317] neutrino.cpp: remove StartAutoRecord on leaving standby - auto-timeshift started later anyway --- src/neutrino.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 1345ffee9..6c365910c 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -3170,7 +3170,7 @@ void CNeutrinoApp::scartMode( bool bOnOff ) void CNeutrinoApp::standbyMode( bool bOnOff, bool fromDeepStandby ) { - static bool wasshift = false; + //static bool wasshift = false; INFO("%s", bOnOff ? "ON" : "OFF" ); if( bOnOff ) { @@ -3188,7 +3188,7 @@ void CNeutrinoApp::standbyMode( bool bOnOff, bool fromDeepStandby ) CVFD::getInstance()->Clear(); CVFD::getInstance()->setMode(CVFD::MODE_STANDBY); - wasshift = CRecordManager::getInstance()->StopAutoRecord(); + /* wasshift = */ CRecordManager::getInstance()->StopAutoRecord(); if(!CRecordManager::getInstance()->RecordingStatus()) { g_Zapit->setStandby(true); @@ -3297,11 +3297,15 @@ void CNeutrinoApp::standbyMode( bool bOnOff, bool fromDeepStandby ) InfoClock->StartClock(); g_volume->AudioMute(current_muted, true); +#if 0 + /* auto-record will be started when zap is complete + * FIXME is it needed to restart manual timeshift here ? */ if((mode == mode_tv) && wasshift) { //startAutoRecord(); CRecordManager::getInstance()->StartAutoRecord(); } wasshift = false; +#endif StartSubtitles(); } } From bafceab7f0cbfe06e76327aaa1085fef3309147f Mon Sep 17 00:00:00 2001 From: satbaby Date: Fri, 14 Sep 2012 15:44:33 +0200 Subject: [PATCH 261/317] neutrino.cpp: -fix CVFD on timeshift stop --- src/neutrino.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 6c365910c..b40506333 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -3080,7 +3080,8 @@ void CNeutrinoApp::saveEpg(bool cvfd_mode) CVFD::getInstance()->Clear(); CVFD::getInstance()->setMode(cvfd_mode ? CVFD::MODE_SHUTDOWN : CVFD::MODE_STANDBY);// true CVFD::MODE_SHUTDOWN , false CVFD::MODE_STANDBY break; - } + } else if (!cvfd_mode) + handleMsg(msg, data); } } } From e45aa72605c17f5903ddac97977b207c88a8fa33 Mon Sep 17 00:00:00 2001 From: satbaby Date: Fri, 14 Sep 2012 20:12:04 +0200 Subject: [PATCH 262/317] moviebrowser.cpp: -fix2 vfd --- src/gui/moviebrowser.cpp | 3 --- src/gui/widget/menue.cpp | 4 +++- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/gui/moviebrowser.cpp b/src/gui/moviebrowser.cpp index 3558b9f0e..199f3a485 100644 --- a/src/gui/moviebrowser.cpp +++ b/src/gui/moviebrowser.cpp @@ -1300,9 +1300,6 @@ void CMovieBrowser::refreshLCD(void) } else { - if(CVFD::getInstance()->getMode() != CVFD::MODE_MENU_UTF8) - CVFD::getInstance()->setMode(CVFD::MODE_MENU_UTF8, g_Locale->getText(LOCALE_MOVIEBROWSER_HEAD)); - CVFD::getInstance()->showMenuText(0, m_movieSelectionHandler->epgTitle.c_str(), -1, true); // UTF-8 //lcd->showMenuText(1, m_movieSelectionHandler->epgInfo1.c_str(), -1, true); // UTF-8 } diff --git a/src/gui/widget/menue.cpp b/src/gui/widget/menue.cpp index e4c8a971b..23af427ce 100644 --- a/src/gui/widget/menue.cpp +++ b/src/gui/widget/menue.cpp @@ -469,6 +469,7 @@ int CMenuWidget::exec(CMenuTarget* parent, const std::string &) neutrino_msg_t msg; neutrino_msg_data_t data; bool bAllowRepeatLR = false; + CVFD::MODES oldLcdMode = CVFD::getInstance()->getMode(); int pos = 0; exit_pressed = false; @@ -733,7 +734,8 @@ int CMenuWidget::exec(CMenuTarget* parent, const std::string &) fader.Stop(); if(!parent) - CVFD::getInstance()->setMode(CVFD::MODE_TVRADIO); + if(oldLcdMode != CVFD::getInstance()->getMode()) + CVFD::getInstance()->setMode(CVFD::MODE_TVRADIO); for (unsigned int count = 0; count < items.size(); count++) { From 87342fd0d9e1eb4634aee28c1a4c6947802c41fd Mon Sep 17 00:00:00 2001 From: satbaby Date: Sat, 15 Sep 2012 11:20:49 +0200 Subject: [PATCH 263/317] my_system fix --- src/driver/record.cpp | 4 ++-- src/gui/audioplayer.cpp | 4 ++-- src/gui/movieplayer.cpp | 4 ++-- src/gui/scan.cpp | 4 ++-- src/neutrino.cpp | 14 +++++++------- src/system/helpers.cpp | 24 +++++++++++++++++------- src/system/helpers.h | 5 ++++- 7 files changed, 36 insertions(+), 23 deletions(-) diff --git a/src/driver/record.cpp b/src/driver/record.cpp index e952976ea..4f2f723e2 100644 --- a/src/driver/record.cpp +++ b/src/driver/record.cpp @@ -1451,7 +1451,7 @@ bool CRecordManager::RunStartScript(void) return false; puts("[neutrino.cpp] executing " NEUTRINO_RECORDING_START_SCRIPT "."); - if (file_exists(NEUTRINO_RECORDING_START_SCRIPT) && my_system(NEUTRINO_RECORDING_START_SCRIPT,NULL,NULL) != 0) { + if (my_system(NEUTRINO_RECORDING_START_SCRIPT) != 0) { perror(NEUTRINO_RECORDING_START_SCRIPT " failed"); return false; } @@ -1465,7 +1465,7 @@ bool CRecordManager::RunStopScript(void) return false; puts("[neutrino.cpp] executing " NEUTRINO_RECORDING_ENDED_SCRIPT "."); - if (file_exists(NEUTRINO_RECORDING_ENDED_SCRIPT) && my_system(NEUTRINO_RECORDING_ENDED_SCRIPT,NULL,NULL) != 0) { + if (my_system(NEUTRINO_RECORDING_ENDED_SCRIPT) != 0) { perror(NEUTRINO_RECORDING_ENDED_SCRIPT " failed"); return false; } diff --git a/src/gui/audioplayer.cpp b/src/gui/audioplayer.cpp index 308cecdb3..c16d70b09 100644 --- a/src/gui/audioplayer.cpp +++ b/src/gui/audioplayer.cpp @@ -318,7 +318,7 @@ int CAudioPlayerGui::exec(CMenuTarget* parent, const std::string &actionKey) g_Sectionsd->setPauseScanning(true); puts("[audioplayer.cpp] executing " AUDIOPLAYER_START_SCRIPT "."); - if (file_exists(AUDIOPLAYER_START_SCRIPT) && my_system(AUDIOPLAYER_START_SCRIPT,NULL,NULL) != 0) + if (my_system(AUDIOPLAYER_START_SCRIPT) != 0) perror("Datei " AUDIOPLAYER_START_SCRIPT " fehlt.Bitte erstellen, wenn gebraucht.\nFile " AUDIOPLAYER_START_SCRIPT " not found. Please create if needed.\n"); show(); @@ -330,7 +330,7 @@ int CAudioPlayerGui::exec(CMenuTarget* parent, const std::string &actionKey) m_frameBuffer->paintBackground(); puts("[audioplayer.cpp] executing " AUDIOPLAYER_END_SCRIPT "."); - if (file_exists(AUDIOPLAYER_END_SCRIPT) && my_system(AUDIOPLAYER_END_SCRIPT,NULL,NULL) != 0) + if (my_system(AUDIOPLAYER_END_SCRIPT) != 0) perror("Datei " AUDIOPLAYER_END_SCRIPT " fehlt. Bitte erstellen, wenn gebraucht.\nFile " AUDIOPLAYER_END_SCRIPT " not found. Please create if needed.\n"); g_Zapit->unlockPlayBack(); diff --git a/src/gui/movieplayer.cpp b/src/gui/movieplayer.cpp index 0103724a8..d2b299c5b 100644 --- a/src/gui/movieplayer.cpp +++ b/src/gui/movieplayer.cpp @@ -176,7 +176,7 @@ int CMoviePlayerGui::exec(CMenuTarget * parent, const std::string & actionKey) startposition = 0; puts("[movieplayer.cpp] executing " MOVIEPLAYER_START_SCRIPT "."); - if (file_exists(MOVIEPLAYER_START_SCRIPT) && my_system(MOVIEPLAYER_START_SCRIPT,NULL,NULL) != 0) + if (my_system(MOVIEPLAYER_START_SCRIPT) != 0) perror(MOVIEPLAYER_START_SCRIPT " failed"); isMovieBrowser = false; @@ -214,7 +214,7 @@ int CMoviePlayerGui::exec(CMenuTarget * parent, const std::string & actionKey) bookmarkmanager->flush(); puts("[movieplayer.cpp] executing " MOVIEPLAYER_END_SCRIPT "."); - if (file_exists(MOVIEPLAYER_END_SCRIPT) && my_system(MOVIEPLAYER_END_SCRIPT,NULL,NULL) != 0) + if (my_system(MOVIEPLAYER_END_SCRIPT) != 0) perror(MOVIEPLAYER_END_SCRIPT " failed"); CVFD::getInstance()->setMode(CVFD::MODE_TVRADIO); diff --git a/src/gui/scan.cpp b/src/gui/scan.cpp index 0c6587f83..e11f0c099 100644 --- a/src/gui/scan.cpp +++ b/src/gui/scan.cpp @@ -249,7 +249,7 @@ int CScanTs::exec(CMenuTarget* /*parent*/, const std::string & actionKey) if(!manual) { g_RCInput->close_click(); - if (file_exists(NEUTRINO_SCAN_START_SCRIPT) && my_system(NEUTRINO_SCAN_START_SCRIPT,NULL,NULL) != 0) + if (my_system(NEUTRINO_SCAN_START_SCRIPT) != 0) perror(NEUTRINO_SCAN_START_SCRIPT " failed"); } @@ -311,7 +311,7 @@ int CScanTs::exec(CMenuTarget* /*parent*/, const std::string & actionKey) g_Zapit->stopScan(); if(!manual) { - if (file_exists(NEUTRINO_SCAN_STOP_SCRIPT) && my_system(NEUTRINO_SCAN_STOP_SCRIPT,NULL,NULL) != 0) + if (my_system(NEUTRINO_SCAN_STOP_SCRIPT) != 0) perror(NEUTRINO_SCAN_STOP_SCRIPT " failed"); g_RCInput->open_click(); } diff --git a/src/neutrino.cpp b/src/neutrino.cpp index b40506333..6aa7d9945 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -1737,7 +1737,7 @@ void wake_up( bool &wakeup) if(!wakeup){ const char *neutrino_leave_deepstandby_script = CONFIGDIR "/deepstandby.off"; printf("[%s] executing %s\n",__FILE__ ,neutrino_leave_deepstandby_script); - if (file_exists(neutrino_leave_deepstandby_script) && my_system(neutrino_leave_deepstandby_script,NULL,NULL) != 0) + if (my_system(neutrino_leave_deepstandby_script) != 0) perror( neutrino_leave_deepstandby_script ); } #endif @@ -2677,8 +2677,8 @@ _repeat: return messages_return::handled; } else if( msg == NeutrinoMessages::ANNOUNCE_RECORD) { - if(file_exists(NEUTRINO_RECORDING_TIMER_SCRIPT)) - my_system(NEUTRINO_RECORDING_TIMER_SCRIPT,NULL,NULL); + my_system(NEUTRINO_RECORDING_TIMER_SCRIPT); + if (g_settings.recording_type == RECORDING_FILE) { char * recordingDir = ((CTimerd::RecordingInfo*)data)->recordingDir; for(int i=0 ; i < NETWORK_NFS_NR_OF_ENTRIES ; i++) { @@ -2938,14 +2938,14 @@ void CNeutrinoApp::ExitRun(const bool /*write_si*/, int retcode) if(retcode) { const char *neutrino_enter_deepstandby_script = CONFIGDIR "/deepstandby.on"; printf("[%s] executing %s\n",__FILE__ ,neutrino_enter_deepstandby_script); - if (file_exists(neutrino_enter_deepstandby_script) && my_system(neutrino_enter_deepstandby_script,NULL,NULL) != 0) + if (my_system(neutrino_enter_deepstandby_script) != 0) perror(neutrino_enter_deepstandby_script ); printf("entering off state\n"); mode = mode_off; //CVFD::getInstance()->ShowText(g_Locale->getText(LOCALE_MAINMENU_SHUTDOWN)); - system("/etc/init.d/rcK"); + my_system("/etc/init.d/rcK"); system("/bin/sync"); system("/bin/umount -a"); sleep(1); @@ -3217,7 +3217,7 @@ void CNeutrinoApp::standbyMode( bool bOnOff, bool fromDeepStandby ) standby_channel_id = CZapit::getInstance()->GetCurrentChannelID(); puts("[neutrino.cpp] executing " NEUTRINO_ENTER_STANDBY_SCRIPT "."); - if (file_exists(NEUTRINO_ENTER_STANDBY_SCRIPT) && my_system(NEUTRINO_ENTER_STANDBY_SCRIPT,NULL,NULL) != 0) + if (my_system(NEUTRINO_ENTER_STANDBY_SCRIPT) != 0) perror(NEUTRINO_ENTER_STANDBY_SCRIPT " failed"); if(!CRecordManager::getInstance()->RecordingStatus()) @@ -3261,7 +3261,7 @@ void CNeutrinoApp::standbyMode( bool bOnOff, bool fromDeepStandby ) } puts("[neutrino.cpp] executing " NEUTRINO_LEAVE_STANDBY_SCRIPT "."); - if (file_exists(NEUTRINO_LEAVE_STANDBY_SCRIPT) && my_system(NEUTRINO_LEAVE_STANDBY_SCRIPT,NULL,NULL) != 0) + if (my_system(NEUTRINO_LEAVE_STANDBY_SCRIPT) != 0) perror(NEUTRINO_LEAVE_STANDBY_SCRIPT " failed"); CVFD::getInstance()->setMode(CVFD::MODE_TVRADIO); diff --git a/src/system/helpers.cpp b/src/system/helpers.cpp index 6038eea98..51657da65 100644 --- a/src/system/helpers.cpp +++ b/src/system/helpers.cpp @@ -58,10 +58,18 @@ void wakeup_hdd(const char *hdd_dir) sync(); } } - -int my_system(const char * cmd, const char * arg1, const char * arg2) +//use for script with full path +int my_system(const char * cmd) { - int i; + if (!file_exists(cmd)) + return -1; + + return my_system(cmd, NULL); +} + +int my_system(const char * cmd, const char * arg1, const char * arg2, const char * arg3, const char * arg4, const char * arg5, const char * arg6) +{ + int i=0 ,ret=0; pid_t pid; int maxfd = getdtablesize();// sysconf(_SC_OPEN_MAX); switch (pid = vfork()) @@ -72,16 +80,18 @@ int my_system(const char * cmd, const char * arg1, const char * arg2) case 0: /* child process */ for(i = 3; i < maxfd; i++) close(i); - if(execlp(cmd, cmd, arg1, arg2, NULL)) + if(execlp(cmd, cmd, arg1, arg2, arg3, arg3, arg4, arg5, arg6, NULL)) { - perror("exec"); + std::string txt = "ERROR: my_system \"" + (std::string) cmd + "\""; + perror(txt.c_str()); } - exit(0); + ret = 1; + _exit (0); // terminate c h i l d proces s only default: /* parent returns to calling process */ break; } waitpid(pid, 0, 0); - return 0; + return ret; } FILE* my_popen( pid_t& pid, const char *cmdstring, const char *type) diff --git a/src/system/helpers.h b/src/system/helpers.h index ec3074d6c..6b6b31ddc 100644 --- a/src/system/helpers.h +++ b/src/system/helpers.h @@ -22,7 +22,10 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -int my_system(const char * cmd, const char * arg1, const char * arg2); +int my_system(const char * cmd, const char * arg1, const char * arg2 = NULL, const char * arg3 = NULL, const char * arg4 = NULL, const char * arg5 = NULL, const char * arg6 = NULL); + +int my_system(const char * cmd); + FILE* my_popen( pid_t& pid, const char *cmdstring, const char *type); int safe_mkdir(char * path); int check_dir(const char * newdir); From bf1f9afc8d132b7fae0717889f8c40a8e54b163e Mon Sep 17 00:00:00 2001 From: satbaby Date: Sat, 15 Sep 2012 15:33:50 +0200 Subject: [PATCH 264/317] oops --- src/system/helpers.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/system/helpers.cpp b/src/system/helpers.cpp index 51657da65..8fc6d9d60 100644 --- a/src/system/helpers.cpp +++ b/src/system/helpers.cpp @@ -80,12 +80,12 @@ int my_system(const char * cmd, const char * arg1, const char * arg2, const char case 0: /* child process */ for(i = 3; i < maxfd; i++) close(i); - if(execlp(cmd, cmd, arg1, arg2, arg3, arg3, arg4, arg5, arg6, NULL)) + if(execlp(cmd, cmd, arg1, arg2, arg3, arg4, arg5, arg6, NULL)) { std::string txt = "ERROR: my_system \"" + (std::string) cmd + "\""; perror(txt.c_str()); + ret = -1; } - ret = 1; _exit (0); // terminate c h i l d proces s only default: /* parent returns to calling process */ break; From acaf807bbbf46bb82d1f1df9a8646207675d6fc2 Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Sat, 15 Sep 2012 21:26:12 +0200 Subject: [PATCH 265/317] - helpers.cpp: fix errorlevel of child-process; whitespace cleanup --- src/system/helpers.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/system/helpers.cpp b/src/system/helpers.cpp index 8fc6d9d60..ec730e2f8 100644 --- a/src/system/helpers.cpp +++ b/src/system/helpers.cpp @@ -69,7 +69,7 @@ int my_system(const char * cmd) int my_system(const char * cmd, const char * arg1, const char * arg2, const char * arg3, const char * arg4, const char * arg5, const char * arg6) { - int i=0 ,ret=0; + int i=0 ,ret=0, childExit=0; pid_t pid; int maxfd = getdtablesize();// sysconf(_SC_OPEN_MAX); switch (pid = vfork()) @@ -79,8 +79,8 @@ int my_system(const char * cmd, const char * arg1, const char * arg2, const char return -1; case 0: /* child process */ for(i = 3; i < maxfd; i++) - close(i); - if(execlp(cmd, cmd, arg1, arg2, arg3, arg4, arg5, arg6, NULL)) + close(i); + if(execlp(cmd, cmd, arg1, arg2, arg3, arg4, arg5, arg6, NULL)) { std::string txt = "ERROR: my_system \"" + (std::string) cmd + "\""; perror(txt.c_str()); @@ -90,7 +90,9 @@ int my_system(const char * cmd, const char * arg1, const char * arg2, const char default: /* parent returns to calling process */ break; } - waitpid(pid, 0, 0); + waitpid(pid, &childExit, 0); + if(childExit != 0) + ret = childExit; return ret; } From c7e764f93c2ad1cf1a43333c6d4913bde165d6a4 Mon Sep 17 00:00:00 2001 From: satbaby Date: Sun, 16 Sep 2012 16:42:26 +0200 Subject: [PATCH 266/317] sectionsd.cpp:-fix channelID --- src/eitd/sectionsd.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/eitd/sectionsd.cpp b/src/eitd/sectionsd.cpp index cedda59ee..90ba4c097 100644 --- a/src/eitd/sectionsd.cpp +++ b/src/eitd/sectionsd.cpp @@ -2160,8 +2160,8 @@ void CEitManager::getEventsServiceKey(t_channel_id serviceUniqueKey, CChannelEve dprintf("sendAllEvents for " PRINTF_CHANNEL_ID_TYPE "\n", serviceUniqueKey); eList.clear(); - serviceUniqueKey &= 0xFFFFFFFFFFFFULL; //0xFFFFFFFFFFFFULL for CREATE_CHANNEL_ID64 - if(serviceUniqueKey == 0) + t_channel_id serviceUniqueKey64 = serviceUniqueKey& 0xFFFFFFFFFFFFULL; //0xFFFFFFFFFFFFULL for CREATE_CHANNEL_ID64 + if(serviceUniqueKey64 == 0) return; // service Found @@ -2173,7 +2173,7 @@ void CEitManager::getEventsServiceKey(t_channel_id serviceUniqueKey, CChannelEve for (MySIeventsOrderServiceUniqueKeyFirstStartTimeEventUniqueKey::iterator e = mySIeventsOrderServiceUniqueKeyFirstStartTimeEventUniqueKey.begin(); e != mySIeventsOrderServiceUniqueKeyFirstStartTimeEventUniqueKey.end(); ++e) { - if ((*e)->get_channel_id() == serviceUniqueKey) { + if ((*e)->get_channel_id() == serviceUniqueKey64) { serviceIDfound = 1; bool copy = true; From 324a4721f4acba70f22a90d8e1699c75d378c959 Mon Sep 17 00:00:00 2001 From: satbaby Date: Sun, 16 Sep 2012 20:15:38 +0200 Subject: [PATCH 267/317] sectionsd.cpp:-fix search mode --- src/eitd/sectionsd.cpp | 4 +++- src/gui/eventlist.cpp | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/eitd/sectionsd.cpp b/src/eitd/sectionsd.cpp index 90ba4c097..412c860cd 100644 --- a/src/eitd/sectionsd.cpp +++ b/src/eitd/sectionsd.cpp @@ -2159,7 +2159,9 @@ void CEitManager::getEventsServiceKey(t_channel_id serviceUniqueKey, CChannelEve { dprintf("sendAllEvents for " PRINTF_CHANNEL_ID_TYPE "\n", serviceUniqueKey); - eList.clear(); + if(!eList.empty() && search == 0)//skip on search mode + eList.clear(); + t_channel_id serviceUniqueKey64 = serviceUniqueKey& 0xFFFFFFFFFFFFULL; //0xFFFFFFFFFFFFULL for CREATE_CHANNEL_ID64 if(serviceUniqueKey64 == 0) return; diff --git a/src/gui/eventlist.cpp b/src/gui/eventlist.cpp index 20afa9c3e..f0f2f5d21 100644 --- a/src/gui/eventlist.cpp +++ b/src/gui/eventlist.cpp @@ -1014,6 +1014,8 @@ bool CNeutrinoEventList::findEvents(void) { res = true; m_showChannel = true; // force the event list to paint the channel name + if(!evtlist.empty()) + evtlist.clear(); if(m_search_list == SEARCH_LIST_CHANNEL) { CEitManager::getInstance()->getEventsServiceKey(m_search_channel_id, evtlist, m_search_epg_item,m_search_keyword); From ff129578e6f1d0be06a5be46a6a41fc2980b7a89 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Mon, 17 Sep 2012 13:20:44 +0400 Subject: [PATCH 268/317] zapit/src/capmt.cpp: reduce debug --- src/zapit/src/capmt.cpp | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/zapit/src/capmt.cpp b/src/zapit/src/capmt.cpp index 301345ac5..47a680e65 100644 --- a/src/zapit/src/capmt.cpp +++ b/src/zapit/src/capmt.cpp @@ -1,9 +1,9 @@ /* - * $Id: cam.cpp,v 1.33 2004/04/04 20:20:45 obi Exp $ - * * (C) 2002 by Andreas Oberritter , * thegoodguy * + * Copyright (C) 2011-2012 CoolStream International Ltd + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or @@ -81,7 +81,7 @@ bool CCam::makeCaPmt(CZapitChannel * channel, uint8_t list, const CaIdVector &ca int len; unsigned char * buffer = channel->getRawPmt(len); - INFO("cam %x source %d camask %d list %02x buffer", (int) this, source_demux, camask, list); + DBG("cam %x source %d camask %d list %02x buffer", (int) this, source_demux, camask, list); if(!buffer) return false; @@ -149,7 +149,7 @@ int CCam::makeMask(int demux, bool add) if(demuxes[i] > 0) mask |= 1 << i; } - INFO("demuxes %d:%d:%d old mask %d new mask %d", demuxes[0], demuxes[1], demuxes[2], camask, mask); + DBG("demuxes %d:%d:%d old mask %d new mask %d", demuxes[0], demuxes[1], demuxes[2], camask, mask); return mask; } @@ -188,7 +188,7 @@ bool CCamManager::SetMode(t_channel_id channel_id, enum runmode mode, bool start printf("CCamManager: channel %llx not found\n", channel_id); return false; } - INFO("channel %llx [%s] mode %d %s update %d", channel_id, channel->getName().c_str(), mode, start ? "START" : "STOP", force_update); + //INFO("channel %llx [%s] mode %d %s update %d", channel_id, channel->getName().c_str(), mode, start ? "START" : "STOP", force_update); mutex.lock(); cammap_iterator_t it = channel_map.find(channel_id); @@ -226,11 +226,10 @@ bool CCamManager::SetMode(t_channel_id channel_id, enum runmode mode, bool start if(cam->getSource() > 0) source = cam->getSource(); - INFO("source %d old mask %d new mask %d force update %s", source, oldmask, newmask, force_update ? "yes" : "no"); + INFO("channel %llx [%s] mode %d %s src %d mask %d -> %d update %d", channel_id, channel->getName().c_str(), + mode, start ? "START" : "STOP", source, oldmask, newmask, force_update); + //INFO("source %d old mask %d new mask %d force update %s", source, oldmask, newmask, force_update ? "yes" : "no"); if((oldmask != newmask) || force_update) { -#if 0 - cam->setCaPmt(channel, source, newmask, true); -#endif cam->setCaMask(newmask); cam->setSource(source); if(newmask == 0) { From b194502795e8637c61e2501c638135c5ffa19cd7 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Mon, 17 Sep 2012 13:24:56 +0400 Subject: [PATCH 269/317] zapit/src/zapit.cpp: change volume debug level --- src/zapit/src/zapit.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/zapit/src/zapit.cpp b/src/zapit/src/zapit.cpp index eb86e40b5..6215f1772 100644 --- a/src/zapit/src/zapit.cpp +++ b/src/zapit/src/zapit.cpp @@ -465,15 +465,13 @@ bool CZapit::ZapIt(const t_channel_id channel_id, bool forupdate, bool startplay bool failed = false; CZapitChannel* newchannel; - DBG("[zapit] zapto channel id %llx diseqcType %d\n", channel_id, diseqcType); - abort_zapit = 0; if((newchannel = CServiceManager::getInstance()->FindChannel(channel_id, ¤t_is_nvod)) == NULL) { - DBG("channel_id " PRINTF_CHANNEL_ID_TYPE " not found", channel_id); + INFO("channel_id " PRINTF_CHANNEL_ID_TYPE " not found", channel_id); return false; } - printf("[zapit] zap to %s (%llx tp %llx)\n", newchannel->getName().c_str(), newchannel->getChannelID(), newchannel->getTransponderId()); + INFO("[zapit] zap to %s (%llx tp %llx)", newchannel->getName().c_str(), newchannel->getChannelID(), newchannel->getTransponderId()); CFrontend * fe = CFEManager::getInstance()->allocateFE(newchannel); if(fe == NULL) { @@ -624,7 +622,7 @@ int CZapit::GetPidVolume(t_channel_id channel_id, int pid, bool ac3) } } } -INFO("############################### channel %llx pid %x map size %d percent %d", channel_id, pid, vol_map.size(), percent); + DBG("channel %llx pid %x map size %d percent %d", channel_id, pid, vol_map.size(), percent); return percent; } @@ -637,7 +635,7 @@ void CZapit::SetVolume(int vol) current_volume = 100; int value = (current_volume * volume_percent) / 100; -INFO("############ volume %d percent %d -> %d ############", current_volume, volume_percent, value); + DBG("volume %d percent %d -> %d", current_volume, volume_percent, value); audioDecoder->setVolume(value, value); //volume_left = volume_right = current_volume; } From 7b2ac6d3374255c46c87e436e80605eb86f283a0 Mon Sep 17 00:00:00 2001 From: satbaby Date: Mon, 17 Sep 2012 14:17:16 +0200 Subject: [PATCH 270/317] streaminfo2.cpp:tiny fix --- src/gui/streaminfo2.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/gui/streaminfo2.cpp b/src/gui/streaminfo2.cpp index 07396e261..e508ea134 100644 --- a/src/gui/streaminfo2.cpp +++ b/src/gui/streaminfo2.cpp @@ -807,7 +807,9 @@ int CStreamInfo2::ts_setup () if(vpid == 0 && apid == 0) return -1; - dmx = new cDemux(0);//FIXME test + dmx = new cDemux(0); + if(!dmx) + return -1; dmx->Open(DMX_TP_CHANNEL, NULL, 3 * 3008 * 62); From d00032975a82a1faccc4fa0649d72a4f8c51521b Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Mon, 17 Sep 2012 21:55:53 +0200 Subject: [PATCH 271/317] - vdf: reducing flicker while going into standby --- src/neutrino.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 6aa7d9945..004e2dfd7 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -3186,9 +3186,6 @@ void CNeutrinoApp::standbyMode( bool bOnOff, bool fromDeepStandby ) frameBuffer->useBackground(false); frameBuffer->paintBackground(); - CVFD::getInstance()->Clear(); - CVFD::getInstance()->setMode(CVFD::MODE_STANDBY); - /* wasshift = */ CRecordManager::getInstance()->StopAutoRecord(); if(!CRecordManager::getInstance()->RecordingStatus()) { @@ -3209,6 +3206,9 @@ void CNeutrinoApp::standbyMode( bool bOnOff, bool fromDeepStandby ) } } + CVFD::getInstance()->Clear(); + CVFD::getInstance()->setMode(CVFD::MODE_STANDBY); + if(g_settings.mode_clock) { InfoClock->StopClock(); } From 1b1213c7bbd8fbdf44d91cc7f0d70e867418879c Mon Sep 17 00:00:00 2001 From: micha-bbg Date: Tue, 18 Sep 2012 02:40:08 +0200 Subject: [PATCH 272/317] * Update deutsch.locale --- data/locale/deutsch.locale | 2 ++ 1 file changed, 2 insertions(+) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index 8330c1220..1b6fe0dfc 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -976,6 +976,7 @@ menu.hint_scan_logical_hd Wenn der Kanal in SD und in HD verfügbar ist,\nwird H menu.hint_scan_longitude Geben Sie ihren Längengrad ein menu.hint_scan_manual Manueller Transponder-Scan mit ausgewählten Parametern menu.hint_scan_mod Wählen Sie eine Transponder-Modulation +menu.hint_scan_motor_18v Benutze 18V für Motorbewegung menu.hint_scan_motor_speed Rotor-Bewegungsgeschwindigkeit in 1/10 Grad pro Sekunde menu.hint_scan_motorpos Wählen Sie eine gespeicherten Positions-Nummer für diesen Satelliten menu.hint_scan_nid Hier können Sie ihre Kabelnetzwerk-Id in dezimal eingeben @@ -1159,6 +1160,7 @@ motorcontrol.store Speichere Motorposition (a) motorcontrol.timed_mode Zeitgesteuerter Schrittweitenmodus motorcontrol.user_menu Benutzermenü motorcontrol.west_limit Setze westliches (soft) Limit +moviebrowser.book_add Lesezeichen setzen moviebrowser.book_clear_all Lösche alle moviebrowser.book_head Markierungen moviebrowser.book_lastmoviestop letzter Wiedergabestopp: From 807dce94976a2f7d0da1d494eeab5ea487d78f93 Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Thu, 30 Aug 2012 15:42:31 +0200 Subject: [PATCH 273/317] *CInfoViewer: don't show tuner icon with single boxes --- src/gui/infoviewer.cpp | 3 ++- src/gui/infoviewer_bb.cpp | 6 ++++-- src/gui/osd_setup.cpp | 9 ++++++--- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/gui/infoviewer.cpp b/src/gui/infoviewer.cpp index 043bc0a90..0b6883847 100644 --- a/src/gui/infoviewer.cpp +++ b/src/gui/infoviewer.cpp @@ -1152,7 +1152,8 @@ int CInfoViewer::handleMsg (const neutrino_msg_t msg, neutrino_msg_data_t data) infoViewerBB->showIcon_SubT(); //infoViewerBB->showIcon_CA_Status(0); infoViewerBB->showIcon_Resolution(); - infoViewerBB->showIcon_Tuner(); + if (CFEManager::getInstance()->getMode() != CFEManager::FE_MODE_SINGLE) + infoViewerBB->showIcon_Tuner(); } } return messages_return::handled; diff --git a/src/gui/infoviewer_bb.cpp b/src/gui/infoviewer_bb.cpp index b8e2bb967..e03621c76 100644 --- a/src/gui/infoviewer_bb.cpp +++ b/src/gui/infoviewer_bb.cpp @@ -180,8 +180,10 @@ void CInfoViewerBB::getBBIconInfo() iconView = checkBBIcon(NEUTRINO_ICON_SCRAMBLED2, &w, &h); break; case CInfoViewerBB::ICON_TUNER: - if (g_settings.infobar_show_tuner == 1) { - iconView = checkBBIcon(NEUTRINO_ICON_TUNER_1, &w, &h); + if (CFEManager::getInstance()->getMode() != CFEManager::FE_MODE_SINGLE) { + if (g_settings.infobar_show_tuner == 1) { + iconView = checkBBIcon(NEUTRINO_ICON_TUNER_1, &w, &h); + } } break; default: diff --git a/src/gui/osd_setup.cpp b/src/gui/osd_setup.cpp index 688c37c87..8dd62f4fc 100644 --- a/src/gui/osd_setup.cpp +++ b/src/gui/osd_setup.cpp @@ -52,6 +52,7 @@ #include #include +#include #include extern CRemoteControl * g_RemoteControl; @@ -761,9 +762,11 @@ void COsdSetup::showOsdInfobarSetup(CMenuWidget *menu_infobar) menu_infobar->addItem(mc); // tuner icon - mc = new CMenuOptionChooser(LOCALE_MISCSETTINGS_INFOBAR_SHOW_TUNER, &g_settings.infobar_show_tuner, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); - mc->setHint("", LOCALE_MENU_HINT_INFOBAR_TUNER); - menu_infobar->addItem(mc); + if (CFEManager::getInstance()->getMode() != CFEManager::FE_MODE_SINGLE){ + mc = new CMenuOptionChooser(LOCALE_MISCSETTINGS_INFOBAR_SHOW_TUNER, &g_settings.infobar_show_tuner, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); + mc->setHint("", LOCALE_MENU_HINT_INFOBAR_TUNER); + menu_infobar->addItem(mc); + } // show on epg change mc = new CMenuOptionChooser(LOCALE_MISCSETTINGS_INFOBAR_SHOW, &g_settings.infobar_show, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); From 5a5ec2bba068b76687a38fd6c607d87c9b155829 Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Thu, 30 Aug 2012 15:55:53 +0200 Subject: [PATCH 274/317] *CTimerList: show warnings on overlapping recording only in single mode NOTE: Only tested on single box by me, please send feedback --- src/gui/timerlist.cpp | 93 +++++++++++++++++++++++-------------------- 1 file changed, 49 insertions(+), 44 deletions(-) diff --git a/src/gui/timerlist.cpp b/src/gui/timerlist.cpp index 29a95527f..f5835073f 100644 --- a/src/gui/timerlist.cpp +++ b/src/gui/timerlist.cpp @@ -66,6 +66,7 @@ #include #include +#include #include @@ -1210,51 +1211,55 @@ int CTimerList::newTimer() bool askUserOnTimerConflict(time_t announceTime, time_t stopTime) { - CTimerdClient Timer; - CTimerd::TimerList overlappingTimers = Timer.getOverlappingTimers(announceTime,stopTime); - //printf("[CTimerdClient] attention\n%d\t%d\t%d conflicts with:\n",timerNew.announceTime,timerNew.alarmTime,timerNew.stopTime); + if (CFEManager::getInstance()->getMode() == CFEManager::FE_MODE_SINGLE){ + CTimerdClient Timer; + CTimerd::TimerList overlappingTimers = Timer.getOverlappingTimers(announceTime,stopTime); + //printf("[CTimerdClient] attention\n%d\t%d\t%d conflicts with:\n",timerNew.announceTime,timerNew.alarmTime,timerNew.stopTime); - std::string timerbuf = g_Locale->getText(LOCALE_TIMERLIST_OVERLAPPING_TIMER); - timerbuf += "\n"; - for (CTimerd::TimerList::iterator it = overlappingTimers.begin(); - it != overlappingTimers.end(); ++it) - { - timerbuf += CTimerList::convertTimerType2String(it->eventType); - timerbuf += " ("; - timerbuf += CTimerList::convertChannelId2String(it->channel_id); // UTF-8 - if (it->epgID != 0) - { - CEPGData epgdata; - if (CEitManager::getInstance()->getEPGid(it->epgID, it->epg_starttime, &epgdata)) - { - timerbuf += ":"; - timerbuf += epgdata.title; - } - else if (strlen(it->epgTitle)!=0) - { - timerbuf += ":"; - timerbuf += it->epgTitle; - } - } - timerbuf += ")"; - - timerbuf += ":\n"; - char at[25] = {0}; - struct tm *annTime = localtime(&(it->announceTime)); - strftime(at,20,"%d.%m. %H:%M",annTime); - timerbuf += at; - timerbuf += " - "; - - char st[25] = {0}; - struct tm *sTime = localtime(&(it->stopTime)); - strftime(st,20,"%d.%m. %H:%M",sTime); - timerbuf += st; + std::string timerbuf = g_Locale->getText(LOCALE_TIMERLIST_OVERLAPPING_TIMER); timerbuf += "\n"; - //printf("%d\t%d\t%d\n",it->announceTime,it->alarmTime,it->stopTime); - } - //printf("message:\n%s\n",timerbuf.c_str()); - // todo: localize message - //g_Locale->getText(TIMERLIST_OVERLAPPING_MESSAGE); + for (CTimerd::TimerList::iterator it = overlappingTimers.begin(); + it != overlappingTimers.end(); ++it) + { + timerbuf += CTimerList::convertTimerType2String(it->eventType); + timerbuf += " ("; + timerbuf += CTimerList::convertChannelId2String(it->channel_id); // UTF-8 + if (it->epgID != 0) + { + CEPGData epgdata; + if (CEitManager::getInstance()->getEPGid(it->epgID, it->epg_starttime, &epgdata)) + { + timerbuf += ":"; + timerbuf += epgdata.title; + } + else if (strlen(it->epgTitle)!=0) + { + timerbuf += ":"; + timerbuf += it->epgTitle; + } + } + timerbuf += ")"; - return (ShowMsgUTF(LOCALE_MESSAGEBOX_INFO,timerbuf,CMessageBox::mbrNo,CMessageBox::mbNo|CMessageBox::mbYes) == CMessageBox::mbrYes); + timerbuf += ":\n"; + char at[25] = {0}; + struct tm *annTime = localtime(&(it->announceTime)); + strftime(at,20,"%d.%m. %H:%M",annTime); + timerbuf += at; + timerbuf += " - "; + + char st[25] = {0}; + struct tm *sTime = localtime(&(it->stopTime)); + strftime(st,20,"%d.%m. %H:%M",sTime); + timerbuf += st; + timerbuf += "\n"; + //printf("%d\t%d\t%d\n",it->announceTime,it->alarmTime,it->stopTime); + } + //printf("message:\n%s\n",timerbuf.c_str()); + // todo: localize message + //g_Locale->getText(TIMERLIST_OVERLAPPING_MESSAGE); + + return (ShowMsgUTF(LOCALE_MESSAGEBOX_INFO,timerbuf,CMessageBox::mbrNo,CMessageBox::mbNo|CMessageBox::mbYes) == CMessageBox::mbrYes); + } + else + return true; } From ca748c6f48a8cd2fbe21bd79356e33b5f8e025d6 Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Tue, 18 Sep 2012 11:53:31 +0200 Subject: [PATCH 275/317] *COsdSetup: show correct option in infobar tuner icon setup item It could be confused for single stb users to see the option 'ON', although it is not possible. So it's better to show only a possible or real option at item, if stb is in single mode or item is disabled, but the real value of g_settings.infobar_show_tuner is not touched. --- src/gui/osd_setup.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/gui/osd_setup.cpp b/src/gui/osd_setup.cpp index 8dd62f4fc..610642622 100644 --- a/src/gui/osd_setup.cpp +++ b/src/gui/osd_setup.cpp @@ -762,11 +762,18 @@ void COsdSetup::showOsdInfobarSetup(CMenuWidget *menu_infobar) menu_infobar->addItem(mc); // tuner icon + bool mc_active = false; + int show_tuner_icon = 0; + // show possible option if we in single box mode, but don't touch the real settings + int *p_show_tuner_icon = &show_tuner_icon; if (CFEManager::getInstance()->getMode() != CFEManager::FE_MODE_SINGLE){ - mc = new CMenuOptionChooser(LOCALE_MISCSETTINGS_INFOBAR_SHOW_TUNER, &g_settings.infobar_show_tuner, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); - mc->setHint("", LOCALE_MENU_HINT_INFOBAR_TUNER); - menu_infobar->addItem(mc); + mc_active = true; + // use the real value of g_settings.infobar_show_tuner + p_show_tuner_icon = &g_settings.infobar_show_tuner; } + mc = new CMenuOptionChooser(LOCALE_MISCSETTINGS_INFOBAR_SHOW_TUNER, p_show_tuner_icon, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, mc_active); + mc->setHint("", LOCALE_MENU_HINT_INFOBAR_TUNER); + menu_infobar->addItem(mc); // show on epg change mc = new CMenuOptionChooser(LOCALE_MISCSETTINGS_INFOBAR_SHOW, &g_settings.infobar_show, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); From a84ba36e0b24332d8653fedaac11b6eb66311f96 Mon Sep 17 00:00:00 2001 From: satbaby Date: Tue, 18 Sep 2012 18:38:03 +0200 Subject: [PATCH 276/317] use new for buf, fix possible memlaek --- src/gui/moviebrowser.cpp | 27 ++++++++++++++++----------- src/gui/streaminfo2.cpp | 27 +++++++++++++++++---------- src/gui/streaminfo2.h | 2 +- 3 files changed, 34 insertions(+), 22 deletions(-) diff --git a/src/gui/moviebrowser.cpp b/src/gui/moviebrowser.cpp index 199f3a485..6f14c3d2c 100644 --- a/src/gui/moviebrowser.cpp +++ b/src/gui/moviebrowser.cpp @@ -3948,7 +3948,7 @@ static off64_t cut_movie(MI_MOVIE_INFO * minfo, CMovieInfo * cmovie) char spart[255]; char dpart[255]; char npart[255]; - unsigned char * buf; + unsigned char psi[PSI_SIZE]; int r, i; off64_t sdone, spos; @@ -3965,9 +3965,9 @@ static off64_t cut_movie(MI_MOVIE_INFO * minfo, CMovieInfo * cmovie) time_t tt1; off64_t bpos, bskip; - buf = (unsigned char *) malloc(BUF_SIZE); + unsigned char * buf = new unsigned char[BUF_SIZE]; if(buf == 0) { - perror("malloc"); + perror("new"); return 0; } @@ -4019,7 +4019,10 @@ printf("cut: end bookmark %d at %lld\n", bcount, books[bcount].pos); bcount++; } printf("\n"); - if(!bcount) return 0; + if(!bcount){ + delete [] buf; + return 0; + } qsort(books, bcount, sizeof(struct mybook), compare_book); for(i = 0; i < bcount; i++) { if(books[i].ok) { @@ -4051,6 +4054,7 @@ printf("\n********* new file %s expected size %lld, start time %s", dpart, newsi dstfd = open (dpart, O_CREAT|O_WRONLY|O_TRUNC| O_LARGEFILE, 0644); if(dstfd < 0) { perror(dpart); + delete [] buf; return 0; } part = 0; @@ -4179,7 +4183,7 @@ printf("********* total written %lld tooks %ld secs end time %s", spos, tt1-tt, lseek64 (dstfd, 0, SEEK_SET); ret_err: close(dstfd); - free(buf); + delete [] buf; if(was_cancel) g_RCInput->postMsg(CRCInput::RC_home, 0); return retval; @@ -4195,7 +4199,6 @@ static off64_t copy_movie(MI_MOVIE_INFO * minfo, CMovieInfo * cmovie, bool onefi char spart[255]; char dpart[255]; char npart[255]; - unsigned char * buf; unsigned char psi[PSI_SIZE]; int r, i; off64_t sdone, spos = 0, btotal = 0; @@ -4209,9 +4212,9 @@ static off64_t copy_movie(MI_MOVIE_INFO * minfo, CMovieInfo * cmovie, bool onefi bool was_cancel = false; int retval = 0; - buf = (unsigned char *) malloc(BUF_SIZE); + unsigned char * buf = new unsigned char[BUF_SIZE]; if(buf == 0) { - perror("malloc"); + perror("new"); return 0; } @@ -4247,8 +4250,10 @@ printf("copy: jump bookmark %d at %lld len %lld\n", bcount, books[bcount].pos, b bcount++; } } - if(!bcount) return 0; - + if(!bcount){ + delete [] buf; + return 0; + } tt = time(0); printf("********* %d boormarks, to %s file(s), expected size to copy %lld, start time %s", bcount, onefile ? "one" : "many", newsize, ctime (&tt)); snprintf(npart, sizeof(npart), "%s", name); @@ -4389,7 +4394,7 @@ printf("copy: ********* %s: total written %lld took %ld secs\n", dpart, spos, tt } retval = 1; ret_err: - free(buf); + delete [] buf; if(was_cancel) g_RCInput->postMsg(CRCInput::RC_home, 0); return retval; diff --git a/src/gui/streaminfo2.cpp b/src/gui/streaminfo2.cpp index e508ea134..25ca76582 100644 --- a/src/gui/streaminfo2.cpp +++ b/src/gui/streaminfo2.cpp @@ -776,8 +776,6 @@ void CStreamInfo2::paintCASystem(int xpos, int ypos) /* * some definition */ -#define TS_LEN 188 -#define TS_BUF_SIZE (TS_LEN * 2048) /* fix dmx buffer size */ static unsigned long timeval_to_ms (const struct timeval *tv) { @@ -789,7 +787,6 @@ long delta_time_ms (struct timeval *tv, struct timeval *last_tv) return timeval_to_ms (tv) - timeval_to_ms (last_tv); } -uint64_t b_total; static cDemux * dmx; int CStreamInfo2::ts_setup () @@ -804,13 +801,22 @@ int CStreamInfo2::ts_setup () if( !g_RemoteControl->current_PIDs.APIDs.empty() ) apid = g_RemoteControl->current_PIDs.APIDs[g_RemoteControl->current_PIDs.PIDs.selected_apid].pid; + short ret = -1; if(vpid == 0 && apid == 0) - return -1; + return ret; dmx = new cDemux(0); if(!dmx) - return -1; + return ret; +#define TS_LEN 188 +#define TS_BUF_SIZE (TS_LEN * 2048) /* fix dmx buffer size */ + dmxbuf = new unsigned char[TS_BUF_SIZE]; + if(!dmxbuf){ + delete dmx; + dmx = NULL; + return ret; + } dmx->Open(DMX_TP_CHANNEL, NULL, 3 * 3008 * 62); if(vpid > 0) { @@ -825,8 +831,8 @@ int CStreamInfo2::ts_setup () gettimeofday (&first_tv, NULL); last_tv.tv_sec = first_tv.tv_sec; last_tv.tv_usec = first_tv.tv_usec; - b_total = 0; - return 0; + ret = b_total = 0; + return ret; } int CStreamInfo2::update_rate () @@ -834,8 +840,6 @@ int CStreamInfo2::update_rate () if(!dmx) return 0; - - unsigned char buf[TS_BUF_SIZE] = {0}; long b = 0; int ret = 0; @@ -843,7 +847,7 @@ int CStreamInfo2::update_rate () int timeout = 100; - b_len = dmx->Read(buf, sizeof (buf), timeout); + b_len = dmx->Read(dmxbuf, TS_BUF_SIZE, timeout); //printf("ts: read %d\n", b_len); b = b_len; @@ -881,6 +885,9 @@ int CStreamInfo2::ts_close () if(dmx) delete dmx; dmx = NULL; + if(dmxbuf) + delete [] dmxbuf; + dmxbuf = NULL; return 0; } diff --git a/src/gui/streaminfo2.h b/src/gui/streaminfo2.h index dd6b553d2..e24c48ca4 100644 --- a/src/gui/streaminfo2.h +++ b/src/gui/streaminfo2.h @@ -84,7 +84,7 @@ class CStreamInfo2 : public CMenuTarget uint64_t bit_s; uint64_t abit_s; uint64_t b_total; - + unsigned char *dmxbuf; int update_rate(); int ts_setup(); int ts_close(); From 8f509f5dcf41f181440ee4dea37bedee293367d7 Mon Sep 17 00:00:00 2001 From: satbaby Date: Tue, 18 Sep 2012 19:43:24 +0200 Subject: [PATCH 277/317] use new for buf, fix for last commit --- src/gui/streaminfo2.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gui/streaminfo2.cpp b/src/gui/streaminfo2.cpp index 25ca76582..d5e969656 100644 --- a/src/gui/streaminfo2.cpp +++ b/src/gui/streaminfo2.cpp @@ -93,6 +93,7 @@ CStreamInfo2::CStreamInfo2 () rate.min_short_average = 0; box_h = 0; box_h2 = 0; + dmxbuf = NULL; } CStreamInfo2::~CStreamInfo2 () From 87f7a224f762c2641014df157df653ae3d9fcca6 Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Wed, 19 Sep 2012 21:23:50 +0200 Subject: [PATCH 278/317] - infoviewerbb: determination of hdd-percentage in a seperate thread --- src/gui/infoviewer_bb.cpp | 61 +++++++++++++++++++++++++++------------ src/gui/infoviewer_bb.h | 7 +++++ src/system/helpers.cpp | 35 ++++++++++++++++------ src/system/helpers.h | 3 +- 4 files changed, 78 insertions(+), 28 deletions(-) diff --git a/src/gui/infoviewer_bb.cpp b/src/gui/infoviewer_bb.cpp index e03621c76..3ef336473 100644 --- a/src/gui/infoviewer_bb.cpp +++ b/src/gui/infoviewer_bb.cpp @@ -86,6 +86,8 @@ CInfoViewerBB::CInfoViewerBB() pthread_detach(scrambledT); } #endif + hddperT = 0; + hddperTflag = false; Init(); } @@ -117,6 +119,10 @@ CInfoViewerBB::~CInfoViewerBB() pthread_cancel(scrambledT); scrambledT = 0; } + if(hddperT) { + pthread_cancel(hddperT); + hddperT = 0; + } } CInfoViewerBB* CInfoViewerBB::getInstance() @@ -589,28 +595,47 @@ void CInfoViewerBB::showIcon_Tuner() void CInfoViewerBB::showSysfsHdd() { - if ((g_settings.infobar_show_sysfs_hdd) && (is_visible)) { - long blocks_used; - struct statfs s; - int per = 0; - if (::statfs("/", &s) == 0 && s.f_blocks) { -// per = (s.f_blocks - s.f_bfree) / (s.f_blocks/100); - blocks_used = s.f_blocks - s.f_bfree; - per = (blocks_used * 100ULL) / s.f_blocks; + if (g_settings.infobar_show_sysfs_hdd) { + //sysFS info + int sysper = 0; + sysper = get_fs_usage("/"); + showBarSys(sysper); + + //HDD info in a seperate thread + if(!hddperTflag) { + hddperTflag=true; + pthread_create(&hddperT, NULL, hddperThread, (void*) this); + pthread_detach(hddperT); } - varscale->paintProgressBar(bbIconMinX, BBarY + InfoHeightY_Info / 2 - 2 - 6, hddwidth , 6, per, 100); - per = 0; - //HD info - if(!check_dir(g_settings.network_nfs_recordingdir)){ - if (::statfs(g_settings.network_nfs_recordingdir, &s) == 0 && s.f_blocks) { - blocks_used = s.f_blocks - s.f_bfree; - per = (blocks_used * 100ULL) / s.f_blocks; - } - } - hddscale->paintProgressBar(bbIconMinX, BBarY + InfoHeightY_Info / 2 + 2, hddwidth, 6, per, 100); } } +void* CInfoViewerBB::hddperThread(void *arg) +{ + CInfoViewerBB *infoViewerBB = (CInfoViewerBB*) arg; + + int hddper = 0; + hddper = get_fs_usage(g_settings.network_nfs_recordingdir); + infoViewerBB->showBarHdd(hddper); + + infoViewerBB->hddperTflag=false; + pthread_exit(NULL); +} + +void CInfoViewerBB::showBarSys(int percent) +{ + if (is_visible) + varscale->paintProgressBar(bbIconMinX, BBarY + InfoHeightY_Info / 2 - 2 - 6, hddwidth, 6, percent, 100); +} + +void CInfoViewerBB::showBarHdd(int percent) +{ + if (percent < 0) + percent = 0; + if (is_visible) + hddscale->paintProgressBar(bbIconMinX, BBarY + InfoHeightY_Info / 2 + 2 + 0, hddwidth, 6, percent, 100); +} + void CInfoViewerBB::paint_ca_icons(int caid, char * icon, int &icon_space_offset) { char buf[20]; diff --git a/src/gui/infoviewer_bb.h b/src/gui/infoviewer_bb.h index 349be1a7a..84353c6b9 100644 --- a/src/gui/infoviewer_bb.h +++ b/src/gui/infoviewer_bb.h @@ -121,6 +121,13 @@ class CInfoViewerBB static void* scrambledThread(void *arg); void scrambledCheck(bool force=false); + void showBarSys(int percent = 0); + void showBarHdd(int percent = 0); + + pthread_t hddperT; + static void* hddperThread(void *arg); + bool hddperTflag; + public: CInfoViewerBB(); ~CInfoViewerBB(); diff --git a/src/system/helpers.cpp b/src/system/helpers.cpp index ec730e2f8..334163f51 100644 --- a/src/system/helpers.cpp +++ b/src/system/helpers.cpp @@ -158,11 +158,11 @@ int safe_mkdir(char * path) return ret; } -int check_dir(const char * newdir) +int check_dir(const char * dir) { - - struct statfs s; - if (::statfs(newdir, &s) == 0) { + int ret = 0; + struct statfs s; + if (::statfs(dir, &s) == 0) { switch (s.f_type) /* f_type is long */ { case 0xEF53L: /*EXT2 & EXT3*/ @@ -174,12 +174,29 @@ int check_dir(const char * newdir) case 0x58465342L: /*xfs*/ case 0x4d44L: /*msdos*/ case 0x0187: /* AUTOFS_SUPER_MAGIC */ - case 0x858458f6: /*ramfs*/ - return 0;//ok + case 0x858458f6L: /*ramfs*/ + case 0x72b6L: /*jffs2*/ + break; //ok default: - fprintf( stderr,"%s Unknow File system type: %i\n",newdir ,s.f_type); - break; + fprintf(stderr, "%s Unknow File system type: %i\n" ,dir ,s.f_type); + ret = -1; + break; // error } } - return 1; // error + return ret; +} + +int get_fs_usage(const char * dir) +{ + int ret = check_dir(dir); + long blocks_used; + struct statfs s; + + if (ret == 0) { + if (::statfs(dir, &s) == 0 && s.f_blocks) { + blocks_used = s.f_blocks - s.f_bfree; + ret = (blocks_used * 100ULL) / s.f_blocks; + } + } + return ret; } diff --git a/src/system/helpers.h b/src/system/helpers.h index 6b6b31ddc..ee1a09f8a 100644 --- a/src/system/helpers.h +++ b/src/system/helpers.h @@ -28,8 +28,9 @@ int my_system(const char * cmd); FILE* my_popen( pid_t& pid, const char *cmdstring, const char *type); int safe_mkdir(char * path); -int check_dir(const char * newdir); bool file_exists(const char *filename); void wakeup_hdd(const char *hdd_dir); +int check_dir(const char * dir); +int get_fs_usage(const char * dir); #endif From 708b6a3ad0cb901e2df11f9e74326f093b24e851 Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Wed, 19 Sep 2012 21:58:21 +0200 Subject: [PATCH 279/317] - neutrino.cpp: localize "Saving EPG" --- data/locale/deutsch.locale | 1 + data/locale/english.locale | 1 + src/neutrino.cpp | 10 +++++----- src/system/locals.h | 1 + src/system/locals_intern.h | 1 + 5 files changed, 9 insertions(+), 5 deletions(-) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index 1b6fe0dfc..2ca31dd32 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -292,6 +292,7 @@ date.Sun So date.Thu Do date.Tue Di date.Wed Mi +epg.saving Speichere EPG epgextended.actors Darsteller epgextended.director Regie epgextended.guests Gäste diff --git a/data/locale/english.locale b/data/locale/english.locale index 3219c99bb..3f3100cbf 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -292,6 +292,7 @@ date.Sun Sun date.Thu Thu date.Tue Tue date.Wed Wed +epg.saving Saving EPG epgextended.actors Actors epgextended.director Director epgextended.guests Guests diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 004e2dfd7..369f89771 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -3063,16 +3063,16 @@ void CNeutrinoApp::saveEpg(bool cvfd_mode) { struct stat my_stat; if(stat(g_settings.epg_dir.c_str(), &my_stat) == 0){ - const char *save_txt = "Saving EPG"; - printf("%s to %s....\n",save_txt, g_settings.epg_dir.c_str()); - neutrino_msg_t msg; - neutrino_msg_data_t data; + printf("[neutrino] Saving EPG to %s...\n", g_settings.epg_dir.c_str()); CVFD::getInstance()->Clear(); CVFD::getInstance()->setMode(CVFD::MODE_TVRADIO); - CVFD::getInstance ()->ShowText(save_txt); + CVFD::getInstance()->ShowText(g_Locale->getText(LOCALE_EPG_SAVING)); g_Sectionsd->writeSI2XML(g_settings.epg_dir.c_str()); + + neutrino_msg_t msg; + neutrino_msg_data_t data; while( true ) { g_RCInput->getMsg(&msg, &data, 1200); // 120 secs.. if (( msg == CRCInput::RC_timeout ) || (msg == NeutrinoMessages::EVT_SI_FINISHED)) { diff --git a/src/system/locals.h b/src/system/locals.h index fc39162e1..272c29188 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -319,6 +319,7 @@ typedef enum LOCALE_DATE_THU, LOCALE_DATE_TUE, LOCALE_DATE_WED, + LOCALE_EPG_SAVING, LOCALE_EPGEXTENDED_ACTORS, LOCALE_EPGEXTENDED_DIRECTOR, LOCALE_EPGEXTENDED_GUESTS, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index eedc2a634..2879066a0 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -319,6 +319,7 @@ const char * locale_real_names[] = "date.Thu", "date.Tue", "date.Wed", + "epg.saving", "epgextended.actors", "epgextended.director", "epgextended.guests", From 768a064629aaf41e95801cbb94c54d2cf6256d55 Mon Sep 17 00:00:00 2001 From: satbaby Date: Thu, 20 Sep 2012 22:43:00 +0200 Subject: [PATCH 280/317] Zombie Killer ;) --- src/gui/plugins.cpp | 51 ++++----------------------------------------- 1 file changed, 4 insertions(+), 47 deletions(-) diff --git a/src/gui/plugins.cpp b/src/gui/plugins.cpp index 06b8b88e8..80836e7a1 100644 --- a/src/gui/plugins.cpp +++ b/src/gui/plugins.cpp @@ -50,6 +50,7 @@ #include #include #include +#include #include #include @@ -308,52 +309,6 @@ void CPlugins::startPlugin(const char * const name) } -FILE* popen2( pid_t& pid, const char *cmdstring, const char *type) { - int pfd[2] ={-1,-1}; - FILE *fp = NULL; - - /* only allow "r" or "w" */ - if ((type[0] != 'r' && type[0] != 'w') || type[1] != 0) { - errno = EINVAL; /* required by POSIX */ - return(NULL); - } - - if (pipe(pfd) < 0) - return(NULL); /* errno set by pipe() */ - - if ((pid = vfork()) < 0) { - return(NULL); /* errno set by vfork() */ - } else if (pid == 0) { /* child */ - if (*type == 'r') { - close(pfd[0]); - if (pfd[1] != STDOUT_FILENO) { - dup2(pfd[1], STDOUT_FILENO); - close(pfd[1]); - } - } else { - close(pfd[1]); - if (pfd[0] != STDIN_FILENO) { - dup2(pfd[0], STDIN_FILENO); - close(pfd[0]); - } - } - execl("/bin/sh", "sh", "-c", cmdstring, (char *)0); - exit(0); - } - - /* parent continues... */ - if (*type == 'r') { - close(pfd[1]); - if ((fp = fdopen(pfd[0], type)) == NULL) - return(NULL); - } else { - close(pfd[0]); - if ((fp = fdopen(pfd[1], type)) == NULL) - return(NULL); - } - return(fp); -} - void CPlugins::startScriptPlugin(int number) { const char *script = plugin_list[number].pluginfile.c_str(); @@ -375,8 +330,10 @@ void CPlugins::startScriptPlugin(int number) { scriptOutput += output; } - kill(pid, SIGINT ); pclose(f); + int s; + while (waitpid(pid,&s,WNOHANG)>0); + kill(pid,SIGTERM); if(output) free(output); } From 5dc2656b8e70de63f8c3425952a5865b2728e9a0 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Fri, 21 Sep 2012 17:41:28 +0400 Subject: [PATCH 281/317] system/helpers.cpp: add function to get total/free mem without cached/buffers --- src/system/helpers.cpp | 32 ++++++++++++++++++++++++++++++++ src/system/helpers.h | 1 + 2 files changed, 33 insertions(+) diff --git a/src/system/helpers.cpp b/src/system/helpers.cpp index 334163f51..cdb1ea84e 100644 --- a/src/system/helpers.cpp +++ b/src/system/helpers.cpp @@ -33,6 +33,7 @@ #include /* or */ #include #include +#include #include @@ -200,3 +201,34 @@ int get_fs_usage(const char * dir) } return ret; } + +bool get_mem_usage(unsigned long &kbtotal, unsigned long &kbfree) +{ + unsigned long cached = 0, buffers = 0; + kbtotal = kbfree = 0; + + FILE * f = fopen("/proc/meminfo", "r"); + if (!f) + return false; + + char buffer[256]; + while (fgets(buffer, 255, f)) { + if (!strncmp(buffer, "Mem", 3)) { + if (!strncmp(buffer+3, "Total", 5)) + kbtotal = strtoul(buffer+9, NULL, 10); + else if (!strncmp(buffer+3, "Free", 4)) + kbfree = strtoul(buffer+8, NULL, 10); + } + else if (!strncmp(buffer, "Buffers", 7)) { + buffers = strtoul(buffer+8, NULL, 10); + } + else if (!strncmp(buffer, "Cached", 6)) { + cached = strtoul(buffer+7, NULL, 10); + break; + } + } + fclose(f); + kbfree = kbfree + cached + buffers; + printf("mem: total %ld cached %ld free %ld\n", kbtotal, cached, kbfree); + return true; +} diff --git a/src/system/helpers.h b/src/system/helpers.h index ee1a09f8a..7707cce05 100644 --- a/src/system/helpers.h +++ b/src/system/helpers.h @@ -32,5 +32,6 @@ bool file_exists(const char *filename); void wakeup_hdd(const char *hdd_dir); int check_dir(const char * dir); int get_fs_usage(const char * dir); +bool get_mem_usage(unsigned long &total, unsigned long &free); #endif From bc74b0c3a61ffa49b2d355820cea51bc53814874 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Fri, 21 Sep 2012 17:45:19 +0400 Subject: [PATCH 282/317] gui/dboxinfo.cpp: show free mem without cached/buffers; add 5 seconds timer to update window --- src/gui/dboxinfo.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/gui/dboxinfo.cpp b/src/gui/dboxinfo.cpp index 1f66372f8..e00db49e7 100644 --- a/src/gui/dboxinfo.cpp +++ b/src/gui/dboxinfo.cpp @@ -52,6 +52,7 @@ #include #include +#include static const int FSHIFT = 16; /* nr of bits of precision */ #define FIXED_1 (1<addTimer(5*1000*1000, false); while (doLoop) { @@ -103,6 +105,9 @@ int CDBoxInfoWidget::exec(CMenuTarget* parent, const std::string &) if(fader.Fade()) doLoop = false; } + else if((msg == NeutrinoMessages::EVT_TIMER) && (data == updateTimer)) { + paint(); + } else if ( ( msg == CRCInput::RC_timeout ) || ( msg == CRCInput::RC_home ) || ( msg == CRCInput::RC_ok ) ) { @@ -143,6 +148,7 @@ int CDBoxInfoWidget::exec(CMenuTarget* parent, const std::string &) hide(); fader.Stop(); + g_RCInput->killTimer(updateTimer); return res; } @@ -371,8 +377,12 @@ void CDBoxInfoWidget::paint() uint64_t bytes_free; if (memory_flag) { - bytes_total = info.totalram; - bytes_free = info.freeram; + //bytes_total = info.totalram; + //bytes_free = info.freeram; + unsigned long t, f; + get_mem_usage(t, f); + bytes_total = t*1024; + bytes_free = f*1024; } else { From 108ee92618a8517c0152e03d34774b1075db0731 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Fri, 21 Sep 2012 18:44:47 +0400 Subject: [PATCH 283/317] system/helpers.cpp: fix check_dir - we use it to check for record, last change allow recording to jffs2 --- src/system/helpers.cpp | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/system/helpers.cpp b/src/system/helpers.cpp index cdb1ea84e..f5f1cdb96 100644 --- a/src/system/helpers.cpp +++ b/src/system/helpers.cpp @@ -159,9 +159,11 @@ int safe_mkdir(char * path) return ret; } +/* function used to check is this dir writable, i.e. not flash, for record etc */ int check_dir(const char * dir) { - int ret = 0; + /* default to return, if statfs fail */ + int ret = -1; struct statfs s; if (::statfs(dir, &s) == 0) { switch (s.f_type) /* f_type is long */ @@ -176,11 +178,13 @@ int check_dir(const char * dir) case 0x4d44L: /*msdos*/ case 0x0187: /* AUTOFS_SUPER_MAGIC */ case 0x858458f6L: /*ramfs*/ +#if 0 case 0x72b6L: /*jffs2*/ +#endif + ret = 0; break; //ok default: fprintf(stderr, "%s Unknow File system type: %i\n" ,dir ,s.f_type); - ret = -1; break; // error } } @@ -189,15 +193,13 @@ int check_dir(const char * dir) int get_fs_usage(const char * dir) { - int ret = check_dir(dir); + int ret = 0; long blocks_used; struct statfs s; - if (ret == 0) { - if (::statfs(dir, &s) == 0 && s.f_blocks) { - blocks_used = s.f_blocks - s.f_bfree; - ret = (blocks_used * 100ULL) / s.f_blocks; - } + if (::statfs(dir, &s) == 0 && s.f_blocks) { + blocks_used = s.f_blocks - s.f_bfree; + ret = (blocks_used * 100ULL) / s.f_blocks; } return ret; } From 0d4ce318c3706898a13190f41134f8c0c307d7bc Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Fri, 21 Sep 2012 18:47:42 +0400 Subject: [PATCH 284/317] gui/infoviewer_bb.cpp: disable thread to update hdd used percent - there is screen corruption/artifacts (race?). better solution needed, probably hdd monitor thread which cache data ? --- src/gui/infoviewer_bb.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/gui/infoviewer_bb.cpp b/src/gui/infoviewer_bb.cpp index 3ef336473..d106d0f98 100644 --- a/src/gui/infoviewer_bb.cpp +++ b/src/gui/infoviewer_bb.cpp @@ -601,12 +601,19 @@ void CInfoViewerBB::showSysfsHdd() sysper = get_fs_usage("/"); showBarSys(sysper); +#if 0 //HDD info in a seperate thread if(!hddperTflag) { hddperTflag=true; pthread_create(&hddperT, NULL, hddperThread, (void*) this); pthread_detach(hddperT); } +#else + if (!check_dir(g_settings.network_nfs_recordingdir)) { + sysper = get_fs_usage(g_settings.network_nfs_recordingdir); + showBarHdd(sysper); + } +#endif } } From fb8a993e776330db30c67b4e10388da74a69761b Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Sun, 23 Sep 2012 22:57:47 +0200 Subject: [PATCH 285/317] - movieinfo.h: typo in xml-entry "quality" --- src/gui/movieinfo.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/movieinfo.h b/src/gui/movieinfo.h index 4fb907407..876ed2b49 100644 --- a/src/gui/movieinfo.h +++ b/src/gui/movieinfo.h @@ -86,7 +86,7 @@ #define MI_XML_TAG_LENGTH "length" #define MI_XML_TAG_PRODUCT_COUNTRY "productioncountry" #define MI_XML_TAG_PRODUCT_DATE "productiondate" -#define MI_XML_TAG_QUALITY "qualitiy" +#define MI_XML_TAG_QUALITY "quality" #define MI_XML_TAG_PARENTAL_LOCKAGE "parentallockage" #define MI_XML_TAG_BOOKMARK "bookmark" #define MI_XML_TAG_BOOKMARK_START "bookmarkstart" From 2133b25783acfb4bc290267194dd92e574844cca Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Mon, 24 Sep 2012 11:26:42 +0200 Subject: [PATCH 286/317] - movieinfo: supplement to fb8a993e776330db30c67b4e10388da74a69761b re-insert the wrong -tag to keep compatibility but this tag will not longer be written into xml-files. --- src/gui/movieinfo.cpp | 2 ++ src/gui/movieinfo.h | 1 + 2 files changed, 3 insertions(+) diff --git a/src/gui/movieinfo.cpp b/src/gui/movieinfo.cpp index 004a573bc..188464d89 100644 --- a/src/gui/movieinfo.cpp +++ b/src/gui/movieinfo.cpp @@ -393,6 +393,7 @@ bool CMovieInfo::parseXmlTree(char */*text*/, MI_MOVIE_INFO * /*movie_info*/) XML_GET_DATA_STRING(xam1, MI_XML_TAG_PRODUCT_COUNTRY, movie_info->productionCountry); //if(!strcmp(xam1->GetType(), MI_XML_TAG_PRODUCT_COUNTRY)) if(xam1->GetData() != NULL)strncpy(movie_info->productionCountry, xam1->GetData(),4); XML_GET_DATA_INT(xam1, MI_XML_TAG_PRODUCT_DATE, movie_info->productionDate); + XML_GET_DATA_INT(xam1, MI_XML_TAG_QUALITIY, movie_info->quality); XML_GET_DATA_INT(xam1, MI_XML_TAG_QUALITY, movie_info->quality); XML_GET_DATA_INT(xam1, MI_XML_TAG_PARENTAL_LOCKAGE, movie_info->parentalLockAge); XML_GET_DATA_INT(xam1, MI_XML_TAG_DATE_OF_LAST_PLAY, movie_info->dateOfLastPlay); @@ -673,6 +674,7 @@ bool CMovieInfo::parseXmlQuickFix(char *text, MI_MOVIE_INFO * movie_info) GET_XML_DATA_STRING(text, pos, MI_XML_TAG_PRODUCT_COUNTRY, movie_info->productionCountry) GET_XML_DATA_INT(text, pos, MI_XML_TAG_PRODUCT_DATE, movie_info->productionDate) GET_XML_DATA_INT(text, pos, MI_XML_TAG_PARENTAL_LOCKAGE, movie_info->parentalLockAge) + GET_XML_DATA_INT(text, pos, MI_XML_TAG_QUALITIY, movie_info->quality) GET_XML_DATA_INT(text, pos, MI_XML_TAG_QUALITY, movie_info->quality) GET_XML_DATA_INT(text, pos, MI_XML_TAG_DATE_OF_LAST_PLAY, movie_info->dateOfLastPlay) if (strncmp(&text[pos], MI_XML_TAG_AUDIOPIDS, sizeof(MI_XML_TAG_AUDIOPIDS) - 1) == 0) diff --git a/src/gui/movieinfo.h b/src/gui/movieinfo.h index 876ed2b49..d90369b63 100644 --- a/src/gui/movieinfo.h +++ b/src/gui/movieinfo.h @@ -87,6 +87,7 @@ #define MI_XML_TAG_PRODUCT_COUNTRY "productioncountry" #define MI_XML_TAG_PRODUCT_DATE "productiondate" #define MI_XML_TAG_QUALITY "quality" +#define MI_XML_TAG_QUALITIY "qualitiy" // just to keep compatibility to older xml-files #define MI_XML_TAG_PARENTAL_LOCKAGE "parentallockage" #define MI_XML_TAG_BOOKMARK "bookmark" #define MI_XML_TAG_BOOKMARK_START "bookmarkstart" From 59ea9c05f3d1bfe8ad8a9fdf371d29c5b22ea9a3 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Tue, 25 Sep 2012 17:13:25 +0400 Subject: [PATCH 287/317] locals: add locales for record status --- data/locale/english.locale | 2 ++ src/system/locals.h | 2 ++ src/system/locals_intern.h | 2 ++ 3 files changed, 6 insertions(+) diff --git a/data/locale/english.locale b/data/locale/english.locale index 3f3100cbf..1d5307a08 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -1648,6 +1648,8 @@ streaminfo.resolution Resolution streaminfo.signal Receipt signal streaming.busy One or several recording processes are active.\nIf you encounter this message and no recording is active, please restart Neutrino-HD. streaming.dir_not_writable The recording directory is not writable.\nRecording will not work. +streaming.overflow Record buffer overflow, consider to stop some records +streaming.slow System/hdd too slow, consider to stop some records streaming.write_error The recording was aborted,\nsince an error occured during the writing process. stringinput.caps caps / no caps stringinput.clear clear all diff --git a/src/system/locals.h b/src/system/locals.h index 272c29188..113bf9cc9 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -1675,6 +1675,8 @@ typedef enum LOCALE_STREAMINFO_SIGNAL, LOCALE_STREAMING_BUSY, LOCALE_STREAMING_DIR_NOT_WRITABLE, + LOCALE_STREAMING_OVERFLOW, + LOCALE_STREAMING_SLOW, LOCALE_STREAMING_WRITE_ERROR, LOCALE_STRINGINPUT_CAPS, LOCALE_STRINGINPUT_CLEAR, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index 2879066a0..15b277c1a 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -1675,6 +1675,8 @@ const char * locale_real_names[] = "streaminfo.signal", "streaming.busy", "streaming.dir_not_writable", + "streaming.overflow", + "streaming.slow", "streaming.write_error", "stringinput.caps", "stringinput.clear", From 70836baa483f0aed9822291b12ed7ac33b8b0b86 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Tue, 25 Sep 2012 17:13:43 +0400 Subject: [PATCH 288/317] lib/libcoolstream/record_cs.h: update header --- lib/libcoolstream/record_cs.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/libcoolstream/record_cs.h b/lib/libcoolstream/record_cs.h index e139495f2..4ef6f3df0 100644 --- a/lib/libcoolstream/record_cs.h +++ b/lib/libcoolstream/record_cs.h @@ -14,6 +14,10 @@ class cRecordData; +#define REC_STATUS_OK 0 +#define REC_STATUS_SLOW 1 +#define REC_STATUS_OVERFLOW 2 + class cRecord { private: cRecordData * rd; @@ -29,6 +33,8 @@ public: bool Start(int fd, unsigned short vpid, unsigned short * apids, int numapids, uint64_t chid); bool Stop(void); bool AddPid(unsigned short pid); + int GetStatus(); + void ResetStatus(); }; #endif // __RECORD_CS_H_ From b8ff3bbdd5f48973c55a8e9b0908bf9b2a93b90a Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Tue, 25 Sep 2012 17:19:28 +0400 Subject: [PATCH 289/317] driver/record.cpp: add timer to monitor record status; add warning, when record buffer close to or already overflow; change single record stop to sync mode - under high load stopTimerEvent() takes too long --- src/driver/record.cpp | 59 ++++++++++++++++++++++++++++++++++++++++--- src/driver/record.h | 4 +++ 2 files changed, 59 insertions(+), 4 deletions(-) diff --git a/src/driver/record.cpp b/src/driver/record.cpp index 4f2f723e2..6e637611d 100644 --- a/src/driver/record.cpp +++ b/src/driver/record.cpp @@ -129,6 +129,13 @@ void CRecordInstance::WaitRecMsg(time_t StartTime, time_t WaitTime) usleep(100000); } +int CRecordInstance::GetStatus() +{ + if (record) + return record->GetStatus(); + return 0; +} + record_error_msg_t CRecordInstance::Start(CZapitChannel * channel) { int fd; @@ -642,8 +649,9 @@ void CRecordInstance::GetRecordString(std::string &str) return; } char stime[15]; + int err = GetStatus(); strftime(stime, sizeof(stime), "%H:%M:%S ", localtime(&start_time)); - str = stime + channel->getName() + ": " + GetEpgTitle(); + str = stime + channel->getName() + ": " + GetEpgTitle() + ((err & REC_STATUS_OVERFLOW) ? " [!]" : ""); } //------------------------------------------------------------------------- @@ -660,6 +668,9 @@ CRecordManager::CRecordManager() nextmap.clear(); autoshift = false; shift_timer = 0; + check_timer = 0; + error_display = true; + warn_display = true; } CRecordManager::~CRecordManager() @@ -891,8 +902,15 @@ bool CRecordManager::Record(const CTimerd::RecordingInfo * const eventinfo, cons mutex.unlock(); - if (error_msg == RECORD_OK) + if (error_msg == RECORD_OK) { + if (check_timer == 0) + check_timer = g_RCInput->addTimer(5*1000*1000, false); + + /* set flag to show record error if any */ + error_display = true; + warn_display = true; return true; + } printf("[recordmanager] %s: error code: %d\n", __FUNCTION__, error_msg); /* RestoreNeutrino must be called always if record start failed */ @@ -1115,6 +1133,8 @@ void CRecordManager::StopPostProcess() RestoreNeutrino(); StartNextRecording(); RunStopScript(); + if(!RecordingStatus()) + g_RCInput->killTimer(check_timer); } bool CRecordManager::Update(const t_channel_id channel_id) @@ -1147,6 +1167,27 @@ int CRecordManager::handleMsg(const neutrino_msg_t msg, neutrino_msg_data_t data StartAutoRecord(); return messages_return::handled; } + else if(data == check_timer) { + if(CNeutrinoApp::getInstance()->getMode() != NeutrinoMessages::mode_standby) { + mutex.lock(); + int have_err = 0; + for(recmap_iterator_t it = recmap.begin(); it != recmap.end(); it++) + have_err |= it->second->GetStatus(); + mutex.unlock(); + //printf("%s: check status: show err %d warn %d have_err %d\n", __FUNCTION__, error_display, warn_display, have_err); //FIXME + if (have_err) { + if ((have_err & REC_STATUS_OVERFLOW) && error_display) { + error_display = false; + warn_display = false; + DisplayErrorMessage(g_Locale->getText(LOCALE_STREAMING_OVERFLOW)); + } else if (warn_display) { + warn_display = false; + DisplayErrorMessage(g_Locale->getText(LOCALE_STREAMING_SLOW)); + } + } + return messages_return::handled; + } + } } return messages_return::unhandled; } @@ -1418,7 +1459,7 @@ bool CRecordManager::ShowMenu(void) bool CRecordManager::AskToStop(const t_channel_id channel_id, const int recid) { - int recording_id = 0; + //int recording_id = 0; std::string title; CRecordInstance * inst; @@ -1429,7 +1470,7 @@ bool CRecordManager::AskToStop(const t_channel_id channel_id, const int recid) inst = FindInstance(channel_id); if(inst) { - recording_id = inst->GetRecordingId(); + //recording_id = inst->GetRecordingId(); inst->GetRecordString(title); } mutex.unlock(); @@ -1438,7 +1479,17 @@ bool CRecordManager::AskToStop(const t_channel_id channel_id, const int recid) if(ShowMsgUTF(LOCALE_SHUTDOWN_RECODING_QUERY, title.c_str(), CMessageBox::mbrYes, CMessageBox::mbYes | CMessageBox::mbNo, NULL, 450, 30, false) == CMessageBox::mbrYes) { +#if 0 g_Timerd->stopTimerEvent(recording_id); +#endif + mutex.lock(); + if (recid) + inst = FindInstanceID(recid); + else + inst = FindInstance(channel_id); + if (inst) + StopInstance(inst); + mutex.unlock(); return true; } return false; diff --git a/src/driver/record.h b/src/driver/record.h index 05c226e82..60d9e03fd 100644 --- a/src/driver/record.h +++ b/src/driver/record.h @@ -124,6 +124,7 @@ class CRecordInstance bool Timeshift() { return autoshift; }; int tshift_mode; void SetStopMessage(const char* text) {rec_stop_msg = text;} ; + int GetStatus(); CFrontend * frontend; }; @@ -150,6 +151,9 @@ class CRecordManager : public CMenuTarget /*, public CChangeObserver*/ int last_mode; bool autoshift; uint32_t shift_timer; + uint32_t check_timer; + bool error_display; + bool warn_display; OpenThreads::Mutex mutex; static OpenThreads::Mutex sm; From 7c01980e94d87622522339b84d14368bcc45fb3a Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Thu, 27 Sep 2012 12:22:33 +0200 Subject: [PATCH 290/317] - system/helpers: rework get_fs_usage() also comment some unuses variables in src/infoviever_bb.{h,cpp} --- src/gui/infoviewer_bb.cpp | 37 ++++++++++++++++++++----------------- src/gui/infoviewer_bb.h | 4 ++-- src/system/helpers.cpp | 13 +++++++------ src/system/helpers.h | 2 +- 4 files changed, 30 insertions(+), 26 deletions(-) diff --git a/src/gui/infoviewer_bb.cpp b/src/gui/infoviewer_bb.cpp index d106d0f98..7502bad65 100644 --- a/src/gui/infoviewer_bb.cpp +++ b/src/gui/infoviewer_bb.cpp @@ -94,7 +94,7 @@ CInfoViewerBB::CInfoViewerBB() void CInfoViewerBB::Init() { hddscale = NULL; - varscale = NULL; + sysscale = NULL; hddwidth = 0; bbIconMaxH = 0; bbButtonMaxH = 0; @@ -597,9 +597,11 @@ void CInfoViewerBB::showSysfsHdd() { if (g_settings.infobar_show_sysfs_hdd) { //sysFS info - int sysper = 0; - sysper = get_fs_usage("/"); - showBarSys(sysper); + int percent = 0; + long t, u; + if (get_fs_usage("/", t, u)) + percent = (u * 100ULL) / t; + showBarSys(percent); #if 0 //HDD info in a seperate thread @@ -610,8 +612,9 @@ void CInfoViewerBB::showSysfsHdd() } #else if (!check_dir(g_settings.network_nfs_recordingdir)) { - sysper = get_fs_usage(g_settings.network_nfs_recordingdir); - showBarHdd(sysper); + if (get_fs_usage(g_settings.network_nfs_recordingdir, t, u)) + percent = (u * 100ULL) / t; + showBarHdd(percent); } #endif } @@ -621,9 +624,11 @@ void* CInfoViewerBB::hddperThread(void *arg) { CInfoViewerBB *infoViewerBB = (CInfoViewerBB*) arg; - int hddper = 0; - hddper = get_fs_usage(g_settings.network_nfs_recordingdir); - infoViewerBB->showBarHdd(hddper); + int percent = 0; + long t, u; + if (get_fs_usage(g_settings.network_nfs_recordingdir, t, u)) + percent = (u * 100ULL) / t; + infoViewerBB->showBarHdd(percent); infoViewerBB->hddperTflag=false; pthread_exit(NULL); @@ -632,13 +637,11 @@ void* CInfoViewerBB::hddperThread(void *arg) void CInfoViewerBB::showBarSys(int percent) { if (is_visible) - varscale->paintProgressBar(bbIconMinX, BBarY + InfoHeightY_Info / 2 - 2 - 6, hddwidth, 6, percent, 100); + sysscale->paintProgressBar(bbIconMinX, BBarY + InfoHeightY_Info / 2 - 2 - 6, hddwidth, 6, percent, 100); } void CInfoViewerBB::showBarHdd(int percent) { - if (percent < 0) - percent = 0; if (is_visible) hddscale->paintProgressBar(bbIconMinX, BBarY + InfoHeightY_Info / 2 + 2 + 0, hddwidth, 6, percent, 100); } @@ -791,16 +794,16 @@ void CInfoViewerBB::changePB() if (hddscale != NULL) delete hddscale; hddscale = new CProgressBar(true, hddwidth, 6, 50, 100, 75, true); - if (varscale != NULL) - delete varscale; - varscale = new CProgressBar(true, hddwidth, 6, 50, 100, 75, true); + if (sysscale != NULL) + delete sysscale; + sysscale = new CProgressBar(true, hddwidth, 6, 50, 100, 75, true); } void CInfoViewerBB::reset_allScala() { hddscale->reset(); - varscale->reset(); - lasthdd = lastvar = -1; + sysscale->reset(); + //lasthdd = lastsys = -1; } void CInfoViewerBB::setBBOffset() diff --git a/src/gui/infoviewer_bb.h b/src/gui/infoviewer_bb.h index 84353c6b9..41bb17cb0 100644 --- a/src/gui/infoviewer_bb.h +++ b/src/gui/infoviewer_bb.h @@ -98,7 +98,7 @@ class CInfoViewerBB int BBarY, BBarFontY; int hddwidth; - int lasthdd, lastvar; + //int lasthdd, lastsys; bool fta; int minX; @@ -106,7 +106,7 @@ class CInfoViewerBB bool scrambledNoSig, scrambledNoSigSave; pthread_t scrambledT; - CProgressBar *hddscale, *varscale; + CProgressBar *hddscale, *sysscale; void showBBIcons(const int modus, const std::string & icon); void getBBIconInfo(void); diff --git a/src/system/helpers.cpp b/src/system/helpers.cpp index f5f1cdb96..a564982e6 100644 --- a/src/system/helpers.cpp +++ b/src/system/helpers.cpp @@ -191,17 +191,18 @@ int check_dir(const char * dir) return ret; } -int get_fs_usage(const char * dir) +bool get_fs_usage(const char * dir, long &btotal, long &bused) { - int ret = 0; - long blocks_used; + btotal = bused = 0; struct statfs s; if (::statfs(dir, &s) == 0 && s.f_blocks) { - blocks_used = s.f_blocks - s.f_bfree; - ret = (blocks_used * 100ULL) / s.f_blocks; + btotal = s.f_blocks; + bused = s.f_blocks - s.f_bfree; + //printf("fs (%s): total %ld used %ld\n", dir, btotal, bused); + return true; } - return ret; + return false; } bool get_mem_usage(unsigned long &kbtotal, unsigned long &kbfree) diff --git a/src/system/helpers.h b/src/system/helpers.h index 7707cce05..c14938527 100644 --- a/src/system/helpers.h +++ b/src/system/helpers.h @@ -31,7 +31,7 @@ int safe_mkdir(char * path); bool file_exists(const char *filename); void wakeup_hdd(const char *hdd_dir); int check_dir(const char * dir); -int get_fs_usage(const char * dir); +bool get_fs_usage(const char * dir, long &total, long &used); bool get_mem_usage(unsigned long &total, unsigned long &free); #endif From 07ab8ad0c9cccd00a6a021dd91e923aa04f35c65 Mon Sep 17 00:00:00 2001 From: satbaby Date: Thu, 27 Sep 2012 17:01:42 +0200 Subject: [PATCH 291/317] test_menu.cpp: fix compil --- src/gui/test_menu.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gui/test_menu.cpp b/src/gui/test_menu.cpp index bb6e3aae7..d0e3419be 100644 --- a/src/gui/test_menu.cpp +++ b/src/gui/test_menu.cpp @@ -40,6 +40,7 @@ #include +#include #include #include #include From f7bcb3dd642409ff8c222e3007a13c731223af0a Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Sat, 29 Sep 2012 14:44:48 +0400 Subject: [PATCH 292/317] zapit/src/zapit.cpp: add missing initial volume set --- src/zapit/src/zapit.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/zapit/src/zapit.cpp b/src/zapit/src/zapit.cpp index 6215f1772..19b574d35 100644 --- a/src/zapit/src/zapit.cpp +++ b/src/zapit/src/zapit.cpp @@ -2042,6 +2042,8 @@ bool CZapit::Start(Z_start_arg *ZapStart_arg) audioDecoder = new cAudio(audioDemux->getBuffer(), videoDecoder->GetTVEnc(), NULL /*videoDecoder->GetTVEncSD()*/); videoDecoder->SetAudioHandle(audioDecoder->GetHandle()); + /* set initial volume with 100% */ + SetVolumePercent(100); #ifdef USE_VBI videoDecoder->OpenVBI(1); #endif From 410b19aaf3ecff2fba571939c213506122c3f86f Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Sat, 29 Sep 2012 14:45:57 +0400 Subject: [PATCH 293/317] locals: add locales for start wizard initial settings --- data/locale/english.locale | 2 ++ src/system/locals.h | 2 ++ src/system/locals_intern.h | 2 ++ 3 files changed, 6 insertions(+) diff --git a/data/locale/english.locale b/data/locale/english.locale index 1d5307a08..d9d25012b 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -1799,6 +1799,8 @@ videomenu.videoformat_149 14:9 videomenu.videoformat_169 16:9 videomenu.videoformat_43 4:3 videomenu.videomode Digital video mode +wizard.initial_settings Initial settings found +wizard.install_settings Do you want to install channels for Astra 19.2°E ? wizard.welcome_head Welcome to the Setup Wizard wizard.welcome_text Next steps will guide you through initial installation of the device.\nImportant: Your CoolStream set-top box can be conveniently controlled\nwith the web interface for timer management or live TV on the Web browser.\nDo not make it accessible to untrusted networks!\nDo you want to continue? word.from from diff --git a/src/system/locals.h b/src/system/locals.h index 113bf9cc9..857ffefc8 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -1826,6 +1826,8 @@ typedef enum LOCALE_VIDEOMENU_VIDEOFORMAT_169, LOCALE_VIDEOMENU_VIDEOFORMAT_43, LOCALE_VIDEOMENU_VIDEOMODE, + LOCALE_WIZARD_INITIAL_SETTINGS, + LOCALE_WIZARD_INSTALL_SETTINGS, LOCALE_WIZARD_WELCOME_HEAD, LOCALE_WIZARD_WELCOME_TEXT, LOCALE_WORD_FROM, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index 15b277c1a..7f13792bb 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -1826,6 +1826,8 @@ const char * locale_real_names[] = "videomenu.videoformat_169", "videomenu.videoformat_43", "videomenu.videomode", + "wizard.initial_settings", + "wizard.install_settings", "wizard.welcome_head", "wizard.welcome_text", "word.from", From 4c41541f20fc2f521c6ffb68e6a5fa51f3d613f4 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Sat, 29 Sep 2012 14:46:43 +0400 Subject: [PATCH 294/317] gui/start_wizard.cpp: copy initial zapit settings from /var/tuxbox/config/initial/ if found --- src/gui/start_wizard.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/gui/start_wizard.cpp b/src/gui/start_wizard.cpp index 79b7168d3..29a4ef9fe 100644 --- a/src/gui/start_wizard.cpp +++ b/src/gui/start_wizard.cpp @@ -46,6 +46,8 @@ #include "osd_setup.h" #include "osdlang_setup.h" #include "scan_setup.h" +#include +#include #include @@ -103,6 +105,17 @@ int CStartUpWizard::exec(CMenuTarget* parent, const string & /*actionKey*/) res = CScanSetup::getInstance()->exec(NULL, ""); CScanSetup::getInstance()->setWizardMode(CScanSetup::SCAN_SETUP_MODE_WIZARD_NO); } + bool init_settings = file_exists("/var/tuxbox/config/initial/"); + if(init_settings && (res != menu_return::RETURN_EXIT_ALL)) + { + if (ShowMsgUTF(LOCALE_WIZARD_INITIAL_SETTINGS, g_Locale->getText(LOCALE_WIZARD_INSTALL_SETTINGS), + CMessageBox::mbrYes, CMessageBox::mbYes | CMessageBox::mbNo, NULL, 450, 30, false) == CMessageBox::mbrYes) { + system("/bin/cp /var/tuxbox/config/initial/* /var/tuxbox/config/zapit/"); + CFEManager::getInstance()->loadSettings(); + CFEManager::getInstance()->saveSettings(); + CZapit::getInstance()->PrepareChannels(); + } + } } From 7a414b7c56636f8bf50e06957bcf54ffc226ce13 Mon Sep 17 00:00:00 2001 From: micha-bbg Date: Tue, 2 Oct 2012 11:58:12 +0200 Subject: [PATCH 295/317] osd_setup.cpp: Fix segfault in mode single tuner/display tuner icon --- src/gui/osd_setup.cpp | 3 ++- src/gui/osd_setup.h | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/gui/osd_setup.cpp b/src/gui/osd_setup.cpp index 610642622..82a6df825 100644 --- a/src/gui/osd_setup.cpp +++ b/src/gui/osd_setup.cpp @@ -73,6 +73,7 @@ COsdSetup::COsdSetup(bool wizard_mode) is_wizard = wizard_mode; width = w_max (40, 10); //% + show_tuner_icon = 0; } COsdSetup::~COsdSetup() @@ -763,7 +764,7 @@ void COsdSetup::showOsdInfobarSetup(CMenuWidget *menu_infobar) // tuner icon bool mc_active = false; - int show_tuner_icon = 0; + show_tuner_icon = 0; // show possible option if we in single box mode, but don't touch the real settings int *p_show_tuner_icon = &show_tuner_icon; if (CFEManager::getInstance()->getMode() != CFEManager::FE_MODE_SINGLE){ diff --git a/src/gui/osd_setup.h b/src/gui/osd_setup.h index 65429d9dc..99db7df0f 100644 --- a/src/gui/osd_setup.h +++ b/src/gui/osd_setup.h @@ -49,6 +49,7 @@ class COsdSetup : public CMenuTarget, public CChangeObserver int width; bool is_wizard; + int show_tuner_icon; int showOsdSetup(); void showOsdMenueColorSetup(CMenuWidget *menu_colors); From bb2efeb45bafd6a40cb86fab574a7c670d4eeb62 Mon Sep 17 00:00:00 2001 From: satbaby Date: Tue, 2 Oct 2012 12:42:31 +0200 Subject: [PATCH 296/317] use my_system instead of system --- src/driver/record.cpp | 4 ++-- src/gui/hdd_menu.cpp | 38 +++++++++++++++++++++----------- src/gui/moviebrowser.cpp | 7 +++--- src/gui/network_service.cpp | 13 ++++++----- src/gui/settings_manager.cpp | 16 ++++++-------- src/gui/update.cpp | 12 +++++----- src/neutrino.cpp | 36 +++++++++++++++++++----------- src/system/configure_network.cpp | 14 ++++++------ 8 files changed, 80 insertions(+), 60 deletions(-) diff --git a/src/driver/record.cpp b/src/driver/record.cpp index 6e637611d..1112022d9 100644 --- a/src/driver/record.cpp +++ b/src/driver/record.cpp @@ -231,8 +231,8 @@ bool CRecordInstance::Stop(bool remove_event) CCamManager::getInstance()->Stop(channel_id, CCamManager::RECORD); if((autoshift && g_settings.auto_delete) /* || autoshift_delete*/) { - snprintf(buf,sizeof(buf), "nice -n 20 rm -f \"%s.ts\" &", filename); - system(buf); + snprintf(buf,sizeof(buf), "\"%s.ts\"", filename); + my_system("nice", "-n20", "rm", "-f", buf); snprintf(buf,sizeof(buf), "%s.xml", filename); //autoshift_delete = false; unlink(buf); diff --git a/src/gui/hdd_menu.cpp b/src/gui/hdd_menu.cpp index 88b618954..910506fe0 100644 --- a/src/gui/hdd_menu.cpp +++ b/src/gui/hdd_menu.cpp @@ -269,21 +269,34 @@ int CHDDMenuHandler::doMenu () int CHDDDestExec::exec(CMenuTarget* /*parent*/, const std::string&) { - char cmd[100]; + char M_opt[50],S_opt[50]; + char opt[100]; struct dirent **namelist; int n = scandir("/sys/block", &namelist, my_filter, alphasort); if (n < 0) return 0; + const char hdparm[] = "/sbin/hdparm"; + bool hdparm_link = false; + struct stat stat_buf; + if(::lstat(hdparm, &stat_buf) == 0) + if( S_ISLNK(stat_buf.st_mode) ) + hdparm_link = true; + for (int i = 0; i < n; i++) { printf("CHDDDestExec: noise %d sleep %d /dev/%s\n", g_settings.hdd_noise, g_settings.hdd_sleep, namelist[i]->d_name); - //hdparm -M is not included in busybox hdparm! - //we need full version of hdparm or should remove -M parameter here - snprintf(cmd, sizeof(cmd), "hdparm -M%d -S%d /dev/%s >/dev/null 2>/dev/null &", - g_settings.hdd_noise, g_settings.hdd_sleep, namelist[i]->d_name); - system(cmd); + snprintf(S_opt, sizeof(S_opt),"-S%d", g_settings.hdd_sleep); + snprintf(opt, sizeof(opt),"/dev/%s",namelist[i]->d_name); + + if(hdparm_link){ + //hdparm -M is not included in busybox hdparm! + my_system(hdparm, S_opt, opt); + }else{ + snprintf(M_opt, sizeof(M_opt),"-M%d", g_settings.hdd_noise); + my_system(hdparm, M_opt, S_opt, opt); + } free(namelist[i]); } free(namelist); @@ -327,7 +340,7 @@ int CHDDFmtExec::exec(CMenuTarget* /*parent*/, const std::string& key) if(res != CMessageBox::mbrYes) return 0; - bool srun = system("killall -9 smbd"); + bool srun = my_system("killall", "-9", "smbd"); //res = check_and_umount(dst); res = check_and_umount(src, dst); @@ -462,9 +475,8 @@ int CHDDFmtExec::exec(CMenuTarget* /*parent*/, const std::string& key) progress->showGlobalStatus(100); sleep(2); - snprintf(cmd, sizeof(cmd), "/sbin/tune2fs -r 0 -c 0 -i 0 %s", src); - printf("CHDDFmtExec: executing %s\n", cmd); - system(cmd); + printf("CHDDFmtExec: executing %s %s\n","/sbin/tune2fs -r 0 -c 0 -i 0", src); + my_system("/sbin/tune2fs", "-r 0", "-c 0", "-i 0", src); _remount: progress->hide(); @@ -498,7 +510,7 @@ _remount: sync(); } _return: - if(!srun) system("smbd"); + if(!srun) my_system("smbd",NULL); return menu_return::RETURN_REPAINT; } @@ -518,7 +530,7 @@ int CHDDChkExec::exec(CMenuTarget* /*parent*/, const std::string& key) printf("CHDDChkExec: key %s\n", key.c_str()); - bool srun = system("killall -9 smbd"); + bool srun = my_system("killall", "-9", "smbd"); //res = check_and_umount(dst); res = check_and_umount(src, dst); @@ -602,6 +614,6 @@ ret1: } printf("CHDDChkExec: mount res %d\n", res); - if(!srun) system("smbd"); + if(!srun) my_system("smbd",NULL); return menu_return::RETURN_REPAINT; } diff --git a/src/gui/moviebrowser.cpp b/src/gui/moviebrowser.cpp index 6f14c3d2c..b7fa267e8 100644 --- a/src/gui/moviebrowser.cpp +++ b/src/gui/moviebrowser.cpp @@ -71,6 +71,7 @@ #include #include #include +#include extern CPictureViewer * g_PicViewer; static CProgressBar *timescale; @@ -3593,10 +3594,8 @@ int CDirMenu::exec(CMenuTarget* parent, const std::string & actionKey) { if(dirState[number] == DIR_STATE_SERVER_DOWN) { - std::string command = "ether-wake "; - command += g_settings.network_nfs_mac[dirNfsMountNr[number]]; - printf("try to start server: %s\n",command.c_str()); - if(system(command.c_str()) != 0) + printf("try to start server: %s %s\n","ether-wake", g_settings.network_nfs_mac[dirNfsMountNr[number]]); + if(my_system("ether-wake", g_settings.network_nfs_mac[dirNfsMountNr[number]]) != 0) perror("ether-wake failed"); dirOptionText[number]="STARTE SERVER"; diff --git a/src/gui/network_service.cpp b/src/gui/network_service.cpp index 450c49953..23ca4bc48 100644 --- a/src/gui/network_service.cpp +++ b/src/gui/network_service.cpp @@ -34,6 +34,8 @@ #include #include +#include + #include #define TOUCH_BASE "/var/etc/." @@ -70,18 +72,17 @@ CNetworkService::CNetworkService(std::string cmd, std::string opts) void CNetworkService::Start() { - std::string cmd = command + " " + options; - printf("CNetworkService::Start: %s\n", cmd.c_str()); - system(cmd.c_str()); + printf("CNetworkService::Start: %s %s\n", command.c_str(), options.c_str()); + my_system( command.c_str(), options.c_str()); enabled = true; TouchFile(); } void CNetworkService::Stop() { - std::string cmd = "killall " + command; - printf("CNetworkService::Stop: %s\n", cmd.c_str()); - system(cmd.c_str()); + const char killall []= "killall"; + printf("CNetworkService::Stop: %s %s\n", killall, command.c_str()); + my_system(killall, command.c_str()); enabled = false; TouchFile(); } diff --git a/src/gui/settings_manager.cpp b/src/gui/settings_manager.cpp index 724fac6d7..9bb4f3c60 100644 --- a/src/gui/settings_manager.cpp +++ b/src/gui/settings_manager.cpp @@ -40,7 +40,7 @@ #include #include -#include +#include #include @@ -102,14 +102,13 @@ int CSettingsManager::exec(CMenuTarget* parent, const std::string &actionKey) fileBrowser.Dir_Mode = true; if (fileBrowser.exec("/media") == true) { - char fname[256]; struct statfs s; int ret = ::statfs(fileBrowser.getSelectedFile()->Name.c_str(), &s); if(ret == 0 && s.f_type != 0x72b6L) /*jffs2*/ { - sprintf(fname, "/bin/backup.sh %s", fileBrowser.getSelectedFile()->Name.c_str()); - printf("backup: executing [%s]\n", fname); - system(fname); + const char backup_sh[] = "/bin/backup.sh"; + printf("backup: executing [%s %s]\n",backup_sh, fileBrowser.getSelectedFile()->Name.c_str()); + my_system( backup_sh, fileBrowser.getSelectedFile()->Name.c_str() ); } else ShowMsgUTF(LOCALE_MESSAGEBOX_ERROR, g_Locale->getText(LOCALE_SETTINGS_BACKUP_FAILED),CMessageBox::mbrBack, CMessageBox::mbBack, NEUTRINO_ICON_ERROR); @@ -125,10 +124,9 @@ int CSettingsManager::exec(CMenuTarget* parent, const std::string &actionKey) int result = ShowMsgUTF(LOCALE_SETTINGS_RESTORE, g_Locale->getText(LOCALE_SETTINGS_RESTORE_WARN), CMessageBox::mbrNo, CMessageBox::mbYes | CMessageBox::mbNo); if(result == CMessageBox::mbrYes) { - char fname[256]; - sprintf(fname, "/bin/restore.sh %s", fileBrowser.getSelectedFile()->Name.c_str()); - printf("restore: executing [%s]\n", fname); - system(fname); + const char restore_sh[] = "/bin/restore.sh"; + printf("restore: executing [%s %s]\n", restore_sh, fileBrowser.getSelectedFile()->Name.c_str()); + my_system( restore_sh, fileBrowser.getSelectedFile()->Name.c_str() ); } } return res; diff --git a/src/gui/update.cpp b/src/gui/update.cpp index 32551ec9f..d61b0f542 100644 --- a/src/gui/update.cpp +++ b/src/gui/update.cpp @@ -53,6 +53,7 @@ #include #include +#include #define SQUASHFS @@ -471,7 +472,7 @@ int CFlashUpdate::exec(CMenuTarget* parent, const std::string &) CFSMounter::umount(); ShowHintUTF(LOCALE_MESSAGEBOX_INFO, g_Locale->getText(LOCALE_FLASHUPDATE_FLASHREADYREBOOT)); // UTF-8 - //system("/etc/init.d/rcK"); + //my_system("/etc/init.d/rcK"); ft.reboot(); sleep(20000); } @@ -492,13 +493,12 @@ int CFlashUpdate::exec(CMenuTarget* parent, const std::string &) } else // not image, install { - char cmd[100]; - sprintf(cmd, "install.sh %s %s", g_settings.update_dir, filename.c_str()); + const char install_sh[] = "/bin/install.sh"; #ifdef DEBUG1 - printf("[update] calling %s\n", cmd); + printf("[update] calling %s %s %s\n",install_sh, g_settings.update_dir, filename.c_str() ); #else - printf("[update] calling %s\n", cmd); - system(cmd); + printf("[update] calling %s %s %s\n",install_sh, g_settings.update_dir, filename.c_str() ); + my_system( install_sh, g_settings.update_dir, filename.c_str() ); #endif showGlobalStatus(100); ShowHintUTF(LOCALE_MESSAGEBOX_INFO, g_Locale->getText(LOCALE_FLASHUPDATE_READY)); // UTF-8 diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 369f89771..4edd9607e 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -37,6 +37,9 @@ #include #include #include +#include +#include +#include #include @@ -557,9 +560,16 @@ int CNeutrinoApp::loadSetup(const char * fname) if(g_settings.auto_delete) { if(strcmp(g_settings.timeshiftdir, g_settings.network_nfs_recordingdir)) { - char buf[512]; - sprintf(buf, "rm -f %s/*_temp.ts %s/*_temp.xml &", timeshiftDir, timeshiftDir); - system(buf); + DIR *d = opendir(timeshiftDir); + while (struct dirent *e = readdir(d)) + { + std::string filename = e->d_name; + if ((filename.find("_temp.ts") == filename.size() - 8) || (filename.find("_temp.xml") == filename.size() - 9)) + { + remove(filename.c_str()); + } + } + closedir(d); } } g_settings.record_hours = configfile.getInt32( "record_hours", 4 ); @@ -1879,10 +1889,12 @@ TIMER_START(); g_CamHandler->init(); #ifndef ASSUME_MDEV - system("mkdir /media/sda1 2> /dev/null"); - system("mount /media/sda1 2> /dev/null"); - system("mkdir /media/sdb1 2> /dev/null"); - system("mount /media/sdb1 2> /dev/null"); + const char hddsda1[] = "/media/sda1"; + const char hddsdb1[] = "/media/sdb1"; + mkdir(hddsda1, 0755); + mount("/dev/sda1", hddsda1, "ext3", 0, NULL); + mkdir(hddsdb1,0755); + mount("/dev/sdb1", hddsdb1, "ext3", 0, NULL); #endif CFSMounter::automount(); @@ -2684,9 +2696,7 @@ _repeat: for(int i=0 ; i < NETWORK_NFS_NR_OF_ENTRIES ; i++) { if (strcmp(g_settings.network_nfs_local_dir[i],recordingDir) == 0) { printf("[neutrino] waking up %s (%s)\n",g_settings.network_nfs_ip[i].c_str(),recordingDir); - std::string command = "ether-wake "; - command += g_settings.network_nfs_mac[i]; - if(system(command.c_str()) != 0) + if(my_system("ether-wake",g_settings.network_nfs_mac[i]) != 0) perror("ether-wake failed"); break; } @@ -2946,8 +2956,8 @@ void CNeutrinoApp::ExitRun(const bool /*write_si*/, int retcode) //CVFD::getInstance()->ShowText(g_Locale->getText(LOCALE_MAINMENU_SHUTDOWN)); my_system("/etc/init.d/rcK"); - system("/bin/sync"); - system("/bin/umount -a"); + sync(); + my_system("/bin/umount", "-a"); sleep(1); { standby_data_t standby; @@ -3024,7 +3034,7 @@ void CNeutrinoApp::ExitRun(const bool /*write_si*/, int retcode) delete &CMoviePlayerGui::getInstance(); shutdown_cs_api(); - system("/etc/init.d/rcK"); + my_system("/etc/init.d/rcK"); CVFD::getInstance()->ShowIcon(VFD_ICON_CAM1, true); InfoClock->StopClock(); diff --git a/src/system/configure_network.cpp b/src/system/configure_network.cpp index 7ba9342ec..6eaa20d54 100644 --- a/src/system/configure_network.cpp +++ b/src/system/configure_network.cpp @@ -27,11 +27,11 @@ #include "configure_network.h" #include /* netGetNameserver, netSetNameserver */ #include /* getInetAttributes, setInetAttributes */ -#include /* system */ #include #include #include #include +#include CNetworkConfig::CNetworkConfig() { @@ -218,11 +218,11 @@ void CNetworkConfig::commitConfig(void) void CNetworkConfig::startNetwork(void) { - std::string cmd = "/sbin/ifup " + ifname; + const char _ifup[] = "/sbin/ifup"; #ifdef DEBUG - printf("CNetworkConfig::startNetwork: %s\n", cmd.c_str()); + printf("CNetworkConfig::startNetwork: %s %s\n",_ifup, ifname.c_str()); #endif - system(cmd.c_str()); + my_system(_ifup, ifname.c_str()); if (!inet_static) { init_vars(); @@ -232,11 +232,11 @@ void CNetworkConfig::startNetwork(void) void CNetworkConfig::stopNetwork(void) { - std::string cmd = "/sbin/ifdown " + ifname; + const char _ifdown[] = "/sbin/ifdown"; #ifdef DEBUG - printf("CNetworkConfig::stopNetwork: %s\n", cmd.c_str()); + printf("CNetworkConfig::stopNetwork: %s %s\n",_ifdown, ifname.c_str()); #endif - system(cmd.c_str()); + my_system(_ifdown, ifname.c_str()); } From 6ac36258d605327a96ba98127105cc2141abb6a7 Mon Sep 17 00:00:00 2001 From: satbaby Date: Tue, 2 Oct 2012 16:28:24 +0200 Subject: [PATCH 297/317] neutrino.cpp: fix possible segfault , suplement to bb2efeb45bafd6a40cb86fab574a7c670d4eeb62 --- src/neutrino.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 4edd9607e..a73662d29 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -561,15 +561,17 @@ int CNeutrinoApp::loadSetup(const char * fname) if(g_settings.auto_delete) { if(strcmp(g_settings.timeshiftdir, g_settings.network_nfs_recordingdir)) { DIR *d = opendir(timeshiftDir); - while (struct dirent *e = readdir(d)) - { - std::string filename = e->d_name; - if ((filename.find("_temp.ts") == filename.size() - 8) || (filename.find("_temp.xml") == filename.size() - 9)) + if(d){ + while (struct dirent *e = readdir(d)) { - remove(filename.c_str()); + std::string filename = e->d_name; + if ((filename.find("_temp.ts") == filename.size() - 8) || (filename.find("_temp.xml") == filename.size() - 9)) + { + remove(filename.c_str()); + } } + closedir(d); } - closedir(d); } } g_settings.record_hours = configfile.getInt32( "record_hours", 4 ); From 309c17d56752b0558cdd7184add6b57ddfa2fba4 Mon Sep 17 00:00:00 2001 From: satbaby Date: Fri, 5 Oct 2012 12:44:59 +0200 Subject: [PATCH 298/317] record.cpp:fix possible recording in flash --- src/driver/record.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/driver/record.cpp b/src/driver/record.cpp index 1112022d9..222f956e5 100644 --- a/src/driver/record.cpp +++ b/src/driver/record.cpp @@ -575,6 +575,8 @@ record_error_msg_t CRecordInstance::MakeFileName(CZapitChannel * channel) return RECORD_INVALID_DIRECTORY; /* fallback to g_settings.network_nfs_recordingdir */ Directory = std::string(g_settings.network_nfs_recordingdir); + }else{ + return RECORD_INVALID_DIRECTORY; } } From 4a819b80ebd3b88a6f63c5780b195ae0fb2e3cd5 Mon Sep 17 00:00:00 2001 From: striper Date: Sat, 6 Oct 2012 17:40:12 +0200 Subject: [PATCH 299/317] - cables.xml: add new transponders for Unitymedia --- data/cables.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/data/cables.xml b/data/cables.xml index 619c3279a..9bfecff6e 100644 --- a/data/cables.xml +++ b/data/cables.xml @@ -260,6 +260,12 @@ + + + + + + From 27124f0328c6d0ffd99a15d59922b3989a60592b Mon Sep 17 00:00:00 2001 From: striper Date: Sat, 6 Oct 2012 17:31:51 +0200 Subject: [PATCH 300/317] - deutsch.locale: add some missing entries --- data/locale/deutsch.locale | 2 ++ 1 file changed, 2 insertions(+) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index 2ca31dd32..0b07f99f9 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -1648,6 +1648,8 @@ streaminfo.resolution Auflösung streaminfo.signal Empfangssignal streaming.busy Ein oder mehrere Aufnahmeprozesse sind aktiv.\nSollte die Aufnahme eigentlich beendet sein,\nschafft ein Neustart von Neutrino-HD Abhilfe. streaming.dir_not_writable Das Aufnahmeverzeichnis ist nicht beschreibbar.\nAufnahmen sind daher nicht möglich. +streaming.overflow Aufnahme-Puffer Überlauf! Bitte ggf. einige Aufnahmen beenden. +streaming.slow System oder Datenträger zu langsam! Bitte ggf. einige Aufnahmen beenden. streaming.write_error Die Aufnahme wurde leider abgebrochen,\nda ein Fehler beim Schreiben der Daten auftrat. stringinput.caps Groß-/Kleinbuchstaben stringinput.clear Alles löschen From 849b30698597513446b1c954ede8f927160e2970 Mon Sep 17 00:00:00 2001 From: satbaby Date: Wed, 10 Oct 2012 13:07:10 +0200 Subject: [PATCH 301/317] satellites.xml: update astra19 hotbird13 --- data/satellites.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/data/satellites.xml b/data/satellites.xml index 79d7318a1..4e23f57fc 100755 --- a/data/satellites.xml +++ b/data/satellites.xml @@ -1375,12 +1375,12 @@ - + - + @@ -1560,6 +1560,7 @@ + @@ -1601,7 +1602,6 @@ - From a9950f10eb2c7873d0b63f81f4041c68d71a14dc Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Wed, 10 Oct 2012 18:33:11 +0400 Subject: [PATCH 302/317] zapit/src/scannit.cpp: fix satellite descriptor satellite position --- src/zapit/src/scannit.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/zapit/src/scannit.cpp b/src/zapit/src/scannit.cpp index 762960867..756750c84 100644 --- a/src/zapit/src/scannit.cpp +++ b/src/zapit/src/scannit.cpp @@ -293,12 +293,17 @@ bool CNit::ParseSatelliteDescriptor(SatelliteDeliverySystemDescriptor * sd, Tran newSat += ((sd->getOrbitalPosition() >> 8) & 0xF) * 100; newSat += ((sd->getOrbitalPosition() >> 4) & 0xF) * 10; newSat += ((sd->getOrbitalPosition()) & 0xF); - if (newSat && (!sd->getWestEastFlag())) + + if (newSat > 1800) newSat = 3600 - newSat; + if (!sd->getWestEastFlag()) + newSat = -newSat; + if (abs(newSat - satellitePosition) < 5) + newSat = satellitePosition; if(satellitePosition != newSat) { - printf("NIT: different satellite position: our %d nit %d\n", - satellitePosition, sd->getOrbitalPosition()); + printf("NIT: different satellite position: our %d nit %d (%X)\n", + satellitePosition, newSat, sd->getOrbitalPosition()); return false; } @@ -320,7 +325,7 @@ bool CNit::ParseSatelliteDescriptor(SatelliteDeliverySystemDescriptor * sd, Tran break; default: #ifdef DEBUG_NIT - printf("NIT: undefined modulation system %08x\n", modulation_system; + printf("NIT: undefined modulation system %08x\n", modulation_system); #endif feparams.delsys = SYS_UNDEFINED; break; From 296aee816c326e01b1490398791a1847a8a9bfbd Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Wed, 10 Oct 2012 18:34:19 +0400 Subject: [PATCH 303/317] zapit/src/zapit.cpp: change signal lock monitor (disabled at the moment) --- src/zapit/src/zapit.cpp | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/src/zapit/src/zapit.cpp b/src/zapit/src/zapit.cpp index 19b574d35..907232ea0 100644 --- a/src/zapit/src/zapit.cpp +++ b/src/zapit/src/zapit.cpp @@ -2134,10 +2134,6 @@ static bool zapit_parse_command(CBasicMessage::Header &rmsg, int connfd) void CZapit::run() { -#if 0 - time_t stime = time(0); - time_t curtime; -#endif printf("[zapit] starting... tid %ld\n", syscall(__NR_gettid)); abort_zapit = 0; @@ -2186,14 +2182,15 @@ void CZapit::run() /* yuck, don't waste that much cpu time :) */ usleep(0); #if 0 - if(!standby && !CServiceScan::getInstance()->Scanning() &¤t_channel) { - curtime = time(0); + static time_t stime = time(0); + if(!standby && !CServiceScan::getInstance()->Scanning() && current_channel) { + time_t curtime = time(0); + //FIXME check if sig_delay needed */ if(sig_delay && (curtime - stime) > sig_delay) { stime = curtime; - uint16_t sig = live_fe->getSignalStrength(); - //if(sig < 8000) - if(sig < 28000) { - printf("[monitor] signal %d, trying to re-tune...\n", sig); + fe_status_t status = live_fe->getStatus(); + printf("[zapit] frontend status %d\n", status); + if (status != FE_HAS_LOCK) { live_fe->retuneChannel(); } } From 392e84aa99aa15b9e9b3d0c39efb521c3d24133e Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Thu, 11 Oct 2012 13:49:08 +0200 Subject: [PATCH 304/317] - network_setup.cpp: little rework in output from network-test --- src/gui/network_setup.cpp | 48 ++++++++++++++++++++------------------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/src/gui/network_setup.cpp b/src/gui/network_setup.cpp index f3f6083e2..461707d91 100644 --- a/src/gui/network_setup.cpp +++ b/src/gui/network_setup.cpp @@ -709,10 +709,14 @@ void CNetworkSetup::testNetworkSettings() char our_gateway[16]; char our_nameserver[16]; - std::string text, testsite; + std::string text, testsite, offset = " "; - //set default testdomain and wiki-IP - std::string defaultsite = "www.google.de", wiki_IP = "89.31.143.1"; + //set default testdomain + std::string defaultsite = "www.google.de"; + + //set wiki-URL and wiki-IP + std::string wiki_URL = "wiki.neutrino-hd.de"; + std::string wiki_IP = "89.31.143.1"; //get www-domain testsite from /.version CConfigFile config('\t'); @@ -746,7 +750,7 @@ void CNetworkSetup::testNetworkSettings() printf("testNw Broadcast: %s\n", our_broadcast); printf("testNw Gateway: %s\n", our_gateway); printf("testNw Nameserver: %s\n", our_nameserver); - printf("testNw Testsite %s\n", testsite.c_str()); + printf("testNw Testsite: %s\n", testsite.c_str()); if (our_ip[0] == 0) { @@ -754,26 +758,24 @@ void CNetworkSetup::testNetworkSettings() } else { - text = "Box: " + old_mac_addr + "\n "; - text += (std::string)our_ip + " " + (std::string)mypinghost(our_ip); - text += "\n"; - text += g_Locale->getText(LOCALE_NETWORKMENU_GATEWAY); - text += " (Router)\n "; - text += (std::string)our_gateway + " " +(std::string)mypinghost(our_gateway); - text += "\n"; - text += g_Locale->getText(LOCALE_NETWORKMENU_NAMESERVER); - text += "\n "; - text += (std::string)our_nameserver + " " + (std::string)mypinghost(our_nameserver); - text += "\n"; - text += "wiki.neutrino-hd.de:\n "; - text += "via IP (" + wiki_IP + "): " + (std::string)mypinghost(wiki_IP.c_str()); - text += ":\n "; - if (1 == pinghost(our_nameserver)) + //Box + text = "Box (" + old_mac_addr + "):\n"; + text += offset + (std::string)our_ip + " " + (std::string)mypinghost(our_ip) + "\n"; + //Gateway + text += (std::string)g_Locale->getText(LOCALE_NETWORKMENU_GATEWAY) + " (Router):\n"; + text += offset + (std::string)our_gateway + " " + (std::string)mypinghost(our_gateway) + "\n"; + //Nameserver + text += (std::string)g_Locale->getText(LOCALE_NETWORKMENU_NAMESERVER) + ":\n"; + text += offset + (std::string)our_nameserver + " " + (std::string)mypinghost(our_nameserver) + "\n"; + //Wiki + text += wiki_URL + ":\n"; + text += offset + "via IP (" + wiki_IP + "): " + (std::string)mypinghost(wiki_IP.c_str()) + "\n"; + if (pinghost(our_nameserver) == 1) { - text += "via DNS: " + (std::string)mypinghost("wiki.neutrino-hd.de"); - text += "\n"; - text += testsite + ":\n "; - text += "via DNS: " + (std::string)mypinghost(testsite.c_str()) + ":\n"; + text += offset + "via DNS: " + (std::string)mypinghost(wiki_URL.c_str()) + "\n"; + //testsite (or defaultsite) + text += testsite + ":\n"; + text += offset + "via DNS: " + (std::string)mypinghost(testsite.c_str()) + "\n"; } } From 7a8097907c870fe1aa87ea923315898ddefdefff Mon Sep 17 00:00:00 2001 From: satbaby Date: Thu, 11 Oct 2012 14:10:01 +0200 Subject: [PATCH 305/317] nfs.cpp:Update mount icon after mounting, ported from tuxbox cvs --- src/gui/nfs.cpp | 18 +++++++++++++----- src/gui/nfs.h | 4 +++- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/gui/nfs.cpp b/src/gui/nfs.cpp index 79122a775..9f20e0a1a 100644 --- a/src/gui/nfs.cpp +++ b/src/gui/nfs.cpp @@ -149,10 +149,17 @@ int CNFSMountGui::exec( CMenuTarget* parent, const std::string & actionKey ) else if(actionKey.substr(0,7)=="domount") { int nr=atoi(actionKey.substr(7,1).c_str()); - CFSMounter::mount(g_settings.network_nfs_ip[nr].c_str(), g_settings.network_nfs_dir[nr], + CFSMounter::MountRes mres = CFSMounter::mount( + g_settings.network_nfs_ip[nr].c_str(), g_settings.network_nfs_dir[nr], g_settings.network_nfs_local_dir[nr], (CFSMounter::FSType) g_settings.network_nfs_type[nr], g_settings.network_nfs_username[nr], g_settings.network_nfs_password[nr], g_settings.network_nfs_mount_options1[nr], g_settings.network_nfs_mount_options2[nr]); + + if (mres == CFSMounter::MRES_OK || mres == CFSMounter::MRES_FS_ALREADY_MOUNTED) + mountMenuEntry[nr]->iconName = NEUTRINO_ICON_MOUNTED; + else + mountMenuEntry[nr]->iconName = NEUTRINO_ICON_NOT_MOUNTED; + // TODO show msg in case of error returnval = menu_return::RETURN_EXIT; } @@ -176,15 +183,16 @@ int CNFSMountGui::menu() { sprintf(s2,"mountentry%d",i); sprintf(ISO_8859_1_entry[i],ZapitTools::UTF8_to_Latin1(m_entry[i]).c_str()); - CMenuForwarderNonLocalized *forwarder = new CMenuForwarderNonLocalized(ISO_8859_1_entry[i], true, NULL, this, s2); + mountMenuEntry[i] = new CMenuForwarderNonLocalized("", true, ISO_8859_1_entry[i], this, s2); + if (CFSMounter::isMounted(g_settings.network_nfs_local_dir[i])) { - forwarder->iconName = NEUTRINO_ICON_MOUNTED; + mountMenuEntry[i]->iconName = NEUTRINO_ICON_MOUNTED; } else { - forwarder->iconName = NEUTRINO_ICON_NOT_MOUNTED; + mountMenuEntry[i]->iconName = NEUTRINO_ICON_NOT_MOUNTED; } - mountMenuW.addItem(forwarder); + mountMenuW.addItem(mountMenuEntry[i]); } int ret=mountMenuW.exec(this,""); return ret; diff --git a/src/gui/nfs.h b/src/gui/nfs.h index ad5e77063..46d4469ae 100644 --- a/src/gui/nfs.h +++ b/src/gui/nfs.h @@ -46,7 +46,9 @@ class CNFSMountGui : public CMenuTarget int menuEntry(int nr); char m_entry[NETWORK_NFS_NR_OF_ENTRIES][200]; - char ISO_8859_1_entry[NETWORK_NFS_NR_OF_ENTRIES][200]; + char ISO_8859_1_entry[NETWORK_NFS_NR_OF_ENTRIES][200]; + + CMenuForwarderNonLocalized* mountMenuEntry[NETWORK_NFS_NR_OF_ENTRIES]; CFSMounter::FS_Support m_nfs_sup; CFSMounter::FS_Support m_cifs_sup; From 4c1552ead923271cad1426692cc221d07c53bbc4 Mon Sep 17 00:00:00 2001 From: satbaby Date: Thu, 11 Oct 2012 12:09:11 +0200 Subject: [PATCH 306/317] nfs.cpp:Show OK buttons on menu forwarders, ported from tuxbox cvs Signed-off-by: satbaby --- src/gui/nfs.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/gui/nfs.cpp b/src/gui/nfs.cpp index 9f20e0a1a..eacc03661 100644 --- a/src/gui/nfs.cpp +++ b/src/gui/nfs.cpp @@ -264,7 +264,8 @@ int CNFSMountGui::menuEntry(int nr) CMenuForwarder *password_fwd = new CMenuForwarder(LOCALE_NFS_PASSWORD, (*type==CFSMounter::CIFS || CFSMounter::LUFS), NULL, &passInput); CMACInput macInput(LOCALE_RECORDINGMENU_SERVER_MAC, g_settings.network_nfs_mac[nr], LOCALE_IPSETUP_HINT_1, LOCALE_IPSETUP_HINT_2); CMenuForwarder * macInput_fwd = new CMenuForwarder(LOCALE_RECORDINGMENU_SERVER_MAC, true, g_settings.network_nfs_mac[nr], &macInput); - + CMenuForwarder *mountnow_fwd = new CMenuForwarder(LOCALE_NFS_MOUNTNOW, true, NULL, this, cmd); + mountnow_fwd->setItemButton(NEUTRINO_ICON_BUTTON_OKAY, true); CNFSMountGuiNotifier notifier(username_fwd, password_fwd, type); mountMenuEntryW.addItem(new CMenuOptionChooser(LOCALE_NFS_TYPE, type, NFS_TYPE_OPTIONS, NFS_TYPE_OPTION_COUNT, typeEnabled, ¬ifier)); @@ -277,7 +278,7 @@ int CNFSMountGui::menuEntry(int nr) mountMenuEntryW.addItem(username_fwd); mountMenuEntryW.addItem(password_fwd); mountMenuEntryW.addItem(macInput_fwd); - mountMenuEntryW.addItem(new CMenuForwarder(LOCALE_NFS_MOUNTNOW, true, NULL , this , cmd )); + mountMenuEntryW.addItem(mountnow_fwd); int ret = mountMenuEntryW.exec(this,""); return ret; @@ -341,8 +342,10 @@ int CNFSSmallMenu::exec( CMenuTarget* parent, const std::string & actionKey ) CMenuWidget sm_menu(LOCALE_NFSMENU_HEAD, NEUTRINO_ICON_NETWORK, width); CNFSMountGui mountGui; CNFSUmountGui umountGui; + CMenuForwarder *remount_fwd = new CMenuForwarder(LOCALE_NFS_REMOUNT, true, NULL, this, "remount"); + remount_fwd->setItemButton(NEUTRINO_ICON_BUTTON_OKAY, true); sm_menu.addIntroItems(); - sm_menu.addItem(new CMenuForwarder(LOCALE_NFS_REMOUNT, true, NULL, this, "remount")); + sm_menu.addItem(remount_fwd); sm_menu.addItem(new CMenuForwarder(LOCALE_NFS_MOUNT , true, NULL, & mountGui)); sm_menu.addItem(new CMenuForwarder(LOCALE_NFS_UMOUNT, true, NULL, &umountGui)); return sm_menu.exec(parent, actionKey); From 7b06b3fd3888143a2b878af5e141e0383a955807 Mon Sep 17 00:00:00 2001 From: satbaby Date: Thu, 11 Oct 2012 14:11:05 +0200 Subject: [PATCH 307/317] Neutrino: rework COnOffNotifier and use it if possible, ported from tuxbox cvs --- src/gui/miscsettings_menu.cpp | 6 ++++-- src/gui/miscsettings_menu.h | 2 +- src/gui/moviebrowser.cpp | 3 ++- src/gui/nfs.cpp | 34 ++++------------------------- src/gui/osd_setup.h | 11 ---------- src/system/setting_helpers.cpp | 39 +++++++++------------------------- src/system/setting_helpers.h | 20 ++++++----------- 7 files changed, 28 insertions(+), 87 deletions(-) diff --git a/src/gui/miscsettings_menu.cpp b/src/gui/miscsettings_menu.cpp index bc05e028c..409d0ddd4 100644 --- a/src/gui/miscsettings_menu.cpp +++ b/src/gui/miscsettings_menu.cpp @@ -281,8 +281,10 @@ void CMiscMenue::showMiscSettingsMenuEnergy(CMenuWidget *ms_energy) CStringInput * miscSettings_shutdown_count = new CStringInput(LOCALE_MISCSETTINGS_SHUTDOWN_COUNT, g_settings.shutdown_count, 3, LOCALE_MISCSETTINGS_SHUTDOWN_COUNT_HINT1, LOCALE_MISCSETTINGS_SHUTDOWN_COUNT_HINT2, "0123456789 "); CMenuForwarder *m2 = new CMenuDForwarder(LOCALE_MISCSETTINGS_SHUTDOWN_COUNT, !g_settings.shutdown_real, g_settings.shutdown_count, miscSettings_shutdown_count); m2->setHint("", LOCALE_MENU_HINT_SHUTDOWN_COUNT); - - miscNotifier = new CMiscNotifier( m1, m2 ); + + miscNotifier = new COnOffNotifier(1); + miscNotifier->addItem(m1); + miscNotifier->addItem(m2); CMenuOptionChooser * mc = new CMenuOptionChooser(LOCALE_MISCSETTINGS_SHUTDOWN_REAL, &g_settings.shutdown_real, OPTIONS_OFF1_ON0_OPTIONS, OPTIONS_OFF1_ON0_OPTION_COUNT, true, miscNotifier); mc->setHint("", LOCALE_MENU_HINT_SHUTDOWN_REAL); diff --git a/src/gui/miscsettings_menu.h b/src/gui/miscsettings_menu.h index 84e4e72b5..b05d0c68a 100644 --- a/src/gui/miscsettings_menu.h +++ b/src/gui/miscsettings_menu.h @@ -40,7 +40,7 @@ class CMiscMenue : public CMenuTarget private: CFanControlNotifier *fanNotifier; CSectionsdConfigNotifier* sectionsdConfigNotifier; - CMiscNotifier* miscNotifier; + COnOffNotifier* miscNotifier; int width; diff --git a/src/gui/moviebrowser.cpp b/src/gui/moviebrowser.cpp index b7fa267e8..b651122ee 100644 --- a/src/gui/moviebrowser.cpp +++ b/src/gui/moviebrowser.cpp @@ -2977,7 +2977,8 @@ bool CMovieBrowser::showMenu(MI_MOVIE_INFO* /*movie_info*/) { dirInput[i] = new CFileChooser(&m_settings.storageDir[i]); forwarder[i] = new CMenuForwarder(LOCALE_MOVIEBROWSER_DIR, m_settings.storageDirUsed[i], m_settings.storageDir[i], dirInput[i]); - notifier[i] = new COnOffNotifier(forwarder[i]); + notifier[i] = new COnOffNotifier(); + notifier[i]->addItem(forwarder[i]); chooser[i] = new CMenuOptionChooser(LOCALE_MOVIEBROWSER_USE_DIR , &m_settings.storageDirUsed[i] , MESSAGEBOX_YES_NO_OPTIONS, MESSAGEBOX_YES_NO_OPTIONS_COUNT, true,notifier[i]); optionsMenuDir.addItem(chooser[i] ); optionsMenuDir.addItem(forwarder[i] ); diff --git a/src/gui/nfs.cpp b/src/gui/nfs.cpp index eacc03661..2916475f7 100644 --- a/src/gui/nfs.cpp +++ b/src/gui/nfs.cpp @@ -51,37 +51,9 @@ #include #include #include - +#include #include -class CNFSMountGuiNotifier : public CChangeObserver -{ -private: - CMenuForwarder *m_opt1,*m_opt2, *m_user, *m_pass; - int *m_type; -public: - CNFSMountGuiNotifier( CMenuForwarder* a3, CMenuForwarder* a4 , int* type) - { - m_user = a3; - m_pass = a4; - m_type = type; - } - bool changeNotify(const neutrino_locale_t /*OptionName*/, void *) - { - if(*m_type == (int)CFSMounter::NFS) - { - m_user->setActive (false); - m_pass->setActive (false); - } - else - { - m_user->setActive (true); - m_pass->setActive (true); - } - return true; - } -}; - CNFSMountGui::CNFSMountGui() { // FIXME #warning move probing from exec() to fsmounter @@ -266,7 +238,9 @@ int CNFSMountGui::menuEntry(int nr) CMenuForwarder * macInput_fwd = new CMenuForwarder(LOCALE_RECORDINGMENU_SERVER_MAC, true, g_settings.network_nfs_mac[nr], &macInput); CMenuForwarder *mountnow_fwd = new CMenuForwarder(LOCALE_NFS_MOUNTNOW, true, NULL, this, cmd); mountnow_fwd->setItemButton(NEUTRINO_ICON_BUTTON_OKAY, true); - CNFSMountGuiNotifier notifier(username_fwd, password_fwd, type); + COnOffNotifier notifier(CFSMounter::NFS); + notifier.addItem(username_fwd); + notifier.addItem(password_fwd); mountMenuEntryW.addItem(new CMenuOptionChooser(LOCALE_NFS_TYPE, type, NFS_TYPE_OPTIONS, NFS_TYPE_OPTION_COUNT, typeEnabled, ¬ifier)); mountMenuEntryW.addItem(new CMenuForwarder(LOCALE_NFS_IP , true, g_settings.network_nfs_ip[nr], &ipInput )); diff --git a/src/gui/osd_setup.h b/src/gui/osd_setup.h index 99db7df0f..e62f6f793 100644 --- a/src/gui/osd_setup.h +++ b/src/gui/osd_setup.h @@ -90,15 +90,4 @@ class COsdSetup : public CMenuTarget, public CChangeObserver int showContextChanlistMenu(); }; - -class COsdSetupChannelLogoNotifier : public CChangeObserver -{ - private: - CMenuForwarder* toDisable1; - CMenuOptionChooser* toDisable2; - public: - COsdSetupChannelLogoNotifier( CMenuForwarder*, CMenuOptionChooser* ); - bool changeNotify(const neutrino_locale_t, void * Data); -}; - #endif diff --git a/src/system/setting_helpers.cpp b/src/system/setting_helpers.cpp index 677b696f9..b93cbb0d1 100644 --- a/src/system/setting_helpers.cpp +++ b/src/system/setting_helpers.cpp @@ -88,43 +88,24 @@ extern cDemux *pcrDemux; extern "C" int pinghost( const char *hostname ); -// gui/moviebrowser.cpp -COnOffNotifier::COnOffNotifier( CMenuItem* a1,CMenuItem* a2,CMenuItem* a3,CMenuItem* a4,CMenuItem* a5) +COnOffNotifier::COnOffNotifier(int OffValue) { - number = 0; - if(a1 != NULL){ toDisable[0] =a1;number++;}; - if(a2 != NULL){ toDisable[1] =a2;number++;}; - if(a3 != NULL){ toDisable[2] =a3;number++;}; - if(a4 != NULL){ toDisable[3] =a4;number++;}; - if(a5 != NULL){ toDisable[4] =a5;number++;}; + offValue = OffValue; } bool COnOffNotifier::changeNotify(const neutrino_locale_t, void *Data) { - if(*(int*)(Data) == 0) - { - for (int i=0; isetActive(false); - } - else - { - for (int i=0; isetActive(true); - } - return false; + bool active = (*(int*)(Data) != offValue); + + for (std::vector::iterator it = toDisable.begin(); it != toDisable.end(); it++) + (*it)->setActive(active); + + return false; } -//used in gui/miscsettings_menu.cpp -CMiscNotifier::CMiscNotifier( CMenuItem* i1, CMenuItem* i2) +void COnOffNotifier::addItem(CMenuItem* menuItem) { - toDisable[0]=i1; - toDisable[1]=i2; -} -bool CMiscNotifier::changeNotify(const neutrino_locale_t, void *) -{ - toDisable[0]->setActive(!g_settings.shutdown_real); - toDisable[1]->setActive(!g_settings.shutdown_real); - return false; + toDisable.push_back(menuItem); } bool CSectionsdConfigNotifier::changeNotify(const neutrino_locale_t, void *) diff --git a/src/system/setting_helpers.h b/src/system/setting_helpers.h index a8eda16bc..22d0b27c9 100644 --- a/src/system/setting_helpers.h +++ b/src/system/setting_helpers.h @@ -55,22 +55,16 @@ class CGenericMenuActivate }; class COnOffNotifier : public CChangeObserver -{ - private: - int number; - CMenuItem* toDisable[5]; - public: - COnOffNotifier (CMenuItem* a1,CMenuItem* a2 = NULL,CMenuItem* a3 = NULL,CMenuItem* a4 = NULL,CMenuItem* a5 = NULL); - bool changeNotify(const neutrino_locale_t, void *Data); -}; - -class CMiscNotifier : public CChangeObserver { private: - CMenuItem* toDisable[2]; + int offValue; + std::vector toDisable; + public: - CMiscNotifier( CMenuItem*, CMenuItem* ); - bool changeNotify(const neutrino_locale_t, void *); + COnOffNotifier(int OffValue = 0); + bool changeNotify(const neutrino_locale_t, void *Data); + + void addItem(CMenuItem* menuItem); }; class CSectionsdConfigNotifier : public CChangeObserver From 9526434754c98ece1d736a07bca80f4f1c5f6b57 Mon Sep 17 00:00:00 2001 From: satbaby Date: Thu, 11 Oct 2012 14:16:49 +0200 Subject: [PATCH 308/317] nfs.cpp:NFSMountGui: disable username and password properly, ported from tuxbox cvs --- src/gui/nfs.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gui/nfs.cpp b/src/gui/nfs.cpp index 2916475f7..eb2d47d25 100644 --- a/src/gui/nfs.cpp +++ b/src/gui/nfs.cpp @@ -231,9 +231,9 @@ int CNFSMountGui::menuEntry(int nr) CStringInputSMS options2Input(LOCALE_NFS_MOUNT_OPTIONS, options2, 30, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, "abcdefghijklmnopqrstuvwxyz0123456789-_=.,:|!?/ "); CMenuForwarder *options2_fwd = new CMenuForwarder(LOCALE_NFS_MOUNT_OPTIONS, true, options2, &options2Input); CStringInputSMS userInput(LOCALE_NFS_USERNAME, username, 30, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, "abcdefghijklmnopqrstuvwxyz0123456789-_.,:|!?/ "); - CMenuForwarder *username_fwd = new CMenuForwarder(LOCALE_NFS_USERNAME, (*type==CFSMounter::CIFS || CFSMounter::LUFS), username, &userInput); + CMenuForwarder *username_fwd = new CMenuForwarder(LOCALE_NFS_USERNAME, (*type != (int)CFSMounter::NFS), username, &userInput); CStringInputSMS passInput(LOCALE_NFS_PASSWORD, password, 30, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, "abcdefghijklmnopqrstuvwxyz0123456789-_.,:|!?/ "); - CMenuForwarder *password_fwd = new CMenuForwarder(LOCALE_NFS_PASSWORD, (*type==CFSMounter::CIFS || CFSMounter::LUFS), NULL, &passInput); + CMenuForwarder *password_fwd = new CMenuForwarder(LOCALE_NFS_PASSWORD, (*type != (int)CFSMounter::NFS), NULL, &passInput); CMACInput macInput(LOCALE_RECORDINGMENU_SERVER_MAC, g_settings.network_nfs_mac[nr], LOCALE_IPSETUP_HINT_1, LOCALE_IPSETUP_HINT_2); CMenuForwarder * macInput_fwd = new CMenuForwarder(LOCALE_RECORDINGMENU_SERVER_MAC, true, g_settings.network_nfs_mac[nr], &macInput); CMenuForwarder *mountnow_fwd = new CMenuForwarder(LOCALE_NFS_MOUNTNOW, true, NULL, this, cmd); From 5983d36b141989d5b9fe1c2b238afbeeb78198da Mon Sep 17 00:00:00 2001 From: satbaby Date: Thu, 11 Oct 2012 14:59:52 +0200 Subject: [PATCH 309/317] nfs.cpp: disable mount option if mountpoint is mounted --- src/gui/nfs.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/nfs.cpp b/src/gui/nfs.cpp index eb2d47d25..3117fba73 100644 --- a/src/gui/nfs.cpp +++ b/src/gui/nfs.cpp @@ -236,7 +236,7 @@ int CNFSMountGui::menuEntry(int nr) CMenuForwarder *password_fwd = new CMenuForwarder(LOCALE_NFS_PASSWORD, (*type != (int)CFSMounter::NFS), NULL, &passInput); CMACInput macInput(LOCALE_RECORDINGMENU_SERVER_MAC, g_settings.network_nfs_mac[nr], LOCALE_IPSETUP_HINT_1, LOCALE_IPSETUP_HINT_2); CMenuForwarder * macInput_fwd = new CMenuForwarder(LOCALE_RECORDINGMENU_SERVER_MAC, true, g_settings.network_nfs_mac[nr], &macInput); - CMenuForwarder *mountnow_fwd = new CMenuForwarder(LOCALE_NFS_MOUNTNOW, true, NULL, this, cmd); + CMenuForwarder *mountnow_fwd = new CMenuForwarder(LOCALE_NFS_MOUNTNOW, !(CFSMounter::isMounted(g_settings.network_nfs_local_dir[nr])), NULL, this, cmd); mountnow_fwd->setItemButton(NEUTRINO_ICON_BUTTON_OKAY, true); COnOffNotifier notifier(CFSMounter::NFS); notifier.addItem(username_fwd); From 21ffa39a457f2b9ff2e0ab6a6af1975ca793f721 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Thu, 11 Oct 2012 18:38:35 +0400 Subject: [PATCH 310/317] zapit/src/frontend.cpp: cleanup unused; remove redundant data members; dont set anything on first Open(), add Init() for this - will be called from femanager; dont init diseqc if no diseqc type set; dont send diseqc commands if no input is set; increase wait after voltage change; set voltage before diseqc commands --- src/zapit/include/zapit/frontend_c.h | 25 +-- src/zapit/src/frontend.cpp | 293 ++++++++------------------- 2 files changed, 95 insertions(+), 223 deletions(-) diff --git a/src/zapit/include/zapit/frontend_c.h b/src/zapit/include/zapit/frontend_c.h index 492028124..43cce1eb0 100644 --- a/src/zapit/include/zapit/frontend_c.h +++ b/src/zapit/include/zapit/frontend_c.h @@ -25,6 +25,7 @@ #define __zapit_frontend_h__ #include +#include #include #include #include @@ -78,8 +79,6 @@ static inline fe_rolloff_t dvbs_get_rolloff(fe_delivery_system_t delsys) return ROLLOFF_35; } -#define MAX_LNBS 64 /* due to Diseqc 1.1 (2003-01-10 rasc) */ - class CFEManager; class CFrontend @@ -87,12 +86,12 @@ class CFrontend private: /* frontend filedescriptor */ int fd; + + OpenThreads::Mutex mutex; /* use count for locking purposes */ int usecount; /* current adapter where this frontend is on */ int adapter; - /* current frontend instance */ - //static CFrontend *currentFe; bool locked; /* tuning finished flag */ bool tuned; @@ -100,7 +99,6 @@ class CFrontend struct dvb_frontend_info info; /* current 22kHz tone mode */ fe_sec_tone_mode_t currentToneMode; - int currentDiseqc; fe_sec_voltage_t currentVoltage; /* current satellite position */ int32_t currentSatellitePosition; @@ -117,7 +115,6 @@ class CFrontend int repeatUsals; int feTimeout; - int diseqc; uint8_t uncommitedInput; /* lnb offsets */ int32_t lnbOffsetLow; @@ -125,15 +122,12 @@ class CFrontend int32_t lnbSwitch; /* current Transponderdata */ TP_params currentTransponder; - FrontendParameters curfe; bool slave; int fenumber; bool standby; bool buildProperties(const FrontendParameters*, struct dtv_properties &); - uint32_t getDiseqcReply(const int timeout_ms) const; FrontendParameters getFrontend(void) const; - void secResetOverload(void); void secSetTone(const fe_sec_tone_mode_t mode, const uint32_t ms); void secSetVoltage(const fe_sec_voltage_t voltage, const uint32_t ms); void sendDiseqcCommand(const struct dvb_diseqc_master_cmd *cmd, const uint32_t ms); @@ -146,12 +140,13 @@ class CFrontend void sendToneBurst(const fe_sec_mini_cmd_t burst, const uint32_t ms); int setFrontend(const FrontendParameters *feparams, bool nowait = false); void setSec(const uint8_t sat_no, const uint8_t pol, const bool high_band); - void set12V(bool enable); void reset(void); /* Private constructor */ CFrontend(int Number = 0, int Adapter = 0); + bool Open(bool init = false); + void Close(void); + void Init(void); - //static CFrontend *getInstance(int Number = 0, int Adapter = 0); friend class CFEManager; public: ~CFrontend(void); @@ -160,7 +155,7 @@ class CFrontend uint8_t getDiseqcPosition(void) const { return currentTransponder.diseqc; } uint8_t getDiseqcRepeats(void) const { return config.diseqcRepeats; } diseqc_t getDiseqcType(void) const { return (diseqc_t) config.diseqcType; } - uint32_t getFrequency(void) const { return curfe.dvb_feparams.frequency; } + uint32_t getFrequency(void) const { return currentTransponder.feparams.dvb_feparams.frequency; } bool getHighBand() { return (int) getFrequency() >= lnbSwitch; } static fe_modulation_t getModulation(const uint8_t modulation); uint8_t getPolarization(void) const; @@ -177,7 +172,7 @@ class CFrontend int32_t getRotorSatellitePosition() { return rotorSatellitePosition; } void setDiseqcRepeats(const uint8_t repeats) { config.diseqcRepeats = repeats; } - void setDiseqcType(const diseqc_t type); + void setDiseqcType(const diseqc_t type, bool force = false); void setTimeout(int timeout) { feTimeout = timeout; }; void configUsals(double Latitude, double Longitude, int LaDirection, int LoDirection, bool _repeatUsals) { @@ -197,7 +192,6 @@ class CFrontend int setParameters(TP_params *TP, bool nowait = 0); int tuneFrequency (FrontendParameters * feparams, uint8_t polarization, bool nowait = false); const TP_params* getParameters(void) const { return ¤tTransponder; }; - struct dvb_frontend_event* setParametersResponse(TP_params *TP); void setCurrentSatellitePosition(int32_t satellitePosition) {currentSatellitePosition = satellitePosition; } void setRotorSatellitePosition(int32_t satellitePosition) {rotorSatellitePosition = satellitePosition; } @@ -206,7 +200,6 @@ class CFrontend void gotoXX(t_satellite_position pos); bool tuneChannel(CZapitChannel *channel, bool nvod); bool retuneChannel(void); - bool retuneTP(bool nowait = true); fe_code_rate_t getCFEC (); transponder_id_t getTsidOnid() { return currentTransponder.TP_id; } @@ -218,8 +211,6 @@ class CFrontend void setTsidOnid(transponder_id_t newid) { currentTransponder.TP_id = newid; } uint32_t getRate (); - bool Open(); - void Close(); void Lock(); void Unlock(); diff --git a/src/zapit/src/frontend.cpp b/src/zapit/src/frontend.cpp index 159f1895f..6b9088957 100644 --- a/src/zapit/src/frontend.cpp +++ b/src/zapit/src/frontend.cpp @@ -137,19 +137,6 @@ typedef enum dvb_fec { #define TIME_STEP 200 #define TIMEOUT_MAX_MS (feTimeout*100) /*********************************************************************************************************/ -#if 0 -// Global fe instance -CFrontend *CFrontend::currentFe = NULL; - -CFrontend *CFrontend::getInstance(int Number, int Adapter) -{ - if (!currentFe) { - currentFe = new CFrontend(Number, Adapter); - currentFe->Open(); - } - return currentFe; -} -#endif CFrontend::CFrontend(int Number, int Adapter) { printf("[fe%d] New frontend on adapter %d\n", Number, Adapter); @@ -161,15 +148,10 @@ CFrontend::CFrontend(int Number, int Adapter) locked = false; usecount = 0; - - memset(&curfe, 0, sizeof(curfe)); - curfe.dvb_feparams.u.qpsk.fec_inner = FEC_3_4; - curfe.dvb_feparams.u.qam.fec_inner = FEC_3_4; - curfe.dvb_feparams.u.qam.modulation = QAM_64; - tuned = false; uncommitedInput = 255; - diseqc = 255; + + memset(¤tTransponder, 0, sizeof(currentTransponder)); currentTransponder.polarization = 1; currentTransponder.feparams.dvb_feparams.frequency = 0; currentTransponder.TP_id = 0; @@ -183,28 +165,22 @@ CFrontend::CFrontend(int Number, int Adapter) config.motorRotationSpeed = 0; //in 0.1 degrees per second feTimeout = 40; - // to allow Open() switch it off - currentVoltage = SEC_VOLTAGE_OFF; //SEC_VOLTAGE_13; + currentVoltage = SEC_VOLTAGE_OFF; currentToneMode = SEC_TONE_ON; } CFrontend::~CFrontend(void) { printf("[fe%d] close frontend fd %d\n", fenumber, fd); - if(fd >= 0) { + if(fd >= 0) Close(); - close(fd); - } - //currentFe = NULL; } -bool CFrontend::Open(void) +bool CFrontend::Open(bool init) { if(!standby) return false; - printf("[fe%d] open frontend\n", fenumber); - char filename[128]; snprintf(filename, sizeof(filename), "/dev/dvb/adapter%d/frontend%d", adapter, fenumber); printf("[fe%d] open %s\n", fenumber, filename); @@ -219,14 +195,9 @@ bool CFrontend::Open(void) } //FIXME info.type = FE_QAM; - //currentVoltage = SEC_VOLTAGE_OFF; - //secSetVoltage(SEC_VOLTAGE_OFF, 15); - secSetVoltage(SEC_VOLTAGE_13, 15); - secSetTone(SEC_TONE_OFF, 15); - diseqc_t diseqcType = (diseqc_t) config.diseqcType; - config.diseqcType = NO_DISEQC; - setDiseqcType(diseqcType); + if (init) + Init(); currentTransponder.TP_id = 0; @@ -235,6 +206,15 @@ bool CFrontend::Open(void) return true; } +void CFrontend::Init(void) +{ + mutex.lock(); + secSetVoltage(SEC_VOLTAGE_13, 100); + secSetTone(SEC_TONE_OFF, 15); + setDiseqcType((diseqc_t) config.diseqcType, true); + mutex.unlock(); +} + void CFrontend::Close(void) { if(standby) @@ -261,16 +241,10 @@ void CFrontend::setMasterSlave(bool _slave) if(_slave) { secSetVoltage(SEC_VOLTAGE_OFF, 0); secSetTone(SEC_TONE_OFF, 15); - } - slave = _slave; - if(!slave) { - secSetVoltage(SEC_VOLTAGE_13, 0); -#if 1 - diseqc_t diseqcType = (diseqc_t) config.diseqcType; - config.diseqcType = NO_DISEQC; - setDiseqcType(diseqcType); -#endif } + slave = _slave; + if(!slave) + Init(); } void CFrontend::reset(void) @@ -293,11 +267,10 @@ void CFrontend::Unlock() fe_code_rate_t CFrontend::getCFEC() { - if (info.type == FE_QPSK) { - return curfe.dvb_feparams.u.qpsk.fec_inner; - } else { - return curfe.dvb_feparams.u.qam.fec_inner; - } + if (info.type == FE_QPSK) + return currentTransponder.feparams.dvb_feparams.u.qpsk.fec_inner; + else + return currentTransponder.feparams.dvb_feparams.u.qam.fec_inner; } fe_code_rate_t CFrontend::getCodeRate(const uint8_t fec_inner, int system) @@ -380,25 +353,19 @@ uint8_t CFrontend::getPolarization(void) const uint32_t CFrontend::getRate() { - if (info.type == FE_QPSK) { - return curfe.dvb_feparams.u.qpsk.symbol_rate; - } else { - return curfe.dvb_feparams.u.qam.symbol_rate; - } + if (info.type == FE_QPSK) + return currentTransponder.feparams.dvb_feparams.u.qpsk.symbol_rate; + else + return currentTransponder.feparams.dvb_feparams.u.qam.symbol_rate; } fe_status_t CFrontend::getStatus(void) const { -#if 1 // FIXME FE_READ_STATUS works ? struct dvb_frontend_event event; fop(ioctl, FE_READ_STATUS, &event.status); - //printf("CFrontend::getStatus: %x\n", event.status); return (fe_status_t) (event.status & FE_HAS_LOCK); -#else - fe_status_t status = (fe_status_t) tuned; - return status; -#endif } + #if 0 //never used FrontendParameters CFrontend::getFrontend(void) const @@ -406,6 +373,7 @@ FrontendParameters CFrontend::getFrontend(void) const return currentTransponder.feparams; } #endif + uint32_t CFrontend::getBitErrorRate(void) const { uint32_t ber = 0; @@ -452,12 +420,9 @@ struct dvb_frontend_event CFrontend::getEvent(void) memset(&event, 0, sizeof(struct dvb_frontend_event)); - //printf("[fe%d] getEvent: max timeout: %d\n", fenumber, TIMEOUT_MAX_MS); FE_TIMER_START(); - //while (msec <= TIMEOUT_MAX_MS ) { while ((int) timer_msec < TIMEOUT_MAX_MS) { - //int ret = poll(&pfd, 1, TIME_STEP); int ret = poll(&pfd, 1, TIMEOUT_MAX_MS - timer_msec); if (ret < 0) { perror("CFrontend::getEvent poll"); @@ -472,7 +437,6 @@ struct dvb_frontend_event CFrontend::getEvent(void) FE_TIMER_STOP("poll has event after"); memset(&event, 0, sizeof(struct dvb_frontend_event)); - //fop(ioctl, FE_READ_STATUS, &event.status); ret = ioctl(fd, FE_GET_EVENT, &event); if (ret < 0) { perror("CFrontend::getEvent ioctl"); @@ -746,7 +710,7 @@ bool CFrontend::buildProperties(const FrontendParameters *feparams, struct dtv_p return true; } -int CFrontend::setFrontend(const FrontendParameters *feparams, bool /*nowait*/) +int CFrontend::setFrontend(const FrontendParameters *feparams, bool nowait) { struct dtv_property cmdargs[FE_COMMON_PROPS + FE_DVBS2_PROPS]; // WARNING: increase when needed more space struct dtv_properties cmdseq; @@ -756,7 +720,6 @@ int CFrontend::setFrontend(const FrontendParameters *feparams, bool /*nowait*/) tuned = false; - //printf("[fe%d] DEMOD: FEC %s system %s modulation %s pilot %s\n", fenumber, f, s, m, pilot == PILOT_ON ? "on" : "off"); struct dvb_frontend_event ev; { // Erase previous events @@ -767,7 +730,6 @@ int CFrontend::setFrontend(const FrontendParameters *feparams, bool /*nowait*/) } } - //printf("[fe%d] DEMOD: FEC %s system %s modulation %s pilot %s, freq %d\n", fenumber, f, s, m, pilot == PILOT_ON ? "on" : "off", p->props[FREQUENCY].u.data); if (!buildProperties(feparams, cmdseq)) return 0; @@ -780,6 +742,8 @@ int CFrontend::setFrontend(const FrontendParameters *feparams, bool /*nowait*/) } FE_TIMER_STOP("FE_SET_PROPERTY took"); } + if (nowait) + return 0; { FE_TIMER_INIT(); FE_TIMER_START(); @@ -832,12 +796,6 @@ void CFrontend::secSetVoltage(const fe_sec_voltage_t voltage, const uint32_t ms) return; printf("[fe%d] voltage %s\n", fenumber, voltage == SEC_VOLTAGE_OFF ? "OFF" : voltage == SEC_VOLTAGE_13 ? "13" : "18"); - //printf("[fe%d] voltage %s high %d\n", fenumber, voltage == SEC_VOLTAGE_OFF ? "OFF" : voltage == SEC_VOLTAGE_13 ? "13" : "18", config.highVoltage); - //int val = config.highVoltage; - //fop(ioctl, FE_ENABLE_HIGH_LNB_VOLTAGE, val); - - //FE_TIMER_INIT(); - //FE_TIMER_START(); if (config.uni_scr >= 0) { /* see my comment in secSetTone... */ currentVoltage = voltage; /* need to know polarization for unicable */ @@ -847,34 +805,23 @@ void CFrontend::secSetVoltage(const fe_sec_voltage_t voltage, const uint32_t ms) if (fop(ioctl, FE_SET_VOLTAGE, voltage) == 0) { currentVoltage = voltage; - //FE_TIMER_STOP("[frontend] FE_SET_VOLTAGE took"); - usleep(1000 * ms); // FIXME : is needed ? + usleep(1000 * ms); } } -#if 0 -//never used -void CFrontend::secResetOverload(void) -{ -} -#endif + void CFrontend::sendDiseqcCommand(const struct dvb_diseqc_master_cmd *cmd, const uint32_t ms) { + if (slave || info.type != FE_QPSK) + return; + printf("[fe%d] Diseqc cmd: ", fenumber); for (int i = 0; i < cmd->msg_len; i++) printf("0x%X ", cmd->msg[i]); printf("\n"); - if (slave || info.type != FE_QPSK) - return; if (fop(ioctl, FE_DISEQC_SEND_MASTER_CMD, cmd) == 0) usleep(1000 * ms); } -#if 0 -//never used -uint32_t CFrontend::getDiseqcReply(const int /*timeout_ms*/) const -{ - return 0; -} -#endif + void CFrontend::sendToneBurst(const fe_sec_mini_cmd_t burst, const uint32_t ms) { if (slave || info.type != FE_QPSK) @@ -883,7 +830,7 @@ void CFrontend::sendToneBurst(const fe_sec_mini_cmd_t burst, const uint32_t ms) usleep(1000 * ms); } -void CFrontend::setDiseqcType(const diseqc_t newDiseqcType) +void CFrontend::setDiseqcType(const diseqc_t newDiseqcType, bool force) { switch (newDiseqcType) { case NO_DISEQC: @@ -923,19 +870,13 @@ void CFrontend::setDiseqcType(const diseqc_t newDiseqcType) return; } -#if 0 - if (!slave && (config.diseqcType <= MINI_DISEQC) - && (newDiseqcType > MINI_DISEQC)) { + if (force || ((config.diseqcType <= MINI_DISEQC) + && (newDiseqcType > MINI_DISEQC))) { + secSetTone(SEC_TONE_OFF, 15); sendDiseqcPowerOn(); sendDiseqcReset(); + secSetTone(SEC_TONE_ON, 20); } -#else - - if (config.diseqcType != newDiseqcType) { - sendDiseqcPowerOn(); - sendDiseqcReset(); - } -#endif config.diseqcType = newDiseqcType; } @@ -966,8 +907,8 @@ void CFrontend::sendMotorCommand(uint8_t cmdtype, uint8_t address, uint8_t comma cmd.msg_len = 3 + num_parameters; //secSetVoltage(config.highVoltage ? SEC_VOLTAGE_18 : SEC_VOLTAGE_13, 15); - secSetVoltage(SEC_VOLTAGE_13, 15); secSetTone(SEC_TONE_OFF, 15); + secSetVoltage(SEC_VOLTAGE_13, 100); for(i = 0; i <= repeat; i++) sendDiseqcCommand(&cmd, 50); @@ -985,12 +926,12 @@ void CFrontend::positionMotor(uint8_t motorPosition) }; if (motorPosition != 0) { - secSetVoltage(config.highVoltage ? SEC_VOLTAGE_18 : SEC_VOLTAGE_13, 15); secSetTone(SEC_TONE_OFF, 25); + secSetVoltage(config.highVoltage ? SEC_VOLTAGE_18 : SEC_VOLTAGE_13, 15); cmd.msg[3] = motorPosition; for (int i = 0; i <= repeatUsals; ++i) - sendDiseqcCommand(&cmd, 50); + sendDiseqcCommand(&cmd, 50); printf("[fe%d] motor positioning command sent.\n", fenumber); } @@ -999,12 +940,10 @@ void CFrontend::positionMotor(uint8_t motorPosition) bool CFrontend::setInput(CZapitChannel * channel, bool nvod) { transponder_list_t::iterator tpI; - //transponder_id_t ct = channel->getTransponderId(); transponder_id_t ct = nvod ? (channel->getTransponderId() & 0xFFFFFFFFULL) : channel->getTransponderId(); transponder_id_t current_id = nvod ? (currentTransponder.TP_id & 0xFFFFFFFFULL) : currentTransponder.TP_id; //printf("CFrontend::setInput tuned %d nvod %d current_id %llx new %llx\n\n", tuned, nvod, current_id, ct); - //if (tuned && (ct == currentTransponder.TP_id)) if (tuned && (ct == current_id)) return false; @@ -1022,6 +961,7 @@ bool CFrontend::setInput(CZapitChannel * channel, bool nvod) } currentTransponder.TP_id = tpI->first; + currentTransponder.polarization = tpI->second.polarization; currentSatellitePosition = channel->getSatellitePosition(); setInput(channel->getSatellitePosition(), tpI->second.feparams.dvb_feparams.frequency, tpI->second.polarization); @@ -1032,11 +972,7 @@ void CFrontend::setInput(t_satellite_position satellitePosition, uint32_t freque { sat_iterator_t sit = satellites.find(satellitePosition); -#if 0 - printf("[fe%d] setInput: SatellitePosition %d -> %d\n", fenumber, currentSatellitePosition, satellitePosition); - if (currentSatellitePosition != satellitePosition) -#endif - setLnbOffsets(sit->second.lnbOffsetLow, sit->second.lnbOffsetHigh, sit->second.lnbSwitch); + setLnbOffsets(sit->second.lnbOffsetLow, sit->second.lnbOffsetHigh, sit->second.lnbSwitch); if (config.diseqcType != DISEQC_ADVANCED) { setDiseqc(sit->second.diseqc, polarization, frequency); return; @@ -1047,7 +983,7 @@ void CFrontend::setInput(t_satellite_position satellitePosition, uint32_t freque sendUncommittedSwitchesCommand(sit->second.uncommited); } else { if (sendUncommittedSwitchesCommand(sit->second.uncommited)) - diseqc = -1; + currentTransponder.diseqc = -1; setDiseqcSimple(sit->second.commited, polarization, frequency); } } @@ -1092,49 +1028,42 @@ uint32_t CFrontend::sendEN50494TuningCommand(const uint32_t frequency, const int bool CFrontend::tuneChannel(CZapitChannel * /*channel*/, bool /*nvod*/) { -//printf("tuneChannel: tpid %llx\n", currentTransponder.TP_id); transponder_list_t::iterator transponder = transponders.find(currentTransponder.TP_id); if (transponder == transponders.end()) return false; return tuneFrequency(&transponder->second.feparams, transponder->second.polarization, false); } -#if 0 -//never used -bool CFrontend::retuneTP(bool nowait) -{ - /* used in pip only atm */ - tuneFrequency(&curfe, currentTransponder.polarization, nowait); - return 0; -} bool CFrontend::retuneChannel(void) { - setFrontend(¤tTransponder.feparams); - return 0; + mutex.lock(); + setInput(currentSatellitePosition, currentTransponder.feparams.dvb_feparams.frequency, currentTransponder.polarization); + transponder_list_t::iterator transponder = transponders.find(currentTransponder.TP_id); + if (transponder == transponders.end()) + return false; + mutex.unlock(); + return tuneFrequency(&transponder->second.feparams, transponder->second.polarization, true); } -#endif + int CFrontend::tuneFrequency(FrontendParameters * feparams, uint8_t polarization, bool nowait) { TP_params TP; - //printf("[fe%d] tune to frequency %d pol %s srate %d\n", fenumber, feparams->dvb_feparams.frequency, polarization ? "Vertical/Right" : "Horizontal/Left", feparams->dvb_feparams.u.qpsk.symbol_rate); - memmove(&curfe, feparams, sizeof(struct dvb_frontend_parameters)); + memmove(¤tTransponder.feparams, feparams, sizeof(struct dvb_frontend_parameters)); memmove(&TP.feparams, feparams, sizeof(struct dvb_frontend_parameters)); TP.polarization = polarization; return setParameters(&TP, nowait); } -int CFrontend::setParameters(TP_params *TP, bool /*nowait*/) +int CFrontend::setParameters(TP_params *TP, bool nowait) { int freq_offset = 0, freq; - TP_params currTP; - FrontendParameters *feparams; + FrontendParameters feparams; /* Copy the data for local use */ - currTP = *TP; - feparams = &currTP.feparams; - freq = (int) feparams->dvb_feparams.frequency; + memcpy(&feparams, &TP->feparams, sizeof(feparams)); + freq = (int) feparams.dvb_feparams.frequency; char * f, *s, *m; if (info.type == FE_QPSK) { @@ -1148,49 +1077,18 @@ int CFrontend::setParameters(TP_params *TP, bool /*nowait*/) freq_offset = lnbOffsetHigh; } - feparams->dvb_feparams.frequency = abs(freq - freq_offset); + feparams.dvb_feparams.frequency = abs(freq - freq_offset); setSec(TP->diseqc, TP->polarization, high_band); - getDelSys(feparams->dvb_feparams.u.qpsk.fec_inner, dvbs_get_modulation(feparams->dvb_feparams.u.qpsk.fec_inner), f, s, m); + getDelSys(feparams.dvb_feparams.u.qpsk.fec_inner, dvbs_get_modulation(feparams.dvb_feparams.u.qpsk.fec_inner), f, s, m); } else if (info.type == FE_QAM) { if (freq < 1000*1000) - feparams->dvb_feparams.frequency = freq * 1000; - getDelSys(feparams->dvb_feparams.u.qam.fec_inner,feparams->dvb_feparams.u.qam.modulation, f, s, m); -#if 0 - switch (TP->feparams.dvb_feparams.inversion) { - case INVERSION_OFF: - TP->feparams.dvb_feparams.inversion = INVERSION_ON; - break; - case INVERSION_ON: - default: - TP->feparams.dvb_feparams.inversion = INVERSION_OFF; - break; - } -#endif + feparams.dvb_feparams.frequency = freq * 1000; + getDelSys(feparams.dvb_feparams.u.qam.fec_inner, feparams.dvb_feparams.u.qam.modulation, f, s, m); } - //printf("[fe%d] tuner to frequency %d (offset %d timeout %d)\n", fenumber, feparams->dvb_feparams.frequency, freq_offset, TIMEOUT_MAX_MS); - //printf("[fe%d] tune to frequency %d (tuner %d offset %d timeout %d)\n", fenumber, freq, feparams->dvb_feparams.frequency, freq_offset, TIMEOUT_MAX_MS); printf("[fe%d] tune to %d %s %s %s %s srate %d (tuner %d offset %d timeout %d)\n", fenumber, freq, s, m, f, - TP->polarization & 1 ? "V/R" : "H/L", feparams->dvb_feparams.u.qpsk.symbol_rate, feparams->dvb_feparams.frequency, freq_offset, TIMEOUT_MAX_MS); - setFrontend(feparams); - -#if 0 - if (tuned) { - ret = diff(event.parameters.frequency, TP->feparams.dvb_feparams.frequency); - /* if everything went ok, then it is a good idea to copy the real - * frontend parameters, so we can update the service list, if it differs. - * TODO: set a flag to indicate a change in the service list */ - memmove(¤tTransponder.feparams, &event.parameters, sizeof(struct dvb_frontend_parameters)); - } -#endif - -#if 0 - /* add the frequency offset to the frontend parameters again - * because they are used for the channel list and were given - * to this method as a pointer */ - if (info.type == FE_QPSK) - TP->feparams.dvb_feparams.frequency += freq_offset; -#endif + TP->polarization & 1 ? "V/R" : "H/L", feparams.dvb_feparams.u.qpsk.symbol_rate, feparams.dvb_feparams.frequency, freq_offset, TIMEOUT_MAX_MS); + setFrontend(&feparams, nowait); return tuned; } @@ -1216,7 +1114,6 @@ bool CFrontend::sendUncommittedSwitchesCommand(int input) /* off = low band, on - hi band , vertical 13v, horizontal 18v */ bool CFrontend::setDiseqcSimple(int sat_no, const uint8_t pol, const uint32_t frequency) { - //for monoblock fe_sec_voltage_t v = (pol & 1) ? SEC_VOLTAGE_13 : SEC_VOLTAGE_18; //fe_sec_mini_cmd_t b = (sat_no & 1) ? SEC_MINI_B : SEC_MINI_A; bool high_band = ((int)frequency >= lnbSwitch); @@ -1225,20 +1122,15 @@ bool CFrontend::setDiseqcSimple(int sat_no, const uint8_t pol, const uint32_t fr {0xe0, 0x10, 0x38, 0x00, 0x00, 0x00}, 4 }; - INFO("[fe%d] diseqc input %d -> %d", fenumber, diseqc, sat_no); + INFO("[fe%d] diseqc input %d -> %d", fenumber, currentTransponder.diseqc, sat_no); currentTransponder.diseqc = sat_no; if (slave) return true; - if ((sat_no >= 0) && (diseqc != sat_no)) { - diseqc = sat_no; - printf("[fe%d] diseqc no. %d\n", fenumber, sat_no); - + if ((sat_no >= 0) /* && (diseqc != sat_no)*/) { cmd.msg[3] = 0xf0 | (((sat_no * 4) & 0x0f) | (high_band ? 1 : 0) | ((pol & 1) ? 0 : 2)); - //for monoblock - needed ?? - secSetVoltage(v, 15); - //secSetVoltage(SEC_VOLTAGE_13, 15);//FIXME for test secSetTone(SEC_TONE_OFF, 20); + secSetVoltage(v, 100); sendDiseqcCommand(&cmd, 100); return true; @@ -1259,21 +1151,23 @@ void CFrontend::setDiseqc(int sat_no, const uint8_t pol, const uint32_t frequenc uint8_t loop; bool high_band = ((int)frequency >= lnbSwitch); struct dvb_diseqc_master_cmd cmd = { {0xE0, 0x10, 0x38, 0xF0, 0x00, 0x00}, 4 }; - //fe_sec_voltage_t polarity = (pol & 1) ? SEC_VOLTAGE_13 : SEC_VOLTAGE_18; - //fe_sec_tone_mode_t tone = high_band ? SEC_TONE_ON : SEC_TONE_OFF;//seems needed? fe_sec_mini_cmd_t b = (sat_no & 1) ? SEC_MINI_B : SEC_MINI_A; int delay = 0; - printf("[fe%d] diseqc input %d -> %d\n", fenumber, diseqc, sat_no); + if ((config.diseqcType == NO_DISEQC) || sat_no < 0) + return; + + printf("[fe%d] diseqc input %d -> %d\n", fenumber, currentTransponder.diseqc, sat_no); + currentTransponder.diseqc = sat_no; if (slave) return; - //secSetVoltage(polarity, 15); /* first of all set the "polarization" */ - //secSetTone(tone, 1); /* set the "band" */ - - //secSetVoltage(SEC_VOLTAGE_13, 15);//FIXME for test secSetTone(SEC_TONE_OFF, 20); - +#if 1 + fe_sec_voltage_t v = (pol & 1) ? SEC_VOLTAGE_13 : SEC_VOLTAGE_18; + secSetVoltage(v, 100); +#endif + sendDiseqcReset(); for (loop = 0; loop <= config.diseqcRepeats; loop++) { //usleep(50*1000); /* sleep at least 50 milli seconds */ @@ -1316,13 +1210,6 @@ void CFrontend::setDiseqc(int sat_no, const uint8_t pol, const uint32_t frequenc if (config.diseqcType == SMATV_REMOTE_TUNING) sendDiseqcSmatvRemoteTuningCommand(frequency); - -#if 0 // setSec do this, when tune called - if (high_band) - secSetTone(SEC_TONE_ON, 20); -#endif - //secSetTone(tone, 20); - currentTransponder.diseqc = sat_no; } void CFrontend::setSec(const uint8_t /*sat_no*/, const uint8_t pol, const bool high_band) @@ -1330,33 +1217,29 @@ void CFrontend::setSec(const uint8_t /*sat_no*/, const uint8_t pol, const bool h fe_sec_voltage_t v = (pol & 1) ? SEC_VOLTAGE_13 : SEC_VOLTAGE_18; fe_sec_tone_mode_t t = high_band ? SEC_TONE_ON : SEC_TONE_OFF; - secSetVoltage(v, 15); + currentTransponder.polarization = pol; secSetTone(t, 15); - currentTransponder.polarization = pol;// & 1; + secSetVoltage(v, 100); } void CFrontend::sendDiseqcPowerOn(void) { // FIXME power on can take a while. Should be wait // more time here ? 15 ms enough for some switches ? -#if 1 printf("[fe%d] diseqc power on\n", fenumber); sendDiseqcZeroByteCommand(0xe0, 0x10, 0x03); -#else - struct dvb_diseqc_master_cmd cmd = { - {0xE0, 0x10, 0x03, 0x00, 0x00, 0x00}, 3 - }; - sendDiseqcCommand(&cmd, 100); -#endif } void CFrontend::sendDiseqcReset(void) { printf("[fe%d] diseqc reset\n", fenumber); +#if 0 /* Reset && Clear Reset */ sendDiseqcZeroByteCommand(0xe0, 0x10, 0x00); sendDiseqcZeroByteCommand(0xe0, 0x10, 0x01); - //sendDiseqcZeroByteCommand(0xe0, 0x00, 0x00); // enigma +#else + sendDiseqcZeroByteCommand(0xe0, 0x00, 0x00); // enigma +#endif } void CFrontend::sendDiseqcStandby(void) @@ -1402,7 +1285,6 @@ int CFrontend::driveToSatellitePosition(t_satellite_position satellitePosition, //if(config.diseqcType == DISEQC_ADVANCED) //FIXME testing { - //printf("[fe%d] SatellitePosition %d -> %d\n", fenumber, rotorSatellitePosition, satellitePosition); bool moved = false; sat_iterator_t sit = satellites.find(satellitePosition); @@ -1417,7 +1299,6 @@ int CFrontend::driveToSatellitePosition(t_satellite_position satellitePosition, if (sit != satellites.end()) old_position = sit->second.motor_position; - //printf("[fe%d] motorPosition %d -> %d usals %s\n", fenumber, old_position, new_position, use_usals ? "on" : "off"); printf("[fe%d] sat pos %d -> %d motor pos %d -> %d usals %s\n", fenumber, rotorSatellitePosition, satellitePosition, old_position, new_position, use_usals ? "on" : "off"); if (rotorSatellitePosition == satellitePosition) From 4758457e49f3902b0f097905433e6b5673d8efe5 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Thu, 11 Oct 2012 18:41:59 +0400 Subject: [PATCH 311/317] zapit/src/femanager.cpp: change frontend init: dont call setDiseqcType direct, setMode will call Init() or setMasterSlave(); force Init() on frontend re-open (leaving standby) --- src/zapit/src/femanager.cpp | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/src/zapit/src/femanager.cpp b/src/zapit/src/femanager.cpp index 26e669fc1..cabfe7127 100644 --- a/src/zapit/src/femanager.cpp +++ b/src/zapit/src/femanager.cpp @@ -170,8 +170,7 @@ bool CFEManager::loadSettings() frontend_config_t & fe_config = fe->getConfig(); INFO("load config for fe%d", fe->fenumber); - //fe_config.diseqcType = (diseqc_t) getConfigValue(fe, "diseqcType", NO_DISEQC); - diseqc_t diseqcType = (diseqc_t) getConfigValue(fe, "diseqcType", NO_DISEQC); + fe_config.diseqcType = (diseqc_t) getConfigValue(fe, "diseqcType", NO_DISEQC); fe_config.diseqcRepeats = getConfigValue(fe, "diseqcRepeats", 0); fe_config.motorRotationSpeed = getConfigValue(fe, "motorRotationSpeed", 18); fe_config.highVoltage = getConfigValue(fe, "highVoltage", 0); @@ -181,7 +180,10 @@ bool CFEManager::loadSettings() fe->setRotorSatellitePosition(getConfigValue(fe, "lastSatellitePosition", 0)); //fe->setDiseqcType((diseqc_t) fe_config.diseqcType); +#if 0 + diseqc_t diseqcType = (diseqc_t) getConfigValue(fe, "diseqcType", NO_DISEQC); fe->setDiseqcType(diseqcType); +#endif char cfg_key[81]; sprintf(cfg_key, "fe%d_satellites", fe->fenumber); @@ -265,27 +267,29 @@ void CFEManager::saveSettings(bool write) void CFEManager::setMode(fe_mode_t newmode, bool initial) { - if(newmode == mode) + if(!initial && (newmode == mode)) return; - if(femap.size() == 1) { - mode = FE_MODE_SINGLE; - return; - } mode = newmode; - bool setslave = (mode == FE_MODE_LOOP); + if(femap.size() == 1) + mode = FE_MODE_SINGLE; + + bool setslave = (mode == FE_MODE_LOOP) || (mode == FE_MODE_SINGLE); for(fe_map_iterator_t it = femap.begin(); it != femap.end(); it++) { + CFrontend * fe = it->second; if(it != femap.begin()) { - CFrontend * fe = it->second; INFO("Frontend %d as slave: %s", fe->fenumber, setslave ? "yes" : "no"); fe->setMasterSlave(setslave); - } + } else + fe->Init(); } +#if 0 if(setslave && !initial) { CFrontend * fe = getFE(0); fe->Close(); - fe->Open(); + fe->Open(true); } +#endif } void CFEManager::Open() @@ -293,7 +297,7 @@ void CFEManager::Open() for(fe_map_iterator_t it = femap.begin(); it != femap.end(); it++) { CFrontend * fe = it->second; if(!fe->Locked()) - fe->Open(); + fe->Open(true); } } From 7a7aec266ae766e3f825c2cf44bee9a825c90261 Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Thu, 11 Oct 2012 17:02:37 +0200 Subject: [PATCH 312/317] - network_setup.cpp: add ntp-server to network-test --- data/locale/deutsch.locale | 4 ++-- src/gui/network_setup.cpp | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index 0b07f99f9..8d3fea58e 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -1323,8 +1323,8 @@ networkmenu.ntpenable Zeit per INet synchronisieren networkmenu.ntprefresh NTP/DVB-Aktualisierung networkmenu.ntprefresh_hint1 NTP/DVB-Time-Sync [min] networkmenu.ntprefresh_hint2 braucht Reboot oder EPG-Reset -networkmenu.ntpserver NTP-URL (Zeitserver) -networkmenu.ntpserver_hint1 NTP-URL Beispiel: ntp1.ptb.de +networkmenu.ntpserver NTP-Server +networkmenu.ntpserver_hint1 NTP-Server Beispiel: ntp1.ptb.de networkmenu.ntpserver_hint2 braucht Reboot oder EPG-Reset networkmenu.ntptitle Zeitsynchronisation networkmenu.password Passwort (PSK) diff --git a/src/gui/network_setup.cpp b/src/gui/network_setup.cpp index 461707d91..1e77d421e 100644 --- a/src/gui/network_setup.cpp +++ b/src/gui/network_setup.cpp @@ -767,6 +767,12 @@ void CNetworkSetup::testNetworkSettings() //Nameserver text += (std::string)g_Locale->getText(LOCALE_NETWORKMENU_NAMESERVER) + ":\n"; text += offset + (std::string)our_nameserver + " " + (std::string)mypinghost(our_nameserver) + "\n"; + //NTPserver + if ( (pinghost(our_nameserver) == 1) && g_settings.network_ntpenable && (g_settings.network_ntpserver != "") ) + { + text += (std::string)g_Locale->getText(LOCALE_NETWORKMENU_NTPSERVER) + ":\n"; + text += offset + g_settings.network_ntpserver + " " + (std::string)mypinghost(g_settings.network_ntpserver.c_str()) + "\n"; + } //Wiki text += wiki_URL + ":\n"; text += offset + "via IP (" + wiki_IP + "): " + (std::string)mypinghost(wiki_IP.c_str()) + "\n"; From 4fa58bcd52d791c20f5f76f8e538095e56eea8c4 Mon Sep 17 00:00:00 2001 From: satbaby Date: Thu, 11 Oct 2012 18:15:06 +0200 Subject: [PATCH 313/317] imageinfo.cpp: add show kernel version --- src/gui/imageinfo.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/gui/imageinfo.cpp b/src/gui/imageinfo.cpp index 5807eabd4..acda3f530 100644 --- a/src/gui/imageinfo.cpp +++ b/src/gui/imageinfo.cpp @@ -32,6 +32,8 @@ #include #include +#include + #include #include @@ -209,8 +211,20 @@ void CImageInfo::paint() #else const char * builddate = config.getString("builddate", BUILT_DATE).c_str(); #endif + static CFlashVersionInfo versionInfo(version); const char * releaseCycle = versionInfo.getReleaseCycle(); + + struct utsname uts_info; + std::string Version_Kernel; + if( uname(&uts_info) < 0 ) { + Version_Kernel = releaseCycle; + }else{ + Version_Kernel = releaseCycle; + Version_Kernel += " - Kernel: "; + Version_Kernel += uts_info.release; + } + snprintf((char*) imagedate,sizeof(imagedate), "%s %s", versionInfo.getDate(), versionInfo.getTime()); ypos += iheight; @@ -223,7 +237,7 @@ void CImageInfo::paint() ypos += iheight; paintLine(xpos , font_info, g_Locale->getText(LOCALE_IMAGEINFO_VERSION)); - paintLine(xpos+offset, font_info, releaseCycle); + paintLine(xpos+offset, font_info, Version_Kernel.c_str()); ypos += iheight; #ifdef SVNVERSION From b461483f2f492c71b2cd6e767aa6690a1f7848b4 Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Thu, 11 Oct 2012 20:33:11 +0400 Subject: [PATCH 314/317] gui/imageinfo.cpp: add release/beta to image version --- src/gui/imageinfo.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/gui/imageinfo.cpp b/src/gui/imageinfo.cpp index acda3f530..ac5ecfa27 100644 --- a/src/gui/imageinfo.cpp +++ b/src/gui/imageinfo.cpp @@ -219,9 +219,13 @@ void CImageInfo::paint() std::string Version_Kernel; if( uname(&uts_info) < 0 ) { Version_Kernel = releaseCycle; + Version_Kernel += " "; + Version_Kernel += versionInfo.getType(); }else{ Version_Kernel = releaseCycle; - Version_Kernel += " - Kernel: "; + Version_Kernel += " "; + Version_Kernel += versionInfo.getType(); + Version_Kernel += " - Kernel: "; Version_Kernel += uts_info.release; } From 006ca9e85a6773092db966b5dfaa827b9fd50046 Mon Sep 17 00:00:00 2001 From: striper Date: Thu, 11 Oct 2012 19:09:31 +0200 Subject: [PATCH 315/317] - locales * add german translation * remove blank --- data/locale/deutsch.locale | 2 ++ data/locale/english.locale | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index 8d3fea58e..aee35cc1e 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -1799,6 +1799,8 @@ videomenu.videoformat_149 14:9 videomenu.videoformat_169 16:9 videomenu.videoformat_43 4:3 videomenu.videomode Videosystem +wizard.initial_settings Grundeinstellungen gefunden +wizard.install_settings Kanalliste für Astra 19.2°E installieren? wizard.welcome_head Willkommen zur Ersteinrichtung Ihres Receivers! wizard.welcome_text Wir gratulieren Ihnen zum Kauf Ihrer Coolstream. In den nun folgenden\nSchritten begleiten wir Sie durch die Erstinstallation des Gerätes.\nWir wünschen Ihnen viel Freude mit dem wohl einzigartigsten Receiver!\nBeachten Sie: Ihre Coolstream Set-Top-Box lässt sich bequem per Webinterface\nsteuern, um zum Beispiel die Timer-Verwaltung zu nutzen oder Live-TV im Web-Browser zu schauen.\nZugriff erhalten Sie mit dem Benutzernamen: root und dem Passwort: coolstream\nAchten Sie darauf, dass Ihre Gerät nicht von aussen zugänglich ist,\nda sonst ein Zugriff über das Internet nicht ausgeschlossen werden kann!\nNächster Schritt? word.from ab diff --git a/data/locale/english.locale b/data/locale/english.locale index d9d25012b..d6c2b9976 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -1800,7 +1800,7 @@ videomenu.videoformat_169 16:9 videomenu.videoformat_43 4:3 videomenu.videomode Digital video mode wizard.initial_settings Initial settings found -wizard.install_settings Do you want to install channels for Astra 19.2°E ? +wizard.install_settings Do you want to install channels for Astra 19.2°E? wizard.welcome_head Welcome to the Setup Wizard wizard.welcome_text Next steps will guide you through initial installation of the device.\nImportant: Your CoolStream set-top box can be conveniently controlled\nwith the web interface for timer management or live TV on the Web browser.\nDo not make it accessible to untrusted networks!\nDo you want to continue? word.from from From 6138e429482964756e9dd2934062726b0c117637 Mon Sep 17 00:00:00 2001 From: striper Date: Thu, 11 Oct 2012 20:31:22 +0200 Subject: [PATCH 316/317] - epgview: only hide info1 if info2 begins with info1 (port from tuxbox-cvs. THX Gaucho316) --- src/gui/epgview.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/epgview.cpp b/src/gui/epgview.cpp index 919a869d1..18b285dc1 100644 --- a/src/gui/epgview.cpp +++ b/src/gui/epgview.cpp @@ -544,7 +544,7 @@ int CEpgData::show(const t_channel_id channel_id, uint64_t a_id, time_t* a_start } } // Compare strings normally if not positively found to be equal before - if (false == bHide && false == (std::string::npos == epgData.info2.find(epgData.info1))) { + if (false == bHide && 0 == epgData.info2.find(epgData.info1)) { bHide = true; } } From dc95ffa37c66e3c110f43ef64f4d3692cce77ae9 Mon Sep 17 00:00:00 2001 From: striper Date: Thu, 11 Oct 2012 20:48:30 +0200 Subject: [PATCH 317/317] - audioplayer: fix memleak (THX martii) --- src/gui/audioplayer.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/gui/audioplayer.cpp b/src/gui/audioplayer.cpp index c16d70b09..ffc80f4ae 100644 --- a/src/gui/audioplayer.cpp +++ b/src/gui/audioplayer.cpp @@ -700,6 +700,9 @@ int CAudioPlayerGui::show() //InputSelector.addItem(GenericMenuSeparator); hide(); InputSelector.exec(NULL, ""); + + delete InetRadioInputChanger; + if (select >= 0) old_select = select; switch (select) {