Commit Graph

610 Commits

Author SHA1 Message Date
Klaus Basan
f7b50b3f5a refs #366, passing Simulator plugin info to drivers
Add. some finetuning
2015-04-11 02:09:23 +02:00
Klaus Basan
aafee8eafd refs #402, post merge feedback by MS 2015-04-11 02:09:10 +02:00
Klaus Basan
6634260970 refs #398, removed fix after RW has fixed it in vatlib 2015-04-08 23:04:36 +02:00
Michał Garapich
985a1caecf refs #396 BlackMisc: nw* goes to network/, hw* goes to hardware/ 2015-04-07 19:22:37 +02:00
Mathew Sutcliffe
2363fab8c1 refs #396 move Blackmisc PQ classes into subfolder 2015-04-07 19:22:30 +02:00
Klaus Basan
0ab755d510 refs #396 subfolders and renamed callsign list to callsign set
* subfolder audio
* subfolder geo
* adjusted samples, tests ....
2015-04-07 19:22:23 +02:00
Klaus Basan
32f60722c8 refs #396, move subproject BlackSim into BlackMisc::Simulation
* removed unused samples / tests
* fixed found Doxygen issues
* removed blacksimfreefunctions, now in BlackMisc::Simulation::registerMetadata()
* samples_vetcor_geo to samples_geo
2015-04-07 19:22:16 +02:00
Roland Winklmeier
78d3350bf3 refs #396 move Blackmisc Aviation classes into subfolder 2015-04-07 18:20:20 +02:00
Roland Winklmeier
4d09279c65 Use full qualified class name for ConnectionStatus.
Qt gets confused by the different ConnectionStatus enums we are using
and complains it cannot queue the argument. It only works when the
fully qualified class name is used.
2015-04-07 17:13:53 +02:00
Roland Winklmeier
ee195e3e20 Handle cases when no simulator is available properly in simulator context
In the past core was always loading one simulator plugin by default.
This has changed recently with the listeners. So m_simulator is not
guaranteed to be valid.
A proper fix in the future is to not even call them. At the moment they
are hard wired to network.
2015-04-03 13:30:22 +02:00
Michał Garapich
4d4acb20bc refs #366 cleanup
* Removed obsolete signal from IContextSimulator
* Removed connectToSimulator() method from IContextSimulator as it is no
longer relevant
* CSimulatorComponent updates automatically when simulator disconnects
* FS9 & FSX drivers update (including FSCommon)
2015-04-01 01:21:28 +02:00
Michał Garapich
63e48ae332 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
2015-04-01 01:20:25 +02:00
Michał Garapich
3897fb2d1a FS9 plugin cleanup
* Make host & lobby client plugin-global
* Post-rebase cleanups (FSX too)
2015-04-01 00:07:28 +02:00
Michał Garapich
924e094a38 Listen for simulators on another thread 2015-04-01 00:05:15 +02:00
Michał Garapich
570f4aa4ea Make FS9 works with ISimulatorListener
* The FS9 host is started in the Listener
* When FS9 starts up, it is called via the lobby to join the multiplayer
* Some minor changes in CContextSimulator
2015-04-01 00:05:12 +02:00
Michał Garapich
edc0646ab2 Make FSX works with ISimulatorListener.
SimConnect tries to connect to FSX every 5 seconds.
TODO: Use WinAPI to wait for FSX process to show up
2015-04-01 00:01:35 +02:00
Michał Garapich
5b4c2377b6 Initial "Auto" option
* Added ContextSimulator::listenForAllSimulators()
* Added "auto" option in SettingsSimulatorComponent
* Default plugin is UnspecifiedSim, which stands for "auto" option
2015-04-01 00:00:36 +02:00
Michał Garapich
a0033bee02 Lazy-load drivers when necessary
* Use JSON to get driver/simulator information
* Load driver plugin only when ISimulatorFactory is needed
2015-03-31 23:56:40 +02:00
Michał Garapich
afc22397bb JSON plugin metadata initial
* Added json files along with FILE macro for all drivers
* Get CSimulatorInfo from JSON rather than from ISimulatorFactory
2015-03-31 23:56:35 +02:00
Michał Garapich
c5a1a6048b Refactor Simulator connection status
* Removed obsolete and unused signals (ISimulator, CSimulatorContext)
* Removed ISimulator::ConnectionStatus enum
2015-03-31 23:56:32 +02:00
Michał Garapich
9d37a0876d Style 2015-03-31 23:52:32 +02:00
Michał Garapich
45f48f7594 Listen for X-Plane to start 2015-03-31 23:52:30 +02:00
Michał Garapich
adc623f0e7 Add ISimulatorListener interface 2015-03-31 23:52:29 +02:00
Klaus Basan
28132d8e40 Fixed warnings from compiler and Jenkins build 2015-03-29 20:15:25 +02:00
Klaus Basan
f95504a2c8 refs #398, asserts for frequency
the line
if (frequencyKHz < 100000) { frequencyKHz += 100000; }
might be removed after the fix
2015-03-29 20:15:21 +02:00
Klaus Basan
48655bf551 refs #395, signatures for max.aircraft and max.range
(!) This in an intermediate step, the feature is not yet fully operational

