diff --git a/mythtv/programs/mythbackend/scheduler.cpp b/mythtv/programs/mythbackend/scheduler.cpp index ab3d8d3..8c382e7 100644 --- a/mythtv/programs/mythbackend/scheduler.cpp +++ b/mythtv/programs/mythbackend/scheduler.cpp @@ -2525,6 +2525,7 @@ void Scheduler::HandleIdleShutdown( else { QDateTime curtime = QDateTime::currentDateTime(); + bool wasIdle = idleSince.isValid(); // find out, if we are currently recording (or LiveTV) bool recording = false; @@ -2539,20 +2540,12 @@ void Scheduler::HandleIdleShutdown( if (!(m_mainServer->isClientConnected()) && !recording) { // have we received a RESET_IDLETIME message? - resetIdleTime_lock.lock(); - if (resetIdleTime) - { - // yes - so reset the idleSince time - idleSince = QDateTime(); - resetIdleTime = false; - } resetIdleTime_lock.unlock(); if (statuschanged || !idleSince.isValid()) { - if (!idleSince.isValid()) - idleSince = curtime; - + if (!idleSince.isValid()) + idleSince = curtime; RecIter idleIter = reclist.begin(); for ( ; idleIter != reclist.end(); ++idleIter) if ((*idleIter)->GetRecordingStatus() == @@ -2567,11 +2560,22 @@ void Scheduler::HandleIdleShutdown( (idleWaitForRecordingTime * 60) + idleTimeoutSecs) { + LOG(VB_IDLE, LOG_NOTICE, + "Not idle - waiting for recording"); idleSince = QDateTime(); } } } + resetIdleTime_lock.lock(); + if (resetIdleTime) + { + // yes - so reset the idleSince time + LOG(VB_IDLE, LOG_NOTICE, "Idle time reset!"); + idleSince = QDateTime(); + resetIdleTime = false; + } + if (idleSince.isValid()) { // is the machine already idling the timeout time? @@ -2585,7 +2589,7 @@ void Scheduler::HandleIdleShutdown( if (idleSince.addSecs(idleTimeoutSecs + 60) < curtime) { - LOG(VB_GENERAL, LOG_WARNING, + LOG(VB_IDLE, LOG_WARNING, "Waited more than 60" " seconds for shutdown to complete" " - resetting idle time"); @@ -2605,17 +2609,17 @@ void Scheduler::HandleIdleShutdown( { int itime = idleSince.secsTo(curtime); QString msg; - if (itime == 1) + if (!wasIdle) { msg = QString("I\'m idle now... shutdown will " "occur in %1 seconds.") .arg(idleTimeoutSecs); - LOG(VB_GENERAL, LOG_NOTICE, msg); + LOG(VB_IDLE, LOG_NOTICE, msg); MythEvent me(QString("SHUTDOWN_COUNTDOWN %1") .arg(idleTimeoutSecs)); gCoreContext->dispatch(me); } - else if (itime % 10 == 0) + else { msg = QString("%1 secs left to system shutdown!") .arg(idleTimeoutSecs - itime); @@ -2632,6 +2636,7 @@ void Scheduler::HandleIdleShutdown( // not idle, make the time invalid if (idleSince.isValid()) { + LOG(VB_IDLE, LOG_NOTICE, "Not idle any more!"); MythEvent me(QString("SHUTDOWN_COUNTDOWN -1")); gCoreContext->dispatch(me); } diff --git a/mythtv/programs/mythwelcome/main.cpp b/mythtv/programs/mythwelcome/main.cpp index 7e1f3bd..efc5e14 100644 --- a/mythtv/programs/mythwelcome/main.cpp +++ b/mythtv/programs/mythwelcome/main.cpp @@ -83,6 +83,7 @@ int main(int argc, char **argv) "mythwelcome: Could not initialize MythContext. Exiting."); return GENERIC_EXIT_NO_MYTHCONTEXT; } + gCoreContext->ConnectToMasterServer(false); if (!MSqlQuery::testDBConnection()) {