Skip to content

Commit

Permalink
Merge branch 'dev' into astra/3797-settings-refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
Astrrra committed May 3, 2024
2 parents bd3206a + 7414e6d commit cd34e16
Show file tree
Hide file tree
Showing 10 changed files with 37 additions and 30 deletions.
10 changes: 3 additions & 7 deletions lib/ibutton/protocols/dallas/protocol_ds1971.c
Original file line number Diff line number Diff line change
Expand Up @@ -218,19 +218,15 @@ void dallas_ds1971_render_uid(FuriString* result, const iButtonProtocolData* pro

void dallas_ds1971_render_data(FuriString* result, const iButtonProtocolData* protocol_data) {
const DS1971ProtocolData* data = protocol_data;
FuriString* data_string = furi_string_alloc();

furi_string_cat_printf(result, "\e#Memory Data\n--------------------\n");

pretty_format_bytes_hex_canonical(
data_string,
result,
DS1971_DATA_BYTE_COUNT,
PRETTY_FORMAT_FONT_MONOSPACE,
data->eeprom_data,
DS1971_EEPROM_DATA_SIZE);

furi_string_cat_printf(result, "\e#Memory Data\n--------------------\n");
furi_string_cat_printf(result, "%s", furi_string_get_cstr(data_string));

furi_string_free(data_string);
}

void dallas_ds1971_render_brief_data(FuriString* result, const iButtonProtocolData* protocol_data) {
Expand Down
10 changes: 3 additions & 7 deletions lib/ibutton/protocols/dallas/protocol_ds1992.c
Original file line number Diff line number Diff line change
Expand Up @@ -191,19 +191,15 @@ void dallas_ds1992_render_uid(FuriString* result, const iButtonProtocolData* pro

void dallas_ds1992_render_data(FuriString* result, const iButtonProtocolData* protocol_data) {
const DS1992ProtocolData* data = protocol_data;
FuriString* data_string = furi_string_alloc();

furi_string_cat_printf(result, "\e#Memory Data\n--------------------\n");

pretty_format_bytes_hex_canonical(
data_string,
result,
DS1992_DATA_BYTE_COUNT,
PRETTY_FORMAT_FONT_MONOSPACE,
data->sram_data,
DS1992_SRAM_DATA_SIZE);

furi_string_cat_printf(result, "\e#Memory Data\n--------------------\n");
furi_string_cat_printf(result, "%s", furi_string_get_cstr(data_string));

furi_string_free(data_string);
}

void dallas_ds1992_render_brief_data(FuriString* result, const iButtonProtocolData* protocol_data) {
Expand Down
9 changes: 2 additions & 7 deletions lib/ibutton/protocols/dallas/protocol_ds1996.c
Original file line number Diff line number Diff line change
Expand Up @@ -217,19 +217,14 @@ void dallas_ds1996_render_uid(FuriString* result, const iButtonProtocolData* pro
void dallas_ds1996_render_data(FuriString* result, const iButtonProtocolData* protocol_data) {
const DS1996ProtocolData* data = protocol_data;

FuriString* data_string = furi_string_alloc();
furi_string_cat_printf(result, "\e#Memory Data\n--------------------\n");

pretty_format_bytes_hex_canonical(
data_string,
result,
DS1996_DATA_BYTE_COUNT,
PRETTY_FORMAT_FONT_MONOSPACE,
data->sram_data,
DS1996_SRAM_DATA_SIZE);

furi_string_cat_printf(result, "\e#Memory Data\n--------------------\n");
furi_string_cat_printf(result, "%s", furi_string_get_cstr(data_string));

furi_string_free(data_string);
}

void dallas_ds1996_render_brief_data(FuriString* result, const iButtonProtocolData* protocol_data) {
Expand Down
7 changes: 2 additions & 5 deletions lib/ibutton/protocols/misc/protocol_cyfral.c
Original file line number Diff line number Diff line change
Expand Up @@ -325,18 +325,15 @@ static LevelDuration protocol_cyfral_encoder_yield(ProtocolCyfral* proto) {
return result;
}

static void protocol_cyfral_render_uid(FuriString* result, ProtocolCyfral* proto) {
static void protocol_cyfral_render_uid(ProtocolCyfral* proto, FuriString* result) {
furi_string_cat_printf(result, "ID: ");
for(size_t i = 0; i < CYFRAL_DATA_SIZE; ++i) {
furi_string_cat_printf(result, "%02X ", ((uint8_t*)&proto->data)[i]);
}
}

static void protocol_cyfral_render_brief_data(ProtocolCyfral* proto, FuriString* result) {
furi_string_cat_printf(result, "ID: ");
for(size_t i = 0; i < CYFRAL_DATA_SIZE; ++i) {
furi_string_cat_printf(result, "%02X ", ((uint8_t*)&proto->data)[i]);
}
protocol_cyfral_render_uid(proto, result);
}

const ProtocolBase ibutton_protocol_misc_cyfral = {
Expand Down
11 changes: 11 additions & 0 deletions lib/ibutton/protocols/misc/protocol_group_misc.c
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,16 @@ static bool ibutton_protocol_group_misc_load(
}
}

static void ibutton_protocol_group_misc_render_uid(
iButtonProtocolGroupMisc* group,
const iButtonProtocolData* data,
iButtonProtocolLocalId id,
FuriString* result) {
const size_t data_size = protocol_dict_get_data_size(group->dict, id);
protocol_dict_set_data(group->dict, id, data, data_size);
protocol_dict_render_uid(group->dict, result, id);
}

static void ibutton_protocol_group_misc_render_data(
iButtonProtocolGroupMisc* group,
const iButtonProtocolData* data,
Expand Down Expand Up @@ -283,6 +293,7 @@ const iButtonProtocolGroupBase ibutton_protocol_group_misc = {
.save = (iButtonProtocolGroupSaveFunc)ibutton_protocol_group_misc_save,
.load = (iButtonProtocolGroupLoadFunc)ibutton_protocol_group_misc_load,

.render_uid = (iButtonProtocolGroupRenderFunc)ibutton_protocol_group_misc_render_uid,
.render_data = (iButtonProtocolGroupRenderFunc)ibutton_protocol_group_misc_render_data,
.render_brief_data =
(iButtonProtocolGroupRenderFunc)ibutton_protocol_group_misc_render_brief_data,
Expand Down
3 changes: 1 addition & 2 deletions lib/toolbox/pretty_format.c
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,7 @@ void pretty_format_bytes_hex_canonical(
const size_t line_length = (line_prefix ? strlen(line_prefix) : 0) + 4 * num_places + 2;

/* Reserve memory in adance in order to avoid unnecessary reallocs */
furi_string_reset(result);
furi_string_reserve(result, line_count * line_length);
furi_string_reserve(result, furi_string_size(result) + line_count * line_length);

for(size_t i = 0; i < data_size; i += num_places) {
if(line_prefix) {
Expand Down
13 changes: 11 additions & 2 deletions lib/toolbox/protocols/protocol_dict.c
Original file line number Diff line number Diff line change
Expand Up @@ -198,12 +198,21 @@ LevelDuration protocol_dict_encoder_yield(ProtocolDict* dict, size_t protocol_in
}
}

void protocol_dict_render_uid(ProtocolDict* dict, FuriString* result, size_t protocol_index) {
furi_check(protocol_index < dict->count);
ProtocolRenderData fn = dict->base[protocol_index]->render_uid;

if(fn) {
fn(dict->data[protocol_index], result);
}
}

void protocol_dict_render_data(ProtocolDict* dict, FuriString* result, size_t protocol_index) {
furi_check(protocol_index < dict->count);
ProtocolRenderData fn = dict->base[protocol_index]->render_data;

if(fn) {
return fn(dict->data[protocol_index], result);
fn(dict->data[protocol_index], result);
}
}

Expand All @@ -212,7 +221,7 @@ void protocol_dict_render_brief_data(ProtocolDict* dict, FuriString* result, siz
ProtocolRenderData fn = dict->base[protocol_index]->render_brief_data;

if(fn) {
return fn(dict->data[protocol_index], result);
fn(dict->data[protocol_index], result);
}
}

Expand Down
2 changes: 2 additions & 0 deletions lib/toolbox/protocols/protocol_dict.h
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,8 @@ bool protocol_dict_encoder_start(ProtocolDict* dict, size_t protocol_index);

LevelDuration protocol_dict_encoder_yield(ProtocolDict* dict, size_t protocol_index);

void protocol_dict_render_uid(ProtocolDict* dict, FuriString* result, size_t protocol_index);

void protocol_dict_render_data(ProtocolDict* dict, FuriString* result, size_t protocol_index);

void protocol_dict_render_brief_data(ProtocolDict* dict, FuriString* result, size_t protocol_index);
Expand Down
1 change: 1 addition & 0 deletions targets/f18/api_symbols.csv
Original file line number Diff line number Diff line change
Expand Up @@ -2251,6 +2251,7 @@ Function,+,protocol_dict_get_validate_count,uint32_t,"ProtocolDict*, size_t"
Function,+,protocol_dict_get_write_data,_Bool,"ProtocolDict*, size_t, void*"
Function,+,protocol_dict_render_brief_data,void,"ProtocolDict*, FuriString*, size_t"
Function,+,protocol_dict_render_data,void,"ProtocolDict*, FuriString*, size_t"
Function,+,protocol_dict_render_uid,void,"ProtocolDict*, FuriString*, size_t"
Function,+,protocol_dict_set_data,void,"ProtocolDict*, size_t, const uint8_t*, size_t"
Function,-,pulse_reader_alloc,PulseReader*,"const GpioPin*, uint32_t"
Function,-,pulse_reader_free,void,PulseReader*
Expand Down
1 change: 1 addition & 0 deletions targets/f7/api_symbols.csv
Original file line number Diff line number Diff line change
Expand Up @@ -2849,6 +2849,7 @@ Function,+,protocol_dict_get_validate_count,uint32_t,"ProtocolDict*, size_t"
Function,+,protocol_dict_get_write_data,_Bool,"ProtocolDict*, size_t, void*"
Function,+,protocol_dict_render_brief_data,void,"ProtocolDict*, FuriString*, size_t"
Function,+,protocol_dict_render_data,void,"ProtocolDict*, FuriString*, size_t"
Function,+,protocol_dict_render_uid,void,"ProtocolDict*, FuriString*, size_t"
Function,+,protocol_dict_set_data,void,"ProtocolDict*, size_t, const uint8_t*, size_t"
Function,-,pulse_reader_alloc,PulseReader*,"const GpioPin*, uint32_t"
Function,-,pulse_reader_free,void,PulseReader*
Expand Down

0 comments on commit cd34e16

Please sign in to comment.