diff --git a/configure.ac b/configure.ac index a96f02d08..1994b0644 100644 --- a/configure.ac +++ b/configure.ac @@ -99,10 +99,10 @@ AM_CONDITIONAL(USE_TREMOR, test "$TREMOR" = "yes") # TUXBOX_APPS_LIB_PKGCONFIG(OPENSSL,openssl) TUXBOX_APPS_LIB_PKGCONFIG(CURL,libcurl) TUXBOX_APPS_LIB_PKGCONFIG(FREETYPE,freetype2) -CPPFLAGS=`freetype-config --cflags` +CPPFLAGS+=" $(freetype-config --cflags)" AC_MSG_CHECKING([whether FreeType version is 2.5.0 or higher]) AC_TRY_CPP([ - #include + #include #include FT_FREETYPE_H #if FREETYPE_MAJOR < 2 || (FREETYPE_MAJOR == 2 && FREETYPE_MINOR < 5) #error Freetype version too low. diff --git a/src/gui/channellist.cpp b/src/gui/channellist.cpp index 378cc7a0e..3072ac78e 100644 --- a/src/gui/channellist.cpp +++ b/src/gui/channellist.cpp @@ -2444,6 +2444,7 @@ void CChannelList::paint_events(CChannelEventList &evtlist) evt.description = g_Locale->getText(LOCALE_EPGLIST_NOEVENTS); evt.eventID = 0; evt.startTime = 0; + evt.duration = 0; evtlist.push_back(evt); } diff --git a/src/gui/components/cc_detailsline.cpp b/src/gui/components/cc_detailsline.cpp index 5047247e2..2d0d0dec7 100644 --- a/src/gui/components/cc_detailsline.cpp +++ b/src/gui/components/cc_detailsline.cpp @@ -91,8 +91,6 @@ void CComponentsDetailLine::paint(bool do_save_bg) //NI if (!g_settings.show_menu_hints_line) return; - cc_save_bg = do_save_bg; - hide(); if (hasChanges()) clearFbData(); diff --git a/src/gui/components/cc_item_picture.cpp b/src/gui/components/cc_item_picture.cpp index c18543611..1abad278a 100644 --- a/src/gui/components/cc_item_picture.cpp +++ b/src/gui/components/cc_item_picture.cpp @@ -386,6 +386,8 @@ CComponentsChannelLogo::CComponentsChannelLogo( const int &x_pos, const int &y_p void CComponentsChannelLogo::init(const uint64_t& channelId, const std::string& channelName, bool allow_scale) { + channel_name = ""; + channel_id = 0; alt_pic_name = ""; setChannel(channelId, channelName); do_scale = allow_scale; diff --git a/src/gui/infoclock.cpp b/src/gui/infoclock.cpp index ac4b5ba2c..23aa8e290 100644 --- a/src/gui/infoclock.cpp +++ b/src/gui/infoclock.cpp @@ -32,9 +32,11 @@ #include #include #include +#include #include +#include - +extern CTimeOSD *FileTimeOSD; CInfoClock::CInfoClock():CComponentsFrmClock( 1, 1, NULL, "%H:%M:%S", NULL, false, 1, NULL, CC_SHADOW_ON) { @@ -123,6 +125,23 @@ bool CInfoClock::enableInfoClock(bool enable) ret = StopInfoClock(); } } + + if (enable) { + if (FileTimeOSD->getRestore()) { + FileTimeOSD->setMode(FileTimeOSD->getTmpMode()); + FileTimeOSD->update(CMoviePlayerGui::getInstance().GetPosition(), + CMoviePlayerGui::getInstance().GetDuration()); + } + } + else { + if (FileTimeOSD->getMode() != CTimeOSD::MODE_HIDE) { + FileTimeOSD->setTmpMode(); + FileTimeOSD->setRestore(); + if (FileTimeOSD->getRestore()) + FileTimeOSD->kill(); + } + } + return ret; } diff --git a/src/gui/lua/lua_curl.cpp b/src/gui/lua/lua_curl.cpp index fe1217512..b5163677e 100644 --- a/src/gui/lua/lua_curl.cpp +++ b/src/gui/lua/lua_curl.cpp @@ -178,7 +178,7 @@ Example: CLuaCurl *D = CurlCheckData(L, 1); if (!D) return 0; - char errMsg[1024]; + char errMsg[1024]={0}; CURL *curl_handle = curl_easy_init(); if (!curl_handle) { memset(errMsg, '\0', sizeof(errMsg)); @@ -309,7 +309,7 @@ Example: #endif } - char cerror[CURL_ERROR_SIZE]; + char cerror[CURL_ERROR_SIZE]={0}; curl_easy_setopt(curl_handle, CURLOPT_ERRORBUFFER, cerror); printf("\n[curl:download] download %s => %s\n", url.c_str(), (toFile)?outputfile.c_str():"return string"); @@ -330,7 +330,7 @@ Example: CURLcode res1 = curl_easy_getinfo(curl_handle, CURLINFO_EFFECTIVE_URL, &deffektive); CURLcode res2 = curl_easy_getinfo(curl_handle, CURLINFO_REDIRECT_URL, &dredirect); - char msg1[1024]; + char msg1[1024]={0}; memset(msg1, '\0', sizeof(msg1)); snprintf(msg1, sizeof(msg1)-1, "\n[curl:download] O.K. size: %.0f bytes, time: %.02f sec.", dsize, dtime); msg = msg1; diff --git a/src/gui/lua/lua_menue.h b/src/gui/lua/lua_menue.h index 7bee51603..dc0bf967d 100644 --- a/src/gui/lua/lua_menue.h +++ b/src/gui/lua/lua_menue.h @@ -62,7 +62,7 @@ class CLuaMenuForwarder : public CMenuTarget std::string luaId; CLuaMenuForwarder(lua_State *L, std::string _luaAction, std::string _luaId); ~CLuaMenuForwarder(); - int exec(CMenuTarget* parent, const std::string & actionKey); + int exec(CMenuTarget* parent=NULL, const std::string & actionKey=""); }; class CLuaMenuFilebrowser : public CLuaMenuForwarder @@ -74,7 +74,7 @@ class CLuaMenuFilebrowser : public CLuaMenuForwarder void Init(std::string *_value, bool _dirMode); public: CLuaMenuFilebrowser(lua_State *_L, std::string _luaAction, std::string _luaId, std::string *_value, bool _dirMode); - int exec(CMenuTarget* parent, const std::string & actionKey); + int exec(CMenuTarget* parent=NULL, const std::string & actionKey=""); void addFilter(std::string s) { filter.push_back(s); }; }; @@ -91,7 +91,7 @@ class CLuaMenuStringinput : public CLuaMenuForwarder void Init(const char *_name, std::string *_value, int _size, std::string _valid_chars, CChangeObserver *_observ, const char *_icon, bool _sms); public: CLuaMenuStringinput(lua_State *_L, std::string _luaAction, std::string _luaId, const char *_name, std::string *_value, int _size, std::string _valid_chars, CChangeObserver *_observ, const char *_icon, bool _sms); - int exec(CMenuTarget* parent, const std::string & actionKey); + int exec(CMenuTarget* parent=NULL, const std::string & actionKey=""); }; class CLuaMenuKeyboardinput : public CLuaMenuForwarder @@ -106,7 +106,7 @@ class CLuaMenuKeyboardinput : public CLuaMenuForwarder void Init(const char *_name, std::string *_value, int _size, CChangeObserver *_observ, const char *_icon, std::string _help, std::string _help2); public: CLuaMenuKeyboardinput(lua_State *_L, std::string _luaAction, std::string _luaId, const char *_name, std::string *_value, int _size, CChangeObserver *_observ, const char *_icon, std::string _help, std::string _help2); - int exec(CMenuTarget* parent, const std::string & actionKey); + int exec(CMenuTarget* parent=NULL, const std::string & actionKey=""); }; class CLuaInstMenu diff --git a/src/gui/movieplayer.cpp b/src/gui/movieplayer.cpp index def338fb4..d17f7215e 100644 --- a/src/gui/movieplayer.cpp +++ b/src/gui/movieplayer.cpp @@ -90,6 +90,7 @@ extern cVideo * videoDecoder; extern CRemoteControl *g_RemoteControl; /* neutrino.cpp */ extern CVolume* g_volume; +extern CTimeOSD *FileTimeOSD; #define TIMESHIFT_SECONDS 3 #define ISO_MOUNT_POINT "/media/iso" @@ -225,8 +226,6 @@ void CMoviePlayerGui::Init(void) blockedFromPlugin = false; m_screensaver = false; m_idletime = time(NULL); - m_mode = CTimeOSD::MODE_HIDE; - m_restore = false; } void CMoviePlayerGui::cutNeutrino() @@ -328,6 +327,10 @@ int CMoviePlayerGui::exec(CMenuTarget * parent, const std::string & actionKey) ClearFlags(); ClearQueue(); + FileTimeOSD->kill(); + FileTimeOSD->setMode(CTimeOSD::MODE_HIDE); + time_forced = false; + if (actionKey == "tsmoviebrowser") { isMovieBrowser = true; moviebrowser->setMode(MB_SHOW_RECORDS); @@ -517,11 +520,6 @@ void CMoviePlayerGui::enableOsdElements(bool mute) CInfoClock::getInstance()->enableInfoClock(true); CInfoIcons::getInstance()->enableInfoIcons(true); //NI InfoIcons - - if (m_restore) { - FileTime.setMode(m_mode); - FileTime.update(position, duration); - } } void CMoviePlayerGui::disableOsdElements(bool mute) @@ -531,11 +529,6 @@ void CMoviePlayerGui::disableOsdElements(bool mute) CInfoClock::getInstance()->enableInfoClock(false); CInfoIcons::getInstance()->enableInfoIcons(false); //NI InfoIcons - - m_mode = FileTime.getMode(); - m_restore = FileTime.IsVisible(); - if (m_restore) - FileTime.kill(); } void CMoviePlayerGui::makeFilename() @@ -1268,8 +1261,8 @@ bool CMoviePlayerGui::PlayFileStart(void) speed = -1; playback->SetSpeed(-1); playstate = CMoviePlayerGui::REW; - if (!FileTime.IsVisible() && !time_forced) { - FileTime.switchMode(position, duration); + if (!FileTimeOSD->IsVisible() && !time_forced) { + FileTimeOSD->switchMode(position, duration); time_forced = true; } } else if (timeshift == TSHIFT_MODE_OFF || !g_settings.timeshift_pause) { @@ -1365,7 +1358,7 @@ void CMoviePlayerGui::PlayFileLoop(void) if ((playstate >= CMoviePlayerGui::PLAY) && (timeshift != TSHIFT_MODE_OFF || (playstate != CMoviePlayerGui::PAUSE))) { if (playback->GetPosition(position, duration)) { - FileTime.update(position, duration); + FileTimeOSD->update(position, duration); if (duration > 100) file_prozent = (unsigned char) (position / (duration / 100)); @@ -1400,7 +1393,7 @@ void CMoviePlayerGui::PlayFileLoop(void) if (playstate == CMoviePlayerGui::STOPPED) at_eof = true; - FileTime.update(position, duration); + FileTimeOSD->update(position, duration); } showSubtitle(0); @@ -1475,7 +1468,7 @@ void CMoviePlayerGui::PlayFileLoop(void) } else if (msg == (neutrino_msg_t) g_settings.mpkey_play) { if (time_forced) { time_forced = false; - FileTime.kill(); + FileTimeOSD->kill(); } if (playstate > CMoviePlayerGui::PLAY) { playstate = CMoviePlayerGui::PLAY; @@ -1541,7 +1534,7 @@ void CMoviePlayerGui::PlayFileLoop(void) clearSubtitle(); update_lcd = true; } else if (msg == (neutrino_msg_t) g_settings.mpkey_time) { - FileTime.switchMode(position, duration); + FileTimeOSD->switchMode(position, duration); } else if (msg == (neutrino_msg_t) g_settings.mbkey_cover) { makeScreenShot(false, true); } else if (msg == (neutrino_msg_t) g_settings.key_screenshot) { @@ -1563,8 +1556,8 @@ void CMoviePlayerGui::PlayFileLoop(void) updateLcd(); } - if (!FileTime.IsVisible() && !time_forced) { - FileTime.switchMode(position, duration); + if (!FileTimeOSD->IsVisible() && !time_forced) { + FileTimeOSD->switchMode(position, duration); time_forced = true; } if (timeshift == TSHIFT_MODE_OFF) @@ -1640,8 +1633,8 @@ void CMoviePlayerGui::PlayFileLoop(void) update_lcd = true; clearSubtitle(); } else if (timeshift != TSHIFT_MODE_OFF && (msg == CRCInput::RC_text || msg == CRCInput::RC_epg || msg == NeutrinoMessages::SHOW_EPG)) { - bool restore = FileTime.IsVisible(); - FileTime.kill(); + bool restore = FileTimeOSD->IsVisible(); + FileTimeOSD->kill(); if (msg == CRCInput::RC_epg ) g_EventList->exec(CNeutrinoApp::getInstance()->channelList->getActiveChannel_ChannelID(), CNeutrinoApp::getInstance()->channelList->getActiveChannelName()); @@ -1654,15 +1647,15 @@ void CMoviePlayerGui::PlayFileLoop(void) frameBuffer->paintBackground(); } if (restore) - FileTime.show(position); + FileTimeOSD->show(position); #if 0 } else if (msg == CRCInput::RC_red) { - bool restore = FileTime.IsVisible(); - FileTime.kill(); + bool restore = FileTimeOSD->IsVisible(); + FileTimeOSD->kill(); CStreamInfo2 streaminfo; streaminfo.exec(NULL, ""); if (restore) - FileTime.show(position); + FileTimeOSD->show(position); update_lcd = true; #endif } else if (msg == NeutrinoMessages::SHOW_EPG) { @@ -1693,12 +1686,12 @@ void CMoviePlayerGui::PlayFileLoop(void) } else if (msg == (neutrino_msg_t) CRCInput::RC_setup) { CNeutrinoApp::getInstance()->handleMsg(NeutrinoMessages::SHOW_MAINMENU, 0); } else if (msg == CRCInput::RC_red || msg == CRCInput::RC_green || msg == CRCInput::RC_yellow || msg == CRCInput::RC_blue ) { - //maybe move FileTime.kill to Usermenu to simplify this call - bool restore = FileTime.IsVisible(); - FileTime.kill(); + //maybe move FileTimeOSD->kill to Usermenu to simplify this call + bool restore = FileTimeOSD->IsVisible(); + FileTimeOSD->kill(); CNeutrinoApp::getInstance()->usermenu.showUserMenu(msg); if (restore) - FileTime.show(position); + FileTimeOSD->show(position); update_lcd = true; } else { if (CNeutrinoApp::getInstance()->handleMsg(msg, data) & messages_return::cancel_all) { @@ -1733,7 +1726,7 @@ void CMoviePlayerGui::PlayFileEnd(bool restore) { printf("%s: stopping, this %p thread %p\n", __func__, this, CMoviePlayerGui::bgPlayThread);fflush(stdout); if (filelist_it == filelist.end()) - FileTime.kill(); + FileTimeOSD->kill(); clearSubtitle(); playback->SetSpeed(1); @@ -2259,7 +2252,7 @@ void CMoviePlayerGui::UpdatePosition() if (playback->GetPosition(position, duration)) { if (duration > 100) file_prozent = (unsigned char) (position / (duration / 100)); - FileTime.update(position, duration); + FileTimeOSD->update(position, duration); #ifdef DEBUG printf("CMoviePlayerGui::%s: spd %d pos %d/%d (%d, %d%%)\n", __func__, speed, position, duration, duration-position, file_prozent); #endif diff --git a/src/gui/movieplayer.h b/src/gui/movieplayer.h index d4ac0df4b..ab78c0049 100644 --- a/src/gui/movieplayer.h +++ b/src/gui/movieplayer.h @@ -118,7 +118,6 @@ class CMoviePlayerGui : public CMenuTarget int startposition; int position; int duration; - CTimeOSD FileTime; unsigned short numpida; unsigned short vpid; @@ -189,9 +188,6 @@ class CMoviePlayerGui : public CMenuTarget static CMoviePlayerGui* instance_mp; static CMoviePlayerGui* instance_bg; - CTimeOSD::mode m_mode; - bool m_restore; - void Init(void); void PlayFile(); bool PlayFileStart(); @@ -242,7 +238,6 @@ class CMoviePlayerGui : public CMenuTarget int exec(CMenuTarget* parent, const std::string & actionKey); bool Playing() { return playing; }; - bool osdTimeVisible() { return FileTime.IsVisible(); }; std::string CurrentAudioName() { return currentaudioname; }; int GetSpeed() { return speed; } int GetPosition() { return position; } diff --git a/src/gui/opkg_manager.cpp b/src/gui/opkg_manager.cpp index 229bad58d..be24d6a45 100644 --- a/src/gui/opkg_manager.cpp +++ b/src/gui/opkg_manager.cpp @@ -221,7 +221,7 @@ int COPKGManager::exec(CMenuTarget* parent, const string &actionKey) { string pkg_name = fileBrowser.getSelectedFile()->Name; if (!installPackage(pkg_name)) - showError(g_Locale->getText(LOCALE_OPKG_FAILURE_INSTALL), "", pkg_name); + showError(g_Locale->getText(LOCALE_OPKG_FAILURE_INSTALL), NULL, pkg_name); /* errno is never set properly, the string is totally useless. showError(g_Locale->getText(LOCALE_OPKG_FAILURE_INSTALL), strerror(errno), pkg_name); */ @@ -239,7 +239,7 @@ int COPKGManager::exec(CMenuTarget* parent, const string &actionKey) /* errno is never set properly, the string is totally useless. showError(g_Locale->getText(LOCALE_OPKG_FAILURE_UPGRADE), strerror(errno), actionKey); */ - showError(g_Locale->getText(LOCALE_OPKG_FAILURE_UPGRADE), "", actionKey); + showError(g_Locale->getText(LOCALE_OPKG_FAILURE_UPGRADE), NULL, actionKey); } else installed = true; refreshMenu(); @@ -1016,7 +1016,7 @@ bool COPKGManager::installPackage(const string& pkg_name, string options, bool f break; } default: - showError(g_Locale->getText(LOCALE_OPKG_FAILURE_INSTALL), "", pkg_types[OM_INSTALL] + opts + pkg_name); + showError(g_Locale->getText(LOCALE_OPKG_FAILURE_INSTALL), NULL, pkg_types[OM_INSTALL] + opts + pkg_name); /* errno / strerror considered useless here showError(g_Locale->getText(LOCALE_OPKG_FAILURE_INSTALL), strerror(errno), pkg_types[OM_INSTALL] + opts + pkg_name); */ diff --git a/src/gui/osd_setup.cpp b/src/gui/osd_setup.cpp index cb7f68b0e..21aab7532 100644 --- a/src/gui/osd_setup.cpp +++ b/src/gui/osd_setup.cpp @@ -49,6 +49,7 @@ #include #include #include +#include #include //NI #include //NI #include @@ -71,6 +72,7 @@ extern CRemoteControl * g_RemoteControl; extern const char * locale_real_names[]; extern std::string ttx_font_file; +extern CTimeOSD *FileTimeOSD; COsdSetup::COsdSetup(int wizard_mode) { @@ -1402,19 +1404,19 @@ void COsdSetup::showOsdInfoclockSetup(CMenuWidget *menu_infoclock) { menu_infoclock->addIntroItems(LOCALE_MISCSETTINGS_INFOCLOCK); - CMenuOptionChooser *mc = new CMenuOptionChooser(LOCALE_MISCSETTINGS_INFOCLOCK, &g_settings.mode_clock, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, NULL, CRCInput::RC_red); + CMenuOptionChooser *mc = new CMenuOptionChooser(LOCALE_MISCSETTINGS_INFOCLOCK, &g_settings.mode_clock, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, this, CRCInput::RC_red); mc->setHint("", LOCALE_MENU_HINT_CLOCK_MODE); menu_infoclock->addItem(mc); menu_infoclock->addItem(GenericMenuSeparatorLine); // size of info clock - CMenuOptionNumberChooser* mn = new CMenuOptionNumberChooser(LOCALE_CLOCK_SIZE_HEIGHT, &g_settings.infoClockFontSize, true, 30, 120); + CMenuOptionNumberChooser* mn = new CMenuOptionNumberChooser(LOCALE_CLOCK_SIZE_HEIGHT, &g_settings.infoClockFontSize, true, 30, 120, this); mn->setHint("", LOCALE_MENU_HINT_CLOCK_SIZE); menu_infoclock->addItem(mn); // clock with seconds - mc = new CMenuOptionChooser(LOCALE_CLOCK_SECONDS, &g_settings.infoClockSeconds, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true); + mc = new CMenuOptionChooser(LOCALE_CLOCK_SECONDS, &g_settings.infoClockSeconds, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, this); mc->setHint("", LOCALE_MENU_HINT_CLOCK_SECONDS); menu_infoclock->addItem(mc); @@ -1554,6 +1556,12 @@ bool COsdSetup::changeNotify(const neutrino_locale_t OptionName, void * data) //return true for repaint hint return true; } + else if ((ARE_LOCALES_EQUAL(OptionName, LOCALE_MISCSETTINGS_INFOCLOCK)) || + (ARE_LOCALES_EQUAL(OptionName, LOCALE_CLOCK_SIZE_HEIGHT)) || + (ARE_LOCALES_EQUAL(OptionName, LOCALE_CLOCK_SECONDS))) { + CInfoClock::getInstance()->ClearDisplay(); + FileTimeOSD->Init(); + } return false; } diff --git a/src/gui/timeosd.cpp b/src/gui/timeosd.cpp index 39cd78338..b10de2a8d 100644 --- a/src/gui/timeosd.cpp +++ b/src/gui/timeosd.cpp @@ -32,6 +32,7 @@ #include #include #include +#include #include #include "screensaver.h" @@ -42,6 +43,9 @@ extern CInfoIcons *InfoIcons; CTimeOSD::CTimeOSD():CComponentsFrmClock( 1, 1, NULL, "%H:%M:%S", NULL, false, 1, NULL, CC_SHADOW_ON) { + m_mode = MODE_HIDE; + tmp_mode = MODE_HIDE; + m_restore = false; Init(); } @@ -49,7 +53,6 @@ void CTimeOSD::Init() { paint_bg = g_settings.infoClockBackground; m_time_show = time(0); - m_mode = MODE_HIDE; //use current theme colors setColorAll(COL_FRAME_PLUS_0, COL_MENUCONTENT_PLUS_0, COL_SHADOW_PLUS_0); @@ -63,13 +66,7 @@ void CTimeOSD::Init() setColorBody(COL_BACKGROUND_PLUS_0); } - //set height, NOTE: height is strictly bound to settings - if (g_settings.infoClockFontSize != height){ - height = g_settings.infoClockFontSize; - int dx = 0; - int dy = height; - setClockFont(*CNeutrinoFonts::getInstance()->getDynFont(dx, dy, cl_format_str, cl_font_style)); - } + setClockFont(CInfoClock::getInstance()->getClockFont()); // set corner radius depending on clock height corner_rad = (g_settings.rounded_corners) ? std::max(height/10, CORNER_RADIUS_SMALL) : 0; @@ -88,6 +85,14 @@ CTimeOSD::~CTimeOSD() } #endif +CTimeOSD* CTimeOSD::getInstance() +{ + static CTimeOSD* timeOSD = NULL; + if(!timeOSD) + timeOSD = new CTimeOSD(); + return timeOSD; +} + void CTimeOSD::initTimeString() { struct tm t; diff --git a/src/gui/timeosd.h b/src/gui/timeosd.h index cf15b7643..c79da7dec 100644 --- a/src/gui/timeosd.h +++ b/src/gui/timeosd.h @@ -42,10 +42,10 @@ class CTimeOSD : public CComponentsFrmClock private: CProgressBar timescale; - mode m_mode; + mode m_mode, tmp_mode; + bool m_restore; time_t m_time_show; - void Init(); void initTimeString(); void updatePos(int position, int duration); void KillAndResetTimescale(); @@ -53,6 +53,8 @@ class CTimeOSD : public CComponentsFrmClock public: CTimeOSD(); // ~CTimeOSD(); is inherited + void Init(); + static CTimeOSD* getInstance(); void show(time_t time_show, bool force = true); void kill(); bool IsVisible() {return m_mode != MODE_HIDE;} @@ -60,6 +62,10 @@ class CTimeOSD : public CComponentsFrmClock void switchMode(int position, int duration); mode getMode() { return m_mode; }; void setMode (mode mode_) { m_mode = mode_; }; + mode getTmpMode() { return tmp_mode; }; + void setTmpMode () { tmp_mode = m_mode; }; + bool getRestore() { return m_restore; }; + void setRestore() { m_restore = (m_mode != MODE_HIDE); }; void setHeight(const int){}//NOTE: dummy member, height is strictly bound to settings }; #endif diff --git a/src/gui/tmdb.cpp b/src/gui/tmdb.cpp index e4e65b70a..8ebe101c1 100644 --- a/src/gui/tmdb.cpp +++ b/src/gui/tmdb.cpp @@ -128,7 +128,7 @@ bool cTmdb::getUrl(std::string &url, std::string &answer, CURL *_curl_handle) } } - char cerror[CURL_ERROR_SIZE]; + char cerror[CURL_ERROR_SIZE] = {0}; curl_easy_setopt(_curl_handle, CURLOPT_ERRORBUFFER, cerror); printf("try to get [%s] ...\n", url.c_str()); @@ -169,7 +169,7 @@ bool cTmdb::DownloadUrl(std::string url, std::string file, CURL *_curl_handle) } } - char cerror[CURL_ERROR_SIZE]; + char cerror[CURL_ERROR_SIZE] = {0}; curl_easy_setopt(_curl_handle, CURLOPT_ERRORBUFFER, cerror); printf("try to get [%s] ...\n", url.c_str()); diff --git a/src/gui/volumebar.cpp b/src/gui/volumebar.cpp index 89226d195..42550393c 100644 --- a/src/gui/volumebar.cpp +++ b/src/gui/volumebar.cpp @@ -33,9 +33,12 @@ #include #include +#include #include #include +extern CTimeOSD *FileTimeOSD; + using namespace std; @@ -134,7 +137,7 @@ void CVolumeBar::initVolumeBarPosition() break; } case VOLUMEBAR_POS_TOP_LEFT: - if (CMoviePlayerGui::getInstance().osdTimeVisible()) + if (FileTimeOSD->IsVisible()) y = clock_y + clock_height + v_spacer + OFFSET_SHADOW; break; case VOLUMEBAR_POS_BOTTOM_LEFT: diff --git a/src/gui/widget/menue.cpp b/src/gui/widget/menue.cpp index c6472598b..244850330 100644 --- a/src/gui/widget/menue.cpp +++ b/src/gui/widget/menue.cpp @@ -1274,6 +1274,8 @@ void CMenuWidget::paint() header->setCaptionColor(COL_MENUHEAD_TEXT); header->enableColBodyGradient(g_settings.theme.menu_Head_gradient, COL_MENUCONTENT_PLUS_0); header->enableGradientBgCleanUp(savescreen); + if (header->isPainted()) + header->kill(header->getColorBody()); header->paint(CC_SAVE_SCREEN_NO); // paint body shadow @@ -1473,6 +1475,8 @@ void CMenuWidget::paintHint(int pos) if (info_box) { savescreen ? info_box->hide() : info_box->kill(); hint_painted = info_box->isPainted(); + if (details_line) + details_line->hide(); } return; } diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 1a34bc91f..8f403011b 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -100,6 +100,7 @@ #include "gui/widget/menue.h" #include "gui/widget/msgbox.h" #include "gui/infoclock.h" +#include "gui/timeosd.h" #include "gui/parentallock_setup.h" #ifdef ENABLE_PIP #include "gui/pipsetup.h" @@ -146,6 +147,7 @@ int old_b_id = -1; CInfoClock *InfoClock; +CTimeOSD *FileTimeOSD; //NI InfoIcons #include "gui/infoicons.h" @@ -2338,6 +2340,12 @@ TIMER_START(); g_RemoteControl = new CRemoteControl; g_EpgData = new CEpgData; + InfoClock = CInfoClock::getInstance(); + //NI InfoIcons + InfoIcons = CInfoIcons::getInstance(); + if(g_settings.mode_icons) + InfoIcons->StartIcons(); + FileTimeOSD = CTimeOSD::getInstance(); g_InfoViewer = new CInfoViewer; g_EventList = new CEventList; @@ -2551,14 +2559,6 @@ void CNeutrinoApp::RealRun() dprintf(DEBUG_NORMAL, "initialized everything\n"); - //activating infoclock - InfoClock = CInfoClock::getInstance(); - - //NI InfoIcons - InfoIcons = CInfoIcons::getInstance(); - if(g_settings.mode_icons) - InfoIcons->StartIcons(); - if(g_settings.power_standby || init_cec_setting) standbyMode(true, true); @@ -4647,6 +4647,8 @@ void stop_daemons(bool stopall, bool for_flash) videoDecoder->SetCECMode((VIDEO_HDMI_CEC_MODE)0); } + delete InfoClock; + delete FileTimeOSD; delete &CMoviePlayerGui::getInstance(); CZapit::getInstance()->Stop(); diff --git a/src/system/ytcache.cpp b/src/system/ytcache.cpp index 64dcb6672..0f04358f4 100644 --- a/src/system/ytcache.cpp +++ b/src/system/ytcache.cpp @@ -148,7 +148,7 @@ bool cYTCache::download(MI_MOVIE_INFO *mi) curl_easy_setopt(curl, CURLOPT_NOPROGRESS, (long)0); curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1); - char cerror[CURL_ERROR_SIZE]; + char cerror[CURL_ERROR_SIZE] = {0}; curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, cerror); if(!g_settings.softupdate_proxyserver.empty()) { diff --git a/src/system/ytparser.cpp b/src/system/ytparser.cpp index 6f4418c49..928df3afe 100644 --- a/src/system/ytparser.cpp +++ b/src/system/ytparser.cpp @@ -151,7 +151,7 @@ bool cYTFeedParser::getUrl(std::string &url, std::string &answer, CURL *_curl_ha } } - char cerror[CURL_ERROR_SIZE]; + char cerror[CURL_ERROR_SIZE] = {0}; curl_easy_setopt(_curl_handle, CURLOPT_ERRORBUFFER, cerror); printf("try to get [%s] ...\n", url.c_str()); @@ -192,7 +192,7 @@ bool cYTFeedParser::DownloadUrl(std::string &url, std::string &file, CURL *_curl } } - char cerror[CURL_ERROR_SIZE]; + char cerror[CURL_ERROR_SIZE] = {0}; curl_easy_setopt(_curl_handle, CURLOPT_ERRORBUFFER, cerror); printf("try to get [%s] ...\n", url.c_str());