This is required for MacOS 10.14 and later. This also requires an explanation why
access is required in the apps Info.plist. Hence added custom Info.plist templates
for each app.
Reason was: hardcoded channel spacing to 8.33kHz
As a result changed to channel spacing based on COM unit, which could also be changed at runtime
* the issue itself was in own aircraft context
* added functions for channel spacing
* changed to COM unit channel spacing (instead of hardcoded spacing)
* use Q_DECLARE_FLAGS NotificationFlag/Notification for sounds, not the weird version from very early swift days
* splt into h/cpp files
* added new sounds
The voice room callsign will be set from the current context values right
before a new connection is made. Therefore all updates in between are not
necessary and can be removed.
ref T354
Summary:
Up to now, the audio device settings were not persistent. With this
commit, the last audio device will be restored after application
start.
Reviewers: kbasan, msutcliffe
Reviewed By: msutcliffe
Differential Revision: https://dev.swift-project.org/D7
* Info for which machine audio setup is displayed
* Obtain audio "location"
* Remark: Audio can run on core and in GUI which is different from other contexts
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