Commit Graph

164 Commits

Author SHA1 Message Date
Roland Winklmeier
fb3df51013 Move aircraft matching out of simulator plugins
All model matching will be done simulator independent in
CContextSimulator. The simulator specific part is kept in the model
set.
This also caused the signal modelMatchingCompleted to be renamed to
aircraftRenderingChanged, since the name wasn't accurate anymore.
Both getInstalledModels(), getInstalledModelsCount() and iconForModel()
were removed from the ISimulator interface.

refs #765
2016-09-19 16:30:05 +02:00
Roland Winklmeier
40d4c7774d Make originators calling updateAircraftModel identifable
refs #765
2016-09-19 16:29:37 +02:00
Roland Winklmeier
004ca4f0ca Rename argument simulatorInfo to simulatorPluginInfo 2016-09-19 16:29:37 +02:00
Roland Winklmeier
5486596335 Refactor SECLAL player into new threaded player class
The reason for moving the implementation out from CSoundGenerator into
its own class is, because CSoundGenerator was a very complex and
obscure class. It mixed many tasks in one place. CSelcalPlayer
is designed to play SELCALs only.

The following design changes have been made, compared to CSoundGenerator:
* Use pull mode instead of push mode. QBuffer is used as the QIODevice and
  is a wrapper around QByteArray. Therefore it is not necessary to
  implement our own QIODevice.
* Internally it uses a CThreadedSelcalPlayer to relieve the load of the
  main thread. CThreadedSelcalPlayer inherits CContinuousWorker, no
  low level QThread implementation was necessary.
* Push mode was not implemented.
* It is important that the QAudioOutput is allocated in the worker thread.
  QAudioOutput allocates internal objects, which cannot be moved to
  the worker thread.
* Data caching. The generated seclal audio data is cached.

refs #736
2016-08-26 21:05:24 +01:00
Roland Winklmeier
5dd5ff501d Initialize simulator plugin settings in CContextSimulator constructor 2016-08-05 11:49:32 +02:00
Roland Winklmeier
c92a8ea32c Refactor CContextSimulator::loadSimulatorPlugin
When a plugin is loaded, existing aircrafts should not be added
immediatly, but as soon as the simulator is simulating.
CContextSimulator also handles now the case that no simulator is
attached and all aircraft slots are now doing nothing instead of
raising an assert.

refs #549
2016-08-05 11:49:32 +02:00
Mathew Sutcliffe
7a34cc6d9a refs #697 BlackCore settings renamed and reorganized. 2016-08-03 02:19:11 +01:00
Mathew Sutcliffe
8275b0d9bf refs #697 BlackMisc settings renamed and reorganized. 2016-08-03 02:19:08 +01:00
Roland Winklmeier
7a9577efef Don't assert if CPluginManagerSimulator::createListener returns nullptr
CPluginManagerSimulator::createListener returns nullptr if no
listener could be created, e.g. because the plugin could not be loaded
due to missing dependencies. Handle this scenario properly instead of
raising an assert.

refs #669
2016-07-26 13:38:18 +02:00
Klaus Basan
5236688e03 refs #689, refs #703, re-applied context change to subdir version
Change MetarSet to MetarList:
CMetarSet was implemented as a collection. This only makes sense for values which have one member variable only or hardly ever change. METARs often change and therefore a collection didn’t make much sense.
Additional profiling showed that a sequence has better algorithmic performance.
2016-07-14 18:49:25 +02:00
Klaus Basan
86d85c6b60 refs #707, removed originator from some signatures
* not used in remote aircraft provider
* adjusted all using interfaces
2016-07-14 18:49:15 +02:00
Klaus Basan
19040af654 refs #704, moved VATSIM specific stuff to ns VATSIM/subdir 2016-07-14 18:49:11 +02:00
Klaus Basan
4eaea5d480 refs #703, adjustments
* removed using as discussed on slack
* Doxyfile as discussed
* Doxygen \cond
2016-07-14 18:49:09 +02:00
Klaus Basan
d782839cb8 refs #703, moved context to subdir
* ns: Context
* adjusted using classes
2016-07-14 18:49:08 +02:00