From c0ec1e01c7dd84ce694bc5268916cc43870f00cf Mon Sep 17 00:00:00 2001
From: "Matthias P. Braendli" <matthias.braendli@mpb.li>
Date: Fri, 20 Jun 2014 16:28:50 +0200
Subject: mot-encoder: add --sleep option

---
 src/mot-encoder.cpp | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

(limited to 'src')

diff --git a/src/mot-encoder.cpp b/src/mot-encoder.cpp
index b70e66f..fba2de1 100644
--- a/src/mot-encoder.cpp
+++ b/src/mot-encoder.cpp
@@ -41,8 +41,6 @@
 
 #define DEBUG 0
 
-#define SLEEPDELAY 1
-
 extern "C" {
 #include "lib_crc.h"
 }
@@ -143,6 +141,7 @@ void usage(char* name)
                     "                        Mandatory.\n"
                     " -e, --erase            Erase slides from DIRNAME once they have\n"
                     "                        been encoded.\n"
+                    " -s, --sleep=DELAY      Wait DELAY seconds between each slide\n"
                     " -o, --output=FILENAME  Fifo to write PAD data into.\n"
                     "                        Default: /tmp/pad.fifo\n"
                     " -t, --dls=FILENAME     Fifo or file to read DLS text from.\n"
@@ -164,6 +163,7 @@ int main(int argc, char *argv[])
     char dlstext[MAXDLS];
     int  padlen = 58;
     bool erase_after_tx = false;
+    int  sleepdelay = 10;
 
     char* dir = NULL;
     char* output = "/tmp/pad.fifo";
@@ -175,6 +175,7 @@ int main(int argc, char *argv[])
         {"output",     required_argument,  0, 'o'},
         {"dls",        required_argument,  0, 't'},
         {"pad",        required_argument,  0, 'p'},
+        {"sleep",      required_argument,  0, 's'},
         {"help",       no_argument,        0, 'h'},
         {0,0,0,0},
     };
@@ -188,7 +189,7 @@ int main(int argc, char *argv[])
     int ch=0;
     int index;
     while(ch != -1) {
-        ch = getopt_long(argc, argv, "ehd:o:t:p:", longopts, &index);
+        ch = getopt_long(argc, argv, "ehd:o:s:t:p:", longopts, &index);
         switch (ch) {
             case 'd':
                 dir = optarg;
@@ -199,6 +200,9 @@ int main(int argc, char *argv[])
             case 'o':
                 output = optarg;
                 break;
+            case 's':
+                sleepdelay = atoi(optarg);
+                break;
             case 't':
                 dls_file = optarg;
                 break;
@@ -248,7 +252,7 @@ int main(int argc, char *argv[])
 
         // Add new slides to transmit to list
         while ((pDirent = readdir(pDir)) != NULL) {
-            if ( pDirent->d_name[0] != '.') {
+            if (pDirent->d_name[0] != '.') {
                 char imagepath[256];
                 sprintf(imagepath, "%s/%s", dir, pDirent->d_name);
 
@@ -280,7 +284,7 @@ int main(int argc, char *argv[])
                 }
             }
 
-            sleep(SLEEPDELAY);
+            sleep(sleepdelay);
         }
 
         slides_to_transmit.resize(0);
@@ -288,7 +292,7 @@ int main(int argc, char *argv[])
         // Always retransmit DLS, we want it to be updated frequently
         writeDLS(output_fd, dls_file, padlen);
 
-        sleep(SLEEPDELAY);
+        sleep(sleepdelay);
 
         closedir(pDir);
     }
-- 
cgit v1.2.3