[mythtv] [PATCH] Clearing the OSD
David Engel
dlengel at attbi.com
Fri Oct 17 19:02:27 EDT 2003
This patch adds the ability to immediately clear the OSD if visible by
pressing the escape key. It can also be used to abort an unintended
channel change.
David
--
David Engel
dlengel at attbi.com
Index: libs/libmythtv/osd.cpp
===================================================================
RCS file: /var/lib/mythcvs/mythtv/libs/libmythtv/osd.cpp,v
retrieving revision 1.80
diff -u -r1.80 osd.cpp
--- libs/libmythtv/osd.cpp 13 Oct 2003 21:23:30 -0000 1.80
+++ libs/libmythtv/osd.cpp 17 Oct 2003 22:58:27 -0000
@@ -1425,6 +1425,14 @@
osdlock.unlock();
}
+void OSD::Hide(void)
+{
+ vector<OSDSet *>::iterator i;
+ for (i = setList->begin(); i != setList->end(); i++)
+ if (*i)
+ (*i)->Hide();
+}
+
void OSD::HideSet(const QString &name)
{
osdlock.lock();
Index: libs/libmythtv/osd.h
===================================================================
RCS file: /var/lib/mythcvs/mythtv/libs/libmythtv/osd.h,v
retrieving revision 1.47
diff -u -r1.47 osd.h
--- libs/libmythtv/osd.h 17 Oct 2003 07:19:40 -0000 1.47
+++ libs/libmythtv/osd.h 17 Oct 2003 22:58:27 -0000
@@ -76,6 +76,7 @@
bool Visible(void);
+ void Hide(void);
void HideSet(const QString &name);
void AddSet(OSDSet *set, QString name, bool withlock = true);
Index: libs/libmythtv/osdtypes.cpp
===================================================================
RCS file: /var/lib/mythcvs/mythtv/libs/libmythtv/osdtypes.cpp,v
retrieving revision 1.33
diff -u -r1.33 osdtypes.cpp
--- libs/libmythtv/osdtypes.cpp 13 Oct 2003 21:23:30 -0000 1.33
+++ libs/libmythtv/osdtypes.cpp 17 Oct 2003 22:58:27 -0000
@@ -309,7 +309,8 @@
void OSDSet::Hide(void)
{
- m_timeleft = 1;
+ m_timeleft = -1;
+ m_fadetime = 0;
m_notimeout = false;
}
Index: libs/libmythtv/tv_play.cpp
===================================================================
RCS file: /var/lib/mythcvs/mythtv/libs/libmythtv/tv_play.cpp,v
retrieving revision 1.110
diff -u -r1.110 tv_play.cpp
--- libs/libmythtv/tv_play.cpp 17 Oct 2003 07:19:41 -0000 1.110
+++ libs/libmythtv/tv_play.cpp 17 Oct 2003 22:58:28 -0000
@@ -713,10 +713,7 @@
int updatecheck = 0;
update_osd_pos = false;
- channelqueued = false;
- channelKeys[0] = channelKeys[1] = channelKeys[2] = channelKeys[3] = ' ';
- channelKeys[4] = 0;
- channelkeysstored = 0;
+ ChannelClear();
runMainLoop = true;
exitPlayer = false;
@@ -1042,7 +1039,13 @@
{
StopFFRew();
- if (StateIsPlaying(internalState) &&
+ if (osd && osd->Visible())
+ {
+ ChannelClear();
+ osd->Hide();
+ return;
+ }
+ else if (StateIsPlaying(internalState) &&
gContext->GetNumSetting("PlaybackExitPrompt") == 1)
{
nvp->Pause();
@@ -1660,14 +1663,20 @@
AddPreviousChannel();
}
- channelqueued = false;
- channelKeys[0] = channelKeys[1] = channelKeys[2] = channelKeys[3] = ' ';
- channelkeysstored = 0;
+ ChannelClear();
if (muted)
muteTimer->start(kMuteTimeout * 2, true);
}
+void TV::ChannelClear(void)
+{
+ channelqueued = false;
+ channelKeys[0] = channelKeys[1] = channelKeys[2] = channelKeys[3] = ' ';
+ channelKeys[4] = 0;
+ channelkeysstored = 0;
+}
+
void TV::ChannelKey(int key)
{
char thekey = key;
@@ -1718,9 +1727,7 @@
QString chan = QString(channelKeys).stripWhiteSpace();
ChangeChannelByString(chan);
- channelqueued = false;
- channelKeys[0] = channelKeys[1] = channelKeys[2] = channelKeys[3] = ' ';
- channelkeysstored = 0;
+ ChannelClear();
}
void TV::ChangeChannelByString(QString &name)
Index: libs/libmythtv/tv_play.h
===================================================================
RCS file: /var/lib/mythcvs/mythtv/libs/libmythtv/tv_play.h,v
retrieving revision 1.48
diff -u -r1.48 tv_play.h
--- libs/libmythtv/tv_play.h 17 Oct 2003 07:19:41 -0000 1.48
+++ libs/libmythtv/tv_play.h 17 Oct 2003 22:58:28 -0000
@@ -116,6 +116,7 @@
void ChangeColour(bool up, bool recorder);
void ChangeHue(bool up, bool recorder);
+ void ChannelClear(void);
void ChannelKey(int key);
void ChannelCommit(void);
More information about the mythtv-dev
mailing list