diff options
author | Siteshwar Vashisht <siteshwar@gmail.com> | 2015-03-25 19:43:19 +0530 |
---|---|---|
committer | Konstantin Ritt <ritt.ks@gmail.com> | 2015-04-23 11:56:18 +0000 |
commit | 176d52bb28b425f697ad8df001ba2c7c52fda766 (patch) | |
tree | ffc4740404f9537bcef939acddb25c2cce4f7203 /src/imports/audioengine/qdeclarative_audiosample_p.cpp | |
parent | 227c8aa723d9e82c2826a1d2823cd73236f18bbb (diff) |
Refactored code for audio engine to allow dynamic object creation
QDeclarativeSound, QDeclarativeAudioSample, QDeclarativeAudioCategory
and QDeclarativeAttenuationModel can now be dynamically added to
AudioEngine instance or declared inside AudioEngine object definition.
QDeclarativePlayVariation can now be dynamically added to Sound
instance or declared inside Sound object definition.
Change-Id: If4c2e16895a71eb71ded1998c107360698f8ac7f
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
Diffstat (limited to 'src/imports/audioengine/qdeclarative_audiosample_p.cpp')
-rw-r--r-- | src/imports/audioengine/qdeclarative_audiosample_p.cpp | 50 |
1 files changed, 25 insertions, 25 deletions
diff --git a/src/imports/audioengine/qdeclarative_audiosample_p.cpp b/src/imports/audioengine/qdeclarative_audiosample_p.cpp index 5a9a67b71..297af3b31 100644 --- a/src/imports/audioengine/qdeclarative_audiosample_p.cpp +++ b/src/imports/audioengine/qdeclarative_audiosample_p.cpp @@ -54,7 +54,9 @@ QT_USE_NAMESPACE \c AudioSample is part of the \b{QtAudioEngine 1.0} module. It can be accessed through QtAudioEngine::AudioEngine::samples with its unique - name and must be defined inside AudioEngine. + name and must be defined inside AudioEngine or be added to it using + \l{QtAudioEngine::AudioEngine::addAudioSample()}{AudioEngine.addAudioSample()} + if AudioSample is created dynamically. \qml import QtQuick 2.0 @@ -78,10 +80,10 @@ QT_USE_NAMESPACE */ QDeclarativeAudioSample::QDeclarativeAudioSample(QObject *parent) : QObject(parent) - , m_complete(false) , m_streaming(false) , m_preloaded(false) , m_soundBuffer(0) + , m_engine(0) { } @@ -89,23 +91,6 @@ QDeclarativeAudioSample::~QDeclarativeAudioSample() { } -void QDeclarativeAudioSample::classBegin() -{ - if (!parent() || !parent()->inherits("QDeclarativeAudioEngine")) { - qWarning("AudioSample must be defined inside AudioEngine!"); - return; - } -} - -void QDeclarativeAudioSample::componentComplete() -{ - if (m_name.isEmpty()) { - qWarning("AudioSample must have a name!"); - return; - } - m_complete = true; -} - /*! \qmlproperty url QtAudioEngine::AudioSample::source @@ -118,7 +103,7 @@ QUrl QDeclarativeAudioSample::source() const void QDeclarativeAudioSample::setSource(const QUrl& url) { - if (m_complete) { + if (m_engine) { qWarning("AudioSample: source not changeable after initialization."); return; } @@ -130,6 +115,11 @@ bool QDeclarativeAudioSample::isStreaming() const return m_streaming; } +QDeclarativeAudioEngine *QDeclarativeAudioSample::engine() const +{ + return m_engine; +} + /*! \qmlproperty bool QtAudioEngine::AudioSample::preloaded @@ -173,7 +163,7 @@ void QDeclarativeAudioSample::load() void QDeclarativeAudioSample::setPreloaded(bool preloaded) { - if (m_complete) { + if (m_engine) { qWarning("AudioSample: preloaded not changeable after initialization."); return; } @@ -182,13 +172,22 @@ void QDeclarativeAudioSample::setPreloaded(bool preloaded) void QDeclarativeAudioSample::setStreaming(bool streaming) { - if (m_complete) { + if (m_engine) { qWarning("AudioSample: streaming not changeable after initialization."); return; } m_streaming = streaming; } +void QDeclarativeAudioSample::setEngine(QDeclarativeAudioEngine *engine) +{ + if (m_engine) { + qWarning("AudioSample: engine not changeable after initialization."); + return; + } + m_engine = engine; +} + /*! \qmlproperty string QtAudioEngine::AudioSample::name @@ -202,7 +201,7 @@ QString QDeclarativeAudioSample::name() const void QDeclarativeAudioSample::setName(const QString& name) { - if (m_complete) { + if (m_engine) { qWarning("AudioSample: name not changeable after initialization."); return; } @@ -211,12 +210,13 @@ void QDeclarativeAudioSample::setName(const QString& name) void QDeclarativeAudioSample::init() { + Q_ASSERT(m_engine != 0); + if (m_streaming) { //TODO } else { - m_soundBuffer = - qobject_cast<QDeclarativeAudioEngine*>(parent())->engine()->getStaticSoundBuffer(m_url); + m_soundBuffer = m_engine->engine()->getStaticSoundBuffer(m_url); if (m_soundBuffer->state() == QSoundBuffer::Ready) { emit loadedChanged(); } else { |