diff options
author | Josh Rahm <joshuarahm@gmail.com> | 2020-12-09 23:15:14 -0700 |
---|---|---|
committer | Josh Rahm <joshuarahm@gmail.com> | 2020-12-09 23:15:14 -0700 |
commit | 5f1763ec87503527583cb1a7c6deb73604db0dfc (patch) | |
tree | 0892ddf94b614db2d879f7bc993961af5ac25bb2 /include/drv/ir/ir.h | |
parent | a5923b21e48fcfe660c1e7d586fe0c6a5b79e421 (diff) | |
download | stm32l4-test_ir.tar.gz stm32l4-test_ir.tar.bz2 stm32l4-test_ir.zip |
Can read from the A/C remote control!test_ir
Diffstat (limited to 'include/drv/ir/ir.h')
-rw-r--r-- | include/drv/ir/ir.h | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/include/drv/ir/ir.h b/include/drv/ir/ir.h new file mode 100644 index 0000000..0a747e8 --- /dev/null +++ b/include/drv/ir/ir.h @@ -0,0 +1,34 @@ +#ifndef _DRV_IR_IR_H_ +#define _DRV_IR_IR_H_ + +#include "kern/common.h" + +typedef struct { + uint16_t ts[64]; /* Timestamps. Microseconds. */ + uint8_t n; +} ir_code_t; + +typedef struct { + uint32_t c; +} decoded_ir; + +/* + * Attempt to decode the provided ir code. + * + * The generic ir is: + * + * The frame starts out as really-long, half(ish) as long, short. If + * this basic frame header does not exist decoding cannot continue. + * + * A short code followed by a short code = 0 + * A long code followed by a short code = 1 + * + * returns non-zero on successful decode. + */ +int ir_generic_decode(const ir_code_t* code, uint32_t* out); + +void add_ir_callback(void(*callback)(const ir_code_t*)); + +void ir_begin_listen(); + +#endif /* _DRV_IR_IR_H_ */ |