summaryrefslogtreecommitdiffstats
path: root/src/imports/audioengine/qsoundsource_openal_p.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/imports/audioengine/qsoundsource_openal_p.cpp')
-rw-r--r--src/imports/audioengine/qsoundsource_openal_p.cpp312
1 files changed, 0 insertions, 312 deletions
diff --git a/src/imports/audioengine/qsoundsource_openal_p.cpp b/src/imports/audioengine/qsoundsource_openal_p.cpp
deleted file mode 100644
index 43819cfae..000000000
--- a/src/imports/audioengine/qsoundsource_openal_p.cpp
+++ /dev/null
@@ -1,312 +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 "qaudioengine_openal_p.h"
-#include "qdebug.h"
-
-#define DEBUG_AUDIOENGINE
-
-QT_USE_NAMESPACE
-
-QSoundSourcePrivate::QSoundSourcePrivate(QObject *parent)
- : QSoundSource(parent)
- , m_alSource(0)
- , m_bindBuffer(0)
- , m_isReady(false)
- , m_state(QSoundSource::StoppedState)
- , m_gain(0)
- , m_pitch(0)
- , m_coneInnerAngle(0)
- , m_coneOuterAngle(0)
- , m_coneOuterGain(1)
-{
-#ifdef DEBUG_AUDIOENGINE
- qDebug() << "creating new QSoundSourcePrivate";
-#endif
- alGenSources(1, &m_alSource);
- QAudioEnginePrivate::checkNoError("create source");
- setGain(1);
- setPitch(1);
- setCone(360, 360, 0);
-}
-
-QSoundSourcePrivate::~QSoundSourcePrivate()
-{
-#ifdef DEBUG_AUDIOENGINE
- qDebug() << "QSoundSourcePrivate::dtor";
-#endif
- release();
-}
-
-void QSoundSourcePrivate::release()
-{
- if (m_alSource) {
-#ifdef DEBUG_AUDIOENGINE
- qDebug() << "QSoundSourcePrivate::release";
-#endif
- stop();
- unbindBuffer();
- alDeleteSources(1, &m_alSource);
- QAudioEnginePrivate::checkNoError("delete source");
- m_alSource = 0;
- }
-}
-
-void QSoundSourcePrivate::bindBuffer(QSoundBuffer* soundBuffer)
-{
- unbindBuffer();
- Q_ASSERT(soundBuffer->state() == QSoundBuffer::Ready);
- m_bindBuffer = qobject_cast<QSoundBufferPrivateAL*>(soundBuffer);
- m_bindBuffer->bindToSource(m_alSource);
- m_isReady = true;
-}
-
-void QSoundSourcePrivate::unbindBuffer()
-{
- if (m_bindBuffer) {
- m_bindBuffer->unbindFromSource(m_alSource);
- m_bindBuffer = 0;
- }
- m_isReady = false;
- if (m_state != QSoundSource::StoppedState) {
- m_state = QSoundSource::StoppedState;
- emit stateChanged(m_state);
- }
-}
-
-void QSoundSourcePrivate::play()
-{
- if (!m_alSource || !m_isReady)
- return;
- alSourcePlay(m_alSource);
-#ifdef DEBUG_AUDIOENGINE
- QAudioEnginePrivate::checkNoError("play");
-#endif
- emit activate(this);
-}
-
-bool QSoundSourcePrivate::isLooping() const
-{
- if (!m_alSource)
- return false;
- ALint looping = 0;
- alGetSourcei(m_alSource, AL_LOOPING, &looping);
- return looping == AL_TRUE ? true : false;
-}
-
-void QSoundSourcePrivate::pause()
-{
- if (!m_alSource || !m_isReady)
- return;
- alSourcePause(m_alSource);
-#ifdef DEBUG_AUDIOENGINE
- QAudioEnginePrivate::checkNoError("pause");
-#endif
-}
-
-void QSoundSourcePrivate::stop()
-{
- if (!m_alSource)
- return;
- alSourceStop(m_alSource);
-#ifdef DEBUG_AUDIOENGINE
- QAudioEnginePrivate::checkNoError("stop");
-#endif
-}
-
-QSoundSource::State QSoundSourcePrivate::state() const
-{
- return m_state;
-}
-
-void QSoundSourcePrivate::checkState()
-{
- QSoundSource::State st;
- st = QSoundSource::StoppedState;
- if (m_alSource && m_isReady) {
- ALint s;
- alGetSourcei(m_alSource, AL_SOURCE_STATE, &s);
- switch (s) {
- case AL_PLAYING:
- st = QSoundSource::PlayingState;
- break;
- case AL_PAUSED:
- st = QSoundSource::PausedState;
- break;
- }
- }
- if (st == m_state)
- return;
- m_state = st;
- emit stateChanged(m_state);
-}
-
-void QSoundSourcePrivate::setLooping(bool looping)
-{
- if (!m_alSource)
- return;
- alSourcei(m_alSource, AL_LOOPING, looping ? AL_TRUE : AL_FALSE);
-}
-
-void QSoundSourcePrivate::setPosition(const QVector3D& position)
-{
- if (!m_alSource)
- return;
- alSource3f(m_alSource, AL_POSITION, position.x(), position.y(), position.z());
-#ifdef DEBUG_AUDIOENGINE
- QAudioEnginePrivate::checkNoError("source set position");
-#endif
-}
-
-void QSoundSourcePrivate::setDirection(const QVector3D& direction)
-{
- if (!m_alSource)
- return;
- alSource3f(m_alSource, AL_DIRECTION, direction.x(), direction.y(), direction.z());
-#ifdef DEBUG_AUDIOENGINE
- QAudioEnginePrivate::checkNoError("source set direction");
-#endif
-}
-
-void QSoundSourcePrivate::setVelocity(const QVector3D& velocity)
-{
- if (!m_alSource)
- return;
- alSource3f(m_alSource, AL_VELOCITY, velocity.x(), velocity.y(), velocity.z());
-#ifdef DEBUG_AUDIOENGINE
- QAudioEnginePrivate::checkNoError("source set velocity");
-#endif
-}
-
-QVector3D QSoundSourcePrivate::velocity() const
-{
- if (!m_alSource)
- return QVector3D(0, 0, 0);
- ALfloat x, y, z;
- alGetSource3f(m_alSource, AL_VELOCITY, &x, &y, &z);
- return QVector3D(x, y, z);
-}
-
-QVector3D QSoundSourcePrivate::position() const
-{
- if (!m_alSource)
- return QVector3D(0, 0, 0);
- ALfloat x, y, z;
- alGetSource3f(m_alSource, AL_POSITION, &x, &y, &z);
- return QVector3D(x, y, z);
-}
-
-QVector3D QSoundSourcePrivate::direction() const
-{
- if (!m_alSource)
- return QVector3D(0, 1, 0);
- ALfloat x, y, z;
- alGetSource3f(m_alSource, AL_DIRECTION, &x, &y, &z);
- return QVector3D(x, y, z);
-}
-
-void QSoundSourcePrivate::setGain(qreal gain)
-{
- if (!m_alSource || gain == m_gain)
- return;
- alSourcef(m_alSource, AL_GAIN, gain);
-#ifdef DEBUG_AUDIOENGINE
- QAudioEnginePrivate::checkNoError("source set gain");
-#endif
- m_gain = gain;
-}
-
-void QSoundSourcePrivate::setPitch(qreal pitch)
-{
- if (!m_alSource || m_pitch == pitch)
- return;
- alSourcef(m_alSource, AL_PITCH, pitch);
-#ifdef DEBUG_AUDIOENGINE
- QAudioEnginePrivate::checkNoError("source set pitch");
-#endif
- m_pitch = pitch;
-}
-
-void QSoundSourcePrivate::setCone(qreal innerAngle, qreal outerAngle, qreal outerGain)
-{
- if (innerAngle > outerAngle)
- outerAngle = innerAngle;
- Q_ASSERT(outerAngle <= 360 && innerAngle >= 0);
-
- //make sure the setting order will always keep outerAngle >= innerAngle in openAL
- if (outerAngle >= m_coneInnerAngle) {
- if (m_coneOuterAngle != outerAngle) {
- alSourcef(m_alSource, AL_CONE_OUTER_ANGLE, outerAngle);
-#ifdef DEBUG_AUDIOENGINE
- QAudioEnginePrivate::checkNoError("source set cone outerAngle");
-#endif
- m_coneOuterAngle = outerAngle;
- }
- if (m_coneInnerAngle != innerAngle) {
- alSourcef(m_alSource, AL_CONE_INNER_ANGLE, innerAngle);
-#ifdef DEBUG_AUDIOENGINE
- QAudioEnginePrivate::checkNoError("source set cone innerAngle");
-#endif
- m_coneInnerAngle = innerAngle;
- }
- } else {
- if (m_coneInnerAngle != innerAngle) {
- alSourcef(m_alSource, AL_CONE_INNER_ANGLE, innerAngle);
-#ifdef DEBUG_AUDIOENGINE
- QAudioEnginePrivate::checkNoError("source set cone innerAngle");
-#endif
- m_coneInnerAngle = innerAngle;
- }
- if (m_coneOuterAngle != outerAngle) {
- alSourcef(m_alSource, AL_CONE_OUTER_ANGLE, outerAngle);
-#ifdef DEBUG_AUDIOENGINE
- QAudioEnginePrivate::checkNoError("source set cone outerAngle");
-#endif
- m_coneOuterAngle = outerAngle;
- }
- }
-
- if (outerGain != m_coneOuterGain) {
- alSourcef(m_alSource, AL_CONE_OUTER_GAIN, outerGain);
-#ifdef DEBUG_AUDIOENGINE
- QAudioEnginePrivate::checkNoError("source set cone outerGain");
-#endif
- m_coneOuterGain = outerGain;
- }
-}