]> git.vomp.tv Git - vompclient.git/commitdiff
Completion of move recording code. Fixes for dir counts, other bugs.
authorChris Tallon <chris@vomp.tv>
Sun, 21 May 2006 22:18:24 +0000 (22:18 +0000)
committerChris Tallon <chris@vomp.tv>
Sun, 21 May 2006 22:18:24 +0000 (22:18 +0000)
directory.cc
recman.cc
vdr.cc
vdr.h
vvideorec.cc

index b96f458d80fcec144c49d8c4db02be8d5aad2a16..13ce2d3a1cebabfaa3d4b6348b9d8aa786f69153 100644 (file)
@@ -61,7 +61,12 @@ Directory* Directory::getDirByName(char* dirName)
 
 ULONG Directory::getNumRecordings()
 {
-  return recList.size();
+  ULONG total = recList.size();
+  for(UINT i = 0; i < dirList.size(); i++)
+  {
+    total += dirList[i]->getNumRecordings();
+  }
+  return total;
 }
 
 void Directory::sort()
index 1850ffe1fd68d918480ae5973233b0c6fdbf52ef..11afd4d7fcc7fc121a21a1c340f832b17ce052b9 100644 (file)
--- a/recman.cc
+++ b/recman.cc
@@ -169,10 +169,14 @@ int RecMan::moveRecording(Recording* toMove, Directory* toDir)
   {
     if (*i == toMove)
     {
-      success = VDR::getInstance()->moveRecording(toMove->getFileName(), newPath);
-      //success = 1;
-      if (success == 1)
+      char* newFileName = VDR::getInstance()->moveRecording(toMove->getFileName(), newPath);
+      if (newFileName)
       {
+        success = 1;
+
+        toMove->setFileName(newFileName);
+        delete[] newFileName;
+
         currentDir->recList.erase(i);
         toDir->recList.push_back(toMove);
         toDir->sort();
diff --git a/vdr.cc b/vdr.cc
index 0efd189f47e2d2107a85a736b5366e55ae1b4a81..179e8072f2bb6b8cd3aafb462f837ed0baa72233 100644 (file)
--- a/vdr.cc
+++ b/vdr.cc
@@ -413,7 +413,7 @@ int VDR::deleteRecording(char* fileName)
   return toReturn;
 }
 
-int VDR::moveRecording(char* fileName, char* newPath)
+char* VDR::moveRecording(char* fileName, char* newPath)
 {
   unsigned long totalLength = 8 + strlen(fileName) + 1 + strlen(newPath) + 1;
   UCHAR* buffer = new UCHAR[totalLength];
@@ -442,7 +442,13 @@ int VDR::moveRecording(char* fileName, char* newPath)
     return 0;
   }
 
-  int toReturn = (int)extractULONG();
+  char* toReturn = NULL;
+  int success = (int)extractULONG();
+  if (success == 1)
+  {
+    toReturn = extractString();
+  }
+
   freePacket();
   MUTEX_UNLOCK(&mutex);
 
diff --git a/vdr.h b/vdr.h
index c1aa880b82b6dc7604a92f3b1edfbe76a50c4e07..5f63793f00a3a365d33f09c5ac70718de6a9c6df 100644 (file)
--- a/vdr.h
+++ b/vdr.h
@@ -116,7 +116,7 @@ class VDR
     bool       getRecordingsList(RecMan* recman);
     char*      getRecordingSummary(char* fileName);
     int        deleteRecording(char* fileName);
-    int        moveRecording(char* fileName, char* newPath);
+    char*      moveRecording(char* fileName, char* newPath);
     ULLONG     streamRecording(char* fileName);
     ULLONG     rescanRecording();
     ULLONG     positionFromFrameNumber(ULONG frameNumber);
index a21cd8b2498d06fbe0c36f0baeca73ecb7d97bbf..819aec922172ef7494c9ffbd2c38c516d46a5f35 100644 (file)
@@ -95,6 +95,7 @@ void VVideoRec::draw()
 
 void VVideoRec::go(ULLONG startPosition)
 {
+  Log::getInstance()->log("VVideoRec", Log::DEBUG, "Starting stream: %s", myRec->getFileName());
   ULLONG recLength = vdr->streamRecording(myRec->getFileName());
   if (recLength)
   {