14#ifndef DEPENDENCY_FACTORY_H
15#define DEPENDENCY_FACTORY_H
20#include "ui/imgui_manager.h"
23#include "render/irenderer.h"
28#include "sound/isound_manager.h"
55 static std::unique_ptr<IKeybindProvider> createKeybindProvider();
101 const std::vector<TableData>& tables,
180 IAssetManager* assets,
size_t* currentIndex, std::vector<TableData>* tables,
181 App* app,
bool& showConfig);
183 static std::unique_ptr<ITableLauncher> createTableLauncher(
IConfigService* configService);
Main application controller for ASAPCabinetFE.
Definition app.h:57
Static factory for creating component instances.
Definition dependency_factory.h:53
static std::unique_ptr< IInputManager > createInputManager(IKeybindProvider *keybindProvider)
Creates an input manager instance.
Definition dependency_factory.cpp:160
static std::unique_ptr< IAssetManager > createAssetManager(IWindowManager *windowManager, TTF_Font *font, IConfigService *configService, size_t index, const std::vector< TableData > &tables, ISoundManager *soundManager)
Creates an asset manager instance.
Definition dependency_factory.cpp:77
static std::unique_ptr< ConfigUI > createConfigUI(IConfigService *configService, IKeybindProvider *keybindProvider, IAssetManager *assets, size_t *currentIndex, std::vector< TableData > *tables, App *app, bool &showConfig)
Creates a configuration UI instance.
Definition dependency_factory.cpp:180
static std::unique_ptr< IWindowManager > createWindowManager(const Settings &settings)
Creates a window manager instance.
Definition dependency_factory.cpp:43
static std::unique_ptr< ImGuiManager > createImGuiManager(IWindowManager *windowManager, IConfigService *configService)
Creates a GUI manager instance.
Definition dependency_factory.cpp:57
static std::unique_ptr< ITableCallbacks > createTableCallbacks(IConfigService *configService)
Creates a table callbacks instance.
Definition dependency_factory.cpp:190
static std::unique_ptr< IConfigService > createConfigService(const std::string &configPath, IKeybindProvider *keybindProvider)
Creates a configuration service instance.
Definition dependency_factory.cpp:131
static std::unique_ptr< IRenderer > createRenderer(IWindowManager *windowManager)
Creates a renderer instance.
Definition dependency_factory.cpp:101
static std::unique_ptr< ISoundManager > createSoundManager(const Settings &settings)
Creates a sound manager instance.
Definition dependency_factory.cpp:117
static std::unique_ptr< IScreenshotManager > createScreenshotManager(const std::string &exeDir, IConfigService *configService, IKeybindProvider *keybindProvider, ISoundManager *soundManager)
Creates a screenshot manager instance.
Definition dependency_factory.cpp:147
The IAssetManager interface provides methods to manage and access various assets used in the applicat...
Definition iasset_manager.h:36
Interface for configuration services (forward declaration).
Definition iconfig_service.h:30
Interface for keybind providers (forward declaration).
Definition ikeybind_provider.h:30
Interface for managing sound operations.
Definition isound_manager.h:14
Interface for managing SDL windows and renderers.
Definition iwindow_manager.h:27
Defines the ConfigUI class for managing the ImGui-based configuration UI in ASAPCabinetFE.
Defines the IAssetManager interface for managing assets in ASAPCabinetFE.
Defines the IConfigService interface for managing configuration in ASAPCabinetFE.
Defines the IKeybindProvider interface for managing input bindings in ASAPCabinetFE.
Defines the IScreenshotManager interface for screenshot capture operations in ASAPCabinetFE.
Defines the ITableLauncher interface for launching VPX tables.
Defines the IWindowManager interface for managing SDL windows and renderers in ASAPCabinetFE.
Defines the TableData struct for storing VPX table metadata and media paths.