* max distance for rendering as simulator property
* set max distance / aircraft from GUI

As result of the latest meeting
* changed CCallsignList to CCollection
* fixed some warning with elevated compiler settings (e.g. removed qint values -> int)
2015-03-29 20:15:13 +02:00
Klaus Basan
53afe798d4 Fixed warnings as mentioned in
https://dev.vatsim-germany.org/boards/22/topics/2587?r=2598#message-2598
and found by
+win32-msvc*:QMAKE_CXXFLAGS_WARN_ON *= /Wall /W3 /wd4640 /wd4619 /wd4350 /wd4351
2015-03-29 20:15:09 +02:00
Klaus Basan
70670b74c6 refs #393, allow to highlight a certain aircraft by blinking
* signatures in contexts
* some specialized functions in aircraft list
* context menus in aircraft view
* default "blinking" implementation in driver common base class
2015-03-29 20:15:05 +02:00
Klaus Basan
66da4d7353 refs #394, LED to display when mapper is ready
* function in context for models count
* adjusted status bar component
* in same step: menu to toggle "window on top"
2015-03-29 20:15:01 +02:00
Klaus Basan
48dc360237 Removed old model/views for aircraft, now all with simulated aircraft
Updates of models in view now manually / automatic possible
Allow to reload models (in backend)
2015-03-20 17:11:38 +01:00
Roland Winklmeier
afed33dbbf Adaptions to latest vatlib
The latest vatlib fixes some ambigious methods in the interface and
makes them more clear. Additional it adds a severity level to the
log handlers. Both causing the header to be source incompatible and
therefore need smaller changes in swift.
2015-03-20 17:11:35 +01:00
Roland Winklmeier
0760a67138 Handle users joining and leaving properly in audio context and gui
Before this change signals when users were joining or leaving
the voice room were not properly handled. A new signal in audio
context is emitted now and gui will rebuild the user list when it
is emitted.
2015-03-20 17:11:31 +01:00
Klaus Basan
a50e45e451 Fixed updates of view when simulated aircraft values are updated.
* renamed view to simulated aircraft view
* utility function for bool -> on/off
2015-03-20 17:11:27 +01:00
Klaus Basan
066515fb9b As of RW/KB workshop
* changed aircraft view to siumlated aircraft models / views
* functionality to change fast pos. updates (signals, slots)
* allow to request text message widget from aircraft component
2015-03-20 17:11:23 +01:00
Klaus Basan
3153c2012b As of workshop RW/KB
* Allow to "jump" to text message channel from ATC / aircraft
* changed timer connections for components to new SLOT syntax
* housekeeping:
** new function in network context for station by callsign
** refactored textmessage component, allow to select tab by slot
** wired up signal / slots in main GUI
** removed unused functions
** allow to select area and "myself" in infoarea
2015-03-20 17:11:14 +01:00
Klaus Basan
79b3cf3cd3 Misc. imorvements as discussed in RW/KB worksho
* preparation for a context menu to send text messages from ATC/aircraft view
* preparation for context menu for fast pos. updates
* reverse ICAO lookup at login screen
* display fast updates / parts in GUI
* moved max- aircraft into settings
* made serverselection own component
2015-03-20 17:11:10 +01:00
Klaus Basan
fb12c608b1 As a result of the RW/KB workshop.
Prepared functions for interim position updates
* isFastPositionSendingEnabled(), enableFastPositionSending(bool enable)
* setFastPositionEnabledCallsigns ,  getFastPositionEnabledCallsigns()
2015-03-20 17:11:06 +01:00
Klaus Basan
269c65b578 As of workshop RW/KB, improved / fixed text messages
Also refs #351
* messages can be formatted with style sheet
* fixed: removed command from message
* added originator to command line
* msg parsing now in core
* using ITimestampBased for text messages and status messages
* allow to resize rows to content (view base)
* model / views for text messages
* removed old qt stylesheets
2015-03-20 17:10:58 +01:00
Klaus Basan
3560508154 Set simulator info when connecting to network 2015-03-20 17:10:51 +01:00
Klaus Basan
5ed95aee3d refs #391, allow to send aircraft parts from GUI
* GUI component for aircraft parts
* remote aircraft selector component
* Adjusted GUI for internals component
* Enable / disable debug messages from GUI
* Allow to init engines directly
* Removed unused async sort in sequence

