bool CPVREpgs::LoadFromDb(bool bShowProgress /* = false */) { if (m_bDatabaseLoaded) return m_bDatabaseLoaded; CPVRDatabase *database = g_PVRManager.GetTVDatabase(); /* show the progress bar */ CGUIDialogPVRUpdateProgressBar *scanner = NULL; if (bShowProgress) { scanner = (CGUIDialogPVRUpdateProgressBar *)g_windowManager.GetWindow(WINDOW_DIALOG_EPG_SCAN); scanner->Show(); scanner->SetHeader(g_localizeStrings.Get(19004)); } /* open the database */ database->Open(); /* load all EPG tables */ bool bLoaded = false; unsigned int iSize = size(); for (unsigned int iEpgPtr = 0; iEpgPtr < iSize; iEpgPtr++) { CPVREpg *epg = at(iEpgPtr); CPVRChannel *channel = epg->Channel(); if (epg->LoadFromDb()) { if (channel) channel->UpdateEPGPointers(); bLoaded = true; } if (bShowProgress) { /* update the progress bar */ if (channel) scanner->SetTitle(channel->ChannelName()); scanner->SetProgress(iEpgPtr, iSize); scanner->UpdateState(); } } /* close the database */ database->Close(); if (bShowProgress) scanner->Close(); m_bDatabaseLoaded = bLoaded; return bLoaded; }
bool CPVREpgs::UpdateAllChannelEPGPointers() { for (unsigned int epgPtr = 0; epgPtr < PVREpgs.size(); epgPtr++) { CPVRChannel *channel = PVREpgs.at(epgPtr)->Channel(); if (channel) channel->UpdateEPGPointers(); } CDateTime::GetCurrentDateTime().GetAsTime(m_iLastPointerUpdate); return true; }