Added RfbPlayer::calculateSessionTime().


git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@141 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/rfbplayer/rfbplayer.cxx b/rfbplayer/rfbplayer.cxx
index afadf3f..4b2f14b 100644
--- a/rfbplayer/rfbplayer.cxx
+++ b/rfbplayer/rfbplayer.cxx
@@ -787,6 +787,24 @@
   return true;
 }
 
+long RfbPlayer::calculateSessionTime(char *filename) {
+  FbsInputStream sessionFile(filename);
+  sessionFile.setSpeed(1000);
+  try {
+    while (TRUE) {
+      sessionFile.skip(1024);
+    }
+  } catch (rdr::Exception e) {
+    if (strcmp(e.str(), "[End Of File]") == 0) {
+      return sessionFile.getTimeOffset() / 1000;
+    } else {
+      MessageBox(getMainHandle(), e.str(), e.type(), MB_OK | MB_ICONERROR);
+      return 0;
+    }
+  }
+  return 0;
+}
+
 void RfbPlayer::openSessionFile(char *_fileName) {
   fileName = strDup(_fileName);
 
diff --git a/rfbplayer/rfbplayer.h b/rfbplayer/rfbplayer.h
index 5896f27..09f2736 100644
--- a/rfbplayer/rfbplayer.h
+++ b/rfbplayer/rfbplayer.h
@@ -110,6 +110,9 @@
 
     // -=- Player functions
 
+    // calculateSessionTime() calculates the full session time in sec
+    long calculateSessionTime(char *fileName);
+
     // openSessionFile() opens the new session file and starts play it
     void openSessionFile(char *fileName);