1
mirror of https://github.com/DarkFlippers/unleashed-firmware.git synced 2025-12-12 04:34:43 +04:00

Api Symbols: replace asserts with checks

merge ofw commit
This commit is contained in:
MX
2024-03-25 13:53:32 +03:00
parent 81a16e5a28
commit 585b7f963d
565 changed files with 3544 additions and 2691 deletions

View File

@@ -1,4 +1,5 @@
#include "ibutton_key_i.h"
#include <furi.h>
struct iButtonKey {
iButtonProtocolId protocol_id;
@@ -17,20 +18,28 @@ iButtonKey* ibutton_key_alloc(size_t data_size) {
}
void ibutton_key_free(iButtonKey* key) {
furi_check(key);
free(key->protocol_data);
free(key);
}
void ibutton_key_reset(iButtonKey* key) {
furi_check(key);
key->protocol_id = iButtonProtocolIdInvalid;
memset(key->protocol_data, 0, key->protocol_data_size);
}
iButtonProtocolId ibutton_key_get_protocol_id(const iButtonKey* key) {
furi_check(key);
return key->protocol_id;
}
void ibutton_key_set_protocol_id(iButtonKey* key, iButtonProtocolId protocol_id) {
furi_check(key);
key->protocol_id = protocol_id;
}

View File

@@ -51,7 +51,7 @@ static void ibutton_protocols_get_group_by_id(
furi_crash();
}
iButtonProtocols* ibutton_protocols_alloc() {
iButtonProtocols* ibutton_protocols_alloc(void) {
iButtonProtocols* protocols = malloc(sizeof(iButtonProtocols*));
protocols->group_datas = malloc(sizeof(iButtonProtocolGroupData*) * iButtonProtocolGroupMax);
@@ -64,6 +64,8 @@ iButtonProtocols* ibutton_protocols_alloc() {
}
void ibutton_protocols_free(iButtonProtocols* protocols) {
furi_check(protocols);
for(iButtonProtocolGroupId i = 0; i < iButtonProtocolGroupMax; ++i) {
ibutton_protocol_groups[i]->free(protocols->group_datas[i]);
}
@@ -72,7 +74,7 @@ void ibutton_protocols_free(iButtonProtocols* protocols) {
free(protocols);
}
uint32_t ibutton_protocols_get_protocol_count() {
uint32_t ibutton_protocols_get_protocol_count(void) {
uint32_t count = 0;
for(iButtonProtocolGroupId i = 0; i < iButtonProtocolGroupMax; ++i) {
@@ -83,6 +85,9 @@ uint32_t ibutton_protocols_get_protocol_count() {
}
iButtonProtocolId ibutton_protocols_get_id_by_name(iButtonProtocols* protocols, const char* name) {
furi_check(protocols);
furi_check(name);
iButtonProtocolLocalId offset = 0;
for(iButtonProtocolGroupId i = 0; i < iButtonProtocolGroupMax; ++i) {
@@ -96,11 +101,16 @@ iButtonProtocolId ibutton_protocols_get_id_by_name(iButtonProtocols* protocols,
}
uint32_t ibutton_protocols_get_features(iButtonProtocols* protocols, iButtonProtocolId id) {
furi_check(protocols);
GET_PROTOCOL_GROUP(id);
return GROUP_BASE->get_features(GROUP_DATA, PROTOCOL_ID);
}
size_t ibutton_protocols_get_max_data_size(iButtonProtocols* protocols) {
furi_check(protocols);
size_t max_size = 0;
for(iButtonProtocolGroupId i = 0; i < iButtonProtocolGroupMax; ++i) {
@@ -115,16 +125,25 @@ size_t ibutton_protocols_get_max_data_size(iButtonProtocols* protocols) {
}
const char* ibutton_protocols_get_manufacturer(iButtonProtocols* protocols, iButtonProtocolId id) {
furi_check(protocols);
GET_PROTOCOL_GROUP(id);
return GROUP_BASE->get_manufacturer(GROUP_DATA, PROTOCOL_ID);
}
const char* ibutton_protocols_get_name(iButtonProtocols* protocols, iButtonProtocolId id) {
furi_check(protocols);
GET_PROTOCOL_GROUP(id);
return GROUP_BASE->get_name(GROUP_DATA, PROTOCOL_ID);
}
bool ibutton_protocols_read(iButtonProtocols* protocols, iButtonKey* key) {
furi_check(protocols);
furi_check(key);
iButtonProtocolLocalId id = iButtonProtocolIdInvalid;
iButtonProtocolData* data = ibutton_key_get_protocol_data(key);
@@ -142,6 +161,9 @@ bool ibutton_protocols_read(iButtonProtocols* protocols, iButtonKey* key) {
}
bool ibutton_protocols_write_blank(iButtonProtocols* protocols, iButtonKey* key) {
furi_check(protocols);
furi_check(key);
const iButtonProtocolId id = ibutton_key_get_protocol_id(key);
iButtonProtocolData* data = ibutton_key_get_protocol_data(key);
@@ -150,6 +172,9 @@ bool ibutton_protocols_write_blank(iButtonProtocols* protocols, iButtonKey* key)
}
bool ibutton_protocols_write_copy(iButtonProtocols* protocols, iButtonKey* key) {
furi_check(protocols);
furi_check(key);
const iButtonProtocolId id = ibutton_key_get_protocol_id(key);
iButtonProtocolData* data = ibutton_key_get_protocol_data(key);
@@ -158,6 +183,9 @@ bool ibutton_protocols_write_copy(iButtonProtocols* protocols, iButtonKey* key)
}
void ibutton_protocols_emulate_start(iButtonProtocols* protocols, iButtonKey* key) {
furi_check(protocols);
furi_check(key);
const iButtonProtocolId id = ibutton_key_get_protocol_id(key);
iButtonProtocolData* data = ibutton_key_get_protocol_data(key);
@@ -166,6 +194,9 @@ void ibutton_protocols_emulate_start(iButtonProtocols* protocols, iButtonKey* ke
}
void ibutton_protocols_emulate_stop(iButtonProtocols* protocols, iButtonKey* key) {
furi_check(protocols);
furi_check(key);
const iButtonProtocolId id = ibutton_key_get_protocol_id(key);
iButtonProtocolData* data = ibutton_key_get_protocol_data(key);
@@ -177,6 +208,10 @@ bool ibutton_protocols_save(
iButtonProtocols* protocols,
const iButtonKey* key,
const char* file_name) {
furi_check(protocols);
furi_check(key);
furi_check(file_name);
const iButtonProtocolId id = ibutton_key_get_protocol_id(key);
const iButtonProtocolData* data = ibutton_key_get_protocol_data(key);
@@ -207,6 +242,10 @@ bool ibutton_protocols_save(
}
bool ibutton_protocols_load(iButtonProtocols* protocols, iButtonKey* key, const char* file_name) {
furi_check(protocols);
furi_check(key);
furi_check(file_name);
iButtonProtocolData* data = ibutton_key_get_protocol_data(key);
bool success = false;
@@ -252,6 +291,10 @@ void ibutton_protocols_render_data(
iButtonProtocols* protocols,
const iButtonKey* key,
FuriString* result) {
furi_check(protocols);
furi_check(key);
furi_check(result);
const iButtonProtocolId id = ibutton_key_get_protocol_id(key);
const iButtonProtocolData* data = ibutton_key_get_protocol_data(key);
@@ -263,6 +306,10 @@ void ibutton_protocols_render_brief_data(
iButtonProtocols* protocols,
const iButtonKey* key,
FuriString* result) {
furi_check(protocols);
furi_check(key);
furi_check(result);
const iButtonProtocolId id = ibutton_key_get_protocol_id(key);
const iButtonProtocolData* data = ibutton_key_get_protocol_data(key);
@@ -274,6 +321,10 @@ void ibutton_protocols_render_error(
iButtonProtocols* protocols,
const iButtonKey* key,
FuriString* result) {
furi_check(protocols);
furi_check(key);
furi_check(result);
const iButtonProtocolId id = ibutton_key_get_protocol_id(key);
const iButtonProtocolData* data = ibutton_key_get_protocol_data(key);
@@ -282,6 +333,9 @@ void ibutton_protocols_render_error(
}
bool ibutton_protocols_is_valid(iButtonProtocols* protocols, const iButtonKey* key) {
furi_check(protocols);
furi_check(key);
const iButtonProtocolId id = ibutton_key_get_protocol_id(key);
const iButtonProtocolData* data = ibutton_key_get_protocol_data(key);
@@ -293,6 +347,10 @@ void ibutton_protocols_get_editable_data(
iButtonProtocols* protocols,
const iButtonKey* key,
iButtonEditableData* editable) {
furi_check(protocols);
furi_check(key);
furi_check(editable);
const iButtonProtocolId id = ibutton_key_get_protocol_id(key);
iButtonProtocolData* data = ibutton_key_get_protocol_data(key);
@@ -301,6 +359,9 @@ void ibutton_protocols_get_editable_data(
}
void ibutton_protocols_apply_edits(iButtonProtocols* protocols, const iButtonKey* key) {
furi_check(protocols);
furi_check(key);
const iButtonProtocolId id = ibutton_key_get_protocol_id(key);
iButtonProtocolData* data = ibutton_key_get_protocol_data(key);

View File

@@ -23,7 +23,7 @@ typedef struct iButtonProtocols iButtonProtocols;
* Allocate an iButtonProtocols object
* @return pointer to an iButtonProtocols object
*/
iButtonProtocols* ibutton_protocols_alloc();
iButtonProtocols* ibutton_protocols_alloc(void);
/**
* Destroy an iButtonProtocols object, free resources
@@ -34,7 +34,7 @@ void ibutton_protocols_free(iButtonProtocols* protocols);
/**
* Get the total number of available protocols
*/
uint32_t ibutton_protocols_get_protocol_count();
uint32_t ibutton_protocols_get_protocol_count(void);
/**
* Get maximum data size out of all protocols available

View File

@@ -23,6 +23,8 @@ typedef struct {
static int32_t ibutton_worker_thread(void* thread_context);
iButtonWorker* ibutton_worker_alloc(iButtonProtocols* protocols) {
furi_check(protocols);
iButtonWorker* worker = malloc(sizeof(iButtonWorker));
worker->protocols = protocols;
@@ -38,7 +40,9 @@ void ibutton_worker_read_set_callback(
iButtonWorker* worker,
iButtonWorkerReadCallback callback,
void* context) {
furi_check(worker);
furi_check(worker->mode_index == iButtonWorkerModeIdle);
worker->read_cb = callback;
worker->cb_ctx = context;
}
@@ -47,7 +51,9 @@ void ibutton_worker_write_set_callback(
iButtonWorker* worker,
iButtonWorkerWriteCallback callback,
void* context) {
furi_check(worker);
furi_check(worker->mode_index == iButtonWorkerModeIdle);
worker->write_cb = callback;
worker->cb_ctx = context;
}
@@ -56,55 +62,83 @@ void ibutton_worker_emulate_set_callback(
iButtonWorker* worker,
iButtonWorkerEmulateCallback callback,
void* context) {
furi_check(worker);
furi_check(worker->mode_index == iButtonWorkerModeIdle);
worker->emulate_cb = callback;
worker->cb_ctx = context;
}
void ibutton_worker_read_start(iButtonWorker* worker, iButtonKey* key) {
furi_check(worker);
iButtonMessage message = {.type = iButtonMessageRead, .data.key = key};
furi_check(
furi_message_queue_put(worker->messages, &message, FuriWaitForever) == FuriStatusOk);
}
void ibutton_worker_write_blank_start(iButtonWorker* worker, iButtonKey* key) {
furi_check(worker);
furi_check(key);
iButtonMessage message = {.type = iButtonMessageWriteBlank, .data.key = key};
furi_check(
furi_message_queue_put(worker->messages, &message, FuriWaitForever) == FuriStatusOk);
}
void ibutton_worker_write_copy_start(iButtonWorker* worker, iButtonKey* key) {
furi_check(worker);
furi_check(key);
iButtonMessage message = {.type = iButtonMessageWriteCopy, .data.key = key};
furi_check(
furi_message_queue_put(worker->messages, &message, FuriWaitForever) == FuriStatusOk);
}
void ibutton_worker_emulate_start(iButtonWorker* worker, iButtonKey* key) {
furi_check(worker);
iButtonMessage message = {.type = iButtonMessageEmulate, .data.key = key};
furi_check(
furi_message_queue_put(worker->messages, &message, FuriWaitForever) == FuriStatusOk);
}
void ibutton_worker_stop(iButtonWorker* worker) {
furi_check(worker);
iButtonMessage message = {.type = iButtonMessageStop};
furi_check(
furi_message_queue_put(worker->messages, &message, FuriWaitForever) == FuriStatusOk);
}
void ibutton_worker_free(iButtonWorker* worker) {
furi_check(worker);
furi_message_queue_free(worker->messages);
furi_thread_free(worker->thread);
free(worker);
}
void ibutton_worker_start_thread(iButtonWorker* worker) {
furi_check(worker);
furi_thread_start(worker->thread);
}
void ibutton_worker_stop_thread(iButtonWorker* worker) {
furi_check(worker);
iButtonMessage message = {.type = iButtonMessageEnd};
furi_check(
furi_message_queue_put(worker->messages, &message, FuriWaitForever) == FuriStatusOk);
furi_thread_join(worker->thread);
}

View File

@@ -11,7 +11,7 @@ typedef struct {
OneWireSlave* bus;
} iButtonProtocolGroupDallas;
static iButtonProtocolGroupDallas* ibutton_protocol_group_dallas_alloc() {
static iButtonProtocolGroupDallas* ibutton_protocol_group_dallas_alloc(void) {
iButtonProtocolGroupDallas* group = malloc(sizeof(iButtonProtocolGroupDallas));
group->host = onewire_host_alloc(&gpio_ibutton);

View File

@@ -16,7 +16,7 @@ typedef struct {
ProtocolId emulate_id;
} iButtonProtocolGroupMisc;
static iButtonProtocolGroupMisc* ibutton_protocol_group_misc_alloc() {
static iButtonProtocolGroupMisc* ibutton_protocol_group_misc_alloc(void) {
iButtonProtocolGroupMisc* group = malloc(sizeof(iButtonProtocolGroupMisc));
group->dict = protocol_dict_alloc(ibutton_protocols_misc, iButtonProtocolMiscMax);