180 if (stack_slot < UX_STACK_SLOT_COUNT) {
181#ifdef HAVE_UX_STACK_INIT_KEEP_TICKER
182 callback_int_t ticker_callback =
G_ux.stack[stack_slot].ticker_callback;
183 unsigned int ticker_value =
G_ux.stack[stack_slot].ticker_value;
184 unsigned int ticker_interval =
G_ux.stack[stack_slot].ticker_interval;
188 memset(&
G_ux.stack[stack_slot], 0,
sizeof(
G_ux.stack[0]));
190#ifdef HAVE_UX_STACK_INIT_KEEP_TICKER
191 G_ux.stack[stack_slot].ticker_callback = ticker_callback;
192 G_ux.stack[stack_slot].ticker_value = ticker_value;
193 G_ux.stack[stack_slot].ticker_interval = ticker_interval;
197 G_ux.stack[stack_slot].exit_code_after_elements_displayed = BOLOS_UX_CONTINUE;
223 unsigned int elem_idx;
224 unsigned int total_element_count;
225 const bagl_element_t *element;
228 total_element_count = 0;
231 if ((os_perso_isonboarded() != BOLOS_UX_OK || os_global_pin_is_validated() == BOLOS_UX_OK))
234 for (i = 0; i < UX_STACK_SLOT_ARRAY_COUNT && i < slot->element_arrays_count; i++) {
237 elem_idx = slot->element_index - total_element_count;
238 total_element_count += slot->element_arrays[i].element_array_count;
240 while (elem_idx < slot->element_arrays[i].element_array_count) {
241 const bagl_element_t *el;
243 slot->element_index++;
245 element = &slot->element_arrays[i].element_array[elem_idx];
255 if ((
unsigned int) el != 1) {
258 io_seph_ux_display_bagl_element(element);
266 if (slot->element_index == total_element_count) {
270 slot->element_index++;
273 if (slot->displayed_callback) {
276 if (!slot->displayed_callback(0)) {
277 slot->element_index = 0;
ux_state_t G_ux
Global UX state instance — see ux_state_s.