From ac69c7d6946cd80e2019de6aad772c1f2bdce2c7 Mon Sep 17 00:00:00 2001 From: NeilClack Date: Thu, 13 Aug 2026 20:07:05 -0500 Subject: [PATCH] Testing commit signing --- README.md | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index f8f510c..f381575 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ and manages WiFi/provisioning on a headless Linux kiosk. **Build:** CMake + Ninja (local) or Nix (flake) **Graphics:** SDL3 **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`: | Task | Shortcut | What it does | -|------|----------|-------------| +| ------ | ---------- | ------------- | | `build-debug` | `Cmd+Shift+B` | Configure + build debug | | `build-release` | — | Configure + build release | | `build-tests` | — | Build test target only | @@ -327,7 +327,7 @@ TEST(my_new_test) 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 add_executable(tests @@ -338,7 +338,7 @@ add_executable(tests ) ``` -4. Rebuild and run: +1. Rebuild and run: ```sh 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: | Callback | Runs | Purpose | -|----------|------|---------| +| ---------- | ------ | --------- | | `SDL_AppInit` | Once at startup | Init SDL, create window + renderer, push first page | | `SDL_AppEvent` | Per event | Forward events to 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 | Page | Purpose | Status | -|------|---------|--------| +| ------ | --------- | -------- | | Home | Logo, menu selection (Play, Settings) | Done | | Settings | Title-only settings stub | Done | | 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: | Key | Action | -|-----|--------| +| ----- | -------- | | TAB | Return to Home screen | | UP Arrow | Move selection up (wraps) | | DOWN Arrow | Move selection down (wraps) | @@ -490,7 +490,7 @@ Decouples layout from display size. ### Shaders | Shader | Purpose | -|--------|---------| +| -------- | --------- | | scroller.vert/frag | Text with font texture; uniform `u_textColor` | | text.vert/frag | Non-scrolling text elements | | 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). | Table | Purpose | -|-------|---------| +| ------- | --------- | | app_config | Key-value store: license, email, audio device, volume | | logs | Application logs | | proclamations | Synced proclamation text | @@ -524,6 +524,7 @@ SQLite at `~/.local/share/radiantwave/database.sqlite` (WAL mode). ## Network D-Bus integration via sdbus-c++: + - Async WiFi scan - WPA/WPA2 connection - Captive portal detection @@ -531,7 +532,7 @@ D-Bus integration via sdbus-c++: ### Remote APIs | Endpoint | Purpose | -|----------|---------| +| ---------- | --------- | | `portal.radiantwavetech.com/api/v2/proclamations` | Sync proclamations | | `files.radiantwavetech.com/files/` | Audio file downloads | | HTTP API | License validation | @@ -595,7 +596,7 @@ status to decide which page to show. ## Rebuild Progress | Component | Status | -|-----------|--------| +| ----------- | -------- | | Entry / Event Loop | Done | | Window + Renderer | Done | | Page System | Done |