* some started with get/some not (removed get, get is normally used for our getters)
* some used swift, getSwiftXZY dir (removed swift)
* used full word "directory", not dir/directory mixed
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
CBuildConfig including private keys etc. should not be part of a
public library API. Therefore link it into a static library, which
is not available to end users.
refs #645
* DBus test for CSimulatedAircraft
* Output of metatypes in GUI/core
* Changed output from qDebug() to QTextStream
* Variant test for CSimulatedAircraft
* Cockpit, max frequency corrected to 136,975
* Text message components, tabs show cockpit frequencies
* fixed icons
* some aggresive sound for voice room joined/left, until full testing is complete
Notification sounds are used in BlackGui components. They require the whole Qt multimedia library. However, GUI only triggers playing the sound. As a workaround the notification sounds enumeration has been moved in an own class, and moved to the subproject BlackMisc. Hence it is possible to compile BlackGui without dependency to BlackSound.
In #85 the voice context will be renamed to audio context, so the CValueObject classes will be renamed to namespace Audio too.
As #140 changes many CValueClasses, this crossover change is done in the same unit of work.