mirror of
https://projects.vdr-developer.org/git/vdr-plugin-tvguide.git
synced 2023-10-05 15:01:48 +02:00
Displaying reruns in detailed EPG View
This commit is contained in:
parent
6a0447e7a8
commit
b3b50abd73
6
config.c
6
config.c
@ -89,6 +89,9 @@ cTvguideConfig::cTvguideConfig() {
|
|||||||
themeIndex = 4;
|
themeIndex = 4;
|
||||||
useBlending = 2;
|
useBlending = 2;
|
||||||
roundedCorners = 0;
|
roundedCorners = 0;
|
||||||
|
displayRerunsDetailEPGView = 1;
|
||||||
|
numReruns = 5;
|
||||||
|
useSubtitleRerun = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
cTvguideConfig::~cTvguideConfig() {
|
cTvguideConfig::~cTvguideConfig() {
|
||||||
@ -247,6 +250,9 @@ bool cTvguideConfig::SetupParse(const char *Name, const char *Value) {
|
|||||||
else if (strcmp(Name, "FontGridHorizontalSmallDelta") == 0) FontGridHorizontalSmallDelta = atoi(Value);
|
else if (strcmp(Name, "FontGridHorizontalSmallDelta") == 0) FontGridHorizontalSmallDelta = atoi(Value);
|
||||||
else if (strcmp(Name, "FontTimeLineDateHorizontalDelta") == 0) FontTimeLineDateHorizontalDelta = atoi(Value);
|
else if (strcmp(Name, "FontTimeLineDateHorizontalDelta") == 0) FontTimeLineDateHorizontalDelta = atoi(Value);
|
||||||
else if (strcmp(Name, "FontTimeLineTimeHorizontalDelta") == 0) FontTimeLineTimeHorizontalDelta = atoi(Value);
|
else if (strcmp(Name, "FontTimeLineTimeHorizontalDelta") == 0) FontTimeLineTimeHorizontalDelta = atoi(Value);
|
||||||
|
else if (strcmp(Name, "displayRerunsDetailEPGView") == 0) displayRerunsDetailEPGView = atoi(Value);
|
||||||
|
else if (strcmp(Name, "numReruns") == 0) numReruns = atoi(Value);
|
||||||
|
else if (strcmp(Name, "useSubtitleRerun") == 0) useSubtitleRerun = atoi(Value);
|
||||||
else return false;
|
else return false;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
3
config.h
3
config.h
@ -89,6 +89,9 @@ class cTvguideConfig {
|
|||||||
int themeIndex;
|
int themeIndex;
|
||||||
int useBlending;
|
int useBlending;
|
||||||
int roundedCorners;
|
int roundedCorners;
|
||||||
|
int displayRerunsDetailEPGView;
|
||||||
|
int numReruns;
|
||||||
|
int useSubtitleRerun;
|
||||||
void setDynamicValues(int width, int height);
|
void setDynamicValues(int width, int height);
|
||||||
bool SetupParse(const char *Name, const char *Value);
|
bool SetupParse(const char *Name, const char *Value);
|
||||||
void loadTheme();
|
void loadTheme();
|
||||||
|
69
detailview.c
69
detailview.c
@ -1,3 +1,5 @@
|
|||||||
|
#include "services/epgsearch.h"
|
||||||
|
#include <sstream>
|
||||||
#include "detailview.h"
|
#include "detailview.h"
|
||||||
|
|
||||||
cDetailView::cDetailView(cGrid *grid) {
|
cDetailView::cDetailView(cGrid *grid) {
|
||||||
@ -10,6 +12,9 @@ cDetailView::cDetailView(cGrid *grid) {
|
|||||||
headerHeight = max (40 + 3 * tvguideConfig.FontDetailHeader->Height(), // border + 3 Lines
|
headerHeight = max (40 + 3 * tvguideConfig.FontDetailHeader->Height(), // border + 3 Lines
|
||||||
40 + tvguideConfig.epgImageHeight);
|
40 + tvguideConfig.epgImageHeight);
|
||||||
description.Set(event->Description(), tvguideConfig.FontDetailView, tvguideConfig.osdWidth-2*borderWidth - 50 - 40);
|
description.Set(event->Description(), tvguideConfig.FontDetailView, tvguideConfig.osdWidth-2*borderWidth - 50 - 40);
|
||||||
|
if (tvguideConfig.displayRerunsDetailEPGView) {
|
||||||
|
LoadReruns();
|
||||||
|
}
|
||||||
contentScrollable = setContentDrawportHeight();
|
contentScrollable = setContentDrawportHeight();
|
||||||
createPixmaps();
|
createPixmaps();
|
||||||
}
|
}
|
||||||
@ -26,6 +31,9 @@ cDetailView::~cDetailView(void){
|
|||||||
|
|
||||||
bool cDetailView::setContentDrawportHeight() {
|
bool cDetailView::setContentDrawportHeight() {
|
||||||
int linesContent = description.Lines() + 1;
|
int linesContent = description.Lines() + 1;
|
||||||
|
if (tvguideConfig.displayRerunsDetailEPGView) {
|
||||||
|
linesContent += reruns.Lines() + 1;
|
||||||
|
}
|
||||||
heightContent = linesContent * tvguideConfig.FontDetailView->Height();
|
heightContent = linesContent * tvguideConfig.FontDetailView->Height();
|
||||||
if (heightContent > (tvguideConfig.osdHeight - 2 * borderWidth - headerHeight))
|
if (heightContent > (tvguideConfig.osdHeight - 2 * borderWidth - headerHeight))
|
||||||
return true;
|
return true;
|
||||||
@ -97,10 +105,19 @@ void cDetailView::drawContent() {
|
|||||||
|
|
||||||
int textHeight = tvguideConfig.FontDetailView->Height();
|
int textHeight = tvguideConfig.FontDetailView->Height();
|
||||||
int textLines = description.Lines();
|
int textLines = description.Lines();
|
||||||
|
int i=0;
|
||||||
for (int i=0; i<textLines; i++) {
|
for (; i<textLines; i++) {
|
||||||
content->DrawText(cPoint(20, 20 + i*textHeight), description.GetLine(i), theme.Color(clrFont), clrTransparent, tvguideConfig.FontDetailView);
|
content->DrawText(cPoint(20, 20 + i*textHeight), description.GetLine(i), theme.Color(clrFont), clrTransparent, tvguideConfig.FontDetailView);
|
||||||
}
|
}
|
||||||
|
i++;
|
||||||
|
if (tvguideConfig.displayRerunsDetailEPGView) {
|
||||||
|
textLines = reruns.Lines();
|
||||||
|
for (int j=0; j<textLines; j++) {
|
||||||
|
content->DrawText(cPoint(20, 20 + i*textHeight), reruns.GetLine(j), theme.Color(clrFont), clrTransparent, tvguideConfig.FontDetailView);
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void cDetailView::drawScrollbar() {
|
void cDetailView::drawScrollbar() {
|
||||||
@ -168,6 +185,54 @@ cImage *cDetailView::createScrollbar(int width, int height, tColor clrBgr, tColo
|
|||||||
return image;
|
return image;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void cDetailView::LoadReruns(void) {
|
||||||
|
cPlugin *epgSearchPlugin = cPluginManager::GetPlugin("epgsearch");
|
||||||
|
if (epgSearchPlugin && !isempty(event->Title())) {
|
||||||
|
std::stringstream sstrReruns;
|
||||||
|
Epgsearch_searchresults_v1_0 data;
|
||||||
|
std::string strQuery = event->Title();
|
||||||
|
if (tvguideConfig.useSubtitleRerun > 0) {
|
||||||
|
if (tvguideConfig.useSubtitleRerun == 2 || !isempty(event->ShortText()))
|
||||||
|
strQuery += "~";
|
||||||
|
if (!isempty(event->ShortText()))
|
||||||
|
strQuery += event->ShortText();
|
||||||
|
data.useSubTitle = true;
|
||||||
|
} else {
|
||||||
|
data.useSubTitle = false;
|
||||||
|
}
|
||||||
|
data.query = (char *)strQuery.c_str();
|
||||||
|
data.mode = 0;
|
||||||
|
data.channelNr = 0;
|
||||||
|
data.useTitle = true;
|
||||||
|
data.useDescription = false;
|
||||||
|
|
||||||
|
if (epgSearchPlugin->Service("Epgsearch-searchresults-v1.0", &data)) {
|
||||||
|
cList<Epgsearch_searchresults_v1_0::cServiceSearchResult>* list = data.pResultList;
|
||||||
|
if (list && (list->Count() > 1)) {
|
||||||
|
sstrReruns << tr("RERUNS OF THIS SHOW") << ':' << std::endl;
|
||||||
|
int i = 0;
|
||||||
|
for (Epgsearch_searchresults_v1_0::cServiceSearchResult *r = list->First(); r && i < tvguideConfig.numReruns; r = list->Next(r)) {
|
||||||
|
if ((event->ChannelID() == r->event->ChannelID()) && (event->StartTime() == r->event->StartTime()))
|
||||||
|
continue;
|
||||||
|
i++;
|
||||||
|
sstrReruns << "- "
|
||||||
|
<< *DayDateTime(r->event->StartTime());
|
||||||
|
cChannel *channel = Channels.GetByChannelID(r->event->ChannelID(), true, true);
|
||||||
|
if (channel)
|
||||||
|
sstrReruns << " " << channel->ShortName(true);
|
||||||
|
sstrReruns << ": " << r->event->Title();
|
||||||
|
if (!isempty(r->event->ShortText()))
|
||||||
|
sstrReruns << "~" << r->event->ShortText();
|
||||||
|
sstrReruns << std::endl;
|
||||||
|
}
|
||||||
|
delete list;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
reruns.Set(sstrReruns.str().c_str(), tvguideConfig.FontDetailView, tvguideConfig.osdWidth-2*borderWidth - 50 - 40);
|
||||||
|
} else
|
||||||
|
reruns.Set("", tvguideConfig.FontDetailView, tvguideConfig.osdWidth-2*borderWidth - 50 - 40);
|
||||||
|
}
|
||||||
|
|
||||||
void cDetailView::Action(void) {
|
void cDetailView::Action(void) {
|
||||||
drawHeader();
|
drawHeader();
|
||||||
drawContent();
|
drawContent();
|
||||||
|
@ -19,6 +19,7 @@ private:
|
|||||||
int FrameTime;
|
int FrameTime;
|
||||||
int FadeTime;
|
int FadeTime;
|
||||||
cTextWrapper description;
|
cTextWrapper description;
|
||||||
|
cTextWrapper reruns;
|
||||||
int borderWidth;
|
int borderWidth;
|
||||||
int headerHeight;
|
int headerHeight;
|
||||||
bool setContentDrawportHeight();
|
bool setContentDrawportHeight();
|
||||||
@ -26,6 +27,7 @@ private:
|
|||||||
int heightScrollbar;
|
int heightScrollbar;
|
||||||
bool contentScrollable;
|
bool contentScrollable;
|
||||||
virtual void Action(void);
|
virtual void Action(void);
|
||||||
|
void LoadReruns(void);
|
||||||
void drawHeader();
|
void drawHeader();
|
||||||
void drawContent();
|
void drawContent();
|
||||||
void drawScrollbar();
|
void drawScrollbar();
|
||||||
|
23
po/de_DE.po
23
po/de_DE.po
@ -3,7 +3,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: vdr-tvguide 0.0.1\n"
|
"Project-Id-Version: vdr-tvguide 0.0.1\n"
|
||||||
"Report-Msgid-Bugs-To: <see README>\n"
|
"Report-Msgid-Bugs-To: <see README>\n"
|
||||||
"POT-Creation-Date: 2013-05-24 14:53+0200\n"
|
"POT-Creation-Date: 2013-05-26 17:37+0200\n"
|
||||||
"PO-Revision-Date: 2012-08-25 17:49+0200\n"
|
"PO-Revision-Date: 2012-08-25 17:49+0200\n"
|
||||||
"Last-Translator: Horst\n"
|
"Last-Translator: Horst\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
@ -12,6 +12,9 @@ msgstr ""
|
|||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
|
msgid "RERUNS OF THIS SHOW"
|
||||||
|
msgstr "Wiederholungen dieser Sendung"
|
||||||
|
|
||||||
msgid "No EPG Information available"
|
msgid "No EPG Information available"
|
||||||
msgstr "Keine EPG Daten verfügbar"
|
msgstr "Keine EPG Daten verfügbar"
|
||||||
|
|
||||||
@ -36,6 +39,15 @@ msgstr "Anzeigeoptionen"
|
|||||||
msgid "Fonts and Fontsizes"
|
msgid "Fonts and Fontsizes"
|
||||||
msgstr "Schriften und Schriftgrößen"
|
msgstr "Schriften und Schriftgrößen"
|
||||||
|
|
||||||
|
msgid "never"
|
||||||
|
msgstr "nie"
|
||||||
|
|
||||||
|
msgid "if exists"
|
||||||
|
msgstr "falls vorhanden"
|
||||||
|
|
||||||
|
msgid "always"
|
||||||
|
msgstr "immer"
|
||||||
|
|
||||||
msgid "Theme"
|
msgid "Theme"
|
||||||
msgstr "Theme"
|
msgstr "Theme"
|
||||||
|
|
||||||
@ -60,6 +72,15 @@ msgstr "Sehr großer Sprung (Tasten 4 / 6) in Stunden"
|
|||||||
msgid "Time Format (12h/24h)"
|
msgid "Time Format (12h/24h)"
|
||||||
msgstr "Zeitformat (12h/24h)"
|
msgstr "Zeitformat (12h/24h)"
|
||||||
|
|
||||||
|
msgid "Display Reruns in detailed EPG View"
|
||||||
|
msgstr "Wiederholungen in der detailierten EPG Ansicht anzeigen"
|
||||||
|
|
||||||
|
msgid "Number of reruns to display"
|
||||||
|
msgstr "Anzahl der dargestellten Wiederholungen"
|
||||||
|
|
||||||
|
msgid "Use Subtitle for reruns"
|
||||||
|
msgstr "Untertitel für Wiederholungssuche nutzen"
|
||||||
|
|
||||||
msgid "Display Mode"
|
msgid "Display Mode"
|
||||||
msgstr "Anzeigemodus"
|
msgstr "Anzeigemodus"
|
||||||
|
|
||||||
|
167
services/epgsearch.h
Normal file
167
services/epgsearch.h
Normal file
@ -0,0 +1,167 @@
|
|||||||
|
/*
|
||||||
|
Copyright (C) 2004-2007 Christian Wieninger
|
||||||
|
|
||||||
|
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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
Or, point your browser to http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||||
|
|
||||||
|
The author can be reached at cwieninger@gmx.de
|
||||||
|
|
||||||
|
The project's page is at http://winni.vdr-developer.org/epgsearch
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef EPGSEARCHSERVICES_INC
|
||||||
|
#define EPGSEARCHSERVICES_INC
|
||||||
|
|
||||||
|
// Added by Andreas Mair (mail _AT_ andreas _DOT_ vdr-developer _DOT_ org)
|
||||||
|
#define EPGSEARCH_SEARCHRESULTS_SERVICE_STRING_ID "Epgsearch-searchresults-v1.0"
|
||||||
|
#define EPGSEARCH_LASTCONFLICTINFO_SERVICE_STRING_ID "Epgsearch-lastconflictinfo-v1.0"
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include <list>
|
||||||
|
#include <memory>
|
||||||
|
#include <set>
|
||||||
|
#include <vdr/osdbase.h>
|
||||||
|
|
||||||
|
// Data structure for service "Epgsearch-search-v1.0"
|
||||||
|
struct Epgsearch_search_v1_0
|
||||||
|
{
|
||||||
|
// in
|
||||||
|
char* query; // search term
|
||||||
|
int mode; // search mode (0=phrase, 1=and, 2=or, 3=regular expression)
|
||||||
|
int channelNr; // channel number to search in (0=any)
|
||||||
|
bool useTitle; // search in title
|
||||||
|
bool useSubTitle; // search in subtitle
|
||||||
|
bool useDescription; // search in description
|
||||||
|
// out
|
||||||
|
cOsdMenu* pResultMenu; // pointer to the menu of results
|
||||||
|
};
|
||||||
|
|
||||||
|
// Data structure for service "Epgsearch-exttimeredit-v1.0"
|
||||||
|
struct Epgsearch_exttimeredit_v1_0
|
||||||
|
{
|
||||||
|
// in
|
||||||
|
cTimer* timer; // pointer to the timer to edit
|
||||||
|
bool bNew; // flag that indicates, if this is a new timer or an existing one
|
||||||
|
const cEvent* event; // pointer to the event corresponding to this timer (may be NULL)
|
||||||
|
// out
|
||||||
|
cOsdMenu* pTimerMenu; // pointer to the menu of results
|
||||||
|
};
|
||||||
|
|
||||||
|
// Data structure for service "Epgsearch-updatesearchtimers-v1.0"
|
||||||
|
struct Epgsearch_updatesearchtimers_v1_0
|
||||||
|
{
|
||||||
|
// in
|
||||||
|
bool showMessage; // inform via osd when finished?
|
||||||
|
};
|
||||||
|
|
||||||
|
// Data structure for service "Epgsearch-osdmessage-v1.0"
|
||||||
|
struct Epgsearch_osdmessage_v1_0
|
||||||
|
{
|
||||||
|
// in
|
||||||
|
char* message; // the message to display
|
||||||
|
eMessageType type;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Data structure for service "EpgsearchMenu-v1.0"
|
||||||
|
struct EpgSearchMenu_v1_0
|
||||||
|
{
|
||||||
|
// in
|
||||||
|
// out
|
||||||
|
cOsdMenu* Menu; // pointer to the menu
|
||||||
|
};
|
||||||
|
|
||||||
|
// Data structure for service "Epgsearch-lastconflictinfo-v1.0"
|
||||||
|
struct Epgsearch_lastconflictinfo_v1_0
|
||||||
|
{
|
||||||
|
// in
|
||||||
|
// out
|
||||||
|
time_t nextConflict; // next conflict date, 0 if none
|
||||||
|
int relevantConflicts; // number of relevant conflicts
|
||||||
|
int totalConflicts; // total number of conflicts
|
||||||
|
};
|
||||||
|
|
||||||
|
// Data structure for service "Epgsearch-searchresults-v1.0"
|
||||||
|
struct Epgsearch_searchresults_v1_0
|
||||||
|
{
|
||||||
|
// in
|
||||||
|
char* query; // search term
|
||||||
|
int mode; // search mode (0=phrase, 1=and, 2=or, 3=regular expression)
|
||||||
|
int channelNr; // channel number to search in (0=any)
|
||||||
|
bool useTitle; // search in title
|
||||||
|
bool useSubTitle; // search in subtitle
|
||||||
|
bool useDescription; // search in description
|
||||||
|
// out
|
||||||
|
|
||||||
|
class cServiceSearchResult : public cListObject
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
const cEvent* event;
|
||||||
|
cServiceSearchResult(const cEvent* Event) : event(Event) {}
|
||||||
|
};
|
||||||
|
|
||||||
|
cList<cServiceSearchResult>* pResultList; // pointer to the results
|
||||||
|
};
|
||||||
|
|
||||||
|
// Data structure for service "Epgsearch-switchtimer-v1.0"
|
||||||
|
struct Epgsearch_switchtimer_v1_0
|
||||||
|
{
|
||||||
|
// in
|
||||||
|
const cEvent* event;
|
||||||
|
int mode; // mode (0=query existance, 1=add/modify, 2=delete)
|
||||||
|
// in/out
|
||||||
|
int switchMinsBefore;
|
||||||
|
int announceOnly;
|
||||||
|
// out
|
||||||
|
bool success; // result
|
||||||
|
};
|
||||||
|
|
||||||
|
// Data structures for service "Epgsearch-services-v1.0"
|
||||||
|
class cServiceHandler
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
virtual std::list<std::string> SearchTimerList() = 0;
|
||||||
|
// returns a list of search timer entries in the same format as used in epgsearch.conf
|
||||||
|
virtual int AddSearchTimer(const std::string&) = 0;
|
||||||
|
// adds a new search timer and returns its ID (-1 on error)
|
||||||
|
virtual bool ModSearchTimer(const std::string&) = 0;
|
||||||
|
// edits an existing search timer and returns success
|
||||||
|
virtual bool DelSearchTimer(int) = 0;
|
||||||
|
// deletes search timer with given ID and returns success
|
||||||
|
virtual std::list<std::string> QuerySearchTimer(int) = 0;
|
||||||
|
// returns the search result of the searchtimer with given ID in the same format as used in SVDRP command 'QRYS' (->MANUAL)
|
||||||
|
virtual std::list<std::string> QuerySearch(std::string) = 0;
|
||||||
|
// returns the search result of the searchtimer with given settings in the same format as used in SVDRP command 'QRYS' (->MANUAL)
|
||||||
|
virtual std::list<std::string> ExtEPGInfoList() = 0;
|
||||||
|
// returns a list of extended EPG categories in the same format as used in epgsearchcats.conf
|
||||||
|
virtual std::list<std::string> ChanGrpList() = 0;
|
||||||
|
// returns a list of channel groups maintained by epgsearch
|
||||||
|
virtual std::list<std::string> BlackList() = 0;
|
||||||
|
// returns a list of blacklists in the same format as used in epgsearchblacklists.conf
|
||||||
|
virtual std::set<std::string> DirectoryList() = 0;
|
||||||
|
// List of all recording directories used in recordings, timers, search timers or in epgsearchdirs.conf
|
||||||
|
virtual ~cServiceHandler() {}
|
||||||
|
// Read a setup value
|
||||||
|
virtual std::string ReadSetupValue(const std::string& entry) = 0;
|
||||||
|
// Write a setup value
|
||||||
|
virtual bool WriteSetupValue(const std::string& entry, const std::string& value) = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct Epgsearch_services_v1_0
|
||||||
|
{
|
||||||
|
// in/out
|
||||||
|
std::auto_ptr<cServiceHandler> handler;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
22
setup.c
22
setup.c
@ -93,6 +93,9 @@ void cTvguideSetup::Store(void) {
|
|||||||
SetupStore("FontGridHorizontalSmallDelta", tvguideConfig.FontGridHorizontalSmallDelta);
|
SetupStore("FontGridHorizontalSmallDelta", tvguideConfig.FontGridHorizontalSmallDelta);
|
||||||
SetupStore("FontTimeLineDateHorizontalDelta", tvguideConfig.FontTimeLineDateHorizontalDelta);
|
SetupStore("FontTimeLineDateHorizontalDelta", tvguideConfig.FontTimeLineDateHorizontalDelta);
|
||||||
SetupStore("FontTimeLineTimeHorizontalDelta", tvguideConfig.FontTimeLineTimeHorizontalDelta);
|
SetupStore("FontTimeLineTimeHorizontalDelta", tvguideConfig.FontTimeLineTimeHorizontalDelta);
|
||||||
|
SetupStore("displayRerunsDetailEPGView", tvguideConfig.displayRerunsDetailEPGView);
|
||||||
|
SetupStore("numReruns", tvguideConfig.numReruns);
|
||||||
|
SetupStore("useSubtitleRerun", tvguideConfig.useSubtitleRerun);
|
||||||
}
|
}
|
||||||
|
|
||||||
cMenuSetupSubMenu::cMenuSetupSubMenu(const char* Title, cTvguideConfig* data) : cOsdMenu(Title, 30) {
|
cMenuSetupSubMenu::cMenuSetupSubMenu(const char* Title, cTvguideConfig* data) : cOsdMenu(Title, 30) {
|
||||||
@ -128,10 +131,14 @@ cMenuSetupGeneral::cMenuSetupGeneral(cTvguideConfig* data) : cMenuSetupSubMenu(
|
|||||||
blendingMethods[0] = "none";
|
blendingMethods[0] = "none";
|
||||||
blendingMethods[1] = "classic";
|
blendingMethods[1] = "classic";
|
||||||
blendingMethods[2] = "nOpacity style";
|
blendingMethods[2] = "nOpacity style";
|
||||||
|
useSubtitleRerunTexts[0] = tr("never");
|
||||||
|
useSubtitleRerunTexts[1] = tr("if exists");
|
||||||
|
useSubtitleRerunTexts[2] = tr("always");
|
||||||
Set();
|
Set();
|
||||||
}
|
}
|
||||||
|
|
||||||
void cMenuSetupGeneral::Set(void) {
|
void cMenuSetupGeneral::Set(void) {
|
||||||
|
const char *indent = " ";
|
||||||
int currentItem = Current();
|
int currentItem = Current();
|
||||||
Clear();
|
Clear();
|
||||||
if (themes.NumThemes())
|
if (themes.NumThemes())
|
||||||
@ -145,10 +152,25 @@ void cMenuSetupGeneral::Set(void) {
|
|||||||
Add(new cMenuEditIntItem(tr("Huge Step (Keys 4 / 6) in hours"), &tmpTvguideConfig->hugeStepHours, 13, 48));
|
Add(new cMenuEditIntItem(tr("Huge Step (Keys 4 / 6) in hours"), &tmpTvguideConfig->hugeStepHours, 13, 48));
|
||||||
Add(new cMenuEditStraItem(tr("Time Format (12h/24h)"), &tmpTvguideConfig->timeFormat, 2, timeFormatItems));
|
Add(new cMenuEditStraItem(tr("Time Format (12h/24h)"), &tmpTvguideConfig->timeFormat, 2, timeFormatItems));
|
||||||
|
|
||||||
|
Add(new cMenuEditBoolItem(tr("Display Reruns in detailed EPG View"), &tmpTvguideConfig->displayRerunsDetailEPGView));
|
||||||
|
if (tmpTvguideConfig->displayRerunsDetailEPGView) {
|
||||||
|
Add(new cMenuEditIntItem(cString::sprintf("%s%s", indent, tr("Number of reruns to display")), &tmpTvguideConfig->numReruns, 1, 10));
|
||||||
|
Add(new cMenuEditStraItem(cString::sprintf("%s%s", indent, tr("Use Subtitle for reruns")), &tmpTvguideConfig->useSubtitleRerun, 3, useSubtitleRerunTexts));
|
||||||
|
}
|
||||||
SetCurrent(Get(currentItem));
|
SetCurrent(Get(currentItem));
|
||||||
Display();
|
Display();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
eOSState cMenuSetupGeneral::ProcessKey(eKeys Key) {
|
||||||
|
eOSState state = cOsdMenu::ProcessKey(Key);
|
||||||
|
if (Key == kOk) {
|
||||||
|
state = osBack;
|
||||||
|
} else if (Key != kNone) {
|
||||||
|
Set();
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
cMenuSetupScreenLayout::cMenuSetupScreenLayout(cTvguideConfig* data) : cMenuSetupSubMenu(tr("Screen Presentation"), data) {
|
cMenuSetupScreenLayout::cMenuSetupScreenLayout(cTvguideConfig* data) : cMenuSetupSubMenu(tr("Screen Presentation"), data) {
|
||||||
|
2
setup.h
2
setup.h
@ -26,9 +26,11 @@ class cMenuSetupSubMenu : public cOsdMenu {
|
|||||||
|
|
||||||
class cMenuSetupGeneral : public cMenuSetupSubMenu {
|
class cMenuSetupGeneral : public cMenuSetupSubMenu {
|
||||||
protected:
|
protected:
|
||||||
|
virtual eOSState ProcessKey(eKeys Key);
|
||||||
cThemes themes;
|
cThemes themes;
|
||||||
const char * blendingMethods[3];
|
const char * blendingMethods[3];
|
||||||
const char * timeFormatItems[2];
|
const char * timeFormatItems[2];
|
||||||
|
const char *useSubtitleRerunTexts[3];
|
||||||
void Set(void);
|
void Set(void);
|
||||||
public:
|
public:
|
||||||
cMenuSetupGeneral(cTvguideConfig *data);
|
cMenuSetupGeneral(cTvguideConfig *data);
|
||||||
|
Loading…
Reference in New Issue
Block a user