[Commits] : Tuxbox-GIT: apps branch master updated. CVS-Final-547-g5e284d6
Tuxbox Sources
Brought to you by:
dbt1
|
From: GetAway <tux...@ne...> - 2015-05-09 19:04:13
|
Project "Tuxbox-GIT: apps":
The branch, master has been updated
via 5e284d6b1c1f3f4be4995e9e420f1f65912d7806 (commit)
from 34529ba9a5d364d7ba9c71364614248e651eef21 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 5e284d6b1c1f3f4be4995e9e420f1f65912d7806
Author: GetAway <get...@t-...>
Date: Sat May 9 21:02:17 2015 +0200
yWeb: port "Tuxbox.DisplayLogos" from martii & svenhofer
now support for jpg, and gif logos
as an example: start nfs share of Coolstream Logo-Dir
and mount it with your dbox.
set dir of logos in yWeb/Settings/Webserver ;)
Signed-off-by: GetAway <get...@t-...>
diff --git a/tuxbox/neutrino/daemons/nhttpd/tuxboxapi/neutrinoapi.cpp b/tuxbox/neutrino/daemons/nhttpd/tuxboxapi/neutrinoapi.cpp
index 13710ca..15646a6 100644
--- a/tuxbox/neutrino/daemons/nhttpd/tuxboxapi/neutrinoapi.cpp
+++ b/tuxbox/neutrino/daemons/nhttpd/tuxboxapi/neutrinoapi.cpp
@@ -424,3 +424,24 @@ std::string CNeutrinoAPI::timerEventRepeat2Str(CTimerd::CTimerEventRepeat rep)
return result;
}
+//-------------------------------------------------------------------------
+std::string CNeutrinoAPI::getLogoFile(std::string _logoURL, t_channel_id channelId) {
+ std::string channelIdAsString = string_printf( PRINTF_CHANNEL_ID_TYPE_NO_LEADING_ZEROS , channelId & 0xFFFFFFFFFFFFULL);
+ std::string channelName = GetServiceName(channelId);
+// replace(channelName, " ", "_");
+ _logoURL+="/";
+ if (access((_logoURL + channelName + ".png").c_str(), 4) == 0)
+ return _logoURL + channelName + ".png";
+ else if (access((_logoURL + channelName + ".jpg").c_str(), 4) == 0)
+ return _logoURL + channelName + ".jpg";
+ else if (access((_logoURL + channelName + ".gif").c_str(), 4) == 0)
+ return _logoURL + channelName + ".gif";
+ else if(access((_logoURL + channelIdAsString + ".png").c_str(), 4) == 0)
+ return _logoURL + channelIdAsString + ".png";
+ else if (access((_logoURL + channelIdAsString + ".jpg").c_str(), 4) == 0)
+ return _logoURL + channelIdAsString + ".jpg";
+ else if (access((_logoURL + channelIdAsString + ".gif").c_str(), 4) == 0)
+ return _logoURL + channelIdAsString + ".gif";
+ else
+ return "";
+}
diff --git a/tuxbox/neutrino/daemons/nhttpd/tuxboxapi/neutrinoapi.h b/tuxbox/neutrino/daemons/nhttpd/tuxboxapi/neutrinoapi.h
index c4898bc..9dd9c7c 100644
--- a/tuxbox/neutrino/daemons/nhttpd/tuxboxapi/neutrinoapi.h
+++ b/tuxbox/neutrino/daemons/nhttpd/tuxboxapi/neutrinoapi.h
@@ -75,6 +75,7 @@ class CNeutrinoAPI
std::string timerEventType2Str(CTimerd::CTimerEventTypes type);
std::string timerEventRepeat2Str(CTimerd::CTimerEventRepeat rep);
+ std::string getLogoFile(std::string _logoURL, t_channel_id channelId);
public:
CNeutrinoAPI();
diff --git a/tuxbox/neutrino/daemons/nhttpd/tuxboxapi/neutrinoyparser.cpp b/tuxbox/neutrino/daemons/nhttpd/tuxboxapi/neutrinoyparser.cpp
index 0378b0e..7b54c6f 100644
--- a/tuxbox/neutrino/daemons/nhttpd/tuxboxapi/neutrinoyparser.cpp
+++ b/tuxbox/neutrino/daemons/nhttpd/tuxboxapi/neutrinoyparser.cpp
@@ -74,7 +74,6 @@ THandleStatus CNeutrinoYParser::Hook_ReadConfig(CConfigFile *Config, CStringList
ConfigList["ExtrasDocumentURL"] = Config->getString("ExtrasDocURL", EXTRASDOCUMENTURL);
// ConfigList["NewGui"] = Config->getString("NewGui", "true");
ConfigList["Zapit_XML_Path"] = Config->getString("Zapit_XML_Path", ZAPITXMLPATH);
- ConfigList["TUXBOX_LOGOS_URL"]= Config->getString("Tuxbox.LogosURL", TUXBOX_LOGOS_URL);
if (Config->getInt32("configfile.version") < 3)
{
@@ -99,6 +98,7 @@ const CNeutrinoYParser::TyFuncCall CNeutrinoYParser::yFuncCallList[]=
{"get_channels_as_dropdown", &CNeutrinoYParser::func_get_channels_as_dropdown},
{"get_bouquets_with_epg", &CNeutrinoYParser::func_get_bouquets_with_epg},
{"get_actual_channel_id", &CNeutrinoYParser::func_get_actual_channel_id},
+ {"get_logo_name", &CNeutrinoYParser::func_get_logo_name},
{"get_mode", &CNeutrinoYParser::func_get_mode},
{"get_video_pids", &CNeutrinoYParser::func_get_video_pids},
{"get_audio_pid", &CNeutrinoYParser::func_get_radio_pid},
@@ -317,7 +317,7 @@ std::string CNeutrinoYParser::func_get_bouquets_with_epg(CyhookHandler *hh, std:
std::string timestr;
bool have_logos = false;
- if(!hh->WebserverConfigList["TUXBOX_LOGOS_URL"].empty())
+ if (!hh->WebserverConfigList["Tuxbox.LogosURL"].empty() && hh->WebserverConfigList["Tuxbox.DisplayLogos"] == "true" )
have_logos = true;
CZapitClient::BouquetChannelList::iterator channel = channellist->begin();
for (; channel != channellist->end(); ++channel)
@@ -330,14 +330,34 @@ std::string CNeutrinoYParser::func_get_bouquets_with_epg(CyhookHandler *hh, std:
std::string bouquetstr = (BouquetNr >= 0) ? ("&bouquet=" + itoa(BouquetNr)) : "";
yresult += "<tr>";
- if(have_logos)
- yresult += string_printf("<td class=\"%c\" width=\"44\" rowspan=\"2\"><a href=\"javascript:do_zap('"
- PRINTF_CHANNEL_ID_TYPE_NO_LEADING_ZEROS
- "')\"><img class=\"channel_logo\" src=\"%s/"
- PRINTF_CHANNEL_ID_TYPE_NO_LEADING_ZEROS
- ".gif\" alt=\"%s\"/></a></td>", classname, channel->channel_id,
- (hh->WebserverConfigList["TUXBOX_LOGOS_URL"]).c_str(),
- channel->channel_id, channel->name);
+
+ if(have_logos) {
+ std::string channel_logo = NeutrinoAPI->getLogoFile(hh->WebserverConfigList["Tuxbox.LogosURL"], channel->channel_id);
+ std::string zaplink;
+ if (channel_logo.empty())
+ zaplink = channel->name;
+ else
+ zaplink = string_printf(
+ "<img class=\"channel_logo\" src=\"%s\" title=\"%s\" alt=\"%s\" />"
+ , channel_logo.c_str()
+ , channel->name
+ , channel->name
+ );
+
+ yresult += string_printf(
+ "<td class=\"%c logo_cell %s\" width=\"44\" rowspan=\"2\">"
+ "<a href=\"javascript:do_zap('"PRINTF_CHANNEL_ID_TYPE_NO_LEADING_ZEROS"')\">"
+ "%s"
+ "</a>"
+ "</td>"
+ , classname
+ , (channel_logo.empty() ? "no_logo" : "")
+ , channel->channel_id
+ , zaplink.c_str()
+ , channel->name
+ , channel->name
+ );
+ }
/* timer slider */
if(event && event->duration > 0)
@@ -466,6 +486,20 @@ std::string CNeutrinoYParser::func_get_actual_channel_id(CyhookHandler */*hh*/,
{
return string_printf(PRINTF_CHANNEL_ID_TYPE_NO_LEADING_ZEROS,NeutrinoAPI->Zapit->getCurrentServiceID());
}
+
+//-------------------------------------------------------------------------
+// func: Get Logo Name
+//-------------------------------------------------------------------------
+std::string CNeutrinoYParser::func_get_logo_name(CyhookHandler *hh, std::string channelId)
+{
+ if (hh->WebserverConfigList["Tuxbox.DisplayLogos"] == "true") {
+ t_channel_id cid;
+ if (1 == sscanf(channelId.c_str(), "%llx", &cid))
+ return NeutrinoAPI->getLogoFile(hh->WebserverConfigList["Tuxbox.LogosURL"], cid);
+ }
+ return "";
+}
+
//-------------------------------------------------------------------------
// y-func : get_mode (returns tv|radio|unknown)
//-------------------------------------------------------------------------
diff --git a/tuxbox/neutrino/daemons/nhttpd/tuxboxapi/neutrinoyparser.h b/tuxbox/neutrino/daemons/nhttpd/tuxboxapi/neutrinoyparser.h
index de2b52c..97a10de 100644
--- a/tuxbox/neutrino/daemons/nhttpd/tuxboxapi/neutrinoyparser.h
+++ b/tuxbox/neutrino/daemons/nhttpd/tuxboxapi/neutrinoyparser.h
@@ -36,6 +36,7 @@ private:
std::string func_get_actual_bouquet_number(CyhookHandler *hh, std::string para);
std::string func_get_channels_as_dropdown(CyhookHandler *hh, std::string para);
std::string func_get_actual_channel_id(CyhookHandler *hh, std::string para);
+ std::string func_get_logo_name(CyhookHandler *hh, std::string para);
std::string func_get_bouquets_with_epg(CyhookHandler *hh, std::string para);
std::string func_get_mode(CyhookHandler *hh, std::string para);
std::string func_get_video_pids(CyhookHandler *hh, std::string para);
diff --git a/tuxbox/neutrino/daemons/nhttpd/web/Y_Blocks.txt b/tuxbox/neutrino/daemons/nhttpd/web/Y_Blocks.txt
index b43d0fb..8bd4289 100644
--- a/tuxbox/neutrino/daemons/nhttpd/web/Y_Blocks.txt
+++ b/tuxbox/neutrino/daemons/nhttpd/web/Y_Blocks.txt
@@ -54,6 +54,7 @@ start-block~nhttpd_save_settings
{=ini-set:/var/tuxbox/config/nhttpd.conf;mod_sendfile.mime_types;{=mod_sendfile_mime_types=}~cache=}
{=ini-set:/var/tuxbox/config/nhttpd.conf;mod_sendfile.sendAll;{=mod_sendfile_sendAll=}~cache=}
{=ini-set:/var/tuxbox/config/nhttpd.conf;Language.selected;{=language=}~cache=}
+{=ini-set:/var/tuxbox/config/nhttpd.conf;Tuxbox.DisplayLogos;{=Tuxbox_DisplayLogos=}~cache=}
{=ini-set:/var/tuxbox/config/nhttpd.conf;Tuxbox.LogosURL;{=Tuxbox_LogosURL=}~save=}
{=func:do_reload_httpd_config=}
end-block~nhttpd_save_settings
diff --git a/tuxbox/neutrino/daemons/nhttpd/web/Y_Boxcontrol_Channellist.yhtm b/tuxbox/neutrino/daemons/nhttpd/web/Y_Boxcontrol_Channellist.yhtm
index 195ca2f..302f9cd 100644
--- a/tuxbox/neutrino/daemons/nhttpd/web/Y_Boxcontrol_Channellist.yhtm
+++ b/tuxbox/neutrino/daemons/nhttpd/web/Y_Boxcontrol_Channellist.yhtm
@@ -10,8 +10,7 @@ function do_zap(channelid)
}
function do_epg(channelid)
{
- window.location.href="Y_Dyn_Pages.yhtm?page=frame_live_epg&channel="+channelid;
-// window.open("Y_Dyn_Pages.yhtm?page=frame_live_epg&channel="+channelid, "epg", "width=400");
+ window.location.href="Y_Dyn_Pages.yhtm?page=frame_live_epg&channel="+channelid+"&logoid="+logoid;
}
function do_streaminfo()
{
diff --git a/tuxbox/neutrino/daemons/nhttpd/web/Y_Live_EPG.yhtm b/tuxbox/neutrino/daemons/nhttpd/web/Y_Live_EPG.yhtm
index ddc7860..ffd79f1 100644
--- a/tuxbox/neutrino/daemons/nhttpd/web/Y_Live_EPG.yhtm
+++ b/tuxbox/neutrino/daemons/nhttpd/web/Y_Live_EPG.yhtm
@@ -50,11 +50,9 @@ function show_info(_index)
}
function check_logo()
{
- {=if-equal:{=ini-get:/var/tuxbox/config/nhttpd.conf;ExtrasDocRoot=}~web~~
- var test = loadSyncURL("{=ini-get:/var/tuxbox/config/nhttpd.conf;ExtrasDocURL=}/logos/{=channel=}.gif");
- if(test != "")
- =}
+ {=if-empty:{=logoid=}~~
show_obj("logo",true);
+ =}
}
function show_epg() {
show_waitbox(true);
@@ -108,7 +106,7 @@ function _show_epg()
<table id="epglist" class="y_invisible_table" cellpadding="4" cellspacing="0" width="100%">
<thead align="left">
<tr>
- <th colspan="2"><img id="logo" src="{=ini-get:/var/tuxbox/config/nhttpd.conf;Tuxbox.LogosURL=}/{=channel=}.gif" style="visibility:hidden"> </th>
+ <th colspan="2"><img id="logo" src="{=func:get_logo_name {=channel=}=}" style="visibility:hidden; max-width: 50px;"/></th>
<th>{=L:0035=}</th><th>{=L:0036=}</th><th>{=L:0037=}</th><th>{=L:0038=}</th>
</tr>
</thead>
diff --git a/tuxbox/neutrino/daemons/nhttpd/web/Y_Settings_nhttpd.yhtm b/tuxbox/neutrino/daemons/nhttpd/web/Y_Settings_nhttpd.yhtm
index 27bdf6d..29434b4 100644
--- a/tuxbox/neutrino/daemons/nhttpd/web/Y_Settings_nhttpd.yhtm
+++ b/tuxbox/neutrino/daemons/nhttpd/web/Y_Settings_nhttpd.yhtm
@@ -8,6 +8,7 @@ function form_init()
obj_set_radio_value('authenticate', "{=ini-get:/var/tuxbox/config/nhttpd.conf;mod_auth.authenticate;false=}");
obj_set_radio_value('threading', "{=ini-get:/var/tuxbox/config/nhttpd.conf;webserver.threading;false=}");
obj_set_radio_value('mod_sendfile_sendAll', "{=ini-get:/var/tuxbox/config/nhttpd.conf;mod_sendfile.sendAll;false=}");
+ obj_set_radio_value('Tuxbox_DisplayLogos', "{=ini-get:/var/tuxbox/config/nhttpd.conf;Tuxbox.DisplayLogos;true=}");
}
function do_submit()
{
@@ -22,6 +23,13 @@ function do_submit()
document.f.submit();
}
}
+function do_check_input_LogosURL()
+{
+ if(document.getElementById('Tuxbox_DisplayLogos').checked == true)
+ document.f.Tuxbox_LogosURL.readOnly = false;
+ else
+ document.f.Tuxbox_LogosURL.readOnly = true;
+}
//]]>
</script>
</head>
@@ -93,6 +101,13 @@ function do_submit()
</tr>
<tr><td colspan="2" class="y_form_header">{=L:0008=}</td></tr>
<tr>
+ <td>{=L:1523=}</td>
+ <td>
+ <input type="radio" name="Tuxbox_DisplayLogos" value="false" onClick="do_check_input_LogosURL()" />{=L:0032=}
+ <input type="radio" name="Tuxbox_DisplayLogos" value="true" onClick="do_check_input_LogosURL()" id="Tuxbox_DisplayLogos" />{=L:0031=}
+ </td>
+ </tr>
+ <tr>
<td>{=L:1513=}</td>
<td><input type="text" name="Tuxbox_LogosURL" size="60" value="{=ini-get:/var/tuxbox/config/nhttpd.conf;Tuxbox.LogosURL~cache=}" title="{=L:1512=}" /></td>
</tr>
diff --git a/tuxbox/neutrino/daemons/nhttpd/web/Y_Version.txt b/tuxbox/neutrino/daemons/nhttpd/web/Y_Version.txt
index 8ba32a4..362fee4 100644
--- a/tuxbox/neutrino/daemons/nhttpd/web/Y_Version.txt
+++ b/tuxbox/neutrino/daemons/nhttpd/web/Y_Version.txt
@@ -1,4 +1,4 @@
-version=2.8.2.32
+version=2.8.3.00
date=09.05.2015
type=Release
info=Tuxbox
diff --git a/tuxbox/neutrino/daemons/nhttpd/web/languages/Deutsch b/tuxbox/neutrino/daemons/nhttpd/web/languages/Deutsch
index 83b8702..ebd6da9 100644
--- a/tuxbox/neutrino/daemons/nhttpd/web/languages/Deutsch
+++ b/tuxbox/neutrino/daemons/nhttpd/web/languages/Deutsch
@@ -394,6 +394,7 @@
1520=Server Konfiguration
1521=Passwort muss mind. 4 Zeichen haben
1522=Port muss angegeben werden
+1523=Logos anzeigen
#========= Settings yWeb
1600=IP Adresse eingeben (xxx.xxx.xxx.xxx)
diff --git a/tuxbox/neutrino/daemons/nhttpd/web/languages/English b/tuxbox/neutrino/daemons/nhttpd/web/languages/English
index f565052..871bc3e 100644
--- a/tuxbox/neutrino/daemons/nhttpd/web/languages/English
+++ b/tuxbox/neutrino/daemons/nhttpd/web/languages/English
@@ -394,6 +394,7 @@
1520=Server Configuration
1521=Password must have 4 letters at minimum
1522=Port is required
+1523=Show Logos
#=========Settings yWeb
1600=enter IP (xxx.xxx.xxx.xxx)
diff --git a/tuxbox/neutrino/daemons/nhttpd/yconfig.h b/tuxbox/neutrino/daemons/nhttpd/yconfig.h
index c5355aa..b680951 100644
--- a/tuxbox/neutrino/daemons/nhttpd/yconfig.h
+++ b/tuxbox/neutrino/daemons/nhttpd/yconfig.h
@@ -191,8 +191,6 @@
#define UPLOAD_TMP_FILE "/tmp/upload.tmp"
#define CACHE_DIR "/tmp/.cache"
-#define TUXBOX_LOGOS_URL ""
-
#endif
//-----------------------------------------------------------------------------
// Configurations for AVM FritzBox
diff --git a/tuxbox/neutrino/daemons/nhttpd/yhttpd.cpp b/tuxbox/neutrino/daemons/nhttpd/yhttpd.cpp
index a8e6b9b..2ae9eea 100644
--- a/tuxbox/neutrino/daemons/nhttpd/yhttpd.cpp
+++ b/tuxbox/neutrino/daemons/nhttpd/yhttpd.cpp
@@ -488,6 +488,28 @@ void Cyhttpd::ReadConfig(void)
ConfigList["WebsiteMain.directory"] = Config->getString("WebsiteMain.directory", PRIVATEDOCUMENTROOT);
ConfigList["WebsiteMain.override_directory"] = Config->getString("WebsiteMain.override_directory", PUBLICDOCUMENTROOT);
ConfigList["WebsiteMain.hosted_directory"] = Config->getString("WebsiteMain.hosted_directory", HOSTEDDOCUMENTROOT);
+
+ // Logos
+ ConfigList["Tuxbox.DisplayLogos"] = Config->getString("Tuxbox.DisplayLogos", "true");
+ // Check location of logos
+ if (Config->getString("Tuxbox.LogosURL", "").empty()) {
+#ifdef Y_CONFIG_USE_HOSTEDWEB
+ if (access((ConfigList["WebsiteMain.hosted_directory"] + "/logos").c_str(), R_OK) == 0){
+ Config->setString("Tuxbox.LogosURL", ConfigList["WebsiteMain.hosted_directory"] + "/logos");
+ have_config = false; //save config
+ }
+#endif
+ else if (access((ConfigList["WebsiteMain.override_directory"] + "/logos").c_str(), R_OK) == 0) {
+ Config->setString("Tuxbox.LogosURL", ConfigList["WebsiteMain.override_directory"] + "/logos");
+ have_config = false; //save config
+ }
+ else if (access((ConfigList["WebsiteMain.directory"] + "/logos").c_str(), R_OK) == 0){
+ Config->setString("Tuxbox.LogosURL", ConfigList["WebsiteMain.directory"] + "/logos");
+ have_config = false; //save config
+ }
+ }
+ ConfigList["Tuxbox.LogosURL"] = Config->getString("Tuxbox.LogosURL", "");
+
#ifdef Y_CONFIG_USE_OPEN_SSL
ConfigList["SSL"] = Config->getString("WebsiteMain.ssl", "false");
ConfigList["SSL_pemfile"] = Config->getString("WebsiteMain.ssl_pemfile", SSL_PEMFILE);
-----------------------------------------------------------------------
Summary of changes:
.../daemons/nhttpd/tuxboxapi/neutrinoapi.cpp | 21 ++++++++
.../daemons/nhttpd/tuxboxapi/neutrinoapi.h | 1 +
.../daemons/nhttpd/tuxboxapi/neutrinoyparser.cpp | 54 ++++++++++++++++----
.../daemons/nhttpd/tuxboxapi/neutrinoyparser.h | 1 +
tuxbox/neutrino/daemons/nhttpd/web/Y_Blocks.txt | 1 +
.../nhttpd/web/Y_Boxcontrol_Channellist.yhtm | 3 +-
tuxbox/neutrino/daemons/nhttpd/web/Y_Live_EPG.yhtm | 8 +--
.../daemons/nhttpd/web/Y_Settings_nhttpd.yhtm | 15 ++++++
tuxbox/neutrino/daemons/nhttpd/web/Y_Version.txt | 2 +-
.../neutrino/daemons/nhttpd/web/languages/Deutsch | 1 +
.../neutrino/daemons/nhttpd/web/languages/English | 1 +
tuxbox/neutrino/daemons/nhttpd/yconfig.h | 2 -
tuxbox/neutrino/daemons/nhttpd/yhttpd.cpp | 22 ++++++++
13 files changed, 112 insertions(+), 20 deletions(-)
--
Tuxbox-GIT: apps
|