Testing commit signing
This commit is contained in:
@@ -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 |
|
||||
|
||||
Reference in New Issue
Block a user