]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
linuxdvb: accept '-a -1' parameter to completely disable linuxdvb input
authorJaroslav Kysela <perex@perex.cz>
Fri, 9 Oct 2015 14:37:18 +0000 (16:37 +0200)
committerJaroslav Kysela <perex@perex.cz>
Fri, 9 Oct 2015 14:37:18 +0000 (16:37 +0200)
src/main.c

index 135e54413426322dd5b65c12f515322a7a7d303f..14569363c90fb2b9bff30188460533d95cd0102c 100644 (file)
@@ -680,7 +680,7 @@ main(int argc, char **argv)
       OPT_BOOL, &opt_dbus_session },
 #endif
 #if ENABLE_LINUXDVB
-    { 'a', "adapters",  N_("Only use specified DVB adapters (comma separated)"),
+    { 'a', "adapters",  N_("Only use specified DVB adapters (comma separated, -1 = none)"),
       OPT_STR, &opt_dvb_adapters },
 #endif
 #if ENABLE_SATIP_SERVER
@@ -800,19 +800,24 @@ main(int argc, char **argv)
     char *r = NULL;
     char *dvb_adapters = strdup(opt_dvb_adapters);
     adapter_mask = 0x0;
+    i = 0;
     p = strtok_r(dvb_adapters, ",", &r);
     while (p) {
       int a = strtol(p, &e, 10);
-      if (*e != 0 || a < 0 || a > 31) {
+      if (*e != 0 || a > 31) {
         fprintf(stderr, _("Invalid adapter number '%s'\n"), p);
         free(dvb_adapters);
         return 1;
       }
-      adapter_mask |= (1 << a);
+      i = 1;
+      if (a < 0)
+        adapter_mask = 0;
+      else
+        adapter_mask |= (1 << a);
       p = strtok_r(NULL, ",", &r);
     }
     free(dvb_adapters);
-    if (!adapter_mask) {
+    if (!i) {
       fprintf(stderr, "%s", _("No adapters specified!\n"));
       return 1;
     }