diff --git a/mythtv/programs/mythbackend/mainserver.cpp b/mythtv/programs/mythbackend/mainserver.cpp
index 1273b98..f54c22e 100644
|
a
|
b
|
void MainServer::customEvent(QEvent *e)
|
| 1010 | 1010 | if (me->Message() == "LOCAL_RECONNECT_TO_MASTER") |
| 1011 | 1011 | masterServerReconnect->start(kMasterServerReconnectTimeout); |
| 1012 | 1012 | |
| | 1013 | if (me->Message() == "LOCAL_SLAVE_BACKEND_ENCODERS_OFFLINE") |
| | 1014 | HandleSlaveDisconnectedEvent(*me); |
| | 1015 | |
| 1013 | 1016 | if (me->Message().left(6) == "LOCAL_") |
| 1014 | 1017 | return; |
| 1015 | 1018 | |
| … |
… |
void MainServer::connectionClosed(MythSocket *socket)
|
| 5464 | 5467 | } |
| 5465 | 5468 | else if (sock == socket) |
| 5466 | 5469 | { |
| 5467 | | list<uint> disconnectedSlaves; |
| | 5470 | list<uint> offlineEncoderIDs; |
| 5468 | 5471 | bool needsReschedule = false; |
| 5469 | 5472 | |
| 5470 | 5473 | if (ismaster && pbs->isSlaveBackend()) |
| … |
… |
void MainServer::connectionClosed(MythSocket *socket)
|
| 5483 | 5486 | isFallingAsleep = false; |
| 5484 | 5487 | |
| 5485 | 5488 | elink->SetSocket(NULL); |
| 5486 | | if (m_sched) disconnectedSlaves.push_back(elink->GetCardID()); |
| | 5489 | if (m_sched) offlineEncoderIDs.push_back(elink->GetCardID()); |
| 5487 | 5490 | } |
| 5488 | 5491 | } |
| 5489 | 5492 | if (m_sched && !isFallingAsleep) |
| … |
… |
void MainServer::connectionClosed(MythSocket *socket)
|
| 5541 | 5544 | VERBOSE(VB_IMPORTANT, "Playback sock still exists?"); |
| 5542 | 5545 | |
| 5543 | 5546 | sockListLock.unlock(); |
| 5544 | | for (list<uint>::iterator p = disconnectedSlaves.begin() ; |
| 5545 | | p != disconnectedSlaves.end() ; p++) { |
| 5546 | | if (m_sched) m_sched->SlaveDisconnected(*p); |
| 5547 | | } |
| 5548 | | |
| 5549 | | if (m_sched && needsReschedule) |
| 5550 | | m_sched->Reschedule(0); |
| | 5547 | SendSlaveDisconnectedEvent(offlineEncoderIDs, needsReschedule); |
| 5551 | 5548 | |
| 5552 | 5549 | pbs->DownRef(); |
| 5553 | 5550 | return; |
| … |
… |
void MainServer::ShutSlaveBackendsDown(QString &haltcmd)
|
| 5966 | 5963 | sockListLock.unlock(); |
| 5967 | 5964 | } |
| 5968 | 5965 | |
| | 5966 | void MainServer::HandleSlaveDisconnectedEvent(const MythEvent& event) |
| | 5967 | { |
| | 5968 | if (event.ExtraDataCount() > 0 && m_sched) |
| | 5969 | { |
| | 5970 | bool needsReschedule = event.ExtraData(0).toUInt(); |
| | 5971 | for (int i = 1; i < event.ExtraDataCount(); i++) |
| | 5972 | m_sched->SlaveDisconnected(event.ExtraData(i).toUInt()); |
| | 5973 | |
| | 5974 | if (needsReschedule) |
| | 5975 | m_sched->Reschedule(0); |
| | 5976 | } |
| | 5977 | } |
| | 5978 | |
| | 5979 | void MainServer::SendSlaveDisconnectedEvent(const list<uint>& offlineEncoderIDs, bool needsReschedule) |
| | 5980 | { |
| | 5981 | QStringList reschedAndOfflineEncoderIDs; |
| | 5982 | reschedAndOfflineEncoderIDs << QString::number(static_cast<uint>(needsReschedule)); |
| | 5983 | |
| | 5984 | list<uint>::const_iterator it; |
| | 5985 | for (it = offlineEncoderIDs.begin(); it != offlineEncoderIDs.end(); ++it) |
| | 5986 | { |
| | 5987 | reschedAndOfflineEncoderIDs << QString::number(*it); |
| | 5988 | } |
| | 5989 | |
| | 5990 | MythEvent me("LOCAL_SLAVE_BACKEND_ENCODERS_OFFLINE", reschedAndOfflineEncoderIDs); |
| | 5991 | gCoreContext->dispatch(me); |
| | 5992 | } |
| | 5993 | |
| 5969 | 5994 | /* vim: set expandtab tabstop=4 shiftwidth=4: */ |
diff --git a/mythtv/programs/mythbackend/mainserver.h b/mythtv/programs/mythbackend/mainserver.h
index 66e9c5b..eb145e3 100644
|
a
|
b
|
class MainServer : public QObject, public MythSocketCBs
|
| 212 | 212 | void HandleQueryTimeZone(PlaybackSock *pbs); |
| 213 | 213 | void HandleBlockShutdown(bool blockShutdown, PlaybackSock *pbs); |
| 214 | 214 | void HandleDownloadFile(const QStringList &command, PlaybackSock *pbs); |
| | 215 | void HandleSlaveDisconnectedEvent(const MythEvent& event); |
| | 216 | void SendSlaveDisconnectedEvent(const list<uint>& offlineEncoderIDs, bool needsReschedule); |
| 215 | 217 | |
| 216 | 218 | void SendResponse(MythSocket *pbs, QStringList &commands); |
| 217 | 219 | |