* [PATCH] [v4l-utils] keytable: add support for XMP IR protocol
@ 2014-06-16 21:17 Marcel J.E. Mol
2014-07-26 15:24 ` Mauro Carvalho Chehab
0 siblings, 1 reply; 3+ messages in thread
From: Marcel J.E. Mol @ 2014-06-16 21:17 UTC (permalink / raw)
To: linux-media; +Cc: marcel
---
utils/keytable/keytable.c | 26 +++++++++++++++++++++++++-
1 file changed, 25 insertions(+), 1 deletion(-)
diff --git a/utils/keytable/keytable.c b/utils/keytable/keytable.c
index 065ac3b..ba98cd3 100644
--- a/utils/keytable/keytable.c
+++ b/utils/keytable/keytable.c
@@ -86,6 +86,7 @@ enum ir_protocols {
LIRC = 1 << 5,
SANYO = 1 << 6,
RC_5_SZ = 1 << 7,
+ XMP = 1 << 8,
OTHER = 1 << 31,
};
@@ -110,7 +111,7 @@ static const char doc[] = "\nAllows get/set IR keycode/scancode tables\n"
" SYSDEV - the ir class as found at /sys/class/rc\n"
" TABLE - a file with a set of scancode=keycode value pairs\n"
" SCANKEY - a set of scancode1=keycode1,scancode2=keycode2.. value pairs\n"
- " PROTOCOL - protocol name (nec, rc-5, rc-6, jvc, sony, sanyo, rc-5-sz, lirc, other) to be enabled\n"
+ " PROTOCOL - protocol name (nec, rc-5, rc-6, jvc, sony, sanyo, rc-5-sz, lirc, xmp, other) to be enabled\n"
" DELAY - Delay before repeating a keystroke\n"
" PERIOD - Period to repeat a keystroke\n"
" CFGFILE - configuration file that associates a driver/table name with a keymap file\n"
@@ -234,6 +235,8 @@ static error_t parse_keyfile(char *fname, char **table)
ch_proto |= SANYO;
else if (!strcasecmp(p,"rc-5-sz"))
ch_proto |= RC_5_SZ;
+ else if (!strcasecmp(p,"xmp"))
+ ch_proto |= XMP;
else if (!strcasecmp(p,"other") || !strcasecmp(p,"unknown"))
ch_proto |= OTHER;
else {
@@ -471,6 +474,8 @@ static error_t parse_opt(int k, char *arg, struct argp_state *state)
ch_proto |= LIRC;
else if (!strcasecmp(p,"rc-5-sz"))
ch_proto |= RC_5_SZ;
+ else if (!strcasecmp(p,"xmp"))
+ ch_proto |= XMP;
else
goto err_inval;
p = strtok(NULL, ",;");
@@ -744,6 +749,8 @@ static enum ir_protocols v1_get_hw_protocols(char *name)
proto |= SANYO;
else if (!strcmp(p, "rc-5-sz"))
proto |= RC_5_SZ;
+ else if (!strcmp(p, "xmp"))
+ proto |= XMP;
else
proto |= OTHER;
@@ -790,6 +797,9 @@ static int v1_set_hw_protocols(struct rc_device *rc_dev)
if (rc_dev->current & RC_5_SZ)
fprintf(fp, "rc-5-sz ");
+ if (rc_dev->current & XMP)
+ fprintf(fp, "xmp ");
+
if (rc_dev->current & OTHER)
fprintf(fp, "unknown ");
@@ -921,6 +931,8 @@ static enum ir_protocols v2_get_protocols(struct rc_device *rc_dev, char *name)
proto = LIRC;
else if (!strcmp(p, "rc-5-sz"))
proto = RC_5_SZ;
+ else if (!strcmp(p, "xmp"))
+ proto = XMP;
else
proto = OTHER;
@@ -977,6 +989,9 @@ static int v2_set_protocols(struct rc_device *rc_dev)
if (rc_dev->current & RC_5_SZ)
fprintf(fp, "+rc-5-sz\n");
+ if (rc_dev->current & XMP)
+ fprintf(fp, "+xmp\n");
+
if (rc_dev->current & OTHER)
fprintf(fp, "+unknown\n");
@@ -1006,6 +1021,8 @@ static void show_proto( enum ir_protocols proto)
fprintf (stderr, "LIRC ");
if (proto & RC_5_SZ)
fprintf (stderr, "RC-5-SZ ");
+ if (proto & XMP)
+ fprintf (stderr, "XMP ");
if (proto & OTHER)
fprintf (stderr, "other ");
}
@@ -1128,6 +1145,10 @@ static int get_attribs(struct rc_device *rc_dev, char *sysfs_name)
rc_dev->supported |= SONY;
if (v1_get_sw_enabled_protocol(cur->name))
rc_dev->current |= SONY;
+ } else if (strstr(cur->name, "/xmp_decoder")) {
+ rc_dev->supported |= XMP;
+ if (v1_get_sw_enabled_protocol(cur->name))
+ rc_dev->current |= XMP;
}
}
@@ -1159,6 +1180,9 @@ static int set_proto(struct rc_device *rc_dev)
if (rc_dev->supported & SONY)
rc += v1_set_sw_enabled_protocol(rc_dev, "/sony_decoder",
rc_dev->current & SONY);
+ if (rc_dev->supported & XMP)
+ rc += v1_set_sw_enabled_protocol(rc_dev, "/xmp_decoder",
+ rc_dev->current & XMP);
} else {
rc = v1_set_hw_protocols(rc_dev);
}
--
1.9.3
--
======-------- Marcel J.E. Mol MESA Consulting B.V.
=======--------- ph. +31-(0)6-54724868 P.O. Box 112
=======--------- marcel@mesa.nl 2630 AC Nootdorp
__==== www.mesa.nl ---____U_n_i_x______I_n_t_e_r_n_e_t____ The Netherlands ____
They couldn't think of a number, Linux user 1148 -- counter.li.org
so they gave me a name! -- Rupert Hine -- www.ruperthine.com
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] [v4l-utils] keytable: add support for XMP IR protocol
2014-06-16 21:17 Marcel J.E. Mol
@ 2014-07-26 15:24 ` Mauro Carvalho Chehab
0 siblings, 0 replies; 3+ messages in thread
From: Mauro Carvalho Chehab @ 2014-07-26 15:24 UTC (permalink / raw)
To: Marcel J.E. Mol; +Cc: linux-media
Em Mon, 16 Jun 2014 23:17:11 +0200
"Marcel J.E. Mol" <marcel@mesa.nl> escreveu:
You also missed your Signed-off-by: here. There will be a small conflict
with this patch, as I added yesterday the missing support for sharp and
mce-kbd on ir-keytable.
It would be nice if you could rebase it, but if you can't, I'll do it
anyway after merging your Kernel patch.
Regards,
Mauro
>
> ---
> utils/keytable/keytable.c | 26 +++++++++++++++++++++++++-
> 1 file changed, 25 insertions(+), 1 deletion(-)
>
> diff --git a/utils/keytable/keytable.c b/utils/keytable/keytable.c
> index 065ac3b..ba98cd3 100644
> --- a/utils/keytable/keytable.c
> +++ b/utils/keytable/keytable.c
> @@ -86,6 +86,7 @@ enum ir_protocols {
> LIRC = 1 << 5,
> SANYO = 1 << 6,
> RC_5_SZ = 1 << 7,
> + XMP = 1 << 8,
> OTHER = 1 << 31,
> };
>
> @@ -110,7 +111,7 @@ static const char doc[] = "\nAllows get/set IR keycode/scancode tables\n"
> " SYSDEV - the ir class as found at /sys/class/rc\n"
> " TABLE - a file with a set of scancode=keycode value pairs\n"
> " SCANKEY - a set of scancode1=keycode1,scancode2=keycode2.. value pairs\n"
> - " PROTOCOL - protocol name (nec, rc-5, rc-6, jvc, sony, sanyo, rc-5-sz, lirc, other) to be enabled\n"
> + " PROTOCOL - protocol name (nec, rc-5, rc-6, jvc, sony, sanyo, rc-5-sz, lirc, xmp, other) to be enabled\n"
> " DELAY - Delay before repeating a keystroke\n"
> " PERIOD - Period to repeat a keystroke\n"
> " CFGFILE - configuration file that associates a driver/table name with a keymap file\n"
> @@ -234,6 +235,8 @@ static error_t parse_keyfile(char *fname, char **table)
> ch_proto |= SANYO;
> else if (!strcasecmp(p,"rc-5-sz"))
> ch_proto |= RC_5_SZ;
> + else if (!strcasecmp(p,"xmp"))
> + ch_proto |= XMP;
> else if (!strcasecmp(p,"other") || !strcasecmp(p,"unknown"))
> ch_proto |= OTHER;
> else {
> @@ -471,6 +474,8 @@ static error_t parse_opt(int k, char *arg, struct argp_state *state)
> ch_proto |= LIRC;
> else if (!strcasecmp(p,"rc-5-sz"))
> ch_proto |= RC_5_SZ;
> + else if (!strcasecmp(p,"xmp"))
> + ch_proto |= XMP;
> else
> goto err_inval;
> p = strtok(NULL, ",;");
> @@ -744,6 +749,8 @@ static enum ir_protocols v1_get_hw_protocols(char *name)
> proto |= SANYO;
> else if (!strcmp(p, "rc-5-sz"))
> proto |= RC_5_SZ;
> + else if (!strcmp(p, "xmp"))
> + proto |= XMP;
> else
> proto |= OTHER;
>
> @@ -790,6 +797,9 @@ static int v1_set_hw_protocols(struct rc_device *rc_dev)
> if (rc_dev->current & RC_5_SZ)
> fprintf(fp, "rc-5-sz ");
>
> + if (rc_dev->current & XMP)
> + fprintf(fp, "xmp ");
> +
> if (rc_dev->current & OTHER)
> fprintf(fp, "unknown ");
>
> @@ -921,6 +931,8 @@ static enum ir_protocols v2_get_protocols(struct rc_device *rc_dev, char *name)
> proto = LIRC;
> else if (!strcmp(p, "rc-5-sz"))
> proto = RC_5_SZ;
> + else if (!strcmp(p, "xmp"))
> + proto = XMP;
> else
> proto = OTHER;
>
> @@ -977,6 +989,9 @@ static int v2_set_protocols(struct rc_device *rc_dev)
> if (rc_dev->current & RC_5_SZ)
> fprintf(fp, "+rc-5-sz\n");
>
> + if (rc_dev->current & XMP)
> + fprintf(fp, "+xmp\n");
> +
> if (rc_dev->current & OTHER)
> fprintf(fp, "+unknown\n");
>
> @@ -1006,6 +1021,8 @@ static void show_proto( enum ir_protocols proto)
> fprintf (stderr, "LIRC ");
> if (proto & RC_5_SZ)
> fprintf (stderr, "RC-5-SZ ");
> + if (proto & XMP)
> + fprintf (stderr, "XMP ");
> if (proto & OTHER)
> fprintf (stderr, "other ");
> }
> @@ -1128,6 +1145,10 @@ static int get_attribs(struct rc_device *rc_dev, char *sysfs_name)
> rc_dev->supported |= SONY;
> if (v1_get_sw_enabled_protocol(cur->name))
> rc_dev->current |= SONY;
> + } else if (strstr(cur->name, "/xmp_decoder")) {
> + rc_dev->supported |= XMP;
> + if (v1_get_sw_enabled_protocol(cur->name))
> + rc_dev->current |= XMP;
> }
> }
>
> @@ -1159,6 +1180,9 @@ static int set_proto(struct rc_device *rc_dev)
> if (rc_dev->supported & SONY)
> rc += v1_set_sw_enabled_protocol(rc_dev, "/sony_decoder",
> rc_dev->current & SONY);
> + if (rc_dev->supported & XMP)
> + rc += v1_set_sw_enabled_protocol(rc_dev, "/xmp_decoder",
> + rc_dev->current & XMP);
> } else {
> rc = v1_set_hw_protocols(rc_dev);
> }
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH] [v4l-utils] keytable: add support for XMP IR protocol
@ 2014-07-26 20:47 Marcel J.E. Mol
0 siblings, 0 replies; 3+ messages in thread
From: Marcel J.E. Mol @ 2014-07-26 20:47 UTC (permalink / raw)
To: linux-media
Signed-off-by: Marcel Mol <marcel@mesa.nl>
---
utils/keytable/keytable.c | 27 ++++++++++++++++++++++++++-
1 file changed, 26 insertions(+), 1 deletion(-)
diff --git a/utils/keytable/keytable.c b/utils/keytable/keytable.c
index 1a91fba..57e88a0 100644
--- a/utils/keytable/keytable.c
+++ b/utils/keytable/keytable.c
@@ -88,6 +88,7 @@ enum ir_protocols {
RC_5_SZ = 1 << 7,
SHARP = 1 << 8,
MCE_KBD = 1 << 9,
+ XMP = 1 << 10,
OTHER = 1 << 31,
};
@@ -112,7 +113,8 @@ static const char doc[] = "\nAllows get/set IR keycode/scancode tables\n"
" SYSDEV - the ir class as found at /sys/class/rc\n"
" TABLE - a file with a set of scancode=keycode value pairs\n"
" SCANKEY - a set of scancode1=keycode1,scancode2=keycode2.. value pairs\n"
- " PROTOCOL - protocol name (nec, rc-5, rc-6, jvc, sony, sanyo, rc-5-sz, lirc, sharp, mce_kbd, other, all) to be enabled\n"
+ " PROTOCOL - protocol name (nec, rc-5, rc-6, jvc, sony, sanyo, rc-5-sz, lirc,\n"
+ " sharp, mce_kbd, xmp, other, all) to be enabled\n"
" DELAY - Delay before repeating a keystroke\n"
" PERIOD - Period to repeat a keystroke\n"
" CFGFILE - configuration file that associates a driver/table name with a keymap file\n"
@@ -240,6 +242,8 @@ static error_t parse_keyfile(char *fname, char **table)
ch_proto |= SHARP;
else if (!strcasecmp(p,"mce-kbd"))
ch_proto |= MCE_KBD;
+ else if (!strcasecmp(p,"xmp"))
+ ch_proto |= XMP;
else if (!strcasecmp(p,"other") || !strcasecmp(p,"unknown"))
ch_proto |= OTHER;
else {
@@ -481,6 +485,8 @@ static error_t parse_opt(int k, char *arg, struct argp_state *state)
ch_proto |= RC_5_SZ;
else if (!strcasecmp(p,"mce-kbd"))
ch_proto |= RC_5_SZ;
+ else if (!strcasecmp(p,"xmp"))
+ ch_proto |= XMP;
else if (!strcasecmp(p,"all"))
ch_proto |= ~0;
else
@@ -760,6 +766,8 @@ static enum ir_protocols v1_get_hw_protocols(char *name)
proto |= SHARP;
else if (!strcmp(p, "mce-kbd"))
proto |= MCE_KBD;
+ else if (!strcmp(p, "xmp"))
+ proto |= XMP;
else
proto |= OTHER;
@@ -812,6 +820,9 @@ static int v1_set_hw_protocols(struct rc_device *rc_dev)
if (rc_dev->current & MCE_KBD)
fprintf(fp, "mce_kbd ");
+ if (rc_dev->current & XMP)
+ fprintf(fp, "xmp ");
+
if (rc_dev->current & OTHER)
fprintf(fp, "unknown ");
@@ -947,6 +958,8 @@ static enum ir_protocols v2_get_protocols(struct rc_device *rc_dev, char *name)
proto = SHARP;
else if (!strcmp(p, "mce-kbd"))
proto = MCE_KBD;
+ else if (!strcmp(p, "xmp"))
+ proto = XMP;
else
proto = OTHER;
@@ -1009,6 +1022,9 @@ static int v2_set_protocols(struct rc_device *rc_dev)
if (rc_dev->current & MCE_KBD)
fprintf(fp, "+mce-kbd\n");
+ if (rc_dev->current & XMP)
+ fprintf(fp, "+xmp\n");
+
if (rc_dev->current & OTHER)
fprintf(fp, "+unknown\n");
@@ -1042,6 +1058,8 @@ static void show_proto( enum ir_protocols proto)
fprintf (stderr, "SHARP ");
if (proto & MCE_KBD)
fprintf (stderr, "MCE_KBD ");
+ if (proto & XMP)
+ fprintf (stderr, "XMP ");
if (proto & OTHER)
fprintf (stderr, "other ");
}
@@ -1164,6 +1182,10 @@ static int get_attribs(struct rc_device *rc_dev, char *sysfs_name)
rc_dev->supported |= SONY;
if (v1_get_sw_enabled_protocol(cur->name))
rc_dev->current |= SONY;
+ } else if (strstr(cur->name, "/xmp_decoder")) {
+ rc_dev->supported |= XMP;
+ if (v1_get_sw_enabled_protocol(cur->name))
+ rc_dev->current |= XMP;
}
}
@@ -1201,6 +1223,9 @@ static int set_proto(struct rc_device *rc_dev)
if (rc_dev->supported & SONY)
rc += v1_set_sw_enabled_protocol(rc_dev, "/sony_decoder",
rc_dev->current & SONY);
+ if (rc_dev->supported & XMP)
+ rc += v1_set_sw_enabled_protocol(rc_dev, "/xmp_decoder",
+ rc_dev->current & XMP);
} else {
rc = v1_set_hw_protocols(rc_dev);
}
--
1.9.3
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2014-07-26 20:47 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-07-26 20:47 [PATCH] [v4l-utils] keytable: add support for XMP IR protocol Marcel J.E. Mol
-- strict thread matches above, loose matches on Subject: below --
2014-06-16 21:17 Marcel J.E. Mol
2014-07-26 15:24 ` Mauro Carvalho Chehab
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).