CFileItem* CSavestateDatabase::CreateFileItem(const CVariant& object) const { using namespace ADDON; CSavestate save; save.Deserialize(object); CFileItem* item = new CFileItem(save.Label()); item->SetPath(save.Path()); if (!save.Thumbnail().empty()) item->SetArt("thumb", save.Thumbnail()); else { AddonPtr addon; if (CAddonMgr::GetInstance().GetAddon(save.GameClient(), addon, ADDON_GAMEDLL)) item->SetArt("thumb", addon->Icon()); } // Use the slot number as the second label if (save.Type() == SAVETYPE::SLOT) item->SetLabel2(StringUtils::Format("%u", save.Slot())); item->m_dateTime = save.Timestamp(); item->SetProperty(FILEITEM_PROPERTY_SAVESTATE_DURATION, static_cast<uint64_t>(save.PlaytimeWallClock())); item->GetGameInfoTag()->SetGameClient(save.GameClient()); item->m_dwSize = save.Size(); item->m_bIsFolder = false; return item; }