Esempio n. 1
0
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
}
Esempio n. 2
0
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);
}