summaryrefslogtreecommitdiffstats
path: root/src/imports/audioengine/qdeclarative_audiosample_p.cpp
diff options
context:
space:
mode:
authorSiteshwar Vashisht <siteshwar@gmail.com>2015-03-25 19:43:19 +0530
committerKonstantin Ritt <ritt.ks@gmail.com>2015-04-23 11:56:18 +0000
commit176d52bb28b425f697ad8df001ba2c7c52fda766 (patch)
treeffc4740404f9537bcef939acddb25c2cce4f7203 /src/imports/audioengine/qdeclarative_audiosample_p.cpp
parent227c8aa723d9e82c2826a1d2823cd73236f18bbb (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.cpp50
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 {