void CameraBinFlash::setFlashMode(QCameraExposure::FlashModes mode) { GstFlashMode flashMode; gst_photography_get_flash_mode(m_session->photography(), &flashMode); if (mode.testFlag(QCameraExposure::FlashAuto)) flashMode = GST_PHOTOGRAPHY_FLASH_MODE_AUTO; else if (mode.testFlag(QCameraExposure::FlashOff)) flashMode = GST_PHOTOGRAPHY_FLASH_MODE_OFF; else if (mode.testFlag(QCameraExposure::FlashOn)) flashMode = GST_PHOTOGRAPHY_FLASH_MODE_ON; else if (mode.testFlag(QCameraExposure::FlashFill)) flashMode = GST_PHOTOGRAPHY_FLASH_MODE_FILL_IN; else if (mode.testFlag(QCameraExposure::FlashRedEyeReduction)) flashMode = GST_PHOTOGRAPHY_FLASH_MODE_RED_EYE; gst_photography_set_flash_mode(m_session->photography(), flashMode); #ifdef Q_WS_MAEMO_6 gboolean torchEnabled = false; g_object_get(G_OBJECT(m_session->cameraSourceElement()), "video-torch", &torchEnabled, NULL); gboolean enableTorch = mode.testFlag(QCameraExposure::FlashTorch); if (bool(enableTorch) != bool(torchEnabled)) { g_object_set(G_OBJECT(m_session->cameraSourceElement()), "video-torch", enableTorch, NULL); //it's necessary to restart source element to toggle torch if (m_session->captureMode() == QCamera::CaptureVideo) emit torchModeChanged(bool(torchEnabled)); } #endif }
void GstTorch::setTorchMode(Mode mode){ qDebug() << "SET TORCH MODE" << mode; if (mode == Flash){ if (mStatus == onBeam){ timer->start(); } } else if (mode == Beam) { timer->stop(); if (mStatus == onFlashOff) { start(); } } setStatus(mTorchOn, mode, false); mtorchMode = mode; emit torchModeChanged(mode); }