This is useful to see what IR is actually being sent (e.g. after scancode generation). Signed-off-by: Sean Young <sean@xxxxxxxx> --- utils/ir-ctl/ir-ctl.1.in | 3 +++ utils/ir-ctl/ir-ctl.c | 15 ++++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/utils/ir-ctl/ir-ctl.1.in b/utils/ir-ctl/ir-ctl.1.in index 2efe293..a1d5aeb 100644 --- a/utils/ir-ctl/ir-ctl.1.in +++ b/utils/ir-ctl/ir-ctl.1.in @@ -99,6 +99,9 @@ Prints the help message \fB\-\-usage\fR Give a short usage message .TP +\fB\-v\fR, \fB\-\-verbose\fR +Verbose output; this prints the IR before sending. +.TP \fB\-V\fR, \fB\-\-version\fR print the v4l2\-utils version .PP diff --git a/utils/ir-ctl/ir-ctl.c b/utils/ir-ctl/ir-ctl.c index bdea741..f19bd05 100644 --- a/utils/ir-ctl/ir-ctl.c +++ b/utils/ir-ctl/ir-ctl.c @@ -65,6 +65,7 @@ struct arguments { char *device; bool features; bool record; + bool verbose; struct file *send; bool oneshot; char *savetofile; @@ -85,6 +86,7 @@ static const struct argp_option options[] = { { "record", 'r', N_("FILE"), OPTION_ARG_OPTIONAL, N_("record IR to stdout or file") }, { "send", 's', N_("FILE"), 0, N_("send IR pulse and space file") }, { "scancode", 'S', N_("SCANCODE"), 0, N_("send IR scancode in protocol specified") }, + { "verbose", 'v', 0, 0, N_("verbose output") }, { .doc = N_("Recording options:") }, { "one-shot", '1', 0, 0, N_("end recording after first message") }, { "wideband", 'w', 0, 0, N_("use wideband receiver aka learning mode") }, @@ -397,6 +399,9 @@ static error_t parse_opt(int k, char *arg, struct argp_state *state) case '1': arguments->oneshot = true; break; + case 'v': + arguments->verbose = true; + break; case 'm': if (arguments->carrier_reports == 2) argp_error(state, _("cannot enable and disable carrier reports")); @@ -515,7 +520,7 @@ static error_t parse_opt(int k, char *arg, struct argp_state *state) return ARGP_ERR_UNKNOWN; } - if (k != '1' && k != 'd') + if (k != '1' && k != 'd' && k != 'v') arguments->work_to_do = true; return 0; @@ -739,6 +744,12 @@ static int lirc_send(struct arguments *args, int fd, unsigned features, struct f lirc_set_send_carrier(fd, dev, features, f->carrier); size_t size = f->len * sizeof(unsigned); + if (args->verbose) { + int i; + printf("Sending:\n"); + for (i=0; i<f->len; i++) + printf("%s %u\n", i & 1 ? "space" : "pulse", f->buf[i]); + } ssize_t ret = TEMP_FAILURE_RETRY(write(fd, f->buf, size)); if (ret < 0) { fprintf(stderr, _("%s: failed to send: %m\n"), dev); @@ -752,6 +763,8 @@ static int lirc_send(struct arguments *args, int fd, unsigned features, struct f size / sizeof(unsigned)); return EX_IOERR; } + if (args->verbose) + printf("Successfully sent\n"); return 0; } -- 2.7.4 -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html