From d29dec81d7d2b1c8a22728e0c9183ebbc0db09e5 Mon Sep 17 00:00:00 2001 From: Roland Rossgotterer Date: Mon, 23 Dec 2019 18:08:40 +0100 Subject: [PATCH] [FS9] Test connection via FSUIPC in listener Checking whether the FS2004 host is connected is not enough since we rely on FSUIPC. Do not activate the simulator if FSUIPC is not available (e.g. not installed). --- src/plugins/simulator/fs9/simulatorfs9.cpp | 8 ++++++-- src/plugins/simulator/fs9/simulatorfs9.h | 1 + 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/plugins/simulator/fs9/simulatorfs9.cpp b/src/plugins/simulator/fs9/simulatorfs9.cpp index e401c9f3d..6edd488cf 100644 --- a/src/plugins/simulator/fs9/simulatorfs9.cpp +++ b/src/plugins/simulator/fs9/simulatorfs9.cpp @@ -474,7 +474,8 @@ namespace BlackSimPlugin ISimulatorListener(info), m_timer(new QTimer(this)), m_fs9Host(fs9Host), - m_lobbyClient(lobbyClient) + m_lobbyClient(lobbyClient), + m_fsuipc(new CFsuipc(this)) { const int QueryInterval = 5 * 1000; // 5 seconds m_timer->setInterval(QueryInterval); @@ -517,6 +518,10 @@ namespace BlackSimPlugin bool CSimulatorFs9Listener::checkConnection(bool canLobbyConnect) { + m_fsuipc->open(); + if (! m_fsuipc->isOpen()) { return false; } + m_fsuipc->close(); + if (m_fs9Host->getHostAddress().isEmpty()) { return false; } // host not yet set up if (canLobbyConnect) { @@ -533,7 +538,6 @@ namespace BlackSimPlugin m_isConnecting = false; emit this->simulatorStarted(this->getPluginInfo()); } - return m_isConnecting; } diff --git a/src/plugins/simulator/fs9/simulatorfs9.h b/src/plugins/simulator/fs9/simulatorfs9.h index 5ec25657a..8ecd696f5 100644 --- a/src/plugins/simulator/fs9/simulatorfs9.h +++ b/src/plugins/simulator/fs9/simulatorfs9.h @@ -148,6 +148,7 @@ namespace BlackSimPlugin bool m_isStarted = false; QSharedPointer m_fs9Host; QSharedPointer m_lobbyClient; + FsCommon::CFsuipc *m_fsuipc = nullptr; }; //! Factory implementation to create CSimulatorFs9 instances