From 93f74ef82919df4ea8ef694ae19a450f9c01d798 Mon Sep 17 00:00:00 2001 From: TangoCash Date: Tue, 25 Dec 2018 01:12:16 +0100 Subject: [PATCH] show event logos only in infoviewer --- src/driver/pictureviewer/pictureviewer.cpp | 4 ++-- src/driver/pictureviewer/pictureviewer.h | 2 +- src/gui/components/cc_item_picture.cpp | 3 ++- src/gui/components/cc_item_picture.h | 11 +++++++++-- src/gui/infoviewer.cpp | 2 +- 5 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/driver/pictureviewer/pictureviewer.cpp b/src/driver/pictureviewer/pictureviewer.cpp index e643f3eb5..fd13c0d69 100644 --- a/src/driver/pictureviewer/pictureviewer.cpp +++ b/src/driver/pictureviewer/pictureviewer.cpp @@ -529,7 +529,7 @@ void CPictureViewer::getSize(const char* name, int* width, int *height) } } -bool CPictureViewer::GetLogoName(const uint64_t &ChannelID, const std::string &ChannelName, std::string &name, int *width, int *height, bool lcd4l_mode) +bool CPictureViewer::GetLogoName(const uint64_t &ChannelID, const std::string &ChannelName, std::string &name, int *width, int *height, bool lcd4l_mode, bool enable_event_logo) { std::string fileType[] = { ".png", ".jpg", ".gif" }; std::vector v_path; @@ -538,7 +538,7 @@ bool CPictureViewer::GetLogoName(const uint64_t &ChannelID, const std::string &C // create eventname for eventlogos; Note: We don't process channellogos if any eventlogo was found. std::string EventName = ""; int mode = CNeutrinoApp::getInstance()->getMode(); - if (ChannelID || mode == NeutrinoModes::mode_ts) + if (enable_event_logo && (ChannelID || mode == NeutrinoModes::mode_ts)) { // TODO: fix eventlogo in moviebrowser diff --git a/src/driver/pictureviewer/pictureviewer.h b/src/driver/pictureviewer/pictureviewer.h index ead659138..63b2ef921 100644 --- a/src/driver/pictureviewer/pictureviewer.h +++ b/src/driver/pictureviewer/pictureviewer.h @@ -67,7 +67,7 @@ class CPictureViewer static double m_aspect_ratio_correction; bool DisplayImage (const std::string & name, int posx, int posy, int width, int height, int transp=0 /*CFrameBuffer::TM_EMPTY*/); // bool DisplayLogo (uint64_t channel_id, int posx, int posy, int width, int height); - bool GetLogoName(const uint64_t &ChannelID, const std::string &ChannelName, std::string &name, int *width = NULL, int *height = NULL, bool lcd4l_mode = false); + bool GetLogoName(const uint64_t &ChannelID, const std::string &ChannelName, std::string &name, int *width = NULL, int *height = NULL, bool lcd4l_mode = false, bool enable_event_logo = false); fb_pixel_t * getImage (const std::string & name, int width, int height); fb_pixel_t * getIcon (const std::string & name, int *width, int *height); void getSize(const char *name, int* width, int *height); diff --git a/src/gui/components/cc_item_picture.cpp b/src/gui/components/cc_item_picture.cpp index 6d8eacca3..afb35f7b0 100644 --- a/src/gui/components/cc_item_picture.cpp +++ b/src/gui/components/cc_item_picture.cpp @@ -407,6 +407,7 @@ void CComponentsChannelLogo::init(const uint64_t& channelId, const std::string& alt_pic_name = ""; setChannel(channelId, channelName); do_scale = allow_scale; + enable_event_logo = false; } void CComponentsChannelLogo::setAltLogo(const std::string& picture_name) { @@ -444,7 +445,7 @@ void CComponentsChannelLogo::setChannel(const uint64_t& channelId, const std::st int dummy; - has_logo = g_PicViewer->GetLogoName(channel_id, channel_name, image, &dummy, &dummy); + has_logo = g_PicViewer->GetLogoName(channel_id, channel_name, image, &dummy, &dummy, false, enable_event_logo); if (!has_logo)//no logo was found, use altrenate icon or logo image = alt_pic_name; diff --git a/src/gui/components/cc_item_picture.h b/src/gui/components/cc_item_picture.h index 3545cecda..a29c056f2 100644 --- a/src/gui/components/cc_item_picture.h +++ b/src/gui/components/cc_item_picture.h @@ -200,7 +200,10 @@ class CComponentsChannelLogo : public CComponentsPicture uint64_t channel_id; ///channel name std::string channel_name; - + + ///mode of event logo + bool enable_event_logo; + ///alternate image file, if no channel logo is available std::string alt_pic_name; @@ -250,7 +253,11 @@ class CComponentsChannelLogo : public CComponentsPicture void setAltLogo(const std::string& picture_name); ///set an alternate logo if no logo is available, NOTE: value of has_logo will set to true void setAltLogo(const char* picture_name); - + + ///enable/disable eventlogo + void enableEventLogo(bool enable = true){enable_event_logo = enable;} + void disableEventLogo(){enableEventLogo(false);} + ///returns true, if any logo is available, also if an alternate logo was setted bool hasLogo(){return has_logo;}; diff --git a/src/gui/infoviewer.cpp b/src/gui/infoviewer.cpp index 6a128bca0..b2fa1a971 100644 --- a/src/gui/infoviewer.cpp +++ b/src/gui/infoviewer.cpp @@ -2146,7 +2146,7 @@ int CInfoViewer::showChannelLogo(const t_channel_id logo_channel_id, const int c int start_x = ChanNameX; int chan_w = BoxEndX - (start_x + 2*OFFSET_INNER_MID) - time_width - OFFSET_INNER_MID; - bool logo_available = g_PicViewer->GetLogoName(logo_channel_id, ChannelName, strAbsIconPath, &logo_w, &logo_h); + bool logo_available = g_PicViewer->GetLogoName(logo_channel_id, ChannelName, strAbsIconPath, &logo_w, &logo_h, false, true); //fprintf(stderr, "%s: logo_available: %d file: %s\n", __FUNCTION__, logo_available, strAbsIconPath.c_str());