[mythtv] Always save playback position

David Engel dlengel at attbi.com
Sat Jun 21 12:34:03 EDT 2003


On Fri, Jun 20, 2003 at 12:18:13AM -0700, Jim Radford wrote:
> I, for one, am interested.  This has been on my TODO list for a while.
> IMHO, save-position-and-exit should be the default.  Finding where you

This patch makes saving the position the default.  If Isaac doesn't
like it, he can delete that one line.

The main feature in this patch is to allow hitting escape to abort out
of OSD dialogs.

David
-- 
David Engel
dlengel at attbi.com

Index: libs/libmythtv/NuppelVideoPlayer.cpp
===================================================================
RCS file: /var/lib/mythcvs/mythtv/libs/libmythtv/NuppelVideoPlayer.cpp,v
retrieving revision 1.215
diff -u -r1.215 NuppelVideoPlayer.cpp
--- libs/libmythtv/NuppelVideoPlayer.cpp	19 Jun 2003 14:49:55 -0000	1.215
+++ libs/libmythtv/NuppelVideoPlayer.cpp	21 Jun 2003 16:22:17 -0000
@@ -1891,6 +1891,8 @@
         {
             case Qt::Key_Up: osd->DialogUp(dialogname); break;
             case Qt::Key_Down: osd->DialogDown(dialogname); break;
+	    case Qt::Key_Escape: osd->DialogAbort(dialogname);
+		// fall through
             case Qt::Key_Space: case Qt::Key_Enter: case Qt::Key_Return: 
             {
                 osd->TurnDialogOff(dialogname); 
@@ -2124,25 +2126,36 @@
     if (dialogtype == 0)
     {
         int type = deleteMap[deleteframe];
-        if (result == 1)
-            DeleteMark(deleteframe);
-        if (result == 2)
-        {
-            DeleteMark(deleteframe);
-            AddMark(framesPlayed, type);
-        }
-        else if (result == 3)
-        {
-            DeleteMark(deleteframe);
-            AddMark(deleteframe, 1 - type);
+        switch (result)
+	{
+	    case 1:
+	      	DeleteMark(deleteframe);
+		break;
+	    case 2:
+	  	DeleteMark(deleteframe);
+		AddMark(framesPlayed, type);
+		break;
+	    case 3:
+	      	DeleteMark(deleteframe);
+		AddMark(deleteframe, 1 - type);
+		break;
+	    case 4: case 0: default:
+	      	break;
         }
     }
     else if (dialogtype == 1)
     {
-        if (result == 1)
-            AddMark(framesPlayed, 0);
-        else if (result == 2)
-            AddMark(framesPlayed, 1);
+      	switch (result)
+	{
+            case 1:
+		AddMark(framesPlayed, 0);
+		break;
+	    case 2:
+		AddMark(framesPlayed, 1);
+		break;
+	    case 3: case 0: default:
+		break;
+	}
     }
 }
 
Index: libs/libmythtv/osd.cpp
===================================================================
RCS file: /var/lib/mythcvs/mythtv/libs/libmythtv/osd.cpp,v
retrieving revision 1.66
diff -u -r1.66 osd.cpp
--- libs/libmythtv/osd.cpp	14 May 2003 02:43:29 -0000	1.66
+++ libs/libmythtv/osd.cpp	21 Jun 2003 16:22:17 -0000
@@ -1273,6 +1273,11 @@
     return (GetSet(name) != NULL);
 }
 
+void OSD::DialogAbort(const QString &name)
+{
+    dialogResponseList[name] = -1;
+}
+
 int OSD::GetDialogResponse(const QString &name)
 {
     if (dialogResponseList.contains(name))
Index: libs/libmythtv/osd.h
===================================================================
RCS file: /var/lib/mythcvs/mythtv/libs/libmythtv/osd.h,v
retrieving revision 1.36
diff -u -r1.36 osd.h
--- libs/libmythtv/osd.h	25 Apr 2003 05:45:24 -0000	1.36
+++ libs/libmythtv/osd.h	21 Jun 2003 16:22:17 -0000
@@ -50,6 +50,7 @@
     void DialogDown(const QString &name);
     bool DialogShowing(const QString &name);
     void TurnDialogOff(const QString &name);
+    void DialogAbort(const QString &name);
     int GetDialogResponse(const QString &name);
 
     // position is 0 - 1000 
Index: libs/libmythtv/tv_play.cpp
===================================================================
RCS file: /var/lib/mythcvs/mythtv/libs/libmythtv/tv_play.cpp,v
retrieving revision 1.69
diff -u -r1.69 tv_play.cpp
--- libs/libmythtv/tv_play.cpp	19 Jun 2003 06:34:28 -0000	1.69
+++ libs/libmythtv/tv_play.cpp	21 Jun 2003 16:22:17 -0000
@@ -255,6 +255,8 @@
 
     if (result == 2)
         StopLiveTV();
+    else if (result == 0)
+      	result = 1;
 
     return result;
 }
@@ -834,6 +836,8 @@
         {
             case Key_Up: osd->DialogUp(dialogname); break;
             case Key_Down: osd->DialogDown(dialogname); break;
+	    case Key_Escape: osd->DialogAbort(dialogname);
+		// fall through
             case Key_Space: case Key_Enter: case Key_Return: 
             {
                 osd->TurnDialogOff(dialogname);
@@ -842,23 +846,22 @@
                     int result = osd->GetDialogResponse(dialogname);
                     dialogname = "";
 
-                    if (result == 3)
+                    switch (result)
                     {
-                        nvp->Unpause();
-                    }
-                    else if (result == 1)
-                    {
-                        nvp->SetBookmark();
-                        exitPlayer = true;
-                    }
-                    else if (result == 4)
-                    {
-                        exitPlayer = true;
-                        requestDelete = true;
-                    }
-                    else
-                    {
-                        exitPlayer = true;
+		    	case 1:
+			    nvp->SetBookmark();
+			    exitPlayer = true;
+			    break;
+		    	case 2: default:
+			    exitPlayer = true;
+			    break;
+		    	case 3: case 0:
+			    nvp->Unpause();
+			    break;
+			case 4:
+			    exitPlayer = true;
+			    requestDelete = true;
+			    break;
                     }
                 }
                 break;
@@ -982,7 +985,8 @@
             } 
             else 
             {
+		nvp->SetBookmark();
                 exitPlayer = true;
                 break;
             }


More information about the mythtv-dev mailing list