Ref T259, Ref T243 pass the providers along the hierarchy

This commit is contained in:
Klaus Basan
2018-03-28 03:50:51 +02:00
parent 785e35ee88
commit a7f1e15f39
11 changed files with 26 additions and 29 deletions

View File

@@ -285,7 +285,7 @@ namespace BlackSimPlugin
CSimulatedAircraft aircraft(remoteAircraft);
aircraft.setRendered(true);
const CCallsign cs = aircraft.getCallsign();
m_interpolators.insert(cs, CInterpolatorMultiWrapper(cs, &m_interpolationLogger, this));
m_interpolators.insert(cs, CInterpolatorMultiWrapper(cs, this, this, this->getRemoteAircraftProvider(), &m_interpolationLogger));
m_renderedAircraft.push_back(aircraft); // my simulator list
this->updateAircraftRendered(cs, true); // in provider
emit this->aircraftRenderingChanged(aircraft);

View File

@@ -32,10 +32,10 @@ namespace BlackSimPlugin
namespace Fs9
{
CFs9Client::CFs9Client(const CCallsign &callsign, const QString &modelName, const CTime &updateInterval,
CInterpolationLogger *logger, ISimulator *owner) :
CDirectPlayPeer(owner, callsign),
CInterpolationLogger *logger, ISimulator *simulator) :
CDirectPlayPeer(simulator, callsign),
m_updateInterval(updateInterval),
m_interpolator(callsign),
m_interpolator(callsign, simulator, simulator, simulator->getRemoteAircraftProvider(), logger),
m_modelName(modelName)
{
m_interpolator.attachLogger(logger);

View File

@@ -44,7 +44,7 @@ namespace BlackSimPlugin
const QString &modelName,
const BlackMisc::PhysicalQuantities::CTime &updateInterval,
BlackMisc::Simulation::CInterpolationLogger *logger,
BlackCore::ISimulator *owner);
BlackCore::ISimulator *simulator);
//! Destructor
virtual ~CFs9Client();

View File

