aboutsummaryrefslogtreecommitdiff
path: root/include/media
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@redhat.com>2009-11-27 22:01:23 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-12-05 18:42:19 -0200
commitef53a1159dfcdc1fecf5adb5b8d26803f194c09b (patch)
tree34e477e3db2a69c6cfa6607933f552c2c89d952b /include/media
parent4e89217b943cfb26f88f04920d44f2077931f0e7 (diff)
V4L/DVB (13532): ir-common: Add infrastructure to use a dynamic keycode table
V4L drivers use an static keycode vector with 128 entries, where the scancode indexes the keycode. While this works, it limits the scancodes to have only 7 bits, not allowing for example full RC5 codes. Instead of implementing the same code on every V4L driver, provide a common infrastructure to handle the bigger tables, minimizing the changes inside each driver. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'include/media')
-rw-r--r--include/media/ir-common.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/include/media/ir-common.h b/include/media/ir-common.h
index 5964145d65e6..805f1e09770f 100644
--- a/include/media/ir-common.h
+++ b/include/media/ir-common.h
@@ -106,6 +106,8 @@ struct card_ir {
struct tasklet_struct tlet;
};
+/* Routines from ir-functions.c */
+
void ir_input_init(struct input_dev *dev, struct ir_input_state *ir,
int ir_type, struct ir_scancode_table *ir_codes);
void ir_input_nokey(struct input_dev *dev, struct ir_input_state *ir);
@@ -120,7 +122,15 @@ u32 ir_rc5_decode(unsigned int code);
void ir_rc5_timer_end(unsigned long data);
void ir_rc5_timer_keyup(unsigned long data);
-/* Keymaps to be used by other modules */
+/* Routines from ir-keytable.c */
+
+u32 ir_g_keycode_from_table(struct input_dev *input_dev,
+ u32 scancode);
+
+int ir_set_keycode_table(struct input_dev *input_dev,
+ struct ir_scancode_table *rc_tab);
+
+/* scancode->keycode map tables from ir-keymaps.c */
extern struct ir_scancode_table ir_codes_empty_table;
extern struct ir_scancode_table ir_codes_avermedia_table;