Files
ProtoPirate/protocols/subaru.h
T
RocketGod 36a8518983 Add encoder support for Subaru protocol
Implements encoder functions for the Subaru protocol, enabling signal generation and transmission. Updates protocol flags to support loading, saving, and sending. Refactors decoder/encoder data structures for consistency, adds dynamic memory management for file entry buffers, and improves serialization/deserialization logic for protocol data.
2026-01-16 14:13:56 -08:00

37 lines
1.5 KiB
C

#pragma once
#include <furi.h>
#include <lib/subghz/protocols/base.h>
#include <lib/subghz/types.h>
#include <lib/subghz/blocks/const.h>
#include <lib/subghz/blocks/decoder.h>
#include <lib/subghz/blocks/encoder.h>
#include <lib/subghz/blocks/generic.h>
#include <lib/subghz/blocks/math.h>
#include <flipper_format/flipper_format.h>
#define SUBARU_PROTOCOL_NAME "Subaru"
extern const SubGhzProtocol subaru_protocol;
// Decoder functions
void* subghz_protocol_decoder_subaru_alloc(SubGhzEnvironment* environment);
void subghz_protocol_decoder_subaru_free(void* context);
void subghz_protocol_decoder_subaru_reset(void* context);
void subghz_protocol_decoder_subaru_feed(void* context, bool level, uint32_t duration);
uint8_t subghz_protocol_decoder_subaru_get_hash_data(void* context);
SubGhzProtocolStatus subghz_protocol_decoder_subaru_serialize(
void* context,
FlipperFormat* flipper_format,
SubGhzRadioPreset* preset);
SubGhzProtocolStatus
subghz_protocol_decoder_subaru_deserialize(void* context, FlipperFormat* flipper_format);
void subghz_protocol_decoder_subaru_get_string(void* context, FuriString* output);
// Encoder functions
void* subghz_protocol_encoder_subaru_alloc(SubGhzEnvironment* environment);
void subghz_protocol_encoder_subaru_free(void* context);
SubGhzProtocolStatus
subghz_protocol_encoder_subaru_deserialize(void* context, FlipperFormat* flipper_format);
void subghz_protocol_encoder_subaru_stop(void* context);
LevelDuration subghz_protocol_encoder_subaru_yield(void* context);