/** \fn SignalMonitor::MonitorLoop() * \brief Basic signal monitoring loop */ void SignalMonitor::MonitorLoop() { running = true; exit = false; while (!exit) { UpdateValues(); if (notify_frontend && capturecardnum>=0) { QStringList slist = GetStatusList(false); MythEvent me(QString("SIGNAL %1").arg(capturecardnum), slist); gCoreContext->dispatch(me); //cerr<<"sent SIGNAL"<<endl; } usleep(update_rate * 1000); } // We need to send a last informational message because a // signal update may have come in while we were sleeping // if we are using the multithreaded dtvsignalmonitor. if (notify_frontend && capturecardnum>=0) { QStringList slist = GetStatusList(false); MythEvent me(QString("SIGNAL %1").arg(capturecardnum), slist); gCoreContext->dispatch(me); } running = false; }
/// \brief Basic signal monitoring loop void SignalMonitor::run(void) { RunProlog(); QMutexLocker locker(&startStopLock); running = true; startStopWait.wakeAll(); while (!exit) { locker.unlock(); UpdateValues(); if (notify_frontend && capturecardnum>=0) { QStringList slist = GetStatusList(); MythEvent me(QString("SIGNAL %1").arg(capturecardnum), slist); gCoreContext->dispatch(me); } locker.relock(); startStopWait.wait(locker.mutex(), update_rate); } // We need to send a last informational message because a // signal update may have come in while we were sleeping // if we are using the multithreaded dtvsignalmonitor. locker.unlock(); if (notify_frontend && capturecardnum>=0) { QStringList slist = GetStatusList(); MythEvent me(QString("SIGNAL %1").arg(capturecardnum), slist); gCoreContext->dispatch(me); } locker.relock(); running = false; startStopWait.wakeAll(); RunEpilog(); }