74 format.setCodec("audio/pcm"); |
74 format.setCodec("audio/pcm"); |
75 format.setByteOrder(QAudioFormat::LittleEndian); |
75 format.setByteOrder(QAudioFormat::LittleEndian); |
76 format.setSampleType(QAudioFormat::UnSignedInt); |
76 format.setSampleType(QAudioFormat::UnSignedInt); |
77 |
77 |
78 // Only perform tests if audio input device exists! |
78 // Only perform tests if audio input device exists! |
79 QList<QAudioDeviceInfo> devices = QAudioDeviceInfo::deviceList(QAudio::AudioInput); |
79 QList<QAudioDeviceInfo> devices = QAudioDeviceInfo::availableDevices(QAudio::AudioInput); |
80 if(devices.size() > 0) |
80 if(devices.size() > 0) |
81 available = true; |
81 available = true; |
82 else { |
82 else { |
83 qWarning()<<"NOTE: no audio input device found, no test will be performed"; |
83 qWarning()<<"NOTE: no audio input device found, no test will be performed"; |
84 available = false; |
84 available = false; |
135 |
135 |
136 QSignalSpy readSignal(audio, SIGNAL(notify())); |
136 QSignalSpy readSignal(audio, SIGNAL(notify())); |
137 QSignalSpy stateSignal(audio, SIGNAL(stateChanged(QAudio::State))); |
137 QSignalSpy stateSignal(audio, SIGNAL(stateChanged(QAudio::State))); |
138 |
138 |
139 // Always have default states, before start |
139 // Always have default states, before start |
140 QVERIFY(audio->state() == QAudio::StopState); |
140 QVERIFY(audio->state() == QAudio::StoppedState); |
141 QVERIFY(audio->error() == QAudio::NoError); |
141 QVERIFY(audio->error() == QAudio::NoError); |
142 QVERIFY(audio->clock() == 0); |
142 QVERIFY(audio->elapsedUSecs() == 0); |
143 |
143 |
144 audio->start(&filename); |
144 audio->start(&filename); |
145 QTest::qWait(20); |
145 QTest::qWait(20); |
146 // Check state and periodSize() are valid non-zero values. |
146 // Check state and periodSize() are valid non-zero values. |
147 QVERIFY(audio->state() == QAudio::ActiveState); |
147 QVERIFY(audio->state() == QAudio::ActiveState); |
148 QVERIFY(audio->error() == QAudio::NoError); |
148 QVERIFY(audio->error() == QAudio::NoError); |
149 QVERIFY(audio->clock() > 10000 && audio->clock() < 800000); |
149 QVERIFY(audio->elapsedUSecs() > 10000 && audio->elapsedUSecs() < 800000); |
150 QVERIFY(audio->periodSize() > 0); |
150 QVERIFY(audio->periodSize() > 0); |
151 QVERIFY(stateSignal.count() == 1); // State changed to QAudio::ActiveState |
151 QVERIFY(stateSignal.count() == 1); // State changed to QAudio::ActiveState |
152 |
152 |
153 // Wait until finished... |
153 // Wait until finished... |
154 QTest::qWait(5000); |
154 QTest::qWait(5000); |
155 |
155 |
156 QVERIFY(readSignal.count() > 0); |
156 QVERIFY(readSignal.count() > 0); |
157 QVERIFY(audio->totalTime() > 0); |
157 QVERIFY(audio->processedUSecs() > 0); |
158 |
158 |
159 audio->stop(); |
159 audio->stop(); |
160 QTest::qWait(20); |
160 QTest::qWait(20); |
161 QVERIFY(audio->state() == QAudio::StopState); |
161 QVERIFY(audio->state() == QAudio::StoppedState); |
162 QVERIFY(audio->clock() == 0); |
162 QVERIFY(audio->elapsedUSecs() == 0); |
163 // Can only check to make sure we got at least 1 more signal, but can be more. |
163 // Can only check to make sure we got at least 1 more signal, but can be more. |
164 QVERIFY(stateSignal.count() > 1); |
164 QVERIFY(stateSignal.count() > 1); |
165 |
165 |
166 filename.close(); |
166 filename.close(); |
167 } |
167 } |