mirror of
https://github.com/johndoe6345789/SDL3CPlusPlus.git
synced 2026-04-26 06:34:57 +00:00
ROADMAP.md
This commit is contained in:
26
src/services/impl/soundboard_state_service.cpp
Normal file
26
src/services/impl/soundboard_state_service.cpp
Normal 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
|
||||
23
src/services/impl/soundboard_state_service.hpp
Normal file
23
src/services/impl/soundboard_state_service.hpp
Normal 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
|
||||
15
src/services/interfaces/i_soundboard_state_service.hpp
Normal file
15
src/services/interfaces/i_soundboard_state_service.hpp
Normal 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
|
||||
37
src/services/interfaces/soundboard_types.hpp
Normal file
37
src/services/interfaces/soundboard_types.hpp
Normal 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
|
||||
Reference in New Issue
Block a user