mirror of
https://github.com/LNH-team/pico-launcher.git
synced 2025-12-05 13:16:06 +01:00
73 lines
2.4 KiB
C++
73 lines
2.4 KiB
C++
#pragma once
|
|
#include <memory>
|
|
#include "core/SharedPtr.h"
|
|
#include "SdFolder.h"
|
|
#include "viewModels/RomBrowserViewModel.h"
|
|
#include "RomBrowserStateMachine.h"
|
|
#include "core/task/TaskQueue.h"
|
|
#include "IRomBrowserController.h"
|
|
#include "CoverRepository.h"
|
|
#include "FileType/ExtensionFileTypeProvider.h"
|
|
#include "services/settings/IAppSettingsService.h"
|
|
|
|
class RomBrowserController : public IRomBrowserController
|
|
{
|
|
public:
|
|
RomBrowserController(IAppSettingsService* appSettingsService,
|
|
TaskQueueBase* ioTaskQueue, TaskQueueBase* bgTaskQueue);
|
|
|
|
void NavigateUp() override
|
|
{
|
|
NavigateToPath("..");
|
|
}
|
|
|
|
void NavigateToPath(const TCHAR* name) override;
|
|
void LaunchFile(const FileInfo& fileInfo) override;
|
|
void ShowGameInfo() override;
|
|
void HideGameInfo() override;
|
|
void ShowDisplaySettings() override;
|
|
void HideDisplaySettings() override;
|
|
|
|
void Update() override;
|
|
|
|
const SdFolder& GetSdFolder() const override { return *_sdFolder; }
|
|
|
|
const RomBrowserStateMachine& GetStateMachine() const override { return _stateMachine; }
|
|
|
|
const SharedPtr<RomBrowserViewModel>& GetRomBrowserViewModel() override { return _romBrowserViewModel; }
|
|
|
|
TaskQueueBase* GetIoTaskQueue() const override { return _ioTaskQueue; }
|
|
TaskQueueBase* GetBgTaskQueue() const override { return _bgTaskQueue; }
|
|
const ICoverRepository& GetCoverRepository() const override { return *_coverRepository; }
|
|
|
|
void SetRomBrowserDisplaySettings(const RomBrowserDisplaySettings& romBrowserDisplaySettings) override;
|
|
|
|
const RomBrowserDisplaySettings& GetRomBrowserDisplaySettings() const override
|
|
{
|
|
return _appSettingsService->GetAppSettings().romBrowserDisplaySettings;
|
|
}
|
|
|
|
private:
|
|
IAppSettingsService* _appSettingsService;
|
|
TaskQueueBase* _ioTaskQueue;
|
|
TaskQueueBase* _bgTaskQueue;
|
|
|
|
std::unique_ptr<SdFolder> _sdFolder;
|
|
SharedPtr<RomBrowserViewModel> _romBrowserViewModel;
|
|
std::unique_ptr<SdFolder> _newSdFolder;
|
|
RomBrowserStateMachine _stateMachine;
|
|
TCHAR _navigatePath[256];
|
|
TCHAR* _navigateFileName;
|
|
FileInfo _launchFileInfo;
|
|
QueueTask<void> _navigateTask;
|
|
bool _saveSettingsPending = false;
|
|
std::unique_ptr<CoverRepository> _coverRepository;
|
|
ExtensionFileTypeProvider _fileTypeProvider;
|
|
|
|
void HandleTrigger();
|
|
void HandleNavigateTrigger();
|
|
void HandleFolderLoadDoneTrigger();
|
|
void HandleLaunchTrigger();
|
|
void HandleChangeDisplayModeTrigger();
|
|
};
|