Testing commit signing

This commit is contained in:
NeilClack
2026-08-13 20:07:05 -05:00
parent 7c74198d4f
commit ac69c7d694
+12 -11
View File
@@ -8,7 +8,7 @@ and manages WiFi/provisioning on a headless Linux kiosk.
**Build:** CMake + Ninja (local) or Nix (flake) **Build:** CMake + Ninja (local) or Nix (flake)
**Graphics:** SDL3 **Graphics:** SDL3
**Audio:** SDL3_mixer **Audio:** SDL3_mixer
**Target:** Linux kiosk (Wayland/X11); developed on macOS **Target:** Linux kiosk (Wayland); developed on macOS
--- ---
@@ -257,7 +257,7 @@ code --install-extension vadimcn.vscode-lldb
Tasks are preconfigured in `.vscode/tasks.json`: Tasks are preconfigured in `.vscode/tasks.json`:
| Task | Shortcut | What it does | | Task | Shortcut | What it does |
|------|----------|-------------| | ------ | ---------- | ------------- |
| `build-debug` | `Cmd+Shift+B` | Configure + build debug | | `build-debug` | `Cmd+Shift+B` | Configure + build debug |
| `build-release` | — | Configure + build release | | `build-release` | — | Configure + build release |
| `build-tests` | — | Build test target only | | `build-tests` | — | Build test target only |
@@ -327,7 +327,7 @@ TEST(my_new_test)
RUN_ALL_TESTS() RUN_ALL_TESTS()
``` ```
3. Add the file to the `tests` target in `CMakeLists.txt`: 1. Add the file to the `tests` target in `CMakeLists.txt`:
```cmake ```cmake
add_executable(tests add_executable(tests
@@ -338,7 +338,7 @@ add_executable(tests
) )
``` ```
4. Rebuild and run: 1. Rebuild and run:
```sh ```sh
cmake --build build --target tests cmake --build build --target tests
@@ -364,7 +364,7 @@ The app uses SDL3's callback system (`SDL_MAIN_USE_CALLBACKS`) instead of a
manual event loop. SDL calls these functions for you: manual event loop. SDL calls these functions for you:
| Callback | Runs | Purpose | | Callback | Runs | Purpose |
|----------|------|---------| | ---------- | ------ | --------- |
| `SDL_AppInit` | Once at startup | Init SDL, create window + renderer, push first page | | `SDL_AppInit` | Once at startup | Init SDL, create window + renderer, push first page |
| `SDL_AppEvent` | Per event | Forward events to the active page | | `SDL_AppEvent` | Per event | Forward events to the active page |
| `SDL_AppIterate` | Per frame | Update + render the active page | | `SDL_AppIterate` | Per frame | Update + render the active page |
@@ -448,7 +448,7 @@ settings sub-pages (e.g., Settings → AudioOptions → DevicePicker).
## Pages ## Pages
| Page | Purpose | Status | | Page | Purpose | Status |
|------|---------|--------| | ------ | --------- | -------- |
| Home | Logo, menu selection (Play, Settings) | Done | | Home | Logo, menu selection (Play, Settings) | Done |
| Settings | Title-only settings stub | Done | | Settings | Title-only settings stub | Done |
| ScrollerPage | Main screen: scrolling text with shaders + audio | — | | ScrollerPage | Main screen: scrolling text with shaders + audio | — |
@@ -468,7 +468,7 @@ settings sub-pages (e.g., Settings → AudioOptions → DevicePicker).
Global keybinds, active from any screen: Global keybinds, active from any screen:
| Key | Action | | Key | Action |
|-----|--------| | ----- | -------- |
| TAB | Return to Home screen | | TAB | Return to Home screen |
| UP Arrow | Move selection up (wraps) | | UP Arrow | Move selection up (wraps) |
| DOWN Arrow | Move selection down (wraps) | | DOWN Arrow | Move selection down (wraps) |
@@ -490,7 +490,7 @@ Decouples layout from display size.
### Shaders ### Shaders
| Shader | Purpose | | Shader | Purpose |
|--------|---------| | -------- | --------- |
| scroller.vert/frag | Text with font texture; uniform `u_textColor` | | scroller.vert/frag | Text with font texture; uniform `u_textColor` |
| text.vert/frag | Non-scrolling text elements | | text.vert/frag | Non-scrolling text elements |
| solid_color.vert/frag | Flat color (backgrounds, UI) | | solid_color.vert/frag | Flat color (backgrounds, UI) |
@@ -511,7 +511,7 @@ Decouples layout from display size.
SQLite at `~/.local/share/radiantwave/database.sqlite` (WAL mode). SQLite at `~/.local/share/radiantwave/database.sqlite` (WAL mode).
| Table | Purpose | | Table | Purpose |
|-------|---------| | ------- | --------- |
| app_config | Key-value store: license, email, audio device, volume | | app_config | Key-value store: license, email, audio device, volume |
| logs | Application logs | | logs | Application logs |
| proclamations | Synced proclamation text | | proclamations | Synced proclamation text |
@@ -524,6 +524,7 @@ SQLite at `~/.local/share/radiantwave/database.sqlite` (WAL mode).
## Network ## Network
D-Bus integration via sdbus-c++: D-Bus integration via sdbus-c++:
- Async WiFi scan - Async WiFi scan
- WPA/WPA2 connection - WPA/WPA2 connection
- Captive portal detection - Captive portal detection
@@ -531,7 +532,7 @@ D-Bus integration via sdbus-c++:
### Remote APIs ### Remote APIs
| Endpoint | Purpose | | Endpoint | Purpose |
|----------|---------| | ---------- | --------- |
| `portal.radiantwavetech.com/api/v2/proclamations` | Sync proclamations | | `portal.radiantwavetech.com/api/v2/proclamations` | Sync proclamations |
| `files.radiantwavetech.com/files/` | Audio file downloads | | `files.radiantwavetech.com/files/` | Audio file downloads |
| HTTP API | License validation | | HTTP API | License validation |
@@ -595,7 +596,7 @@ status to decide which page to show.
## Rebuild Progress ## Rebuild Progress
| Component | Status | | Component | Status |
|-----------|--------| | ----------- | -------- |
| Entry / Event Loop | Done | | Entry / Event Loop | Done |
| Window + Renderer | Done | | Window + Renderer | Done |
| Page System | Done | | Page System | Done |