summaryrefslogtreecommitdiffstats
path: root/src/imports/audioengine/qdeclarative_attenuationmodel_p.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/imports/audioengine/qdeclarative_attenuationmodel_p.cpp')
-rw-r--r--src/imports/audioengine/qdeclarative_attenuationmodel_p.cpp364
1 files changed, 0 insertions, 364 deletions
diff --git a/src/imports/audioengine/qdeclarative_attenuationmodel_p.cpp b/src/imports/audioengine/qdeclarative_attenuationmodel_p.cpp
deleted file mode 100644
index 9d3c4fcb6..000000000
--- a/src/imports/audioengine/qdeclarative_attenuationmodel_p.cpp
+++ /dev/null
@@ -1,364 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the plugins of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qdeclarative_attenuationmodel_p.h"
-#include "qdeclarative_audioengine_p.h"
-#include "qdebug.h"
-
-#define DEBUG_AUDIOENGINE
-
-QT_USE_NAMESPACE
-
-QDeclarativeAttenuationModel::QDeclarativeAttenuationModel(QObject *parent)
- : QObject(parent)
- , m_engine(0)
-{
-}
-
-QDeclarativeAttenuationModel::~QDeclarativeAttenuationModel()
-{
-}
-
-void QDeclarativeAttenuationModel::setEngine(QDeclarativeAudioEngine *engine)
-{
- m_engine = engine;
-}
-
-QString QDeclarativeAttenuationModel::name() const
-{
- return m_name;
-}
-
-void QDeclarativeAttenuationModel::setName(const QString& name)
-{
- if (m_engine) {
- qWarning("AttenuationModel: you can not change name after initialization.");
- return;
- }
- m_name = name;
-}
-
-//////////////////////////////////////////////////////////////////////////////////////////
-/*!
- \qmltype AttenuationModelLinear
- \instantiates QDeclarativeAttenuationModelLinear
- \since 5.0
- \brief Defines a linear attenuation curve for a \l Sound.
- \inqmlmodule QtAudioEngine
- \ingroup multimedia_audioengine
- \inherits Item
- \preliminary
- \deprecated
-
- AttenuationModelLinear must be defined inside \l AudioEngine or be added to it using
- \l{QtAudioEngine::AudioEngine::addAttenuationModel()}{AudioEngine.addAttenuationModel()}
- if AttenuationModelLinear is created dynamically.
-
- \qml
- Rectangle {
- color:"white"
- width: 300
- height: 500
-
- AudioEngine {
- id:audioengine
-
- AttenuationModelLinear {
- name:"linear"
- start: 20
- end: 180
- }
-
- AudioSample {
- name:"explosion"
- source: "explosion-02.wav"
- }
-
- Sound {
- name:"explosion"
- attenuationModel: "linear"
- PlayVariation {
- sample:"explosion"
- }
- }
- }
- }
- \endqml
-*/
-
-/*!
- \qmlproperty string QtAudioEngine::AttenuationModelLinear::name
-
- This property holds the name of AttenuationModelLinear, must be unique among all attenuation
- models and only defined once.
-*/
-QDeclarativeAttenuationModelLinear::QDeclarativeAttenuationModelLinear(QObject *parent)
- : QDeclarativeAttenuationModel(parent)
- , m_start(0)
- , m_end(1)
-{
-}
-
-void QDeclarativeAttenuationModelLinear::setEngine(QDeclarativeAudioEngine *engine)
-{
- if (m_start > m_end) {
- qSwap(m_start, m_end);
- qWarning() << "AttenuationModelLinear[" << m_name << "]: start must be less or equal than end.";
- }
- QDeclarativeAttenuationModel::setEngine(engine);
-}
-
-/*!
- \qmlproperty real QtAudioEngine::AttenuationModelLinear::start
-
- This property holds the start distance. There will be no attenuation if the distance from sound
- to listener is within this range.
- The default value is 0.
-*/
-qreal QDeclarativeAttenuationModelLinear::startDistance() const
-{
- return m_start;
-}
-
-void QDeclarativeAttenuationModelLinear::setStartDistance(qreal startDist)
-{
- if (m_engine) {
- qWarning() << "AttenuationModelLinear[" << m_name << "]: you can not change properties after initialization.";
- return;
- }
- if (startDist < 0) {
- qWarning() << "AttenuationModelLinear[" << m_name << "]: start must be no less than 0.";
- return;
- }
- m_start = startDist;
-}
-
-/*!
- \qmlproperty real QtAudioEngine::AttenuationModelLinear::end
-
- This property holds the end distance. There will be no sound hearable if the distance from sound
- to listener is larger than this.
- The default value is 1.
-*/
-qreal QDeclarativeAttenuationModelLinear::endDistance() const
-{
- return m_end;
-}
-
-void QDeclarativeAttenuationModelLinear::setEndDistance(qreal endDist)
-{
- if (m_engine) {
- qWarning() << "AttenuationModelLinear[" << m_name << "]: you can not change properties after initialization.";
- return;
- }
- if (endDist < 0) {
- qWarning() << "AttenuationModelLinear[" << m_name << "]: end must be no greater than 0.";
- return;
- }
- m_end = endDist;
-}
-
-qreal QDeclarativeAttenuationModelLinear::calculateGain(const QVector3D &listenerPosition, const QVector3D &sourcePosition) const
-{
- qreal md = m_end - m_start;
- if (md == 0)
- return 1;
- qreal d = qBound(qreal(0), (listenerPosition - sourcePosition).length() - m_start, md);
- return qreal(1) - (d / md);
-}
-
-//////////////////////////////////////////////////////////////////////////////////////////
-/*!
- \qmltype AttenuationModelInverse
- \instantiates QDeclarativeAttenuationModelInverse
-
- \since 5.0
- \brief Defines a non-linear attenuation curve for a \l Sound.
- \inqmlmodule QtAudioEngine
- \ingroup multimedia_audioengine
- \inherits Item
- \preliminary
- \deprecated
-
- AttenuationModelInverse must be defined inside \l AudioEngine or be added to it using
- \l{QtAudioEngine::AudioEngine::addAttenuationModel()}{AudioEngine.addAttenuationModel()}
- if AttenuationModelInverse is created dynamically.
-
- \qml
- Rectangle {
- color:"white"
- width: 300
- height: 500
-
- AudioEngine {
- id:audioengine
-
- AttenuationModelInverse {
- name:"linear"
- start: 20
- end: 500
- rolloff: 1.5
- }
-
- AudioSample {
- name:"explosion"
- source: "explosion-02.wav"
- }
-
- Sound {
- name:"explosion"
- attenuationModel: "linear"
- PlayVariation {
- sample:"explosion"
- }
- }
- }
- }
- \endqml
-
- Attenuation factor is calculated as below:
-
- distance: distance from sound to listener
- d = min(max(distance, start), end);
- attenuation = start / (start + (d - start) * rolloff);
-*/
-
-/*!
- \qmlproperty string QtAudioEngine::AttenuationModelInverse::name
-
- This property holds the name of AttenuationModelInverse, must be unique among all attenuation
- models and only defined once.
-*/
-
-/*!
- \qmlproperty real QtAudioEngine::AttenuationModelInverse::start
-
- This property holds the start distance. There will be no attenuation if the distance from sound
- to listener is within this range.
- The default value is 1.
-*/
-
-/*!
- \qmlproperty real QtAudioEngine::AttenuationModelInverse::end
-
- This property holds the end distance. There will be no further attenuation if the distance from
- sound to listener is larger than this.
- The default value is 1000.
-*/
-
-/*!
- \qmlproperty real QtAudioEngine::AttenuationModelInverse::rolloff
-
- This property holds the rolloff factor. The bigger the value is, the faster the sound attenuates.
- The default value is 1.
-*/
-
-QDeclarativeAttenuationModelInverse::QDeclarativeAttenuationModelInverse(QObject *parent)
- : QDeclarativeAttenuationModel(parent)
- , m_ref(1)
- , m_max(1000)
- , m_rolloff(1)
-{
-}
-
-void QDeclarativeAttenuationModelInverse::setEngine(QDeclarativeAudioEngine *engine)
-{
- if (m_ref > m_max) {
- qSwap(m_ref, m_max);
- qWarning() << "AttenuationModelInverse[" << m_name << "]: referenceDistance must be less or equal than maxDistance.";
- }
- QDeclarativeAttenuationModel::setEngine(engine);
-}
-
-qreal QDeclarativeAttenuationModelInverse::referenceDistance() const
-{
- return m_ref;
-}
-
-void QDeclarativeAttenuationModelInverse::setReferenceDistance(qreal referenceDistance)
-{
- if (m_engine) {
- qWarning() << "AttenuationModelInverse[" << m_name << "]: you can not change properties after initialization.";
- return;
- }
- if (referenceDistance <= 0) {
- qWarning() << "AttenuationModelInverse[" << m_name << "]: referenceDistance must be greater than 0.";
- return;
- }
- m_ref = referenceDistance;
-}
-
-qreal QDeclarativeAttenuationModelInverse::maxDistance() const
-{
- return m_max;
-}
-
-void QDeclarativeAttenuationModelInverse::setMaxDistance(qreal maxDistance)
-{
- if (m_engine) {
- qWarning() << "AttenuationModelInverse[" << m_name << "]: you can not change properties after initialization.";
- return;
- }
- if (maxDistance <= 0) {
- qWarning() << "AttenuationModelInverse[" << m_name << "]: maxDistance must be greater than 0.";
- return;
- }
- m_max = maxDistance;
-}
-
-qreal QDeclarativeAttenuationModelInverse::rolloffFactor() const
-{
- return m_rolloff;
-}
-
-void QDeclarativeAttenuationModelInverse::setRolloffFactor(qreal rolloffFactor)
-{
- if (m_engine) {
- qWarning() << "AttenuationModelInverse[" << m_name << "]: you can not change properties after initialization.";
- return;
- }
- m_rolloff = rolloffFactor;
-}
-
-qreal QDeclarativeAttenuationModelInverse::calculateGain(const QVector3D &listenerPosition, const QVector3D &sourcePosition) const
-{
- Q_ASSERT(m_ref > 0);
- return m_ref / (m_ref + (qBound<qreal>(m_ref, (listenerPosition - sourcePosition).length(), m_max) - m_ref) * m_rolloff);
-}
-