diff --git a/dom/camera/GonkCameraControl.cpp b/dom/camera/GonkCameraControl.cpp index c15a7af7caa8..e21a21653c11 100644 --- a/dom/camera/GonkCameraControl.cpp +++ b/dom/camera/GonkCameraControl.cpp @@ -139,6 +139,8 @@ nsGonkCameraControl::Initialize() // Set preferred preview frame format. mParams.Set(CAMERA_PARAM_PREVIEWFORMAT, NS_LITERAL_STRING("yuv420sp")); + // Turn off any normal pictures returned by the HDR scene mode + mParams.Set(CAMERA_PARAM_SCENEMODE_HDR_RETURNNORMALPICTURE, false); PushParametersImpl(); // Grab any other settings we'll need later. diff --git a/dom/camera/GonkCameraControl.h b/dom/camera/GonkCameraControl.h index 2691bc7ba6d6..65b0f5df1862 100644 --- a/dom/camera/GonkCameraControl.h +++ b/dom/camera/GonkCameraControl.h @@ -147,7 +147,6 @@ protected: bool mFlashSupported; bool mLuminanceSupported; bool mAutoFlashModeOverridden; - Atomic mDeferConfigUpdate; GonkCameraParameters mParams; diff --git a/dom/camera/GonkCameraParameters.cpp b/dom/camera/GonkCameraParameters.cpp index 00a46cb0d111..43244337e22d 100644 --- a/dom/camera/GonkCameraParameters.cpp +++ b/dom/camera/GonkCameraParameters.cpp @@ -81,6 +81,10 @@ GonkCameraParameters::Parameters::GetTextKey(uint32_t aKey) return "iso"; case CAMERA_PARAM_LUMINANCE: return "luminance-condition"; + case CAMERA_PARAM_SCENEMODE_HDR_RETURNNORMALPICTURE: + // Not every platform defines KEY_QC_HDR_NEED_1X; + // for those that don't, we use the raw string key. + return "hdr-need-1x"; case CAMERA_PARAM_SUPPORTED_PREVIEWSIZES: return KEY_SUPPORTED_PREVIEW_SIZES; @@ -685,6 +689,19 @@ GonkCameraParameters::GetTranslated(uint32_t aKey, uint32_t& aValue) return NS_OK; } +// Handle bools +nsresult +GonkCameraParameters::SetTranslated(uint32_t aKey, const bool& aValue) +{ + return SetImpl(aKey, aValue); +} + +nsresult +GonkCameraParameters::GetTranslated(uint32_t aKey, bool& aValue) +{ + return GetImpl(aKey, aValue); +} + nsresult ParseItem(const char* aStart, const char* aEnd, ICameraControl::Size* aItem) { diff --git a/dom/camera/GonkCameraParameters.h b/dom/camera/GonkCameraParameters.h index da6b5ab3478b..d4d7901cb7bb 100644 --- a/dom/camera/GonkCameraParameters.h +++ b/dom/camera/GonkCameraParameters.h @@ -103,13 +103,18 @@ protected: { public: using android::CameraParameters::set; + using android::CameraParameters::get; + using android::CameraParameters::TRUE; + using android::CameraParameters::FALSE; void set(const char* aKey, float aValue) { setFloat(aKey, aValue); } void set(const char* aKey, double aValue) { setFloat(aKey, aValue); } + void set(const char* aKey, bool aValue) { set(aKey, aValue ? TRUE : FALSE); } void get(const char* aKey, float& aRet) { aRet = getFloat(aKey); } void get(const char* aKey, double& aRet) { aRet = getFloat(aKey); } - void get(const char* aKey, const char*& aRet) { aRet = android::CameraParameters::get(aKey); } + void get(const char* aKey, const char*& aRet) { aRet = get(aKey); } void get(const char* aKey, int& aRet) { aRet = getInt(aKey); } + void get(const char* aKey, bool& aRet) { aRet = strcmp(get(aKey), FALSE); } static const char* GetTextKey(uint32_t aKey); }; @@ -173,6 +178,8 @@ protected: nsresult GetTranslated(uint32_t aKey, int& aValue); nsresult SetTranslated(uint32_t aKey, const uint32_t& aValue); nsresult GetTranslated(uint32_t aKey, uint32_t& aValue); + nsresult SetTranslated(uint32_t aKey, const bool& aValue); + nsresult GetTranslated(uint32_t aKey, bool& aValue); nsresult GetTranslated(uint32_t aKey, nsTArray& aValues); nsresult GetTranslated(uint32_t aKey, nsTArray& aValues); diff --git a/dom/camera/ICameraControl.h b/dom/camera/ICameraControl.h index fd225ca0e440..547028f1c503 100644 --- a/dom/camera/ICameraControl.h +++ b/dom/camera/ICameraControl.h @@ -51,6 +51,7 @@ enum { CAMERA_PARAM_SENSORANGLE, CAMERA_PARAM_ISOMODE, CAMERA_PARAM_LUMINANCE, + CAMERA_PARAM_SCENEMODE_HDR_RETURNNORMALPICTURE, // supported features CAMERA_PARAM_SUPPORTED_PREVIEWSIZES,