+static struct ao_task ao_lco_input_task;
+static struct ao_task ao_lco_monitor_task;
+static struct ao_task ao_lco_arm_warn_task;
+static struct ao_task ao_lco_igniter_status_task;
+
+static int16_t found_x;
+
+void
+ao_lco_search_start(void)
+{
+ ao_rect(&fb, 0, 0, WIDTH, HEIGHT, AO_WHITE, AO_COPY);
+ ao_logo(&fb, &logo_transform, &LOGO_FONT, AO_BLACK, AO_COPY);
+ found_x = FOUND_X;
+}
+
+void
+ao_lco_search_box_check(uint16_t box)
+{
+ if (box > 0)
+ ao_rect(&fb, SCAN_X, SCAN_Y, (int16_t) box, SCAN_HEIGHT, AO_BLACK, AO_COPY);
+ ao_st7565_update(&fb);
+}
+
+void
+ao_lco_search_box_present(uint16_t box)
+{
+ char str[8];
+ if (found_x < FOUND_WIDTH)
+ {
+ snprintf(str, sizeof(str), "%s%02u", found_x ? ", " : "", box);
+ found_x = ao_text(&fb, &TINY_FONT, found_x, FOUND_Y, str, AO_BLACK, AO_COPY);
+ }
+}
+
+void
+ao_lco_search_done(void)
+{
+ ao_st7565_update(&fb);
+}
+