diff --git a/src/services/impl/workflow_frame_audio_step.cpp b/src/services/impl/workflow_frame_audio_step.cpp new file mode 100644 index 0000000..7bc4e2a --- /dev/null +++ b/src/services/impl/workflow_frame_audio_step.cpp @@ -0,0 +1,26 @@ +#include "workflow_frame_audio_step.hpp" + +#include + +namespace sdl3cpp::services::impl { + +WorkflowFrameAudioStep::WorkflowFrameAudioStep(std::shared_ptr audioService, + std::shared_ptr logger) + : audioService_(std::move(audioService)), + logger_(std::move(logger)) {} + +std::string WorkflowFrameAudioStep::GetPluginId() const { + return "frame.audio"; +} + +void WorkflowFrameAudioStep::Execute(const WorkflowStepDefinition&, WorkflowContext&) { + if (!audioService_) { + throw std::runtime_error("frame.audio requires an IAudioService"); + } + audioService_->Update(); + if (logger_) { + logger_->Trace("WorkflowFrameAudioStep", "Execute", "", "Audio updated"); + } +} + +} // namespace sdl3cpp::services::impl diff --git a/src/services/impl/workflow_frame_gui_step.hpp b/src/services/impl/workflow_frame_gui_step.hpp new file mode 100644 index 0000000..bfcd22d --- /dev/null +++ b/src/services/impl/workflow_frame_gui_step.hpp @@ -0,0 +1,24 @@ +#pragma once + +#include "../interfaces/i_workflow_step.hpp" +#include "../interfaces/i_logger.hpp" +#include "../interfaces/i_input_service.hpp" + +#include + +namespace sdl3cpp::services::impl { + +class WorkflowFrameGuiStep final : public IWorkflowStep { +public: + WorkflowFrameGuiStep(std::shared_ptr inputService, + std::shared_ptr logger); + + std::string GetPluginId() const override; + void Execute(const WorkflowStepDefinition& step, WorkflowContext& context) override; + +private: + std::shared_ptr inputService_; + std::shared_ptr logger_; +}; + +} // namespace sdl3cpp::services::impl