#pragma once #include <furi_hal.h> typedef struct SubGhzWorker SubGhzWorker; typedef void (*SubGhzWorkerOverrunCallback)(void* context); typedef void (*SubGhzWorkerPairCallback)(void* context, bool level, uint32_t duration); void subghz_worker_rx_callback(bool level, uint32_t duration, void* context); /** * Allocate SubGhzWorker. * @return SubGhzWorker* Pointer to a SubGhzWorker instance */ SubGhzWorker* subghz_worker_alloc(); /** * Free SubGhzWorker. * @param instance Pointer to a SubGhzWorker instance */ void subghz_worker_free(SubGhzWorker* instance); /** * Overrun callback SubGhzWorker. * @param instance Pointer to a SubGhzWorker instance * @param callback SubGhzWorkerOverrunCallback callback */ void subghz_worker_set_overrun_callback( SubGhzWorker* instance, SubGhzWorkerOverrunCallback callback); /** * Pair callback SubGhzWorker. * @param instance Pointer to a SubGhzWorker instance * @param callback SubGhzWorkerOverrunCallback callback */ void subghz_worker_set_pair_callback(SubGhzWorker* instance, SubGhzWorkerPairCallback callback); /** * Context callback SubGhzWorker. * @param instance Pointer to a SubGhzWorker instance * @param context */ void subghz_worker_set_context(SubGhzWorker* instance, void* context); /** * Start SubGhzWorker. * @param instance Pointer to a SubGhzWorker instance */ void subghz_worker_start(SubGhzWorker* instance); /** Stop SubGhzWorker * @param instance Pointer to a SubGhzWorker instance */ void subghz_worker_stop(SubGhzWorker* instance); /** * Check if worker is running. * @param instance Pointer to a SubGhzWorker instance * @return bool - true if running */ bool subghz_worker_is_running(SubGhzWorker* instance);