#pragma once #include "RuntimeHost.h" #include #include class RuntimeStore { public: explicit RuntimeStore(RuntimeHost& runtimeHost); bool Initialize(std::string& error); bool AddLayer(const std::string& shaderId, std::string& error); bool RemoveLayer(const std::string& layerId, std::string& error); bool MoveLayer(const std::string& layerId, int direction, std::string& error); bool MoveLayerToIndex(const std::string& layerId, std::size_t targetIndex, std::string& error); bool SetLayerBypass(const std::string& layerId, bool bypassed, std::string& error); bool SetLayerShader(const std::string& layerId, const std::string& shaderId, std::string& error); bool UpdateLayerParameter(const std::string& layerId, const std::string& parameterId, const JsonValue& newValue, std::string& error); bool UpdateLayerParameterByControlKey(const std::string& layerKey, const std::string& parameterKey, const JsonValue& newValue, std::string& error); bool UpdateLayerParameterByControlKey(const std::string& layerKey, const std::string& parameterKey, const JsonValue& newValue, bool persistState, std::string& error); bool ResetLayerParameters(const std::string& layerId, std::string& error); bool SaveStackPreset(const std::string& presetName, std::string& error) const; bool LoadStackPreset(const std::string& presetName, std::string& error); std::string BuildStateJson() const; const std::filesystem::path& GetRepoRoot() const; const std::filesystem::path& GetUiRoot() const; const std::filesystem::path& GetDocsRoot() const; const std::filesystem::path& GetRuntimeRoot() const; unsigned short GetServerPort() const; unsigned short GetOscPort() const; const std::string& GetOscBindAddress() const; double GetOscSmoothing() const; unsigned GetMaxTemporalHistoryFrames() const; unsigned GetPreviewFps() const; bool ExternalKeyingEnabled() const; const std::string& GetInputVideoFormat() const; const std::string& GetInputFrameRate() const; const std::string& GetOutputVideoFormat() const; const std::string& GetOutputFrameRate() const; void SetCompileStatus(bool succeeded, const std::string& message); void ClearReloadRequest(); private: RuntimeHost& mRuntimeHost; };