mirror of
https://github.com/tuxbox-neutrino/neutrino.git
synced 2025-08-27 15:32:59 +02:00
-add: show sore screenings in in extra window
This commit is contained in:
@@ -299,6 +299,7 @@ epgextended.presenter Moderator
|
||||
epgextended.year_of_production Produktionsjahr
|
||||
epglist.noevents Keine EPG-Information verfügbar.
|
||||
epgviewer.More_Screenings Weitere Termine auf diesem Kanal
|
||||
epgviewer.More_Screenings_short Weitere Termine
|
||||
epgviewer.nodetailed Keine ausführlichen Informationen verfügbar
|
||||
epgviewer.notfound Keine Programminformationen (EPG) gefunden
|
||||
eventfinder.head EPG-Suche
|
||||
|
@@ -223,6 +223,7 @@ EPGPlus.stretch_mode Stretch Mode
|
||||
EPGPlus.swap_mode swap mode
|
||||
EPGPlus.view_mode view mode
|
||||
epgviewer.More_Screenings More Screenings on this Channel
|
||||
epgviewer.More_Screenings_short More Screenings
|
||||
epgviewer.nodetailed No detailed informations available
|
||||
epgviewer.notfound no epg found
|
||||
eventfinder.head Search in EPG
|
||||
|
@@ -592,10 +592,12 @@ int CEpgData::show(const t_channel_id channel_id, uint64_t a_id, time_t* a_start
|
||||
|
||||
// -- display more screenings on the same channel
|
||||
// -- 2002-05-03 rasc
|
||||
has_follow_screenings = false;
|
||||
if (hasFollowScreenings(channel_id, epgData.title)) {
|
||||
processTextToArray(""); // UTF-8
|
||||
processTextToArray(std::string(g_Locale->getText(LOCALE_EPGVIEWER_MORE_SCREENINGS)) + ':'); // UTF-8
|
||||
FollowScreenings(channel_id, epgData.title);
|
||||
has_follow_screenings = true;
|
||||
}
|
||||
|
||||
COSDFader fader(g_settings.menu_Content_alpha);
|
||||
@@ -847,7 +849,24 @@ int CEpgData::show(const t_channel_id channel_id, uint64_t a_id, time_t* a_start
|
||||
printf("timerd not available\n");
|
||||
break;
|
||||
}
|
||||
case CRCInput::RC_blue:
|
||||
{
|
||||
if(!followlist.empty()){
|
||||
hide();
|
||||
CNeutrinoEventList *ee;
|
||||
ee = new CNeutrinoEventList;
|
||||
ee->exec(channel_id, g_Locale->getText(LOCALE_EPGVIEWER_MORE_SCREENINGS_SHORT),"","",followlist); // UTF-8
|
||||
delete ee;
|
||||
|
||||
if (!bigFonts && g_settings.bigFonts) {
|
||||
g_Font[SNeutrinoSettings::FONT_TYPE_EPG_INFO1]->setSize((int)(g_Font[SNeutrinoSettings::FONT_TYPE_EPG_INFO1]->getSize() * BIG_FONT_FAKTOR));
|
||||
g_Font[SNeutrinoSettings::FONT_TYPE_EPG_INFO2]->setSize((int)(g_Font[SNeutrinoSettings::FONT_TYPE_EPG_INFO2]->getSize() * BIG_FONT_FAKTOR));
|
||||
}
|
||||
bigFonts = g_settings.bigFonts;
|
||||
show(channel_id,epgData.eventID,&epgData.epg_times.startzeit,false);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case CRCInput::RC_info:
|
||||
case CRCInput::RC_help:
|
||||
bigFonts = bigFonts ? false : true;
|
||||
@@ -1072,7 +1091,9 @@ int CEpgData::FollowScreenings (const t_channel_id /*channel_id*/, const std::st
|
||||
const struct button_label EpgButtons[] =
|
||||
{
|
||||
{ NEUTRINO_ICON_BUTTON_RED , LOCALE_TIMERBAR_RECORDEVENT },
|
||||
{ NEUTRINO_ICON_BUTTON_YELLOW, LOCALE_TIMERBAR_CHANNELSWITCH }
|
||||
{ NEUTRINO_ICON_BUTTON_YELLOW, LOCALE_TIMERBAR_CHANNELSWITCH },
|
||||
{ NEUTRINO_ICON_BUTTON_BLUE, LOCALE_EPGVIEWER_MORE_SCREENINGS_SHORT }
|
||||
|
||||
};
|
||||
|
||||
void CEpgData::showTimerEventBar (bool pshow)
|
||||
@@ -1097,9 +1118,9 @@ void CEpgData::showTimerEventBar (bool pshow)
|
||||
frameBuffer->paintBoxRel(sx,y,ox,h, COL_INFOBAR_SHADOW_PLUS_1, RADIUS_LARGE, CORNER_BOTTOM);//round
|
||||
|
||||
if (g_settings.recording_type != CNeutrinoApp::RECORDING_OFF)
|
||||
::paintButtons(x, y, 0, 2, EpgButtons, h);
|
||||
::paintButtons(x, y, 0, has_follow_screenings ? 3:2, EpgButtons, h);
|
||||
else
|
||||
::paintButtons(x, y, 0, 1, &EpgButtons[1], h);
|
||||
::paintButtons(x, y, 0, has_follow_screenings ? 2:1, &EpgButtons[1], h);
|
||||
|
||||
#if 0
|
||||
// Button: Timer Record & Channelswitch
|
||||
|
@@ -62,6 +62,7 @@ class CEpgData
|
||||
std::string epg_end;
|
||||
int epg_done;
|
||||
bool bigFonts;
|
||||
bool has_follow_screenings;
|
||||
time_t tmp_curent_zeit;
|
||||
|
||||
uint64_t prev_id;
|
||||
|
@@ -248,12 +248,12 @@ void CNeutrinoEventList::readEvents(const t_channel_id channel_id)
|
||||
}
|
||||
|
||||
|
||||
int CNeutrinoEventList::exec(const t_channel_id channel_id, const std::string& channelname, const std::string& channelname_prev, const std::string& channelname_next) // UTF-8
|
||||
int CNeutrinoEventList::exec(const t_channel_id channel_id, const std::string& channelname, const std::string& channelname_prev, const std::string& channelname_next,const CChannelEventList &followlist) // UTF-8
|
||||
{
|
||||
neutrino_msg_t msg;
|
||||
neutrino_msg_data_t data;
|
||||
bool in_search = false;
|
||||
|
||||
showfollow = false;
|
||||
// Calculate iheight
|
||||
struct button_label tmp_button[1] = { { NEUTRINO_ICON_BUTTON_RED, NONEXISTANT_LOCALE } };
|
||||
iheight = ::paintButtons(0, 0, 0, 1, tmp_button, 0, 0, false, COL_INFOBAR_SHADOW, NULL, 0, false);
|
||||
@@ -300,8 +300,13 @@ int CNeutrinoEventList::exec(const t_channel_id channel_id, const std::string& c
|
||||
|
||||
COSDFader fader(g_settings.menu_Content_alpha);
|
||||
fader.StartFadeIn();
|
||||
|
||||
if(!followlist.empty()){
|
||||
insert_iterator <std::vector<CChannelEvent> >ii(evtlist,evtlist.begin());
|
||||
copy(followlist.begin(), followlist.end(), ii);
|
||||
showfollow = true;
|
||||
}else{
|
||||
readEvents(channel_id);
|
||||
}
|
||||
UpdateTimerList();
|
||||
|
||||
if(channelname_prev.empty(), channelname_next.empty()){
|
||||
@@ -385,7 +390,7 @@ int CNeutrinoEventList::exec(const t_channel_id channel_id, const std::string& c
|
||||
showFunctionBar(paint_buttonbar, channel_id);
|
||||
}
|
||||
//sort
|
||||
else if (msg == (neutrino_msg_t)g_settings.key_channelList_sort)
|
||||
else if (!showfollow && (msg == (neutrino_msg_t)g_settings.key_channelList_sort))
|
||||
{
|
||||
uint64_t selected_id = evtlist[selected].eventID;
|
||||
if(sort_mode==0)
|
||||
@@ -635,7 +640,7 @@ int CNeutrinoEventList::exec(const t_channel_id channel_id, const std::string& c
|
||||
}
|
||||
}
|
||||
}
|
||||
else if ( msg==CRCInput::RC_green )
|
||||
else if (!showfollow && ( msg==CRCInput::RC_green ))
|
||||
{
|
||||
in_search = findEvents();
|
||||
timeoutEnd = CRCInput::calcTimeoutEnd(g_settings.timing[SNeutrinoSettings::TIMING_EPG]);
|
||||
@@ -939,10 +944,11 @@ void CNeutrinoEventList::showFunctionBar (bool show, t_channel_id channel_id)
|
||||
}
|
||||
}
|
||||
|
||||
if(!showfollow){
|
||||
// Button: Search
|
||||
FunctionBarHeight = std::max(::paintButtons(bx, by, w_button, NUM_EVENTLIST_SECOND_BUTTON, EventListSecondButton), FunctionBarHeight);
|
||||
bx+=w_button+4;
|
||||
|
||||
}
|
||||
// Button: Timer Channelswitch
|
||||
if ((uint) g_settings.key_channelList_addremind != CRCInput::RC_nokey) {
|
||||
if (!g_settings.minimode) {
|
||||
@@ -961,7 +967,7 @@ void CNeutrinoEventList::showFunctionBar (bool show, t_channel_id channel_id)
|
||||
FunctionBarHeight = std::max(::paintButtons(bx, by, w_button, NUM_EVENTLIST_THIRD_BUTTON, EventListThirdButton), FunctionBarHeight);
|
||||
bx+=w_button+4;
|
||||
}
|
||||
|
||||
if(!showfollow){
|
||||
// Button: Event Re-Sort
|
||||
if ((uint) g_settings.key_channelList_sort != CRCInput::RC_nokey) {
|
||||
// FIXME : display other icons depending on g_settings.key_channelList_sort
|
||||
@@ -970,6 +976,7 @@ void CNeutrinoEventList::showFunctionBar (bool show, t_channel_id channel_id)
|
||||
FunctionBarHeight = std::max(::paintButtons(bx, by, w_button, NUM_EVENTLIST_THIRD_BUTTON, EventListFourthButton), FunctionBarHeight);
|
||||
// bx+=w_button+4;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int CEventListHandler::exec(CMenuTarget* parent, const std::string &/*actionkey*/)
|
||||
|
@@ -118,13 +118,13 @@ class CNeutrinoEventList
|
||||
int timerPost;
|
||||
void UpdateTimerList(void);
|
||||
bool HasTimerConflicts(time_t starttime, time_t duration, event_id_t * epg_ID);
|
||||
|
||||
bool showfollow;
|
||||
CTimerd::CTimerEventTypes isScheduled(t_channel_id channel_id, CChannelEvent * event, int * tID = NULL);
|
||||
|
||||
public:
|
||||
CNeutrinoEventList();
|
||||
~CNeutrinoEventList();
|
||||
int exec(const t_channel_id channel_id, const std::string& channelname, const std::string& prev = "", const std::string& next = ""); // UTF-8
|
||||
int exec(const t_channel_id channel_id, const std::string& channelname, const std::string& prev = "", const std::string& next = "", const CChannelEventList &followlist = CChannelEventList ()); // UTF-8
|
||||
};
|
||||
|
||||
class CEventListHandler : public CMenuTarget
|
||||
|
@@ -250,6 +250,7 @@ typedef enum
|
||||
LOCALE_EPGPLUS_SWAP_MODE,
|
||||
LOCALE_EPGPLUS_VIEW_MODE,
|
||||
LOCALE_EPGVIEWER_MORE_SCREENINGS,
|
||||
LOCALE_EPGVIEWER_MORE_SCREENINGS_SHORT,
|
||||
LOCALE_EPGVIEWER_NODETAILED,
|
||||
LOCALE_EPGVIEWER_NOTFOUND,
|
||||
LOCALE_EVENTFINDER_HEAD,
|
||||
|
@@ -250,6 +250,7 @@ const char * locale_real_names[] =
|
||||
"EPGPlus.swap_mode",
|
||||
"EPGPlus.view_mode",
|
||||
"epgviewer.More_Screenings",
|
||||
"epgviewer.More_Screenings_short",
|
||||
"epgviewer.nodetailed",
|
||||
"epgviewer.notfound",
|
||||
"eventfinder.head",
|
||||
|
Reference in New Issue
Block a user