diff options
author | Tomi Korpipää <tomi.korpipaa@digia.com> | 2013-09-03 09:03:37 +0300 |
---|---|---|
committer | Tomi Korpipää <tomi.korpipaa@digia.com> | 2013-09-03 09:07:54 +0300 |
commit | 12f78f8ed991d816411b1ba6718a34e8e26e2eb8 (patch) | |
tree | ccd0e9d4ea0853d1a458494bcf0dd1b33a3c9c74 /tests/spectrum/spectrumapp/utils.h | |
parent | de88514dba523734170652d75a5cefcc7feb7c6c (diff) |
Fixed issues from Improve examples task
Task-number: QTRD-2239
+ Moved spectrum to tests
+ Added audiolevels to examples (implementation pending..)
Change-Id: If20ce3014211a82dbe0142557beee5776cf51708
Change-Id: If20ce3014211a82dbe0142557beee5776cf51708
Reviewed-by: Mika Salmela <mika.salmela@digia.com>
Diffstat (limited to 'tests/spectrum/spectrumapp/utils.h')
-rw-r--r-- | tests/spectrum/spectrumapp/utils.h | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/tests/spectrum/spectrumapp/utils.h b/tests/spectrum/spectrumapp/utils.h new file mode 100644 index 00000000..f0ae5633 --- /dev/null +++ b/tests/spectrum/spectrumapp/utils.h @@ -0,0 +1,90 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc +** All rights reserved. +** For any questions to Digia, please use contact form at http://qt.digia.com +** +** This file is part of the QtDataVis3D module. +** +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. +** +** If you have questions regarding the use of this file, please use +** contact form at http://qt.digia.com +** +****************************************************************************/ + +#ifndef UTILS_H +#define UTILS_H + +#include <QtCore/qglobal.h> +#include <QDebug> + +QT_FORWARD_DECLARE_CLASS(QAudioFormat) + +//----------------------------------------------------------------------------- +// Miscellaneous utility functions +//----------------------------------------------------------------------------- + +qint64 audioDuration(const QAudioFormat &format, qint64 bytes); +qint64 audioLength(const QAudioFormat &format, qint64 microSeconds); + +QString formatToString(const QAudioFormat &format); + +qreal nyquistFrequency(const QAudioFormat &format); + +// Scale PCM value to [-1.0, 1.0] +qreal pcmToReal(qint16 pcm); + +// Scale real value in [-1.0, 1.0] to PCM +qint16 realToPcm(qreal real); + +// Check whether the audio format is PCM +bool isPCM(const QAudioFormat &format); + +// Check whether the audio format is signed, little-endian, 16-bit PCM +bool isPCMS16LE(const QAudioFormat &format); + +// Compile-time calculation of powers of two + +template<int N> class PowerOfTwo +{ public: static const int Result = PowerOfTwo<N-1>::Result * 2; }; + +template<> class PowerOfTwo<0> +{ public: static const int Result = 1; }; + + +//----------------------------------------------------------------------------- +// Debug output +//----------------------------------------------------------------------------- + +class NullDebug +{ +public: + template <typename T> + NullDebug& operator<<(const T&) { return *this; } +}; + +inline NullDebug nullDebug() { return NullDebug(); } + +#ifdef LOG_ENGINE +# define ENGINE_DEBUG qDebug() +#else +# define ENGINE_DEBUG nullDebug() +#endif + +#ifdef LOG_SPECTRUMANALYSER +# define SPECTRUMANALYSER_DEBUG qDebug() +#else +# define SPECTRUMANALYSER_DEBUG nullDebug() +#endif + +#ifdef LOG_WAVEFORM +# define WAVEFORM_DEBUG qDebug() +#else +# define WAVEFORM_DEBUG nullDebug() +#endif + +#endif // UTILS_H |