QAudioEngine::QAudioEngine(QObject *parent) : QObject(parent) , m_listenerUp(0, 0, 1) , m_listenerDirection(0, 1, 0) { d = new QAudioEnginePrivate(this); connect(d, SIGNAL(isLoadingChanged()), this, SIGNAL(isLoadingChanged())); setDopplerFactor(1); setSpeedOfSound(qreal(343.33)); updateListenerOrientation(); }
void tst_QSampleCache::testNotEnoughCapacity() { QSampleCache cache; QSignalSpy loadingSpy(&cache, SIGNAL(isLoadingChanged())); QSample* sample = cache.requestSample(QUrl::fromLocalFile(QFINDTESTDATA("testdata/test.wav"))); QVERIFY(sample); QTRY_COMPARE(loadingSpy.count(), 2); // make sure sample is loaded QTRY_VERIFY(!cache.isLoading()); int sampleSize = sample->data().size(); sample->release(); cache.setCapacity(sampleSize / 2); // unloads all samples QVERIFY(!cache.isCached(QUrl::fromLocalFile(QFINDTESTDATA("testdata/test.wav")))); loadingSpy.clear(); sample = cache.requestSample(QUrl::fromLocalFile(QFINDTESTDATA("testdata/test.wav"))); QVERIFY(sample); QTRY_COMPARE(loadingSpy.count(), 2); QTRY_VERIFY(!cache.isLoading()); sample->release(); QVERIFY(cache.isCached(QUrl::fromLocalFile(QFINDTESTDATA("testdata/test.wav")))); // load another sample to force sample cache to destroy first sample loadingSpy.clear(); QSample* sampleOther = cache.requestSample(QUrl::fromLocalFile(QFINDTESTDATA("testdata/test2.wav"))); QVERIFY(sampleOther); QTRY_COMPARE(loadingSpy.count(), 2); QTRY_VERIFY(!cache.isLoading()); sampleOther->release(); QVERIFY(!cache.isCached(QUrl::fromLocalFile(QFINDTESTDATA("testdata/test.wav")))); }
void tst_QSampleCache::testNotCachedSample() { QSampleCache cache; QSignalSpy loadingSpy(&cache, SIGNAL(isLoadingChanged())); QSample* sample = cache.requestSample(QUrl::fromLocalFile(QFINDTESTDATA("testdata/test.wav"))); QVERIFY(sample); QTRY_COMPARE(loadingSpy.count(), 2); QTRY_VERIFY(!cache.isLoading()); sample->release(); QVERIFY(!cache.isCached(QUrl::fromLocalFile(QFINDTESTDATA("testdata/test.wav")))); }
void tst_QSampleCache::testInvalidFile() { QSampleCache cache; QSignalSpy loadingSpy(&cache, SIGNAL(isLoadingChanged())); QSample* sample = cache.requestSample(QUrl::fromLocalFile("invalid")); QVERIFY(sample); QTRY_COMPARE(sample->state(), QSample::Error); QTRY_COMPARE(loadingSpy.count(), 2); QTRY_VERIFY(!cache.isLoading()); sample->release(); QVERIFY(!cache.isCached(QUrl::fromLocalFile("invalid"))); }
void tst_QSampleCache::testCachedSample() { QSampleCache cache; QSignalSpy loadingSpy(&cache, SIGNAL(isLoadingChanged())); QSample* sample = cache.requestSample(QUrl::fromLocalFile(QFINDTESTDATA("testdata/test.wav"))); QVERIFY(sample); QTRY_COMPARE(loadingSpy.count(), 2); QTRY_VERIFY(!cache.isLoading()); loadingSpy.clear(); QSample* sampleCached = cache.requestSample(QUrl::fromLocalFile(QFINDTESTDATA("testdata/test.wav"))); QCOMPARE(sample, sampleCached); // sample is cached QVERIFY(cache.isCached(QUrl::fromLocalFile(QFINDTESTDATA("testdata/test.wav")))); // loading thread still starts, but does nothing in this case QTRY_COMPARE(loadingSpy.count(), 2); QTRY_VERIFY(!cache.isLoading()); sample->release(); sampleCached->release(); }