diff options
author | David Härdeman | 2010-04-15 23:46:00 +0200 |
---|---|---|
committer | Mauro Carvalho Chehab | 2010-05-19 17:57:42 +0200 |
commit | e40b1127f994a427568319d1be9b9e5ab1f58dd1 (patch) | |
tree | 5d4f892dbe90588f8932cd4e1768b953814f3f47 /include/media | |
parent | V4L/DVB: ir-core: add imon driver (diff) | |
download | kernel-qcow2-linux-e40b1127f994a427568319d1be9b9e5ab1f58dd1.tar.gz kernel-qcow2-linux-e40b1127f994a427568319d1be9b9e5ab1f58dd1.tar.xz kernel-qcow2-linux-e40b1127f994a427568319d1be9b9e5ab1f58dd1.zip |
V4L/DVB: ir-core: change duration to be coded as a u32 integer
This patch implements the agreed upon 1:31 integer encoded pulse/duration
struct for ir-core raw decoders. All decoders have been tested after the
change. Comments are welcome.
Signed-off-by: David Härdeman <david@hardeman.nu>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'include/media')
-rw-r--r-- | include/media/ir-core.h | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/include/media/ir-core.h b/include/media/ir-core.h index 51e8eb3a3f2d..ad1303f20e00 100644 --- a/include/media/ir-core.h +++ b/include/media/ir-core.h @@ -128,9 +128,21 @@ u32 ir_g_keycode_from_table(struct input_dev *input_dev, u32 scancode); /* From ir-raw-event.c */ +struct ir_raw_event { + unsigned pulse:1; + unsigned duration:31; +}; + +#define IR_MAX_DURATION 0x7FFFFFFF /* a bit more than 2 seconds */ + void ir_raw_event_handle(struct input_dev *input_dev); -int ir_raw_event_store(struct input_dev *input_dev, s64 duration); +int ir_raw_event_store(struct input_dev *input_dev, struct ir_raw_event *ev); int ir_raw_event_store_edge(struct input_dev *input_dev, enum raw_event_type type); - +static inline void ir_raw_event_reset(struct input_dev *input_dev) +{ + struct ir_raw_event ev = { .pulse = false, .duration = 0 }; + ir_raw_event_store(input_dev, &ev); + ir_raw_event_handle(input_dev); +} #endif /* _IR_CORE */ |