Commit Graph

12 Commits

Author SHA1 Message Date
Lars Toenning
f271d746ba Use =default for default constructor 2022-08-15 20:23:09 +01:00
Mat Sutcliffe
eb6b0ff289 Fix clang-tidy and clazy warnings 2021-08-29 17:02:27 +01:00
Mat Sutcliffe
33209fa1eb Use std::as_const (C++17 feature) 2021-07-13 17:56:31 +01:00
Klaus Basan
651e6bdacf Stop audio output for SELCAL player during shutdown 2020-06-12 18:42:39 +01:00
Klaus Basan
5718f95819 Tone player "myself" guard 2020-06-12 18:42:38 +01:00
Klaus Basan
5d9ea83b93 Ref T730, improved threaded tone player
* allow to re-init and get device info
* mutable mutex
2019-10-11 19:00:32 +01:00
Roland Rossgotterer
90e87835fc [AFV] Select audio device based on situational need
For AFV itself, a low latency device is required (which on Windows most likely will pick WASAPI).
For notifications and effects, the most compatible device is required (which on Windows will most likely fall back to QWindowsAudio).
2019-10-11 19:00:32 +01:00
Roland Rossgotterer
a2e3700739 Replace QAudioDeviceInfo with CAudioDeviceInfo where possible
QAudioDeviceInfo is a low level technical class, which shouldn't be used in higher level code. Remove it from all APIs
where possible and just create it in order to interface with QAudio
2019-10-11 19:00:31 +01:00
Klaus Basan
b65b2caa76 Ref T730, use m_deviceInfo.nearestFormat (makes player working with WSAPI plugin) 2019-10-11 19:00:30 +01:00
Mat Sutcliffe
e9a4c49d68 Ref T547 Update license masthead in all source code files. 2019-02-22 20:36:43 +00:00
Klaus Basan
18ab0e8459 Ref T105, minor adjustements in CThreadedTonePairPlayer 2017-09-24 19:50:09 +01: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