QGstreamerCameraControl::QGstreamerCameraControl(QGstreamerCaptureSession *session) :QCameraControl(session), m_captureMode(QCamera::CaptureStillImage), m_session(session), m_state(QCamera::UnloadedState), m_status(QCamera::UnloadedStatus), m_reloadPending(false) { connect(m_session, SIGNAL(stateChanged(QGstreamerCaptureSession::State)), this, SLOT(updateStatus())); connect(m_session->imageEncodeControl(), SIGNAL(settingsChanged()), SLOT(reloadLater())); connect(m_session, SIGNAL(viewfinderChanged()), SLOT(reloadLater())); connect(m_session, SIGNAL(readyChanged(bool)), SLOT(reloadLater())); }
void QGstreamerCameraControl::setCaptureMode(QCamera::CaptureMode mode) { if (m_captureMode == mode) return; switch (mode) { case QCamera::CaptureStillImage: m_session->setCaptureMode(QGstreamerCaptureSession::Image); break; case QCamera::CaptureVideo: m_session->setCaptureMode(QGstreamerCaptureSession::AudioAndVideo); break; } emit captureModeChanged(mode); updateStatus(); reloadLater(); }
void QGstreamerCameraControl::setCaptureMode(QCamera::CaptureModes mode) { if (m_captureMode == mode || !isCaptureModeSupported(mode)) return; m_captureMode = mode; switch (mode) { case QCamera::CaptureViewfinder: case QCamera::CaptureStillImage: m_session->setCaptureMode(QGstreamerCaptureSession::Image); break; case QCamera::CaptureVideo: m_session->setCaptureMode(QGstreamerCaptureSession::AudioAndVideo); break; case QCamera::CaptureVideo | QCamera::CaptureStillImage: m_session->setCaptureMode(QGstreamerCaptureSession::AudioAndVideoAndImage); break; } emit captureModeChanged(mode); updateStatus(); reloadLater(); }