bool bUpdateEpg(true);
bool bHasPendingUpdates(false);
- if (!CPVRManager::Get().WaitUntilInitialised())
- {
- CLog::Log(LOGDEBUG, "EPG - %s - pvr manager failed to load - exiting", __FUNCTION__);
- return;
- }
-
while (!m_bStop && !g_application.m_bStop)
{
CDateTime::GetCurrentDateTime().GetAsUTCDateTime().GetAsTime(iNow);
return false;
}
-bool CPVRManager::WaitUntilInitialised(void)
-{
- return m_initialisedEvent.Wait() &&
- IsStarted();
-}
-
void CPVRManager::Cleanup(void)
{
CSingleLock lock(m_critSection);
delete m_pendingUpdates.at(iJobPtr);
m_pendingUpdates.clear();
- m_initialisedEvent.Reset();
SetState(ManagerStateStopped);
}
m_database = new CPVRDatabase;
m_database->Open();
- g_EpgContainer.Start();
-
/* create the supervisor thread to do all background activities */
StartUpdateThreads();
}
SetState(ManagerStateStopping);
/* stop the EPG updater, since it might be using the pvr add-ons */
- m_initialisedEvent.Set();
g_EpgContainer.Stop();
CLog::Log(LOGNOTICE, "PVRManager - stopping");
void CPVRManager::Process(void)
{
+ g_EpgContainer.Stop();
+
/* load the pvr data from the db and clients if it's not already loaded */
while (!Load() && GetState() == ManagerStateStarting)
{
/* main loop */
CLog::Log(LOGDEBUG, "PVRManager - %s - entering main loop", __FUNCTION__);
- m_initialisedEvent.Set();
+ g_EpgContainer.Start();
if (m_bOpenPVRWindow)
{
CStopWatch *m_parentalTimer;
bool m_bOpenPVRWindow;
std::map<std::string, std::string> m_outdatedAddons;
- CEvent m_initialisedEvent; /*!< triggered when the pvr manager initialised */
};
class CPVREpgsCreateJob : public CJob