3#ifndef PRINTLINES_ALLOWED
4#define PRINTLINES_ALLOWED 0
7static const char *FNAME =
"kest_menu.c";
104 lv_timer_del(item->
timer);
107 lv_anim_del(item, NULL);
109 lv_obj_del_async(item->
obj);
146 KEST_PRINTF(
"parameter_widget_change_cb_settings_wrapper\n");
152 #ifdef KEST_USE_FREERTOS
153 xSemaphoreTake(state_mutex, portMAX_DELAY);
155 xSemaphoreGive(state_mutex);
212 if (!item || !profile)
221 item->
text =
"Profile";
224 item->
data = profile;
233 KEST_PRINTF(
"profile_listing_menu_item_refresh_active\n");
245 KEST_PRINTF(
"profile is active. going about it\n");
246 lv_label_set_text(item->
extra[1], LV_SYMBOL_PLAY);
247 lv_obj_clear_flag(item->
extra[0], LV_OBJ_FLAG_HIDDEN);
248 lv_obj_clear_flag(item->
extra[0], LV_OBJ_FLAG_CLICKABLE);
252 KEST_PRINTF(
"profile is not active. hiding play\n");
253 lv_label_set_text(item->
extra[1], LV_SYMBOL_TRASH);
254 lv_obj_add_flag(item->
extra[0], LV_OBJ_FLAG_HIDDEN);
255 lv_obj_add_flag(item->
extra[0], LV_OBJ_FLAG_CLICKABLE);
258 KEST_PRINTF(
"profile_listing_menu_item_refresh_active done\n");
270 item->
text = strndup(name, 32);
272 lv_label_set_text(item->
label, item->
text);
301 lv_obj_add_flag(item->
extra[0], LV_OBJ_FLAG_HIDDEN);
317 if (profile && profile->view_page)
319 profile->view_page->parent = &
global_cxt.pages.main_menu;
326 if (profile && !profile->
active)
329 lv_timer_set_repeat_count(item->
timer, 1);
347 if (profile && !profile->
active)
349 lv_obj_clear_flag(item->
extra[0], LV_OBJ_FLAG_HIDDEN);
353 lv_obj_clear_flag(item->
extra[0], LV_OBJ_FLAG_HIDDEN);
387 item->
extra[0] = lv_btn_create(item->
obj);
389 lv_obj_align(item->
extra[0], LV_ALIGN_RIGHT_MID, 10, 0);
392 lv_obj_add_flag(item->
extra[0], LV_OBJ_FLAG_HIDDEN);
394 item->
extra[1] = lv_label_create(item->
extra[0]);
395 lv_label_set_text(item->
extra[1], LV_SYMBOL_TRASH);
397 lv_obj_center(item->
extra[1]);
410 item->
extra[0] = lv_btn_create(item->
obj);
412 lv_obj_align(item->
extra[0], LV_ALIGN_RIGHT_MID, 10, 0);
415 lv_obj_add_flag(item->
extra[0], LV_OBJ_FLAG_HIDDEN);
417 item->
extra[1] = lv_label_create(item->
extra[0]);
418 lv_label_set_text(item->
extra[1], LV_SYMBOL_TRASH);
420 lv_obj_center(item->
extra[1]);
429 item->
obj = lv_obj_create(parent);
430 lv_obj_remove_style_all(item->
obj);
431 lv_obj_set_size(item->
obj, 1, (
int)item->
data);
450 item->
data = (
void*)pad_height;
462 KEST_PRINTF(
"create_page_link_menu_item. parent = %p\n", parent);
603 kest_menu_item_pll *current_item = str->
items;
608 current_item = current_item->next;
640 kest_menu_item_pll *current = str->
items;
647 current = current->next;
672 kest_menu_item_pll *current = str->
items;
683 KEST_PRINTF(
"Requesting value for menu page parameter widget...\n");
688 current = current->next;
705 kest_menu_item_pll *current = str->
items;
710 current = current->next;
733 kest_menu_item_pll *nl = kest_menu_item_pll_append(str->
items, item);
879 lv_obj_remove_style_all(str->
top_pad);
880 lv_obj_set_size(str->
top_pad, LV_PCT(100), 20);
895 lv_obj_set_flex_align(str->
gains_container, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_SPACE_EVENLY, LV_FLEX_ALIGN_SPACE_EVENLY);
900 lv_obj_set_size(str->
gains_container, LV_SIZE_CONTENT, LV_SIZE_CONTENT);
904 lv_obj_remove_style_all(str->
top_pad);
905 lv_obj_set_size(str->
top_pad, LV_PCT(100), 20);
936 kest_menu_item_pll *current_item = str->
items;
937 kest_menu_item_pll *prev_item = NULL;
941 if (current_item->data == item)
947 prev_item->next = current_item->next;
949 str->
items = current_item->next;
955 prev_item = current_item;
956 current_item = current_item->next;
void kest_free(void *ptr)
void * kest_alloc(size_t size)
char * kest_strndup(const char *str, size_t n)
int cxt_remove_profile(kest_context *cxt, kest_profile *profile)
#define ERR_UNIMPLEMENTED
void erase_sd_card_void_cb(void *data)
#define IMPLEMENT_LINKED_PTR_LIST(X)
void menu_item_sequence_listing_released_cb(lv_event_t *e)
void sequence_listing_delete_button_cb(lv_event_t *e)
void menu_item_sequence_listing_long_pressed_cb(lv_event_t *e)
kest_ui_page_panel * new_panel()
int enter_ui_page_forwards(kest_ui_page *page)
int ui_page_add_back_button(kest_ui_page *page)
int ui_page_create_base_ui(kest_ui_page *page)
int enter_ui_page_indirect_forwards(kest_ui_page **_page)
void enter_ui_page_forwards_cb(lv_event_t *e)
int create_standard_button_click(lv_obj_t **obj, lv_obj_t **label, lv_obj_t *parent, char *text, lv_event_cb_t click_cb, void *click_cb_arg)
int init_ui_page(kest_ui_page *page)
int enter_ui_page(kest_ui_page *page)
int create_standard_button_long_press_release(lv_obj_t **obj, lv_obj_t **label, lv_obj_t *parent, char *text, lv_event_cb_t press_cb, void *press_cb_arg, lv_event_cb_t release_cb, void *release_cb_arg)
int configure_ui_page(kest_ui_page *page, void *data)
#define KEST_UI_PAGE_MAIN_MENU
#define CONTAINER_TYPE_STD_BTN_LIST
kest_button sequences_button
kest_parameter_widget output_gain
lv_obj_t * gains_container
kest_parameter_widget input_gain
kest_danger_button erase_sd_card_button
kest_button profiles_button
int(* free_ui)(struct kest_ui_page *page)
kest_ui_page_panel * panel
int(* create_ui)(struct kest_ui_page *page)
struct kest_ui_page * parent
int(* enter_page)(struct kest_ui_page *page)
int(* configure)(struct kest_ui_page *page, void *data)