mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-07-29 02:08:10 -07:00
Merge branch 'dev' of https://github.com/flipperdevices/flipperzero-firmware into mntm-dev
This commit is contained in:
@@ -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.
|
||||
|
||||
+436
-367
File diff suppressed because it is too large
Load Diff
+43
-47
@@ -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);
|
||||
|
||||
|
||||
@@ -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
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user