This is an automatic generated email to let you know that the following patch 
were queued at the 
http://git.linuxtv.org/cgit.cgi/v4l-utils.git tree:

Subject: ir-ctl: set the gap between scancodes or files
Author:  Sean Young <[email protected]>
Date:    Wed Nov 29 17:54:32 2017 +0000

Between sending multiple scancodes or pulse space files, there is
a gap of 125 milliseconds. Allow this to be set.

Tested-by: Matthias Reichl <[email protected]>
Signed-off-by: Sean Young <[email protected]>

 utils/ir-ctl/ir-ctl.1.in |  6 +++++-
 utils/ir-ctl/ir-ctl.c    | 18 +++++++++++++-----
 2 files changed, 18 insertions(+), 6 deletions(-)

---

http://git.linuxtv.org/cgit.cgi/v4l-utils.git/commit/?id=26eca33b62f988ecbc4df8134ebdef20f9f75c97
diff --git a/utils/ir-ctl/ir-ctl.1.in b/utils/ir-ctl/ir-ctl.1.in
index 05550fb120de..641b11152ebb 100644
--- a/utils/ir-ctl/ir-ctl.1.in
+++ b/utils/ir-ctl/ir-ctl.1.in
@@ -93,6 +93,10 @@ Comma separated list of emitters to use for sending. The 
first emitter is
 number 1. Some devices only support enabling one emitter (the winbond-cir
 driver).
 .TP
+\fB\-g\fR, \fB\-\-gap\fR=\fIGAP\fR
+Set the gap between scancodes or the gap between files when multiple files
+are specified on the command line. The default is 125000 microseconds.
+.TP
 \fB\-?\fR, \fB\-\-help\fR
 Prints the help message
 .TP
@@ -220,7 +224,7 @@ To send the pulse and space file \fBplay\fR on emitter 3:
 .br
        \fBir\-ctl \-e 3 \-\-send=play\fR
 .PP
-To send the rc-5 hauppuage '1' scancode:
+To send the rc-5 hauppauge '1' scancode:
 .br
        \fBir\-ctl \-S rc5:0x1e01
 .PP
diff --git a/utils/ir-ctl/ir-ctl.c b/utils/ir-ctl/ir-ctl.c
index 8538ec5db5b4..6fb05b1aaa78 100644
--- a/utils/ir-ctl/ir-ctl.c
+++ b/utils/ir-ctl/ir-ctl.c
@@ -82,6 +82,7 @@ struct arguments {
        int wideband;
        unsigned carrier_low, carrier_high;
        unsigned timeout;
+       unsigned gap;
        int carrier_reports;
        int timeout_reports;
        unsigned carrier;
@@ -111,6 +112,7 @@ static const struct argp_option options[] = {
        { "carrier",    'c',    N_("CARRIER"),  0,      N_("set send carrier") 
},
        { "duty-cycle", 'D',    N_("DUTY"),     0,      N_("set duty cycle") },
        { "emitters",   'e',    N_("EMITTERS"), 0,      N_("set send emitters") 
},
+       { "gap",        'g',    N_("GAP"),      0,      N_("set gap between 
files or scancodes") },
        { }
 };
 
@@ -130,6 +132,7 @@ static const char doc[] = N_(
        "  CARRIER  - the carrier frequency to use for sending\n"
        "  DUTY     - the duty cycle to use for sending\n"
        "  EMITTERS - comma separated list of emitters to use for sending, e.g. 
1,2\n"
+       "  GAP      - gap between pulse and files or scancodes in 
microseconds\n"
        "  RANGE    - set range of accepted carrier frequencies, e.g. 
20000-40000\n"
        "  TIMEOUT  - set length of space before recording stops in 
microseconds\n"
        "  SCANCODE - protocol:scancode, e.g. nec:0xa814\n\n"
@@ -185,7 +188,7 @@ static unsigned parse_emitters(char *p)
        return emit;
 }
 
-static struct file *read_file(const char *fname)
+static struct file *read_file(struct arguments *args, const char *fname)
 {
        bool expect_pulse = true;
        int lineno = 0, lastspace = 0;
@@ -230,7 +233,7 @@ static struct file *read_file(const char *fname)
                        char *scancodestr;
 
                        if (!expect_pulse) {
-                               f->buf[len++] = IR_DEFAULT_TIMEOUT;
+                               f->buf[len++] = args->gap;
                                expect_pulse = true;
                        }
 
@@ -486,6 +489,11 @@ static error_t parse_opt(int k, char *arg, struct 
argp_state *state)
                if (arguments->emitters == 0)
                        argp_error(state, _("cannot parse emitters `%s'"), arg);
                break;
+       case 'g':
+               arguments->gap = strtoint(arg, "");
+               if (arguments->gap == 0)
+                       argp_error(state, _("cannot parse gap `%s'"), arg);
+               break;
        case 'D':
                arguments->duty = strtoint(arg, "%");
                if (arguments->duty == 0 || arguments->duty >= 100)
@@ -494,7 +502,7 @@ static error_t parse_opt(int k, char *arg, struct 
argp_state *state)
        case 's':
                if (arguments->record || arguments->features)
                        argp_error(state, _("send can not be combined with 
record or features option"));
-               s = read_file(arg);
+               s = read_file(arguments, arg);
                if (s == NULL)
                        exit(EX_DATAERR);
 
@@ -884,7 +892,7 @@ err:
 
 int main(int argc, char *argv[])
 {
-       struct arguments args = {};
+       struct arguments args = { .gap = IR_DEFAULT_TIMEOUT };
 
 #ifdef ENABLE_NLS
         setlocale (LC_ALL, "");
@@ -912,7 +920,7 @@ int main(int argc, char *argv[])
        while (s) {
                struct file *next = s->next;
                if (s != args.send)
-                       usleep(IR_DEFAULT_TIMEOUT);
+                       usleep(args.gap);
 
                rc = lirc_send(&args, fd, features, s);
                if (rc) {

_______________________________________________
linuxtv-commits mailing list
[email protected]
https://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits

Reply via email to