]> git.vomp.tv Git - vompclient.git/commitdiff
Changes...
authorChris Tallon <chris@vomp.tv>
Sat, 29 Apr 2006 14:21:21 +0000 (14:21 +0000)
committerChris Tallon <chris@vomp.tv>
Sat, 29 Apr 2006 14:21:21 +0000 (14:21 +0000)
player.cc
player.h
vvideolive.cc
vvideorec.cc

index 694745e8790704ac6c5a6944ca09beb395d8bfd6..5c022cfd926a1d13c5f1a67fd5b9d3ef6543e891 100644 (file)
--- a/player.cc
+++ b/player.cc
@@ -20,7 +20,7 @@
 
 #include "player.h"
 
-Player::Player(MessageQueue* messageQueue, UCHAR tIsRecording, UCHAR isRadio)
+Player::Player(MessageQueue* messageQueue, bool tIsRecording, bool tIsRadio)
 : vfeed(this), afeed(this)
 {
   commandMessageQueue = messageQueue;
@@ -35,25 +35,28 @@ Player::Player(MessageQueue* messageQueue, UCHAR tIsRecording, UCHAR isRadio)
   streamLength = 0;
   feedPosition = 0;
   feedMode = MODE_NORMAL;
-  videoStartup = false;
-  isRecording = tIsRecording;
   lastRescan = 0;
   startTS = 0;
   endTS = 0;
-  startup = 1;
+
+  startup = true;
+  videoStartup = false;
+  isRecording = tIsRecording;
+  isRadio = tIsRadio;
+
   threadBuffer = NULL;
 
   if (isRadio)
   {
     blockSize = 20000;
     startupBlockSize = 60000;
-  video->turnVideoOff();
+    video->turnVideoOff();
   }
   else
   {
     blockSize = 100000;
     startupBlockSize = 250000;
-  video->turnVideoOn();
+    video->turnVideoOn();
   }
 }
 
@@ -275,6 +278,7 @@ void Player::restartAt(ULLONG timecode)
   video->reset();
   audio->reset();
   demuxer.flush();
+  if (!isRadio) demuxer.seek();
   feedPosition = newPosition;
   videoStartup = true;
   afeed.start();
@@ -327,6 +331,7 @@ void Player::toggleFastForward()
     video->reset();
     audio->reset();
     demuxer.flush();
+    if (!isRadio) demuxer.seek();
 
     videoStartup = true;
     afeed.enable();
@@ -377,6 +382,8 @@ void Player::toggleFastBackward()
     video->reset();
     video->play();
     demuxer.flush();
+    if (!isRadio) demuxer.seek();
+
     threadStart();
   }
 }
@@ -523,7 +530,7 @@ void Player::threadMethod()
 
       if (isRecording) setEndTS();
 
-      startup = 0;
+      startup = false;
     }
 
     if (feedMode == MODE_NORMAL)
@@ -535,7 +542,7 @@ void Player::threadMethod()
       if (feedPosition >= blockSize)
       {
         feedPosition -= blockSize;
-        demuxer.seek();
+        if (!isRadio) demuxer.seek();
       }
       else
       {
index 0fef7a1c8d82cd21cba5fbda03680824f830e5ba..d48bc121cb2b110c89bd5e7709a2774539ed0b91 100644 (file)
--- a/player.h
+++ b/player.h
@@ -43,7 +43,7 @@
 class Player : public Thread_TYPE, public Callback
 {
   public:
-    Player(MessageQueue* messageQueue, UCHAR isRecording, UCHAR isRadio);
+    Player(MessageQueue* messageQueue, bool isRecording, bool isRadio);
     virtual ~Player();
 
     int init();
@@ -89,17 +89,19 @@ class Player : public Thread_TYPE, public Callback
     Audio* audio;
     Video* video;
     Demuxer demuxer;
-    int startup;
     VFeed vfeed;
     AFeed afeed;
+
+    bool startup;
     bool videoStartup;
+    bool isRecording;
+    bool isRadio;
 
     ULLONG startTS;
     ULLONG endTS;
     ULLONG streamLength;
     ULLONG feedPosition;
     UCHAR feedMode;
-    UCHAR isRecording;
     time_t lastRescan;
     UINT blockSize;
     UINT startupBlockSize;
index 5281013dab45c7a9ede7db80be3188e957ee5c18..63e2233a8cb11333ad2a30416f168ddec5efae6c 100644 (file)
@@ -38,8 +38,8 @@ VVideoLive::VVideoLive(ChannelList* tchanList, ULONG tstreamType, VChannelList*
   unavailableView = NULL;
   streamType = tstreamType;
   videoMode = video->getMode();
-  if (streamType == VDR::RADIO) player = new Player(Command::getInstance(), 0, 1);
-  else                          player = new Player(Command::getInstance(), 0, 0);
+  if (streamType == VDR::RADIO) player = new Player(Command::getInstance(), false, true);
+  else                          player = new Player(Command::getInstance(), false, false);
 
   player->init();
   create(video->getScreenWidth(), video->getScreenHeight());
index 01f953edf53e42c6599f98eb57ab6fbf8782ed19..1c5582879d2b4dcd187279ca31e27a6c3a41b747 100644 (file)
@@ -26,7 +26,7 @@ VVideoRec::VVideoRec(Recording* rec)
   video = Video::getInstance();
   timers = Timers::getInstance();
 
-  player = new Player(Command::getInstance(), 1, 0); // say 0 for radio because buffering will work anyway
+  player = new Player(Command::getInstance(), true, false); // say 0 for radio because buffering will work anyway
   player->init();
 
   videoMode = video->getMode();