All pastes #41764 Raw Edit

Untitled

public text v1 · immutable
#41764 ·published 2006-02-15 19:54 UTC
rendered paste body
Index: programs/mythfrontend/playbackbox.cpp
===================================================================
--- programs/mythfrontend/playbackbox.cpp       (revision 8969)
+++ programs/mythfrontend/playbackbox.cpp       (working copy)
@@ -160,8 +160,9 @@
       previewVideoPlaying(false),       previewVideoThreadRunning(false),
       previewVideoKillState(kDone),
       // Preview Image Variables
-      previewPixmapEnabled(false),      previewPixmap(NULL),
-      previewSuspend(false),            previewChanid(""),
+      previewPixmapEnabled(false),      previewPixmapDrawn(false),
+      previewPixmap(NULL),              previewSuspend(false),
+      previewChanid(""),
       // Network Control Variables
       underNetworkControl(false)
 {
@@ -660,9 +661,12 @@
 {
     QMap<QString, QString> infoMap;
     QPainter tmp(&pix);
-
+
     if (previewVideoPlaying)
+    {
         previewVideoState = kChanging;
+        previewPixmapDrawn = FALSE;
+    }

     LayerSet *container = NULL;
     if (type != Delete)
@@ -809,21 +813,37 @@

 void PlaybackBox::updateVideo(QPainter *p)
 {
+//    VERBOSE(VB_IMPORTANT, LOC + "previewPixmapDrawn is " + previewPixmapDrawn);
+
     // If we're displaying group info don't update the video.
     if (inTitle && haveGroupInfoSet)
         return;

-    /* show a still frame if the user doesn't want a video preview or nvp
+    /* show a still frame if the user doesn't want a video preview or nvp
      * hasn't started playing the video preview yet */
     if (curitem && !playingSomething &&
         (!previewVideoEnabled             ||
          !previewVideoPlaying             ||
-         (previewVideoState == kStarting) ||
+         (previewVideoState == kStarting) ||
          (previewVideoState == kChanging)))
     {
-        QPixmap temp = getPixmap(curitem);
-        if (temp.width() > 0)
-            p->drawPixmap(drawVideoBounds.x(), drawVideoBounds.y(), temp);
+
+        if (!previewPixmapDrawn)
+        {
+            if (previewVideoState == kStarting)
+                VERBOSE(VB_IMPORTANT, LOC + "State kStarting");
+            else if (previewVideoState == kChanging)
+                VERBOSE(VB_IMPORTANT, LOC + "State kChanging");
+            else if (!previewVideoPlaying)
+                VERBOSE(VB_IMPORTANT, LOC + "Preview Video playing");
+            else
+                VERBOSE(VB_IMPORTANT, LOC + "Preview Video not enabled");
+            VERBOSE(VB_IMPORTANT, LOC + "Drawing Preview Picture");
+            previewPixmapDrawn = TRUE;
+            QPixmap temp = getPixmap(curitem);
+            if (temp.width() > 0)
+                p->drawPixmap(drawVideoBounds.x(), drawVideoBounds.y(), temp);
+        }
     }

     /* keep calling killPlayer() to handle nvp cleanup */
@@ -888,7 +908,11 @@
         if (previewVideoNVP)
         {
             if (previewVideoNVP->IsPlaying())
+            {
                 previewVideoState = kPlaying;
+                VERBOSE(VB_IMPORTANT, LOC + "Playing Preview Video");
+                previewPixmapDrawn = FALSE;
+            }
         }
         else
         {
@@ -1668,12 +1692,14 @@
     }

     return true;
-}
+}

 void PlaybackBox::startPlayer(ProgramInfo *rec)
 {
     previewVideoPlaying = true;

+    VERBOSE(VB_IMPORTANT, LOC + "Starting Preview Player");
+
     if (rec != NULL)
     {
         // Don't keep trying to open broken files when just sitting on entry
@@ -1703,6 +1729,7 @@
         }
         previewVideoBrokenRecId = 0;

+        VERBOSE(VB_IMPORTANT, LOC + "Creating new NVP preview player instance");
         previewVideoNVP = new NuppelVideoPlayer("preview player");
         previewVideoNVP->SetRingBuffer(previewVideoRingBuf);
         previewVideoNVP->SetAsPIP();
@@ -2813,6 +2840,7 @@
     cancelPopup();

     previewVideoState = kChanging;
+    previewPixmapDrawn = FALSE;

     previewVideoRefreshTimer->start(500);
 }
@@ -2827,6 +2855,7 @@
     stop(delitem);

     previewVideoState = kChanging;
+    previewPixmapDrawn = FALSE;

     previewVideoRefreshTimer->start(500);
 }
@@ -2979,6 +3008,7 @@
     cancelPopup();

     previewVideoState = kChanging;
+    previewPixmapDrawn = FALSE;

     previewVideoRefreshTimer->start(500);
 }
@@ -3025,6 +3055,7 @@
     bool result = doRemove(delitem, false, false);

     previewVideoState = kChanging;
+    previewPixmapDrawn = FALSE;

     previewVideoRefreshTimer->start(500);

@@ -3060,6 +3091,7 @@
     doRemove(delitem, true, true);

     previewVideoState = kChanging;
+    previewPixmapDrawn = FALSE;

     previewVideoRefreshTimer->start(500);
 }
@@ -3085,6 +3117,7 @@
     bool result = doRemove(delitem, true, false);

     previewVideoState = kChanging;
+    previewPixmapDrawn = FALSE;

     previewVideoRefreshTimer->start(500);

@@ -3162,6 +3195,7 @@
     delitem = NULL;

     previewVideoState = kChanging;
+    previewPixmapDrawn = FALSE;

     update(drawListBounds);
 }
@@ -3183,6 +3217,7 @@
     delitem = NULL;

     previewVideoState = kChanging;
+    previewPixmapDrawn = FALSE;

     update(drawListBounds);
 }
@@ -3195,6 +3230,7 @@
     cancelPopup();

     previewVideoState = kChanging;
+    previewPixmapDrawn = FALSE;
 }

 void PlaybackBox::toggleTitleView(void)
@@ -3925,6 +3961,7 @@
     delete iconhelp;

     previewVideoState = kChanging;
+    previewPixmapDrawn = FALSE;

     paintSkipUpdate = false;
     paintSkipCount = 2;
@@ -3970,6 +4007,7 @@
     paintSkipCount = 2;

     previewVideoState = kChanging;
+    previewPixmapDrawn = FALSE;

     setActiveWindow();

Index: programs/mythfrontend/playbackbox.h
===================================================================
--- programs/mythfrontend/playbackbox.h (revision 8969)
+++ programs/mythfrontend/playbackbox.h (working copy)
@@ -389,6 +389,7 @@

     // Preview Pixmap Variables ///////////////////////////////////////////////
     bool                previewPixmapEnabled;
+    bool                previewPixmapDrawn;
     QPixmap            *previewPixmap;
     QDateTime           previewLastModified;
     QDateTime           previewFilets;