"EPG",
"57",
},
+ { "OK",
+ "OK",
+ "OK",
+ "OK",
+ "57.5",
+ },
{ "Page up",
"Seite hoch",
"",
"+24 óra",
"61",
},
+ { "Go: Preview",
+ "",
+ "",
+ "",
+ "61.5",
+ },
{ "Guide / Back: Close",
"EPG / Zurück: Schließen",
"",
const static ULONG REDRAW_LANG = 18;
const static ULONG TIMER = 19;
const static ULONG EPG = 20;
+ const static ULONG EPG_CLOSE = 21;
};
#endif
// if (chan->type == VDR::RADIO) return 2;
VVideoLive* v = new VVideoLive(chanList, chan->type);
- v->channelChange(VVideoLive::NUMBER, chan->number);
v->draw();
ViewMan::getInstance()->add(v);
ViewMan::getInstance()->updateView(v);
+ v->channelChange(VVideoLive::NUMBER, chan->number);
+
return 2;
}
case Remote::BACK:
xpos = 60;
ypos = 16;
summaryLines = 8;
- summaryLowerPadding = 12;
+ summaryLowerPadding = 16;
chanNameYpos = 244;
gridRows = 7;
}
}\r
case Remote::RECORD:\r
{\r
- //TODO\r
+ //TODO FIXME\r
return 2;\r
}\r
case Remote::PLAY:\r
case Remote::GUIDE:\r
{\r
// return to normal TV mode\r
- if (videoLive) videoLive->resetPictureSize(); // ptr check done in case being tested from videorec\r
+ if (videoLive) // ptr check done in case being tested from videorec\r
+ {\r
+ Message* m = new Message();
+ m->from = this;
+ m->to = videoLive;
+ m->message = Message::EPG_CLOSE;
+ ViewMan::getInstance()->postMessage(m);
+ }
return 4;\r
}\r
case Remote::CHANNELUP:\r
void VEpg::paintCell(Event* event, int yOffset, Colour bg, Colour fg)\r
{\r
int w, x, y, h;\r
+ w = x = 0; // keep compiler happy
+
y =yOffset;\r
h = Surface::getFontHeight(); // TODO if want border around text, need to increae this and wselectlist line height\r
UINT end = event->time + event->duration; // programme end time\r
removeView((View*)m->from);
break;
}
- case Message::ADD_VIEW:
+ case Message::ADD_VIEW: // currently not used by anything but it might come in useful again
{
View* toAdd = (View*)m->parameter;
add(toAdd);
Log::getInstance()->log("VVideoLive", Log::DEBUG, "EPG requested from live banner");
showEPG();
}
+ else if (m->message == Message::EPG_CLOSE)
+ {
+ Video::getInstance()->setMode(videoMode);
+ if (saveUnavailable) showUnavailable(1);
+ }
}
void VVideoLive::doBanner(bool bannerTakesCommands)
VLiveBanner* vlb = new VLiveBanner(this, (*chanList)[currentChannel], bannerTakesCommands);
- Message* m = new Message();
- m->from = this;
- m->to = viewman;
- m->message = Message::ADD_VIEW;
- m->parameter = (ULONG)vlb;
-
- viewman->postMessage(m);
+ vlb->draw();
+ viewman->add(vlb);
+ viewman->updateView(vlb);
}
void VVideoLive::doNoSuchChannel()
unavailableView->setTitleText((*chanList)[currentChannel]->name);
unavailableView->setOneLiner(tr("Channel unavailable"));
unavailableView->setDropThrough();
-
- Message* m = new Message();
- m->from = this;
- m->to = viewman;
- m->message = Message::ADD_VIEW;
- m->parameter = (ULONG)unavailableView;
-
- viewman->postMessage(m);
+ unavailableView->draw();
+ viewman->add(unavailableView);
+ viewman->updateView(unavailableView);
}
else
{
if (!available)
{
- showUnavailable(1);
if (!noShowVLB) doBanner(false);
+ showUnavailable(1);
}
else
{
void VVideoLive::showEPG()
{
+ saveUnavailable = unavailable;
if (unavailable) showUnavailable(0);
if (VEpg::getInstance()) return; // already showing!
viewman->add(vepg);
viewman->updateView(vepg);
}
-
-void VVideoLive::resetPictureSize()
-{
- // called by VEpg when it closes
- Video::getInstance()->setMode(videoMode);
-}
void play(int noShowVLB = 0);
void stop(int noRemoveVLB = 0);
- void resetPictureSize();
const static UCHAR INDEX = 1;
const static UCHAR NUMBER = 2;
void showEPG();
void doNoSuchChannel();
int videoMode;
+ int saveUnavailable;
};
#endif