OSC stubs
All checks were successful
CI / React UI Build (push) Successful in 12s
CI / Native Windows Build And Tests (push) Successful in 2m11s
CI / Windows Release Package (push) Has been skipped

This commit is contained in:
Aiden
2026-05-30 20:42:38 +10:00
parent 04e0802ef2
commit 0f3db3ba1b
18 changed files with 298 additions and 16 deletions

View File

@@ -2,6 +2,7 @@
#include "../app/AppConfig.h"
#include "../app/AppConfigProvider.h"
#include "../control/osc/OscControlServer.h"
#include "../json/JsonWriter.h"
#include "RuntimeLayerModel.h"
#include "SupportedShaderCatalog.h"
@@ -22,6 +23,7 @@ struct RuntimeStateJsonInput
std::string videoOutputStatus;
const SupportedShaderCatalog& shaderCatalog;
const RuntimeLayerModelSnapshot& runtimeLayers;
const OscControlServerState* osc = nullptr;
};
inline void WriteVideoIoStatusJson(JsonWriter& writer, const RuntimeStateJsonInput& input)
@@ -279,6 +281,27 @@ inline void WriteLayersJson(JsonWriter& writer, const RuntimeStateJsonInput& inp
writer.EndArray();
}
inline void WriteOscJson(JsonWriter& writer, const RuntimeStateJsonInput& input)
{
const bool configured = input.osc ? input.osc->configured : input.config.oscPort != 0;
const bool listening = input.osc ? input.osc->listening : false;
const std::string bindAddress = input.osc ? input.osc->bindAddress : input.config.oscBindAddress;
const unsigned short port = input.osc ? input.osc->port : input.config.oscPort;
const double smoothing = input.osc ? input.osc->smoothing : input.config.oscSmoothing;
const std::string status = input.osc
? input.osc->statusMessage
: (configured ? "OSC ingress is not implemented yet." : "OSC ingress disabled by config.");
writer.BeginObject();
writer.KeyBool("configured", configured);
writer.KeyBool("listening", listening);
writer.KeyString("bindAddress", bindAddress);
writer.KeyUInt("port", port);
writer.KeyDouble("smoothing", smoothing);
writer.KeyString("statusMessage", status);
writer.EndObject();
}
inline std::string RuntimeStateToJson(const RuntimeStateJsonInput& input)
{
JsonWriter writer;
@@ -293,6 +316,8 @@ inline std::string RuntimeStateToJson(const RuntimeStateJsonInput& input)
writer.KeyBool("autoReload", input.config.autoReload);
writer.KeyUInt("maxTemporalHistoryFrames", static_cast<uint64_t>(input.config.maxTemporalHistoryFrames));
writer.KeyDouble("previewFps", input.config.previewFps);
writer.Key("osc");
WriteOscJson(writer, input);
writer.Key("input");
writer.BeginObject();
writer.KeyString("backend", input.config.input.backend);