ROADMAP.md

This commit is contained in:
2026-01-10 02:19:35 +00:00
parent 00a735d1ee
commit 97a2d9ab30
4 changed files with 101 additions and 0 deletions

View File

@@ -0,0 +1,26 @@
#include "soundboard_state_service.hpp"
namespace sdl3cpp::services::impl {
SoundboardStateService::SoundboardStateService(std::shared_ptr<ILogger> logger)
: logger_(std::move(logger)),
statusMessage_("Select a clip to play") {
if (logger_) {
logger_->Trace("SoundboardStateService", "SoundboardStateService",
"status=" + statusMessage_);
}
}
void SoundboardStateService::SetStatusMessage(std::string message) {
statusMessage_ = std::move(message);
if (logger_) {
logger_->Trace("SoundboardStateService", "SetStatusMessage",
"status=" + statusMessage_);
}
}
const std::string& SoundboardStateService::GetStatusMessage() const {
return statusMessage_;
}
} // namespace sdl3cpp::services::impl

View File

@@ -0,0 +1,23 @@
#pragma once
#include "../interfaces/i_logger.hpp"
#include "../interfaces/i_soundboard_state_service.hpp"
#include <memory>
#include <string>
namespace sdl3cpp::services::impl {
class SoundboardStateService final : public ISoundboardStateService {
public:
explicit SoundboardStateService(std::shared_ptr<ILogger> logger);
void SetStatusMessage(std::string message) override;
const std::string& GetStatusMessage() const override;
private:
std::shared_ptr<ILogger> logger_;
std::string statusMessage_;
};
} // namespace sdl3cpp::services::impl

View File

@@ -0,0 +1,15 @@
#pragma once
#include <string>
namespace sdl3cpp::services {
class ISoundboardStateService {
public:
virtual ~ISoundboardStateService() = default;
virtual void SetStatusMessage(std::string message) = 0;
virtual const std::string& GetStatusMessage() const = 0;
};
} // namespace sdl3cpp::services

View File

@@ -0,0 +1,37 @@
#pragma once
#include <cstdint>
#include <filesystem>
#include <string>
#include <vector>
namespace sdl3cpp::services {
struct SoundboardClip {
std::string id;
std::string label;
std::filesystem::path path;
};
struct SoundboardCategory {
std::string id;
std::string name;
std::filesystem::path basePath;
std::vector<SoundboardClip> clips;
};
struct SoundboardCatalog {
std::filesystem::path packageRoot;
std::vector<SoundboardCategory> categories;
};
struct SoundboardSelection {
bool hasSelection = false;
std::uint64_t requestId = 0;
std::string categoryId;
std::string clipId;
std::string label;
std::filesystem::path path;
};
} // namespace sdl3cpp::services