Loading...
Searching...
No Matches
infrared_protocol_sirc.h
1#pragma once
2
3#include "../infrared_i.h"
4
5/***************************************************************************************************
6* Sony SIRC protocol description
7* https://www.sbprojects.net/knowledge/ir/sirc.php
8* http://picprojects.org.uk/
9****************************************************************************************************
10* Preamble Preamble Pulse Width Modulation Pause Entirely repeat
11* mark space up to period message..
12*
13* 2400 600 12/15/20 bits (600,1200) ...45000 2400 600
14* __________ _ _ _ _ _ _ _ _ _ _ _ _ _ __________ _ _
15* ____ __________ _ _ _ __ __ __ _ _ __ __ _ _ ____________________ __________ _
16* | command | address |
17* SIRC | 7b LSB | 5b LSB |
18* SIRC15 | 7b LSB | 8b LSB |
19* SIRC20 | 7b LSB | 13b LSB |
20*
21* No way to determine either next message is repeat or not,
22* so recognize only fact message received. Sony remotes always send at least 3 messages.
23* Assume 8 last extended bits for SIRC20 are address bits.
24***************************************************************************************************/
25
26void* infrared_decoder_sirc_alloc(void);
27void infrared_decoder_sirc_reset(void* decoder);
28InfraredMessage* infrared_decoder_sirc_check_ready(void* decoder);
29void infrared_decoder_sirc_free(void* decoder);
30InfraredMessage* infrared_decoder_sirc_decode(void* decoder, bool level, uint32_t duration);
31
32void* infrared_encoder_sirc_alloc(void);
33void infrared_encoder_sirc_reset(void* encoder_ptr, const InfraredMessage* message);
34void infrared_encoder_sirc_free(void* decoder);
35InfraredStatus infrared_encoder_sirc_encode(void* encoder_ptr, uint32_t* duration, bool* polarity);
36
37const InfraredProtocolVariant* infrared_protocol_sirc_get_variant(InfraredProtocol protocol);
Definition infrared.h:42
Definition infrared_i.h:19