textRed.setBackgroundColour(osdBack);
textRed.setPosition(boxRed.getX()+18, 98);
textRed.setSize(120, 30);
- textRed.setText("Summary");
+ textRed.setText(tr("Summary"));
osd.add(&textRed);
if (streamType == VDR::VIDEO)
textGreen.setBackgroundColour(osdBack);
textGreen.setPosition(boxGreen.getX()+18, 98);
textGreen.setSize(120, 30);
- textGreen.setText("Audio");
+ textGreen.setText(tr("Audio"));
osd.add(&textGreen);
}
textBlue.setBackgroundColour(osdBack);
textBlue.setPosition(boxBlue.getX()+18, 98);
textBlue.setSize(90, 30);
- textBlue.setText("EPG");
+ textBlue.setText(tr("EPG"));
osd.add(&textBlue);
sl.setBackgroundColour(osdBack);
sAudioChannels.setVisible(false);
osd.add(&sAudioChannels);
+ textUnavailable.setBackgroundColour(osdBack);
+ textUnavailable.setPosition(60, 30);
+ textUnavailable.setSize(osd.getWidth() - 120, 30);
+ textUnavailable.setText(tr("Channel Unavailable"));
+ textUnavailable.setVisible(false);
+ add(&textUnavailable);
+
// FIXME painful
Region r1 = summary.getRegionR();
Region r2 = osd.getRegionR();
summary.draw();
boxstack->update(this, &osdSummaryRegion);
}
- else if (!vas)
+ else
{
boxstack->update(this, osd.getRegion());
- Timers::getInstance()->setTimerD(this, 1, 4);
}
+
+ bool setTimer = true;
+ if (vas) setTimer = false;
+ if (summary.getVisible()) setTimer = false;
+ if (textUnavailable.getVisible()) setTimer = false;
+
+ if (setTimer) Timers::getInstance()->setTimerD(this, 1, 4);
}
void VVideoLiveTV::clearScreen()
{
if (!summary.getVisible()) Timers::getInstance()->cancelTimer(this, 1);
+ textUnavailable.setVisible(false);
osd.setVisible(false);
+ summary.setVisible(false);
- if (summary.getVisible())
- {
- summary.setVisible(false);
- draw();
- boxstack->update(this, &osdSummaryRegion);
- }
- else
- {
- draw();
- boxstack->update(this, osd.getRegion());
- }
+ draw();
+ boxstack->update(this);
+}
+
+void VVideoLiveTV::showUnavailable()
+{
+ Log::getInstance()->log("VVideoLiveTV", Log::DEBUG, "Show unavailable called");
+ textUnavailable.setVisible(true);
+ textUnavailable.draw();
+
+ if (!osd.getVisible()) displayOSD(true);
+
+ boxstack->update(this, textUnavailable.getRegion());
}
void VVideoLiveTV::setClock()
bufferBar.setPercent(0);
sAudioChannels.setVisible(false);
+ // Remove other stuff
+ if (textUnavailable.getVisible())
+ {
+ textUnavailable.setVisible(false);
+ draw();
+ BoxStack::getInstance()->update(this);
+ }
+
return true;
}
break;
}
- /*
case PlayerLiveTV::STREAM_END:
{
- // I can't handle this, send it to command - improve this
- Message* m2 = new Message(); // Must be done after this thread finishes, and must break into master mutex
- m2->to = Command::getInstance();
- m2->message = Message::STREAM_END;
- Command::getInstance()->postMessageNoLock(m2);
+ // Message comes from playerlivetv through master mutex, so can do anything here
+ showUnavailable();
break;
}
- */
case PlayerLiveTV::ASPECT43:
{