From e40b1127f994a427568319d1be9b9e5ab1f58dd1 Mon Sep 17 00:00:00 2001 From: David Härdeman Date: Thu, 15 Apr 2010 18:46:00 -0300 Subject: V4L/DVB: ir-core: change duration to be coded as a u32 integer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Signed-off-by: Mauro Carvalho Chehab --- include/media/ir-core.h | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/media/ir-core.h b/include/media/ir-core.h index 51e8eb3a3f2..ad1303f20e0 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 */ -- cgit v1.2.3-70-g09d2