summaryrefslogtreecommitdiffstats
path: root/tests/spectrum/spectrumapp/utils.h
diff options
context:
space:
mode:
authorTomi Korpipää <tomi.korpipaa@digia.com>2013-09-03 09:03:37 +0300
committerTomi Korpipää <tomi.korpipaa@digia.com>2013-09-03 09:07:54 +0300
commit12f78f8ed991d816411b1ba6718a34e8e26e2eb8 (patch)
treeccd0e9d4ea0853d1a458494bcf0dd1b33a3c9c74 /tests/spectrum/spectrumapp/utils.h
parentde88514dba523734170652d75a5cefcc7feb7c6c (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.h90
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