* The `changed`flag in interpolation was faulty.
* It was able to determine if the value was really changed by interpolation, which was the same as indicating that the value was interpolated.
* But there were cases, when the value was interpolated and not changed.
* Also there were cases when the value was changed, but not interpolated.
This commit adds methods to register for live FSD message reception. The
amount of traffic can be quite high, therefore no normal signal is used -
which would be available via DBus. Instead one has to connect manually
by passing a functor. This guarantees that we communicate only in-process.
If someone tries to connect on the proxy side, the connection will fail.
This needs to be handled properly in client code.
This commit also adds a method to write the FSD message to a selected file.
Maniphest Tasks: T222
* Before this commit, only the true altitude was known for an aircraft situation. The pressure altitude was not available anywhere yet.
* This caused a wrong altitude in radar clients.
* We fix this reading the pressure altitude from the simulators and set it in the own aircraft situation.
* MS Flight Simulators have the pressure altitude in the APIs available.
* For X-Plane and emulated simulator, we need to calculate it from the pressure at sea level.
* Finally, we use the new available pressure altitude to send it to the FSD server.
Maniphest Tasks: Ref T223
Altitude can have different meanings in aviation. So far all our
altitudes were true altitudes. But now we also require pressure altitude
including a conversion method between the two.
Maniphest Tasks: T223
* null/anonymous identifier
* CIdentifier can be linked with QObject and
* CIdentifier reflects name changes of QObject (UI components change name after ctor call)
* also remember last server not VATSIM server
* remember last model used
* server list selector uses remembered value
* login component sets those values
a) 23 performance useInitializationList false Variable 'm_artifactsPilotClient' is assigned in constructor body. Consider performing initialization in initialization list.
b) 33 performance passedByValue false Function parameter 'il' should be passed by reference.
a) is clear, but b) seems to be wrong, hidden by "cppcheck-suppress"