D048 - The screen pages through every check, and cycles rather than waiting for input

Status: decided.

The summary shows the shape of a run - seventeen section rows and a set of totals. It cannot show ninety-five identifiers at a size anyone can read from across a room, and a screen that has to be squinted at has lost its only advantage over the stream.

So there are two views and they answer different questions. The summary says "is anything working"; a page says "which one". Eighteen checks per page, six pages, three seconds each, cycling from the summary and back.

Cycled, not driven by input. A controller is one more thing that has to work on a platform being tested precisely because things do not work on it, and a run being photographed has nobody there to press a button. Every page reaches the screen on its own, so any of them can be captured.

It only pages when there is a display. Without one obs_screen_present returns at once and the process exits as before, which is what anything automated needs. With one it never returns - and that is correct, because the report is complete and on record before the first page is drawn. Nothing is being held back; what follows is for whoever is looking.

A collision worth remembering. display.h defined OBS_PASS, OBS_FAIL and friends as colours, which are also obs_status values. A macro shadowing an enum constant turns a switch over statuses into a switch over integers, and the compiler refused it - loudly, and only once something switched on a status. The colours are now OBS_COLOUR_*. Naming a thing after what it draws rather than what it is was the mistake.