In same step fixed found issues in interpolator
* allow to set max rendered aircraft
2015-03-20 17:08:23 +01:00
Klaus Basan
f31445e873 refs #386, further improvements on interpolation
* extended unit tests for interpolator / parts testing
* allow to skip sorting when splitting by time
* update ot aircraft to FSX in own member function
* Skip time sync parts (FSX) when disabled
2015-03-20 17:08:14 +01:00
Klaus Basan
eca8c5b637 Reflecting discussed changes for interpolation performance refs #386
(based on FSX testing)
* Only send changed situation to SIM
* Split sending of parts / situations
* Only send parts with a reduced frequency (means slower as positions)
* Mark geodetic height as null for default values (the value is usually unavailable)
* Fixed altitude to MSL for network data
* Trace which aircrafts support aircraft parts via network
* Renamed insert_fron push_front (as proposed by Roland)

Status quo / lessons learnt
* On slower PCs jitter is still noticed for interpolated aircraft.
* Running interpolation in an independent process (aka core, not in GUI) reduced load dependencies
  => it seems to make sense to run driver in own thread
* The onGround flag in parts seems clumsy as it required to retrieve parts for position updates
* In interpolation performance really matters
2015-03-20 17:00:41 +01:00
Klaus Basan
ca6cd9c063 Disabled updates of airspace monitor's situations / parts
Currently not used, for performance testing
2015-03-20 16:49:31 +01:00
Klaus Basan
7e39587226 Passing connection status to airspace monitor.
When the network connection is terminated, airspace monitor
can still recevice pending signals from vatlib. Those have to be ignored.

Otherwise it can happen aircraft (.. etc.) are added again to airspace,
which gives inconsistent results.
2015-03-20 16:49:28 +01:00
Klaus Basan
688b89e313 Doxygen 2015-03-20 16:49:23 +01:00
Klaus Basan
420a47e90c refs #369, changed interpolation to a working (but still too bad performing) version
* using split by callsign everywhere
* helper function to insert_front
* revised linear interpolator
* renamed to remoteAircraft
* renamed to container() in providers (gettters are usually copies)

Issues why changes did so long:
* insert in list is not adding in front, but same as push_back (that was confusing)
* naming of values before/after in interpolator was ambigious
* QMap keeps values sorted by key, not arbitrarily
2015-03-20 16:49:07 +01:00
Klaus Basan
190e2c3757 refs #386, performance issues
* keep split per callsign map in IInterpolator (so it is available for all interpolators)
* added signals to provider to add split situations / callsigns
* adjustments to airspace / context for those signals
* thread safe access to those from interpolator
* renamed from rendered to remote aircraft as discussed
* adjust samples
* removed no longer required functions in timestampobjectlist
2015-03-20 16:49:03 +01:00
Klaus Basan
f8bebf5ffa refs #386, performance issues
* keep split per callsign map in IInterpolator (so it is available for all interpolators)
* Interpolator using CWorker, so it can run in background
* added signals to provider to add split situations / callsigns
* adjustments to airspace / context for those signals
* thread safe access to those from interpolator
* renamed from rendered to remote aircraft as discussed
* adjust samples
* removed no longer required functions in timestampobjectlist
* changed connectioStatusChanged from uint -> int
2015-03-20 16:48:58 +01:00
Klaus Basan
c55681fce5 refs #375, prepared flag to enable / disable sending interim positions 2015-03-20 16:34:29 +01:00
Klaus Basan
76f5d33d7b Doxygen 2015-03-20 16:34:14 +01:00