Hide debug tools if debug is not enabled. Application: update debug tools code base. SubGhz: log duty cycle. (#903)

* Application: clean debug_tools code base.
* SubGhz: add duty cycle logging.
* Application: hide debug tools if not enabled. Gui: move icon_animation allocation to menu module.
This commit is contained in:
あく
2021-12-15 15:23:16 +03:00
committed by GitHub
parent f6db5dd2a8
commit 63642617ee
9 changed files with 164 additions and 162 deletions

View File

@@ -18,6 +18,8 @@ typedef struct {
ARRAY_DEF(MenuItemArray, MenuItem, M_POD_OPLIST);
#define M_OPL_MenuItemArray_t() ARRAY_OPLIST(MenuItemArray, M_POD_OPLIST)
typedef struct {
MenuItemArray_t items;
size_t position;
@@ -136,11 +138,7 @@ Menu* menu_alloc() {
void menu_free(Menu* menu) {
furi_assert(menu);
with_view_model(
menu->view, (MenuModel * model) {
MenuItemArray_clear(model->items);
return true;
});
menu_clean(menu);
view_free(menu->view);
free(menu);
}
@@ -153,7 +151,7 @@ View* menu_get_view(Menu* menu) {
void menu_add_item(
Menu* menu,
const char* label,
IconAnimation* icon,
const Icon* icon,
uint32_t index,
MenuItemCallback callback,
void* context) {
@@ -165,7 +163,7 @@ void menu_add_item(
menu->view, (MenuModel * model) {
item = MenuItemArray_push_new(model->items);
item->label = label;
item->icon = icon;
item->icon = icon ? icon_animation_alloc(icon) : icon_animation_alloc(&A_Plugins_14);
view_tie_icon_animation(menu->view, item->icon);
item->index = index;
item->callback = callback;
@@ -178,6 +176,12 @@ void menu_clean(Menu* menu) {
furi_assert(menu);
with_view_model(
menu->view, (MenuModel * model) {
for
M_EACH(item, model->items, MenuItemArray_t) {
icon_animation_stop(item->icon);
icon_animation_free(item->icon);
}
MenuItemArray_reset(model->items);
model->position = 0;
return true;

View File

@@ -49,7 +49,7 @@ View* menu_get_view(Menu* menu);
void menu_add_item(
Menu* menu,
const char* label,
IconAnimation* icon,
const Icon* icon,
uint32_t index,
MenuItemCallback callback,
void* context);