qtmobility/tests/auto/qaudiocapturesource/tst_qaudiocapturesource.cpp
changeset 14 6fbed849b4f4
parent 11 06b8e2af4411
equal deleted inserted replaced
11:06b8e2af4411 14:6fbed849b4f4
    40 ****************************************************************************/
    40 ****************************************************************************/
    41 
    41 
    42 #include <QtTest/QtTest>
    42 #include <QtTest/QtTest>
    43 #include <QDebug>
    43 #include <QDebug>
    44 
    44 
    45 #include <QtMultimedia/qaudioformat.h>
    45 #include <qaudioformat.h>
    46 
    46 
    47 #include <qaudiocapturesource.h>
    47 #include <qaudiocapturesource.h>
    48 #include <qaudioencodercontrol.h>
    48 #include <qaudioencodercontrol.h>
    49 #include <qmediarecordercontrol.h>
    49 #include <qmediarecordercontrol.h>
    50 #include <qaudioendpointselector.h>
    50 #include <qaudioendpointselector.h>
    99     Q_OBJECT
    99     Q_OBJECT
   100 public:
   100 public:
   101     MockMediaRecorderControl(QObject *parent = 0):
   101     MockMediaRecorderControl(QObject *parent = 0):
   102             QMediaRecorderControl(parent),
   102             QMediaRecorderControl(parent),
   103             m_state(QMediaRecorder::StoppedState),
   103             m_state(QMediaRecorder::StoppedState),
   104             m_position(0) {}
   104             m_position(0),
       
   105             m_muted(false) {}
   105 
   106 
   106     ~MockMediaRecorderControl() {}
   107     ~MockMediaRecorderControl() {}
   107 
   108 
   108     QUrl outputLocation() const { return m_sink; }
   109     QUrl outputLocation() const { return m_sink; }
   109     bool setOutputLocation(const QUrl &sink) { m_sink = sink; return true; }
   110     bool setOutputLocation(const QUrl &sink) { m_sink = sink; return true; }
   110     QMediaRecorder::State state() const { return m_state; }
   111     QMediaRecorder::State state() const { return m_state; }
   111     qint64 duration() const { return m_position; }
   112     qint64 duration() const { return m_position; }
   112     void applySettings() {}
   113     void applySettings() {}
       
   114     bool isMuted() const { return m_muted; }
   113 
   115 
   114 public slots:
   116 public slots:
   115     void record()
   117     void record()
   116     {
   118     {
   117         m_state = QMediaRecorder::RecordingState;
   119         m_state = QMediaRecorder::RecordingState;
   130         m_position=0;
   132         m_position=0;
   131         m_state = QMediaRecorder::StoppedState;
   133         m_state = QMediaRecorder::StoppedState;
   132         emit stateChanged(m_state);
   134         emit stateChanged(m_state);
   133     }
   135     }
   134 
   136 
       
   137     void setMuted(bool muted)
       
   138     {
       
   139         if (m_muted != muted)
       
   140             emit mutedChanged(m_muted = muted);
       
   141     }
       
   142 
   135 public:
   143 public:
   136     QUrl       m_sink;
   144     QUrl       m_sink;
   137     QMediaRecorder::State m_state;
   145     QMediaRecorder::State m_state;
   138     qint64     m_position;
   146     qint64     m_position;
       
   147     bool m_muted;
   139 };
   148 };
   140 
   149 
   141 class MockAudioEndpointSelector : public QAudioEndpointSelector
   150 class MockAudioEndpointSelector : public QAudioEndpointSelector
   142 {
   151 {
   143     Q_OBJECT
   152     Q_OBJECT
   211         delete mockAudioEncoderControl;
   220         delete mockAudioEncoderControl;
   212         delete mockMediaRecorderControl;
   221         delete mockMediaRecorderControl;
   213         delete mockAudioEndpointSelector;
   222         delete mockAudioEndpointSelector;
   214     }
   223     }
   215 
   224 
   216     QMediaControl* control(const char *iid) const
   225     QMediaControl* requestControl(const char *iid)
   217     {
   226     {
   218         if (qstrcmp(iid, QAudioEncoderControl_iid) == 0)
   227         if (qstrcmp(iid, QAudioEncoderControl_iid) == 0)
   219             return mockAudioEncoderControl;
   228             return mockAudioEncoderControl;
   220 
   229 
   221         if (qstrcmp(iid, QMediaRecorderControl_iid) == 0)
   230         if (qstrcmp(iid, QMediaRecorderControl_iid) == 0)
   224         if (hasAudioDeviceControl && qstrcmp(iid, QAudioEndpointSelector_iid) == 0)
   233         if (hasAudioDeviceControl && qstrcmp(iid, QAudioEndpointSelector_iid) == 0)
   225             return mockAudioEndpointSelector;
   234             return mockAudioEndpointSelector;
   226 
   235 
   227         return 0;
   236         return 0;
   228     }
   237     }
       
   238 
       
   239     void releaseControl(QMediaControl*) {}
   229 
   240 
   230     MockAudioEncoderControl *mockAudioEncoderControl;
   241     MockAudioEncoderControl *mockAudioEncoderControl;
   231     MockMediaRecorderControl *mockMediaRecorderControl;
   242     MockMediaRecorderControl *mockMediaRecorderControl;
   232     MockAudioEndpointSelector *mockAudioEndpointSelector;
   243     MockAudioEndpointSelector *mockAudioEndpointSelector;
   233     bool hasAudioDeviceControl;
   244     bool hasAudioDeviceControl;