Commit Graph

4 Commits

Author SHA1 Message Date
Roland Winklmeier
a60ee4a7dd Use override for destructors 2018-08-25 22:12:06 +02:00
Klaus Basan
8aed8f598e Ref T105, remove empty cleanup functions 2017-09-24 19:50:17 +01: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