@@ -8,11 +8,12 @@
*/
#include "simconnectobject.h"
#include "simconnectobject.h"
#include "blackcore/simulator.h"
#include "blackmisc/simulation/interpolatormulti.h"
using namespace BlackMisc::Aviation;
using namespace BlackMisc::Simulation;
using namespace BlackCore;
namespace BlackSimPlugin
{
@@ -23,12 +24,11 @@ namespace BlackSimPlugin
CSimConnectObject::CSimConnectObject(const CSimulatedAircraft &aircraft,
DWORD requestId,
ISimulationEnvironmentProvider *p1, IInterpolationSetupProvider *p2, IRemoteAircraftProvider *p3,
CInterpolationLogger *logger) :
m_aircraft(aircraft), m_requestId(requestId), m_validRequestId(true),
m_interpolator(QSharedPointer<CInterpolatorMulti>::create(aircraft.getCallsign()))
{
m_interpolator->attachLogger(logger);
}
m_interpolator(QSharedPointer<CInterpolatorMulti>::create(aircraft.getCallsign(), p1, p2, p3, logger))
{ }
void CSimConnectObject::invalidatePartsAsSent()
{

View File

@@ -32,6 +32,7 @@ namespace BlackSimPlugin
//! Constructor providing initial situation/parts
CSimConnectObject(const BlackMisc::Simulation::CSimulatedAircraft &aircraft,
DWORD requestId,
BlackMisc::Simulation::ISimulationEnvironmentProvider *p1, BlackMisc::Simulation::IInterpolationSetupProvider *p2, BlackMisc::Simulation::IRemoteAircraftProvider *p3,
BlackMisc::Simulation::CInterpolationLogger *logger);
//! Destructor

View File

@@ -1527,7 +1527,7 @@ namespace BlackSimPlugin
}
else
{
simObject = CSimConnectObject(aircraft, requestId, &m_interpolationLogger);
simObject = CSimConnectObject(aircraft, requestId, this, this, this->getRemoteAircraftProvider(), &m_interpolationLogger);
}
m_simConnectObjects.insert(aircraft.getCallsign(), simObject);
return simObject;

View File

@@ -490,7 +490,7 @@ namespace BlackSimPlugin
Q_ASSERT_X(!newRemoteAircraft.getCallsign().isEmpty(), Q_FUNC_INFO, "empty callsign");
Q_ASSERT_X(newRemoteAircraft.hasModelString(), Q_FUNC_INFO, "missing model string");
m_xplaneAircraftObjects.insert(newRemoteAircraft.getCallsign(), CXPlaneMPAircraft(newRemoteAircraft, &m_interpolationLogger));
m_xplaneAircraftObjects.insert(newRemoteAircraft.getCallsign(), CXPlaneMPAircraft(newRemoteAircraft, this, &m_interpolationLogger));
CAircraftModel aircraftModel = newRemoteAircraft.getModel();
QString livery = aircraftModel.getLivery().getCombinedCode(); //! \todo livery resolution for XP
m_trafficProxy->addPlane(newRemoteAircraft.getCallsign().asString(), aircraftModel.getModelString(),

View File

@@ -8,8 +8,10 @@
*/
#include "xplanempaircraft.h"
#include "blackcore/simulator.h"
#include "blackmisc/simulation/interpolatormulti.h"
using namespace BlackCore;
using namespace BlackMisc::Aviation;
using namespace BlackMisc::Simulation;
@@ -20,22 +22,14 @@ namespace BlackSimPlugin
CXPlaneMPAircraft::CXPlaneMPAircraft()
{ }
CXPlaneMPAircraft::CXPlaneMPAircraft(const CSimulatedAircraft &aircraft,
CInterpolationLogger *logger) :
CXPlaneMPAircraft::CXPlaneMPAircraft(
const CSimulatedAircraft &aircraft, ISimulator *simulator, CInterpolationLogger *logger) :
m_aircraft(aircraft),
m_interpolator(QSharedPointer<CInterpolatorMulti>::create(aircraft.getCallsign()))
m_interpolator(QSharedPointer<CInterpolatorMulti>::create(aircraft.getCallsign(), simulator, simulator, simulator->getRemoteAircraftProvider(), logger))
{
m_interpolator->attachLogger(logger);
}
CXPlaneMPAircraft::CXPlaneMPAircraft(const CAircraftSituation &situation) :
m_interpolator(QSharedPointer<CInterpolatorMulti>::create(situation.getCallsign()))
{ }
CXPlaneMPAircraft::CXPlaneMPAircraft(const CAircraftParts &parts, const CCallsign &callsign) :
m_interpolator(QSharedPointer<CInterpolatorMulti>::create(callsign))
{ }
bool CXPlaneMPAircraft::isSameAsSent(const CAircraftSituation &position) const
{
return m_positionAsSent == position;

View File

@@ -17,6 +17,7 @@
#include <QSharedPointer>
#include <QStringList>
namespace BlackCore { class ISimulator; }
namespace BlackSimPlugin
{
namespace XPlane
@@ -30,14 +31,9 @@ namespace BlackSimPlugin
//! Constructor providing initial situation/parts
CXPlaneMPAircraft(const BlackMisc::Simulation::CSimulatedAircraft &aircraft,
BlackCore::ISimulator *simulator,
BlackMisc::Simulation::CInterpolationLogger *logger);
//! Constructor providing initial situation
CXPlaneMPAircraft(const BlackMisc::Aviation::CAircraftSituation &situation);
//! Constructor providing initial parts
CXPlaneMPAircraft(const BlackMisc::Aviation::CAircraftParts &parts, const BlackMisc::Aviation::CCallsign &callsign);
//! Destructor
~CXPlaneMPAircraft() {}