Files
pico-launcher/arm9/source/romBrowser/viewModels/RomBrowserViewModel.cpp

47 lines
1.8 KiB
C++

#include "common.h"
#include <algorithm>
#include "romBrowser/FileType/Nds/NdsFileType.h"
#include "RomBrowserViewModel.h"
RomBrowserViewModel::RomBrowserViewModel(IRomBrowserController* romBrowserController, const char* initialSelectedFileName)
: _romBrowserController(romBrowserController)
{
SdFolderFilterSortParams filterSortParams;
switch (romBrowserController->GetRomBrowserDisplaySettings().sortMode)
{
case RomBrowserSortMode::NameAscending:
default:
{
filterSortParams = SdFolderFilterSortParams(
SdFolderSortType::Name, SdFolderSortDirection::Ascending, false);
break;
}
case RomBrowserSortMode::NameDescending:
{
filterSortParams = SdFolderFilterSortParams(
SdFolderSortType::Name, SdFolderSortDirection::Descending, false);
break;
}
case RomBrowserSortMode::LastModified:
{
filterSortParams = SdFolderFilterSortParams(
SdFolderSortType::LastModified, SdFolderSortDirection::Descending, false);
break;
}
}
u64 startTick = gTickCounter.GetValue();
const auto& sdFolder = romBrowserController->GetSdFolder();
int filteredCount;
auto sortedFilteredFiles = sdFolder.FilterAndSort(filterSortParams, filteredCount);
u64 endTick = gTickCounter.GetValue();
LOG_DEBUG("Filter + sort took: %d us\n", (u32)TickCounter::TicksToMicroSeconds(endTick - startTick));
_fileInfoManager = std::make_unique<FileInfoManager>(std::move(sortedFilteredFiles),
filteredCount, _romBrowserController->GetCoverRepository());
_selectedItem = _fileInfoManager->GetItemIndex(initialSelectedFileName);
}
void RomBrowserViewModel::NavigateUp()
{
_romBrowserController->NavigateUp();
}