diff --git a/src/driver/lcd4l.cpp b/src/driver/lcd4l.cpp index 12c7f8f76..9d42b80ac 100644 --- a/src/driver/lcd4l.cpp +++ b/src/driver/lcd4l.cpp @@ -51,6 +51,7 @@ #include #include #include +#include #include #include @@ -58,6 +59,7 @@ extern CRemoteControl *g_RemoteControl; extern cVideo *videoDecoder; +extern CPictureViewer *g_PicViewer; #define LCD_DATADIR "/tmp/lcd/" @@ -616,6 +618,7 @@ void CLCD4l::ParseInfo(uint64_t parseID, bool newID, bool firstRun) std::string Service = ""; int ChannelNr = 0; std::string Logo = LOGO_DUMMY; + int dummy; int ModeLogo = 0; int ModeStandby = 0; @@ -627,7 +630,7 @@ void CLCD4l::ParseInfo(uint64_t parseID, bool newID, bool firstRun) else Service = g_RemoteControl->getCurrentChannelName(); - GetLogoName(parseID, Service, Logo); + g_PicViewer->GetLogoName(parseID, Service, Logo, &dummy, &dummy, true); ChannelNr = CNeutrinoApp::getInstance()->channelList->getActiveChannelNumber(); } @@ -690,9 +693,9 @@ void CLCD4l::ParseInfo(uint64_t parseID, bool newID, bool firstRun) case 3: /* play */ if (ModeTshift && CMoviePlayerGui::getInstance().p_movie_info) /* show channel-logo */ { - if (!GetLogoName(CMoviePlayerGui::getInstance().p_movie_info->channelId, - CMoviePlayerGui::getInstance().p_movie_info->channelName, - Logo)) + if (!g_PicViewer->GetLogoName(CMoviePlayerGui::getInstance().p_movie_info->channelId, + CMoviePlayerGui::getInstance().p_movie_info->channelName, + Logo, &dummy, &dummy, true)) Logo = ICONSDIR "/" NEUTRINO_ICON_PLAY ICONSEXT; } else /* show play-icon */ @@ -1090,46 +1093,3 @@ std::string CLCD4l::hexStrA2A(unsigned char data) snprintf(hexstr, sizeof hexstr, "%02x", ret); return std::string(hexstr); } - -bool CLCD4l::GetLogoName(uint64_t channel_id, std::string channel_name, std::string &logo) -{ - int h, i, j; - char str_channel_id[16]; - char *upper_name, *lower_name, *p; - - upper_name = strdup(channel_name.c_str()); - for (p = upper_name; *p != '\0'; p++) - *p = (char) toupper(*p); - - lower_name = strdup(channel_name.c_str()); - for (p = lower_name; *p != '\0'; p++) - *p = (char) tolower(*p); - - sprintf(str_channel_id, "%llx", channel_id & 0xFFFFFFFFFFFFULL); - // the directorys to search in - std::string strLogoDir[4] = { g_settings.lcd4l_logodir, LOGODIR_VAR, LOGODIR, g_settings.logo_hdd_dir }; - // first the channelname, then the upper channelname, then the lower channelname, then the channel-id - std::string strLogoName[4] = { channel_name, (std::string)upper_name, (std::string)lower_name, (std::string)str_channel_id }; - // first png, then jpg, then gif - std::string strLogoExt[3] = { ".png", ".jpg", ".gif" }; - - //printf("[CLCD4l] %s: ID: %s, Name: %s (u: %s, l: %s)\n", __FUNCTION__, str_channel_id, channel_name.c_str(), upper_name, lower_name); - - for (h = 0; h < 4; h++) - { - for (i = 0; i < 4; i++) - { - for (j = 0; j < 3; j++) - { - std::string tmp(strLogoDir[h] + "/" + strLogoName[i] + strLogoExt[j]); - if (access(tmp.c_str(), R_OK) != -1) - { - logo = tmp; - return true; - } - } - } - } - - return false; -} diff --git a/src/driver/lcd4l.h b/src/driver/lcd4l.h index 0d2f0a08b..d01f7d7b8 100644 --- a/src/driver/lcd4l.h +++ b/src/driver/lcd4l.h @@ -59,7 +59,6 @@ class CLCD4l uint64_t GetParseID(); bool CompareParseID(uint64_t &i_ParseID); - bool GetLogoName(uint64_t channel_id, std::string channel_name, std::string & logo); std::string hexStr(unsigned char data); std::string hexStrA2A(unsigned char data);