mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-01 21:56:43 +08:00
Remove ISimulator::getSimulatorInfo()
To provide maximum flexibility, the simulator info is specified by each plugin in the JSON metadata file. * Renamed SCimulatorInfo to CSimulatorPluginInfo * Removed pre-defined simulator infos (UnspecifiedSim, FSX, etc) * CContextSimulator keeps track of which plugin is loaded and its info * QSignalMapper keeps track of which listener emitted the simulatorStared() signal * CSimulatorPluginInfo contains name, simulator name and description * TODO: GUI part * TODO: CTestFsCommon
This commit is contained in:
committed by
Roland Winklmeier
parent
3897fb2d1a
commit
63e48ae332
@@ -15,7 +15,7 @@
|
||||
#include "multiplayer_packets.h"
|
||||
#include "multiplayer_packet_parser.h"
|
||||
#include "blackcore/interpolator_linear.h"
|
||||
#include "blacksim/simulatorinfo.h"
|
||||
#include "blacksim/simulatorplugininfo.h"
|
||||
#include "blackmisc/logmessage.h"
|
||||
#include "blackmisc/project.h"
|
||||
#include "blackmisc/logmessage.h"
|
||||
@@ -47,7 +47,7 @@ namespace BlackSimPlugin
|
||||
{
|
||||
CSimulatorFs9::CSimulatorFs9(IOwnAircraftProvider *ownAircraftProvider,
|
||||
IRemoteAircraftProvider *remoteAircraftProvider, QObject *parent) :
|
||||
CSimulatorFsCommon(CSimulatorInfo::FS9(), ownAircraftProvider, remoteAircraftProvider, parent)
|
||||
CSimulatorFsCommon(CSimulatorPluginInfo::FS9(), ownAircraftProvider, remoteAircraftProvider, parent)
|
||||
{
|
||||
connect(lobbyClient.data(), &CLobbyClient::disconnected, this, std::bind(&CSimulatorFs9::simulatorStatusChanged, this, 0));
|
||||
connect(fs9Host.data(), &CFs9Host::customPacketReceived, this, &CSimulatorFs9::ps_processFs9Message);
|
||||
@@ -339,9 +339,9 @@ namespace BlackSimPlugin
|
||||
return new CSimulatorFs9(ownAircraftProvider, remoteAircraftProvider, parent);
|
||||
}
|
||||
|
||||
BlackSim::CSimulatorInfo CSimulatorFs9Factory::getSimulatorInfo() const
|
||||
BlackSim::CSimulatorPluginInfo CSimulatorFs9Factory::getSimulatorInfo() const
|
||||
{
|
||||
return CSimulatorInfo::FS9();
|
||||
return CSimulatorPluginInfo::FS9();
|
||||
}
|
||||
|
||||
BlackCore::ISimulatorListener *CSimulatorFs9Factory::createListener(QObject *parent)
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
#include "blackcore/interpolator.h"
|
||||
#include "blackmisc/simulation/aircraftmodel.h"
|
||||
#include "blackmisc/avaircraft.h"
|
||||
#include "blacksim/simulatorinfo.h"
|
||||
#include "blacksim/simulatorplugininfo.h"
|
||||
#include "blackmisc/pixmap.h"
|
||||
#include <QObject>
|
||||
#include <QtPlugin>
|
||||
@@ -130,7 +130,7 @@ namespace BlackSimPlugin
|
||||
|
||||
QTimer* m_timer = nullptr;
|
||||
bool m_lobbyConnected = false;
|
||||
const BlackSim::CSimulatorInfo m_simulatorInfo = BlackSim::CSimulatorInfo::FS9();
|
||||
const BlackSim::CSimulatorPluginInfo m_simulatorInfo = BlackSim::CSimulatorPluginInfo::FS9();
|
||||
|
||||
};
|
||||
|
||||
@@ -153,7 +153,7 @@ namespace BlackSimPlugin
|
||||
QObject *parent) override;
|
||||
|
||||
//! Simulator info
|
||||
virtual BlackSim::CSimulatorInfo getSimulatorInfo() const override;
|
||||
virtual BlackSim::CSimulatorPluginInfo getSimulatorInfo() const override;
|
||||
|
||||
//! \copydoc BlackCore::ISimulatorFactory::createListener
|
||||
virtual BlackCore::ISimulatorListener *createListener(QObject *parent = nullptr) override;
|
||||
|
||||
@@ -26,7 +26,7 @@ namespace BlackSimPlugin
|
||||
{
|
||||
namespace FsCommon
|
||||
{
|
||||
CSimulatorFsCommon::CSimulatorFsCommon(const BlackSim::CSimulatorInfo &simInfo, BlackMisc::Simulation::IOwnAircraftProvider *ownAircraftProvider, IRemoteAircraftProvider *renderedAircraftProvider, QObject *parent) :
|
||||
CSimulatorFsCommon::CSimulatorFsCommon(const BlackSim::CSimulatorPluginInfo &simInfo, BlackMisc::Simulation::IOwnAircraftProvider *ownAircraftProvider, IRemoteAircraftProvider *renderedAircraftProvider, QObject *parent) :
|
||||
CSimulatorCommon(simInfo, ownAircraftProvider, renderedAircraftProvider, parent),
|
||||
m_fsuipc(new FsCommon::CFsuipc())
|
||||
{
|
||||
|
||||
@@ -81,7 +81,7 @@ namespace BlackSimPlugin
|
||||
protected:
|
||||
//! Constructor
|
||||
CSimulatorFsCommon(
|
||||
const BlackSim::CSimulatorInfo &simInfo,
|
||||
const BlackSim::CSimulatorPluginInfo &simInfo,
|
||||
BlackMisc::Simulation::IOwnAircraftProvider *ownAircraftProvider,
|
||||
BlackMisc::Simulation::IRemoteAircraftProvider *renderedAircraftProvider,
|
||||
QObject *parent = nullptr);
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
#include "blacksim/fscommon/bcdconversions.h"
|
||||
#include "blacksim/fsx/simconnectutilities.h"
|
||||
#include "blacksim/fsx/fsxsimulatorsetup.h"
|
||||
#include "blacksim/simulatorinfo.h"
|
||||
#include "blacksim/simulatorplugininfo.h"
|
||||
#include "blackmisc/simulation/aircraftmodel.h"
|
||||
#include "blackmisc/project.h"
|
||||
#include "blackmisc/avairportlist.h"
|
||||
@@ -39,7 +39,7 @@ namespace BlackSimPlugin
|
||||
namespace Fsx
|
||||
{
|
||||
CSimulatorFsx::CSimulatorFsx(IOwnAircraftProvider *ownAircraftProvider, IRemoteAircraftProvider *remoteAircraftProvider, QObject *parent) :
|
||||
CSimulatorFsCommon(CSimulatorInfo::FSX(), ownAircraftProvider, remoteAircraftProvider, parent)
|
||||
CSimulatorFsCommon(CSimulatorPluginInfo::FSX(), ownAircraftProvider, remoteAircraftProvider, parent)
|
||||
{
|
||||
Q_ASSERT(ownAircraftProvider);
|
||||
Q_ASSERT(remoteAircraftProvider);
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
#include "../fscommon/simulator_fscommon.h"
|
||||
#include "blackcore/simulator.h"
|
||||
#include "blackcore/interpolator_linear.h"
|
||||
#include "blacksim/simulatorinfo.h"
|
||||
#include "blacksim/simulatorplugininfo.h"
|
||||
#include "blackmisc/simulation/aircraftmodel.h"
|
||||
#include "blackmisc/simulation/simulatedaircraft.h"
|
||||
#include "blackmisc/avairportlist.h"
|
||||
@@ -218,7 +218,7 @@ namespace BlackSimPlugin
|
||||
|
||||
private:
|
||||
QTimer* m_timer;
|
||||
const BlackSim::CSimulatorInfo m_simulatorInfo = BlackSim::CSimulatorInfo::FSX();
|
||||
const BlackSim::CSimulatorPluginInfo m_simulatorInfo = BlackSim::CSimulatorPluginInfo::FSX();
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
#include "blacksim/fscommon/bcdconversions.h"
|
||||
#include "blacksim/fsx/simconnectutilities.h"
|
||||
#include "blacksim/fsx/fsxsimulatorsetup.h"
|
||||
#include "blacksim/simulatorinfo.h"
|
||||
#include "blacksim/simulatorplugininfo.h"
|
||||
#include "blackmisc/project.h"
|
||||
#include "blackmisc/avairportlist.h"
|
||||
#include "blackmisc/logmessage.h"
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
#include "simulator_fsxfactory.h"
|
||||
#include "simulator_fsx.h"
|
||||
#include "blacksim/simulatorinfo.h"
|
||||
#include "blacksim/simulatorplugininfo.h"
|
||||
#include "blackmisc/project.h"
|
||||
#include <QTimer>
|
||||
#include <QtConcurrent>
|
||||
@@ -24,9 +24,9 @@ namespace BlackSimPlugin
|
||||
return new CSimulatorFsx(ownAircraftProvider, renderedAircraftProvider, parent);
|
||||
}
|
||||
|
||||
BlackSim::CSimulatorInfo CSimulatorFsxFactory::getSimulatorInfo() const
|
||||
BlackSim::CSimulatorPluginInfo CSimulatorFsxFactory::getSimulatorInfo() const
|
||||
{
|
||||
return BlackSim::CSimulatorInfo::FSX();
|
||||
return BlackSim::CSimulatorPluginInfo::FSX();
|
||||
}
|
||||
|
||||
BlackCore::ISimulatorListener *CSimulatorFsxFactory::createListener(QObject *parent)
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
#define BLACKSIMPLUGIN_SIMULATOR_FSXFACTORY_H
|
||||
|
||||
#include "blackcore/simulator.h"
|
||||
#include "blacksim/simulatorinfo.h"
|
||||
#include "blacksim/simulatorplugininfo.h"
|
||||
|
||||
#include <simconnect/SimConnect.h>
|
||||
#include <QObject>
|
||||
@@ -39,7 +39,7 @@ namespace BlackSimPlugin
|
||||
QObject *parent) override;
|
||||
|
||||
//! \copydoc BlackCore::ISimulatorFactory::getSimulatorInfo
|
||||
virtual BlackSim::CSimulatorInfo getSimulatorInfo() const override;
|
||||
virtual BlackSim::CSimulatorPluginInfo getSimulatorInfo() const override;
|
||||
|
||||
//! \copydoc BlackCore::ISimulatorFactory::getListener
|
||||
virtual BlackCore::ISimulatorListener *createListener(QObject *parent = nullptr) override;
|
||||
|
||||
@@ -36,7 +36,7 @@ namespace BlackSimPlugin
|
||||
{
|
||||
|
||||
CSimulatorXPlane::CSimulatorXPlane(IOwnAircraftProvider *ownAircraftProvider, IRemoteAircraftProvider *remoteAircraftProvider, QObject *parent) :
|
||||
CSimulatorCommon(CSimulatorInfo::XP(), ownAircraftProvider, remoteAircraftProvider, parent)
|
||||
CSimulatorCommon(ownAircraftProvider, remoteAircraftProvider, parent)
|
||||
{
|
||||
m_watcher = new QDBusServiceWatcher(this);
|
||||
m_watcher->setWatchMode(QDBusServiceWatcher::WatchForUnregistration);
|
||||
@@ -458,7 +458,7 @@ namespace BlackSimPlugin
|
||||
void CSimulatorXPlaneListener::ps_serviceRegistered(const QString &serviceName)
|
||||
{
|
||||
if (serviceName == xbusServiceName())
|
||||
emit simulatorStarted(m_simulatorInfo);
|
||||
emit simulatorStarted();
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
@@ -194,7 +194,6 @@ namespace BlackSimPlugin
|
||||
private:
|
||||
QDBusConnection m_conn { "default" };
|
||||
QDBusServiceWatcher* m_watcher { nullptr };
|
||||
const BlackSim::CSimulatorInfo m_simulatorInfo = BlackSim::CSimulatorInfo::XP();
|
||||
|
||||
};
|
||||
|
||||
@@ -212,10 +211,7 @@ namespace BlackSimPlugin
|
||||
BlackMisc::Simulation::IRemoteAircraftProvider *renderedAircraftProvider,
|
||||
QObject *parent) override;
|
||||
|
||||
//! \copydoc BlackCore::ISimulatorFactory::getSimulatorInfo
|
||||
virtual BlackSim::CSimulatorInfo getSimulatorInfo() const override { return BlackSim::CSimulatorInfo::XP(); }
|
||||
|
||||
//! \copydoc BlackCore::ISimulatorFactory::getListener
|
||||
//! \copydoc BlackCore::ISimulatorFactory::createListener
|
||||
virtual BlackCore::ISimulatorListener *createListener(QObject *parent = nullptr) override { return new CSimulatorXPlaneListener(parent); }
|
||||
};
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"short_name" : "XP",
|
||||
"full_name" : "X-Plane"
|
||||
"name" : "swift_generic_xplane",
|
||||
"simulator" : "X-Plane",
|
||||
"description" : "X-Plane support via the xbus plugin"
|
||||
}
|
||||
Reference in New Issue
Block a user