Ref T421, function to get interpolation messages from the simulator drivers

This commit is contained in:
Klaus Basan
2018-10-31 15:30:15 +01:00
parent 41685df4ee
commit 93bcbc0755
15 changed files with 70 additions and 3 deletions

View File

@@ -168,6 +168,12 @@ namespace BlackSimPlugin
}
}
CStatusMessageList CFs9Client::getInterpolationMessages(CInterpolationAndRenderingSetupBase::InterpolatorMode mode) const
{
if (!this->getInterpolator()) { return CStatusMessageList(); }
return this->getInterpolator()->getInterpolationMessages(mode);
}
void CFs9Client::timerEvent(QTimerEvent *event)
{
Q_UNUSED(event);

View File

@@ -47,13 +47,18 @@ namespace BlackSimPlugin
BlackCore::ISimulator *simulator);
//! Destructor
virtual ~CFs9Client();
virtual ~CFs9Client() override;
//! Set DirectPlay host address
void setHostAddress(const QString &hostAddress);
//! Get interpolator
//! Get interpolator @{
BlackMisc::Simulation::CInterpolatorMulti *getInterpolator() { return &m_interpolator; }
const BlackMisc::Simulation::CInterpolatorMulti *getInterpolator() const { return &m_interpolator; }
//! @}
//! \copydoc BlackMisc::Simulation::CInterpolator::getInterpolationMessages
BlackMisc::CStatusMessageList getInterpolationMessages(BlackMisc::Simulation::CInterpolationAndRenderingSetupBase::InterpolatorMode mode) const;
public slots:
//! Send new text message

View File

@@ -14,7 +14,6 @@
#include "multiplayerpackets.h"
#include "multiplayerpacketparser.h"
#include "registermetadata.h"
#include "blackmisc/simulation/interpolatorlinear.h"
#include "blackmisc/network/textmessage.h"
#include "blackmisc/simulation/simulatorplugininfo.h"
#include "blackmisc/logmessage.h"
@@ -281,6 +280,15 @@ namespace BlackSimPlugin
this->displayStatusMessage(message.asStatusMessage(true, true));
}
CStatusMessageList CSimulatorFs9::getInterpolationMessages(const CCallsign &callsign) const
{
if (!m_hashFs9Clients.contains(callsign)) { return CStatusMessageList(); }
const CFs9Client *client = m_hashFs9Clients[callsign].data();
if (!client) { return CStatusMessageList(); }
const CInterpolationAndRenderingSetupPerCallsign setup = this->getInterpolationSetupPerCallsignOrDefault(callsign);
return client->getInterpolationMessages(setup.getInterpolatorMode());
}
bool CSimulatorFs9::isPhysicallyRenderedAircraft(const CCallsign &callsign) const
{
return m_hashFs9Clients.contains(callsign);

View File

@@ -64,6 +64,7 @@ namespace BlackSimPlugin
virtual bool updateOwnSimulatorSelcal(const BlackMisc::Aviation::CSelcal &selcal, const BlackMisc::CIdentifier &originator) override;
virtual void displayStatusMessage(const BlackMisc::CStatusMessage &message) const override;
virtual void displayTextMessage(const BlackMisc::Network::CTextMessage &message) const override;
virtual BlackMisc::CStatusMessageList getInterpolationMessages(const BlackMisc::Aviation::CCallsign &callsign) const override;
//! \@}
protected: