Added the command-line parameter "-loop".


git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@287 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/rfbplayer/PlayerOptions.cxx b/rfbplayer/PlayerOptions.cxx
index 8bf8ff2..4494e26 100644
--- a/rfbplayer/PlayerOptions.cxx
+++ b/rfbplayer/PlayerOptions.cxx
@@ -42,7 +42,6 @@
     acceptBell = regKey.getBool(_T("AcceptBell"), DEFAULT_ACCEPT_BELL);
     acceptCutText = regKey.getBool(_T("AcceptCutText"), DEFAULT_ACCEPT_CUT_TEXT);
     autoPlay = regKey.getBool(_T("AutoPlay"), DEFAULT_AUTOPLAY);
-    loopPlayback = regKey.getBool(_T("LoopPlayback"), DEFAULT_LOOP_PLAYBACK);
     askPixelFormat = regKey.getBool(_T("AskPixelFormat"), DEFAULT_ASK_PF);
     if (pPF) delete pPF;
   } catch (rdr::Exception e) {
@@ -62,7 +61,6 @@
     regKey.setBool(_T("AcceptBell"), acceptBell);
     regKey.setBool(_T("AcceptCutText"), acceptCutText);
     regKey.setBool(_T("AutoPlay"), autoPlay);
-    regKey.setBool(_T("LoopPlayback"), loopPlayback);
     regKey.setBool(_T("AskPixelFormat"), askPixelFormat);
   } catch (rdr::Exception e) {
     MessageBox(0, e.str(), e.type(), MB_OK | MB_ICONERROR);
diff --git a/rfbplayer/rfbplayer.cxx b/rfbplayer/rfbplayer.cxx
index 552da3d..87f4886 100644
--- a/rfbplayer/rfbplayer.cxx
+++ b/rfbplayer/rfbplayer.cxx
@@ -64,7 +64,8 @@
  "                \t  is double speed, 0.5 is half speed. Default: 1.0.\r\n"
  "  -pos <ms>     \t- Sets initial time position in the session file,\r\n"
  "                \t  in milliseconds. Default: 0.\r\n"
- "  -autoplay     \t- Runs the player in the playback mode.\r\n";
+ "  -autoplay     \t- Runs the player in the playback mode.\r\n"
+ "  -loop         \t- Replays the rfb session.";
 
 // -=- RfbPlayer's defines
 
@@ -276,6 +277,7 @@
     disableTBandMenuItems();
     setTitle("None");
   }
+  init();
 }
 
 RfbPlayer::~RfbPlayer() {
@@ -1071,6 +1073,11 @@
   return 0;
 }
 
+void RfbPlayer::init() {
+  if (options.loopPlayback) CheckMenuItem(hMenu, ID_LOOP, MF_CHECKED);
+  else CheckMenuItem(hMenu, ID_LOOP, MF_UNCHECKED);
+}
+
 void RfbPlayer::closeSessionFile() {
   char speedStr[10];
   DWORD dwStyle;
@@ -1367,6 +1374,12 @@
       continue;
     }
 
+    if ((strcasecmp(argv[i], "-loop") == 0) ||
+        (strcasecmp(argv[i], "/loop") == 0) && (i < argc-1)) {
+      playerOptions.loopPlayback = true;
+      continue;
+    }
+
     if (i != argc - 1)
       return false;
   }
diff --git a/rfbplayer/rfbplayer.h b/rfbplayer/rfbplayer.h
index ec4eef0..e1c0b3d 100644
--- a/rfbplayer/rfbplayer.h
+++ b/rfbplayer/rfbplayer.h
@@ -59,6 +59,7 @@
     void calculateScrollBars();
     void close(const char* reason=0);
     void updatePos(long pos);
+    void init();
 
     // -=- Coordinate conversions