mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-02 15:15:50 +08:00
refs #848, parse command line in simulator
* added default implementation * sims can override parseDetails for specific cmd lines * enable/disable FSUIPC in fscommon part * added useFsuipc(bool on)
This commit is contained in:
committed by
Mathew Sutcliffe
parent
15020b2d5f
commit
c609c555b4
@@ -144,6 +144,16 @@ namespace BlackCore
|
||||
//! Driver will be unloaded
|
||||
virtual void unload() = 0;
|
||||
|
||||
//! \addtogroup commandline
|
||||
//! @{
|
||||
//! <pre>
|
||||
//! .drv unload unload driver CSimulatorCommon
|
||||
//! .drv fsuipc on|off enable/disable FSUIPC (if applicable) BlackSimPlugin::FsCommon::CSimulatorFsCommon
|
||||
//! </pre>
|
||||
//! @}
|
||||
//! Parse command line
|
||||
virtual bool parseCommandLine(const QString &commandLine, const BlackMisc::CIdentifier &originator) = 0;
|
||||
|
||||
//! Status to string
|
||||
static QString statusToString(int status);
|
||||
|
||||
|
||||
@@ -201,6 +201,12 @@ namespace BlackCore
|
||||
this->reverseLookupAndUpdateOwnAircraftModel(model);
|
||||
}
|
||||
|
||||
bool CSimulatorCommon::parseDetails(const CSimpleCommandParser &parser)
|
||||
{
|
||||
Q_UNUSED(parser);
|
||||
return false;
|
||||
}
|
||||
|
||||
void CSimulatorCommon::reverseLookupAndUpdateOwnAircraftModel(const BlackMisc::Simulation::CAircraftModel &model)
|
||||
{
|
||||
Q_ASSERT_X(sApp, Q_FUNC_INFO, "Missing sApp");
|
||||
@@ -323,6 +329,25 @@ namespace BlackCore
|
||||
return removed;
|
||||
}
|
||||
|
||||
bool CSimulatorCommon::parseCommandLine(const QString &commandLine, const CIdentifier &originator)
|
||||
{
|
||||
if (this->isMyIdentifier(originator)) { return false; }
|
||||
if (commandLine.isEmpty()) { return false; }
|
||||
CSimpleCommandParser parser(
|
||||
{
|
||||
".plugin", ".drv", ".driver"
|
||||
});
|
||||
parser.parse(commandLine);
|
||||
if (!parser.isKnownCommand()) { return false; }
|
||||
|
||||
if (parser.matchesPart(1, "unload"))
|
||||
{
|
||||
this->unload();
|
||||
return true;
|
||||
}
|
||||
return this->parseDetails(parser);
|
||||
}
|
||||
|
||||
void CSimulatorCommon::ps_oneSecondTimer()
|
||||
{
|
||||
blinkHighlightedAircraft();
|
||||
|
||||
@@ -37,6 +37,8 @@
|
||||
|
||||
namespace BlackMisc
|
||||
{
|
||||
class CSimpleCommandParser;
|
||||
|
||||
namespace Aviation
|
||||
{
|
||||
class CAircraftParts;
|
||||
@@ -69,8 +71,7 @@ namespace BlackCore
|
||||
//! Destructor
|
||||
virtual ~CSimulatorCommon();
|
||||
|
||||
//! \name ISimulator implementations
|
||||
//! @{
|
||||
// --------- ISimulator implementations ------------
|
||||
virtual BlackMisc::Simulation::CAircraftModel getDefaultModel() const override;
|
||||
virtual void setInterpolationAndRenderingSetup(const BlackMisc::Simulation::CInterpolationAndRenderingSetup &setup) override;
|
||||
virtual BlackMisc::Simulation::CInterpolationAndRenderingSetup getInterpolationAndRenderingSetup() const override;
|
||||
@@ -80,7 +81,8 @@ namespace BlackCore
|
||||
virtual BlackMisc::Aviation::CAirportList getAirportsInRange() const override;
|
||||
virtual void unload() override;
|
||||
virtual int physicallyRemoveMultipleRemoteAircraft(const BlackMisc::Aviation::CCallsignSet &callsigns) override;
|
||||
//! @}
|
||||
virtual bool parseCommandLine(const QString &commandLine, const BlackMisc::CIdentifier &originator) override;
|
||||
// --------- ISimulator implementations ------------
|
||||
|
||||
protected slots:
|
||||
//! \name Connected with remote aircraft provider signals
|
||||
@@ -154,6 +156,9 @@ namespace BlackCore
|
||||
//! Set own model
|
||||
void reverseLookupAndUpdateOwnAircraftModel(const QString &modelString);
|
||||
|
||||
//! Parse driver specific details for ISimulator::parseCommandLine
|
||||
virtual bool parseDetails(const BlackMisc::CSimpleCommandParser &parser);
|
||||
|
||||
BlackMisc::Simulation::IInterpolator *m_interpolator = nullptr; //!< interpolator instance
|
||||
bool m_pausedSimFreezesInterpolation = false; //!< paused simulator will also pause interpolation (so AI aircraft will hold)
|
||||
BlackMisc::Simulation::CAircraftModel m_defaultModel; //!< default model
|
||||
|
||||
Reference in New Issue
Block a user