Welcome to mirror list, hosted at ThFree Co, Russian Federation.

subghz_protocol_raw.h « protocols « subghz « lib - github.com/ClusterM/flipperzero-firmware.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: ca7fc99ce61e12ac6eeb416e4f3b7e1253a060c5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#pragma once

#include "subghz_protocol_common.h"

typedef void (*SubGhzProtocolRAWCallbackEnd)(void* context);

typedef struct SubGhzProtocolRAW SubGhzProtocolRAW;

/** Allocate SubGhzProtocolRAW
 * 
 * @return SubGhzProtocolRAW* 
 */
SubGhzProtocolRAW* subghz_protocol_raw_alloc();

/** Free SubGhzProtocolRAW
 * 
 * @param instance 
 */
void subghz_protocol_raw_free(SubGhzProtocolRAW* instance);

void subghz_protocol_raw_file_encoder_worker_set_callback_end(
    SubGhzProtocolRAW* instance,
    SubGhzProtocolRAWCallbackEnd callback_end,
    void* context_end);

/** Reset internal state
 * @param instance - SubGhzProtocolRAW instance
 */
void subghz_protocol_raw_reset(SubGhzProtocolRAW* instance);

/** Get upload protocol
 * 
 * @param instance - SubGhzProtocolRAW instance
 * @param encoder - SubGhzProtocolCommonEncoder encoder
 * @return bool
 */
bool subghz_protocol_raw_send_key(
    SubGhzProtocolRAW* instance,
    SubGhzProtocolCommonEncoder* encoder);

/** Parse accepted duration
 * 
 * @param instance - SubGhzProtocolRAW instance
 * @param data - LevelDuration level_duration
 */
void subghz_protocol_raw_parse(SubGhzProtocolRAW* instance, bool level, uint32_t duration);

/** Outputting information from the parser
 *
 * @param instance - SubGhzProtocolRAW* instance
 * @param output   - output string
 */
void subghz_protocol_raw_to_str(SubGhzProtocolRAW* instance, string_t output);

const char* subghz_protocol_raw_get_last_file_name(SubGhzProtocolRAW* instance);

void subghz_protocol_raw_set_last_file_name(SubGhzProtocolRAW* instance, const char* name);

bool subghz_protocol_raw_save_to_file_init(
    SubGhzProtocolRAW* instance,
    const char* dev_name,
    uint32_t frequency,
    const char* preset);
void subghz_protocol_raw_save_to_file_stop(SubGhzProtocolRAW* instance);
bool subghz_protocol_raw_save_to_file_write(SubGhzProtocolRAW* instance);
size_t subghz_protocol_raw_get_sample_write(SubGhzProtocolRAW* instance);

bool subghz_protocol_raw_to_load_protocol_from_file(
    FlipperFormat* flipper_format,
    SubGhzProtocolRAW* instance,
    const char* file_path);