6 #ifndef SWIFT_CORE_CONTEXTSIMULATOR_H
7 #define SWIFT_CORE_CONTEXTSIMULATOR_H
35 #define SWIFT_CORE_CONTEXTSIMULATOR_INTERFACENAME "org.swift_project.swift_core.contextsimulator"
39 #define SWIFT_CORE_CONTEXTSIMULATOR_OBJECTPATH "/simulator"
41 class QDBusConnection;
48 class CSimulatedAircraft;
51 namespace swift::core::context
61 static const QString &InterfaceName();
64 static const QString &ObjectPath();
203 bool incremental) = 0;
225 virtual swift::misc::simulation::CInterpolationSetupList
240 bool ignoreSameAsGlobal) = 0;
247 bool isSimulatorAvailable()
const;
250 bool isSimulatorSimulating()
const;
ContextMode
How to handle a given context.
The class providing facades (the contexts) for all DBus relevant operations.
Base for all context classes.
virtual swift::misc::CStatusMessageList verifyPrerequisites() const =0
Verify prerequisites for simulation like an existing model set.
virtual bool doMatchingAgain(const swift::misc::aviation::CCallsign &callsign)=0
Repeat the matching callsign.
virtual bool resetToModelMatchingAircraft(const swift::misc::aviation::CCallsign &callsign)=0
Reset model by matching it again.
virtual void restoreDisabledModels()=0
Restore the models removed with CAircraftMatcher::disableModelForMatching.
virtual bool startSimulatorPlugin(const swift::misc::simulation::CSimulatorPluginInfo &simulatorInfo)=0
Load and start specific simulator plugin.
virtual bool isKnownModelInSet(const QString &modelstring) const =0
Known model?
void renderRestrictionsChanged(bool restricted, bool enabled, int maxAircraft, const swift::misc::physical_quantities::CLength &maxRenderedDistance)
Render restrictions have been changed.
virtual void recalculateAllAircraft()=0
Recalculate all aircraft.
virtual swift::misc::simulation::CSimulatorInfo simulatorsWithInitializedModelSet() const =0
Simulators which have an initialized model set.
virtual void stopSimulatorPlugin(const swift::misc::simulation::CSimulatorPluginInfo &simulatorInfo)=0
Stop listener or unload the given plugin (if currently loaded)
virtual bool setInterpolationAndRenderingSetupsPerCallsign(const swift::misc::simulation::CInterpolationSetupList &setups, bool ignoreSameAsGlobal)=0
Set all setups per callsign.
virtual swift::misc::simulation::CSimulatorPluginInfo getSimulatorPluginInfo() const =0
Simulator info, currently loaded plugin.
void validatedModelSet(const swift::misc::simulation::CSimulatorInfo &simulator, const swift::misc::simulation::CAircraftModelList &valid, const swift::misc::simulation::CAircraftModelList &invalid, bool stopped, const swift::misc::CStatusMessageList &msgs)
Validated model set.
void addingRemoteModelFailed(const swift::misc::simulation::CSimulatedAircraft &aircraft, bool disabled, bool failover, const swift::misc::CStatusMessage &message)
Adding a remote aircraft failed.
virtual QStringList getModelSetCompleterStrings(bool sorted) const =0
Model set completer string.
virtual void disableModelsForMatching(const swift::misc::simulation::CAircraftModelList &removedModels, bool incremental)=0
Remove a model for matching.
virtual void setInterpolationAndRenderingSetupGlobal(const swift::misc::simulation::CInterpolationAndRenderingSetupGlobal &setup)=0
Set the global setup.
virtual bool isValidationInProgress() const =0
Validation in progress.
virtual int checkListeners()=0
Check all listeners enabled if simulator is connected.
virtual swift::misc::simulation::CAircraftModelList getDisabledModelsForMatching() const =0
The disabled models for matching.
void vitalityLost()
A formerly vital driver is no longer vital/responding.
virtual swift::misc::CStatusMessageList getMatchingMessages(const swift::misc::aviation::CCallsign &callsign) const =0
Get mapping messages.
QString getPathAndContextId() const
Id and path name for round trip protection.
void interpolationAndRenderingSetupChanged()
Setup changed.
void autoPublishDataWritten(const swift::misc::simulation::CSimulatorInfo &simulator)
Auto publish data written for simulator.
void ownAircraftModelChanged(const swift::misc::simulation::CAircraftModel &model)
Emitted when own aircraft model changes.
virtual int doMatchingsAgain()=0
Repeat all matchings.
void simulatorChanged(const swift::misc::simulation::CSimulatorInfo &simulator)
Same as simulatorPluginChanged, only with simulator signature.
void modelSetChanged(const swift::misc::simulation::CSimulatorInfo &simulator)
Model set ready or changed.
virtual int removeModelsFromSet(const swift::misc::simulation::CAircraftModelList &removeModels)=0
Remove models from set.
void simulatorPluginChanged(const swift::misc::simulation::CSimulatorPluginInfo &info)
Simulator plugin loaded / unloaded (default info)
virtual swift::misc::simulation::CAircraftModelList getModelSetModelsStartingWith(const QString &modelString) const =0
Models for model string.
virtual swift::misc::simulation::CAircraftModelList getModelSet() const =0
Installed models in simulator eco system.
virtual swift::misc::simulation::CAircraftMatcherSetup getMatchingSetup() const =0
Get matching setup.
void modelMatchingCompleted(const swift::misc::simulation::CSimulatedAircraft &aircraft)
A single model has been matched for given aircraft.
virtual swift::misc::simulation::CInterpolationSetupList getInterpolationAndRenderingSetupsPerCallsign() const =0
Get all setups per callsign.
virtual swift::misc::CStatusMessageList getInterpolationMessages(const swift::misc::aviation::CCallsign &callsign) const =0
Interpolation messages.
virtual swift::misc::simulation::CInterpolationAndRenderingSetupPerCallsign getInterpolationAndRenderingSetupPerCallsignOrDefault(const swift::misc::aviation::CCallsign &callsign) const =0
Get the setup for callsign, if not existing the global setup.
void matchingSetupChanged()
Matching setup changed.
void driverMessages(const swift::misc::CStatusMessageList &messages)
Relevant simulator messages to be explicitly displayed.
virtual int getModelSetCount() const =0
Number of installed models in simulator eco system.
virtual swift::misc::simulation::CSimulatorInternals getSimulatorInternals() const =0
Simulator setup.
void simulatorStatusChanged(int status)
Simulator combined status.
virtual void setMatchingSetup(const swift::misc::simulation::CAircraftMatcherSetup &setup)=0
Set matching setup.
virtual bool testRemoteAircraft(const swift::misc::simulation::CSimulatedAircraft &aircraft, bool add)=0
Test a remote aircraft.
virtual bool testUpdateRemoteAircraft(const swift::misc::aviation::CCallsign &cs, const swift::misc::aviation::CAircraftSituation &situation, const swift::misc::aviation::CAircraftParts &parts)=0
Test update remote aircraft.
void insufficientFrameRateDetected(bool fatal)
Frame rate has fallen too far below the threshold to maintain consistent sim rate.
virtual swift::misc::simulation::settings::CSimulatorSettings getSimulatorSettings() const =0
Get the current simulator settings.
virtual bool requestElevationBySituation(const swift::misc::aviation::CAircraftSituation &situation)=0
Request elevation, there is no guarantee the requested elevation will be available in the provider.
void simulatorSettingsChanged()
Simulator settings have been changed.
virtual swift::misc::simulation::MatchingLog isMatchingMessagesEnabled() const =0
Enabled mapping logging?
virtual swift::misc::simulation::CInterpolationAndRenderingSetupGlobal getInterpolationAndRenderingSetupGlobal() const =0
The global setup.
virtual void enableMatchingMessages(swift::misc::simulation::MatchingLog enabled)=0
Enable mapping logging.
virtual bool triggerModelSetValidation(const swift::misc::simulation::CSimulatorInfo &simulator)=0
Trigger model set validation.
void airspaceSnapshotHandled()
An airspace snapshot was handled.
void aircraftRenderingChanged(const swift::misc::simulation::CSimulatedAircraft &aircraft)
Aircraft rendering changed.
virtual QStringList getModelSetStrings() const =0
Model strings.
IContextSimulator(CCoreFacadeConfig::ContextMode mode, CCoreFacade *runtime)
Constructor.
virtual ISimulator::SimulatorStatus getSimulatorStatus() const =0
Simulator combined status.
virtual swift::misc::simulation::CSimulatorInfo getModelSetLoaderSimulator() const =0
Get the model set loader simulator directly.
virtual bool setSimulatorSettings(const swift::misc::simulation::settings::CSimulatorSettings &settings, const swift::misc::simulation::CSimulatorInfo &simulator)=0
Set settings for give simulator.
virtual swift::misc::simulation::CSimulatorPluginInfoList getAvailableSimulatorPlugins() const =0
Return list of available simulator plugins.
virtual swift::misc::geo::CElevationPlane findClosestElevationWithinRange(const swift::misc::geo::CCoordinateGeodetic &reference, const swift::misc::physical_quantities::CLength &range) const =0
Find closest elevation (or return NULL)
virtual bool followAircraft(const swift::misc::aviation::CCallsign &callsign)=0
Follow aircraft im simulator view.
virtual void setModelSetLoaderSimulator(const swift::misc::simulation::CSimulatorInfo &simulator)=0
Set the model set loader simulator directly.
~IContextSimulator()
Destructor.
virtual swift::misc::simulation::CMatchingStatistics getCurrentMatchingStatistics(bool missingOnly) const =0
Current matching statistics.
Streamable status message, e.g.
Status messages, e.g. from Core -> GUI.
Value object encapsulating information of aircraft's parts.
Value object encapsulating information of an aircraft's situation.
Value object encapsulating information of a callsign.
Plane of same elevation, can be a single point or larger area (e.g. airport)
Physical unit length (length)
Aircraft model (used by another pilot, my models on disk)
Value object encapsulating a list of aircraft models.
Value object for interpolator and rendering.
Value object for interpolator and rendering per callsign.
Value object for matching statistics.
Comprehensive information of an aircraft.
Simple hardcoded info about the corresponding simulator.
Simulator internals for flight simulators. Those are obtained from a running simulator and represent ...
Describing a simulator plugin.
Value object encapsulating a list of SimulatorInfo objects.
Settings for simulator Driver independent parts (such as directories), also used in model loaders.
#define SWIFT_CORE_CONTEXTSIMULATOR_INTERFACENAME
DBus interface for context.
Free functions in swift::misc.
#define SWIFT_CORE_EXPORT
Export a class or function from the library.