[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