Added config editor in front end
All checks were successful
CI / React UI Build (push) Successful in 11s
CI / Native Windows Build And Tests (push) Successful in 2m46s
CI / Windows Release Package (push) Has been skipped

This commit is contained in:
Aiden
2026-05-30 19:33:40 +10:00
parent f0f8b080ca
commit 8ffc011ca0
26 changed files with 1201 additions and 55 deletions

View File

@@ -16,6 +16,8 @@ servers:
tags:
- name: State
description: Runtime state and status.
- name: Config
description: Startup host configuration and restart control.
- name: Static
description: Bundled control UI and static assets served by the local host.
- name: Docs
@@ -179,6 +181,52 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/RuntimeState"
/api/config:
get:
tags: [Config]
summary: Get active and saved host config
operationId: getHostConfig
responses:
"200":
description: Active startup config and the config currently saved on disk.
content:
application/json:
schema:
$ref: "#/components/schemas/HostConfigResponse"
/api/config/save:
post:
tags: [Config]
summary: Save host config
description: Saves `runtime-host.json`. Startup-owned services use the new values after app restart.
operationId: saveHostConfig
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/HostConfig"
responses:
"200":
$ref: "#/components/responses/ActionOk"
"400":
$ref: "#/components/responses/ActionError"
/api/app/restart:
post:
tags: [Config]
summary: Restart the native host
operationId: restartHost
requestBody:
required: false
content:
application/json:
schema:
type: object
additionalProperties: false
responses:
"200":
$ref: "#/components/responses/ActionOk"
"400":
$ref: "#/components/responses/ActionError"
/ws:
get:
tags: [State]
@@ -511,6 +559,90 @@ components:
type: string
example: live-show-look
additionalProperties: false
HostConfigResponse:
type: object
properties:
ok:
type: boolean
path:
type: string
active:
$ref: "#/components/schemas/HostConfig"
disk:
$ref: "#/components/schemas/HostConfig"
diskLoaded:
type: boolean
restartRequired:
type: boolean
error:
type: string
HostConfig:
type: object
properties:
$schema:
type: string
shaderLibrary:
type: string
serverPort:
type: number
oscBindAddress:
type: string
oscPort:
type: number
oscSmoothing:
type: number
input:
$ref: "#/components/schemas/HostVideoInputConfig"
output:
$ref: "#/components/schemas/HostVideoOutputConfig"
autoReload:
type: boolean
maxTemporalHistoryFrames:
type: number
previewEnabled:
type: boolean
previewFps:
type: number
runtimeShaderId:
type: string
additionalProperties: false
HostVideoInputConfig:
type: object
properties:
backend:
type: string
enum: [decklink, ndi, none]
device:
type: string
resolution:
type: string
frameRate:
type: string
additionalProperties: false
HostVideoOutputConfig:
type: object
properties:
backend:
type: string
enum: [decklink, ndi, none]
device:
type: string
resolution:
type: string
frameRate:
type: string
pixelFormat:
type: string
enum: [auto, bgra8, uyvy8]
keying:
type: object
properties:
external:
type: boolean
alphaRequired:
type: boolean
additionalProperties: false
additionalProperties: false
RuntimeState:
type: object
properties: