This commit is contained in:
Willy-JL
2024-03-21 01:22:13 +00:00
107 changed files with 1396 additions and 1008 deletions
+25 -34
View File
@@ -33,15 +33,13 @@ typedef enum {
FlipperApplicationLoadStatusMissingImports,
} FlipperApplicationLoadStatus;
/**
* @brief Get text description of preload status
/** Get text description of preload status
* @param status Status code
* @return String pointer to description
*/
const char* flipper_application_preload_status_to_string(FlipperApplicationPreloadStatus status);
/**
* @brief Get text description of load status
/** Get text description of load status
* @param status Status code
* @return String pointer to description
*/
@@ -61,8 +59,7 @@ typedef struct {
uint8_t* debug_link;
} FlipperApplicationState;
/**
* @brief Initialize FlipperApplication object
/** Initialize FlipperApplication object
* @param storage Storage instance
* @param api_interface ELF API interface to use for pre-loading and symbol resolving
* @return Application instance
@@ -70,44 +67,44 @@ typedef struct {
FlipperApplication*
flipper_application_alloc(Storage* storage, const ElfApiInterface* api_interface);
/**
* @brief Destroy FlipperApplication object
/** Destroy FlipperApplication object
* @param app Application pointer
*/
void flipper_application_free(FlipperApplication* app);
/**
* @brief Validate elf file and load application metadata
* @param app Application pointer
* @return Preload result code
/** Validate elf file and load application metadata
*
* @param app Application pointer
* @param[in] path The path to fap file
*
* @return Preload result code
*/
FlipperApplicationPreloadStatus
flipper_application_preload(FlipperApplication* app, const char* path);
/**
* @brief Validate elf file and load application manifest
* @param app Application pointer
* @return Preload result code
/** Validate elf file and load application manifest
*
* @param app Application pointer
* @param[in] path The path to fap file
*
* @return Preload result code
*/
FlipperApplicationPreloadStatus
flipper_application_preload_manifest(FlipperApplication* app, const char* path);
/**
* @brief Get pointer to application manifest for preloaded application
/** Get pointer to application manifest for preloaded application
* @param app Application pointer
* @return Pointer to application manifest
*/
const FlipperApplicationManifest* flipper_application_get_manifest(FlipperApplication* app);
/**
* @brief Load sections and process relocations for already pre-loaded application
/** Load sections and process relocations for already pre-loaded application
* @param app Application pointer
* @return Load result code
*/
FlipperApplicationLoadStatus flipper_application_map_to_memory(FlipperApplication* app);
/**
* @brief Allocate application thread at entry point address, using app name and
/** Allocate application thread at entry point address, using app name and
* stack size from metadata. Returned thread isn't started yet.
* Can be only called once for application instance.
* @param app Applicaiton pointer
@@ -116,20 +113,17 @@ FlipperApplicationLoadStatus flipper_application_map_to_memory(FlipperApplicatio
*/
FuriThread* flipper_application_alloc_thread(FlipperApplication* app, const char* args);
/**
* @brief Check if application is a plugin (not a runnable standalone app)
/** Check if application is a plugin (not a runnable standalone app)
* @param app Application pointer
* @return true if application is a plugin, false otherwise
*/
bool flipper_application_is_plugin(FlipperApplication* app);
/**
* @brief Entry point prototype for standalone applications
/** Entry point prototype for standalone applications
*/
typedef int32_t (*FlipperApplicationEntryPoint)(void*);
/**
* @brief An object that describes a plugin - must be returned by plugin's entry point
/** An object that describes a plugin - must be returned by plugin's entry point
*/
typedef struct {
const char* appid;
@@ -137,21 +131,18 @@ typedef struct {
const void* entry_point;
} FlipperAppPluginDescriptor;
/**
* @brief Entry point prototype for plugins
/** Entry point prototype for plugins
*/
typedef const FlipperAppPluginDescriptor* (*FlipperApplicationPluginEntryPoint)(void);
/**
* @brief Get plugin descriptor for preloaded plugin
/** Get plugin descriptor for preloaded plugin
* @param app Application pointer
* @return Pointer to plugin descriptor
*/
const FlipperAppPluginDescriptor*
flipper_application_plugin_get_descriptor(FlipperApplication* app);
/**
* @brief Load name and icon from FAP file.
/** Load name and icon from FAP file.
*
* @param path Path to FAP file.
* @param storage Storage instance.
File diff suppressed because it is too large Load Diff
+43 -47
View File
@@ -1,5 +1,4 @@
/**
* @file lfrfid_worker.h
/** @file lfrfid_worker.h
*
* LFRFID worker
*/
@@ -54,37 +53,35 @@ typedef void (*LFRFIDWorkerEmulateRawCallback)(LFRFIDWorkerEmulateRawResult resu
typedef struct LFRFIDWorker LFRFIDWorker;
/**
* Allocate LF-RFID worker
/** Allocate LF-RFID worker
* @return LFRFIDWorker*
*/
LFRFIDWorker* lfrfid_worker_alloc(ProtocolDict* dict);
/**
* Free LF-RFID worker
* @param worker
/** Free LF-RFID worker
*
* @param worker The worker
*/
void lfrfid_worker_free(LFRFIDWorker* worker);
/**
* Start LF-RFID worker thread
* @param worker
/** Start LF-RFID worker thread
*
* @param worker The worker
*/
void lfrfid_worker_start_thread(LFRFIDWorker* worker);
/**
* Stop LF-RFID worker thread
* @param worker
/** Stop LF-RFID worker thread
*
* @param worker The worker
*/
void lfrfid_worker_stop_thread(LFRFIDWorker* worker);
/**
* @brief Start read mode
*
* @param worker
* @param type
* @param callback
* @param context
/** Start read mode
*
* @param worker The worker
* @param type The type
* @param callback The callback
* @param context The context
*/
void lfrfid_worker_read_start(
LFRFIDWorker* worker,
@@ -92,13 +89,12 @@ void lfrfid_worker_read_start(
LFRFIDWorkerReadCallback callback,
void* context);
/**
* @brief Start write mode
*
* @param worker
* @param protocol
* @param callback
* @param context
/** Start write mode
*
* @param worker The worker
* @param protocol The protocol
* @param callback The callback
* @param context The context
*/
void lfrfid_worker_write_start(
LFRFIDWorker* worker,
@@ -120,20 +116,20 @@ void lfrfid_worker_write_and_set_pass_start(
LFRFIDWorkerWriteCallback callback,
void* context);
/**
* Start emulate mode
* @param worker
/** Start emulate mode
*
* @param worker The worker
* @param[in] protocol The protocol
*/
void lfrfid_worker_emulate_start(LFRFIDWorker* worker, LFRFIDProtocol protocol);
/**
* @brief Start raw read mode
*
* @param worker
* @param filename
* @param type
* @param callback
* @param context
/** Start raw read mode
*
* @param worker The worker
* @param filename The filename
* @param type The type
* @param callback The callback
* @param context The context
*/
void lfrfid_worker_read_raw_start(
LFRFIDWorker* worker,
@@ -142,12 +138,12 @@ void lfrfid_worker_read_raw_start(
LFRFIDWorkerReadRawCallback callback,
void* context);
/**
* Emulate raw read mode
* @param worker
* @param filename
* @param callback
* @param context
/** Emulate raw read mode
*
* @param worker The worker
* @param filename The filename
* @param callback The callback
* @param context The context
*/
void lfrfid_worker_emulate_raw_start(
LFRFIDWorker* worker,
@@ -155,9 +151,9 @@ void lfrfid_worker_emulate_raw_start(
LFRFIDWorkerEmulateRawCallback callback,
void* context);
/**
* Stop all modes
* @param worker
/** Stop all modes
*
* @param worker The worker
*/
void lfrfid_worker_stop(LFRFIDWorker* worker);
+4
View File
@@ -158,6 +158,8 @@ static inline bool onewire_slave_receive_and_process_command(OneWireSlave* bus)
static inline bool onewire_slave_bus_start(OneWireSlave* bus) {
FURI_CRITICAL_ENTER();
furi_hal_gpio_disable_int_callback(bus->gpio_pin);
furi_hal_gpio_init(bus->gpio_pin, GpioModeOutputOpenDrain, GpioPullNo, GpioSpeedLow);
while(onewire_slave_receive_and_process_command(bus))
@@ -166,6 +168,8 @@ static inline bool onewire_slave_bus_start(OneWireSlave* bus) {
const bool result = (bus->error == OneWireSlaveErrorNone);
furi_hal_gpio_init(bus->gpio_pin, GpioModeInterruptRiseFall, GpioPullNo, GpioSpeedLow);
furi_hal_gpio_enable_int_callback(bus->gpio_pin);
FURI_CRITICAL_EXIT();
return result;
+18 -15
View File
@@ -43,27 +43,29 @@ typedef struct Compress Compress;
/** Allocate encoder and decoder
*
* @param compress_buff_size size of decoder and encoder buffer to allocate
* @param compress_buff_size size of decoder and encoder buffer to
* allocate
*
* @return Compress instance
* @return Compress instance
*/
Compress* compress_alloc(uint16_t compress_buff_size);
/** Free encoder and decoder
*
* @param compress Compress instance
* @param compress Compress instance
*/
void compress_free(Compress* compress);
/** Encode data
*
* @param compress Compress instance
* @param data_in pointer to input data
* @param data_in_size size of input data
* @param data_out maximum size of output data
* @param data_res_size pointer to result output data size
* @param compress Compress instance
* @param data_in pointer to input data
* @param data_in_size size of input data
* @param data_out maximum size of output data
* @param[in] data_out_size The data out size
* @param data_res_size pointer to result output data size
*
* @return true on success
* @return true on success
*/
bool compress_encode(
Compress* compress,
@@ -75,13 +77,14 @@ bool compress_encode(
/** Decode data
*
* @param compress Compress instance
* @param data_in pointer to input data
* @param data_in_size size of input data
* @param data_out maximum size of output data
* @param data_res_size pointer to result output data size
* @param compress Compress instance
* @param data_in pointer to input data
* @param data_in_size size of input data
* @param data_out maximum size of output data
* @param[in] data_out_size The data out size
* @param data_res_size pointer to result output data size
*
* @return true on success
* @return true on success
*/
bool compress_decode(
Compress* compress,