unleashed-firmware/lib/subghz/subghz_file_encoder_worker.h
Skorpionm 8c93695d01
[FL-3375] SubGhz: add CC1101 module external (#2747)
* SubGhz: add CC1101 Ext driver
* SubGhz:  move TIM2 -> TIM17 use cc1101_ext
* FuriHal: SPI move channel DMA 3,4 -> 6.7
* Documentation: fix font
* SubGhz: add work with SubGhz devices by link to device
* SubGhz: add support switching external/internal cc1101 "subghz chat"
* SubGhz: add support switching external/internal cc1101 "subghz tx" and "subghz rx"
* SubGhz: add "Radio Settings" scene
* SubGhz: add icon
* SubGhz: add supported CC1101 external module in SubGhz app
* SubGhz: fix check frequency supported radio device
* SubGhz: fix clang-formatted
* Sughz: move dirver CC1101_Ext to lib , compile cmd ./fbt launch_app APPSRC=radio_device_cc1101_ext
* SubGhz: fix CLI
* SubGhz: fix PVS
* SubGhz: delete comments
* SubGhz: fix unit_test
* Format sources
* Update api symbols and drivers targets
* Drivers: find proper place for target option
* SubGhz: external device connected method naming
* Format sources
* SubGhz:  fix module selection menu, when external is not connected
* SubGhz: fix furi_assert(device);
* SubGhz: fix split h and c
* SubGhz: furi_hal_subghz remove preset load function by name
* SubGhz: deleted comments
* Format Sources
* SubGhz: add some consts and fix unit tests
* Sync API Symbols

Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2023-06-30 23:03:36 +09:00

65 lines
1.9 KiB
C

#pragma once
#include <furi_hal.h>
typedef void (*SubGhzFileEncoderWorkerCallbackEnd)(void* context);
typedef struct SubGhzFileEncoderWorker SubGhzFileEncoderWorker;
/**
* End callback SubGhzWorker.
* @param instance SubGhzFileEncoderWorker instance
* @param callback SubGhzFileEncoderWorkerCallbackEnd callback
*/
void subghz_file_encoder_worker_callback_end(
SubGhzFileEncoderWorker* instance,
SubGhzFileEncoderWorkerCallbackEnd callback_end,
void* context_end);
/**
* Allocate SubGhzFileEncoderWorker.
* @return SubGhzFileEncoderWorker* pointer to a SubGhzFileEncoderWorker instance
*/
SubGhzFileEncoderWorker* subghz_file_encoder_worker_alloc();
/**
* Free SubGhzFileEncoderWorker.
* @param instance Pointer to a SubGhzFileEncoderWorker instance
*/
void subghz_file_encoder_worker_free(SubGhzFileEncoderWorker* instance);
/**
* Get a description of the progress.
* @param instance Pointer to a SubGhzFileEncoderWorker instance
* @param output
*/
void subghz_file_encoder_worker_get_text_progress(
SubGhzFileEncoderWorker* instance,
FuriString* output);
/**
* Getting the level and duration of the upload to be loaded into DMA.
* @param context Pointer to a SubGhzFileEncoderWorker instance
* @return LevelDuration
*/
LevelDuration subghz_file_encoder_worker_get_level_duration(void* context);
/**
* Start SubGhzFileEncoderWorker.
* @param instance Pointer to a SubGhzFileEncoderWorker instance
* @return bool - true if ok
*/
bool subghz_file_encoder_worker_start(SubGhzFileEncoderWorker* instance, const char* file_path);
/**
* Stop SubGhzFileEncoderWorker
* @param instance Pointer to a SubGhzFileEncoderWorker instance
*/
void subghz_file_encoder_worker_stop(SubGhzFileEncoderWorker* instance);
/**
* Check if worker is running
* @param instance Pointer to a SubGhzFileEncoderWorker instance
* @return bool - true if running
*/
bool subghz_file_encoder_worker_is_running(SubGhzFileEncoderWorker* instance);