tests/auto/qaudioinput/tst_qaudioinput.cpp
changeset 3 41300fa6a67c
parent 0 1918ee327afb
child 4 3b1da2848fc7
equal deleted inserted replaced
2:56cd8111b7f7 3:41300fa6a67c
    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     }