Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 22ef2566 authored by Nishant Pandit's avatar Nishant Pandit Committed by Steve Kondik
Browse files

frameworks/base: Add framework support for Brightness, ISO and Lens Shading

parent fc7990af
Loading
Loading
Loading
Loading

api/current.xml

100644 → 100755
+88 −0
Original line number Diff line number Diff line
@@ -68963,6 +68963,94 @@
 visibility="public"
>
</field>
<field name="ISO_AUTO"
 type="java.lang.String"
 transient="false"
 volatile="false"
 value="&quot;auto&quot;"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="ISO_HJR"
 type="java.lang.String"
 transient="false"
 volatile="false"
 value="&quot;ISO_HJR&quot;"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="ISO_100"
 type="java.lang.String"
 transient="false"
 volatile="false"
 value="&quot;ISO100&quot;"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="ISO_200"
 type="java.lang.String"
 transient="false"
 volatile="false"
 value="&quot;ISO200&quot;"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="ISO_400"
 type="java.lang.String"
 transient="false"
 volatile="false"
 value="&quot;ISO400&quot;"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="ISO_800"
 type="java.lang.String"
 transient="false"
 volatile="false"
 value="&quot;ISO800&quot;"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="LENSSHADE_ENABLE"
 type="java.lang.String"
 transient="false"
 volatile="false"
 value="&quot;enable&quot;"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="LENSSHADE_DISABLE"
 type="java.lang.String"
 transient="false"
 volatile="false"
 value="&quot;disable&quot;"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="WHITE_BALANCE_AUTO"
 type="java.lang.String"
 transient="false"
+8 −3
Original line number Diff line number Diff line
@@ -33,6 +33,8 @@
#include "CameraService.h"

#include <cutils/atomic.h>
#include <cutils/properties.h>
#include <linux/fb.h>

namespace android {

@@ -69,6 +71,7 @@ static int getCallingPid() {
    return IPCThreadState::self()->getCallingPid();
}

static Mutex connlock;
// ----------------------------------------------------------------------------

void CameraService::instantiate() {
@@ -99,6 +102,7 @@ sp<ICamera> CameraService::connect(const sp<ICameraClient>& cameraClient)
            cameraClient->asBinder().get());

    Mutex::Autolock lock(mServiceLock);
    Mutex::Autolock l(connlock);
    sp<Client> client;
    if (mClient != 0) {
        sp<Client> currentClient = mClient.promote();
@@ -380,9 +384,10 @@ void CameraService::Client::disconnect()
{
    int callingPid = getCallingPid();

    LOGD("Client::disconnect() E (pid %d client %p)",
            callingPid, getCameraClient()->asBinder().get());

    LOGD("Client (%p) E disconnect from (%d)",
            getCameraClient()->asBinder().get(),
            IPCThreadState::self()->getCallingPid());
    Mutex::Autolock l(connlock);
    Mutex::Autolock lock(mLock);
    if (mClientPid <= 0) {
        LOGD("camera is unlocked (mClientPid = %d), don't tear down hardware", mClientPid);
+82 −0
Original line number Diff line number Diff line
@@ -685,6 +685,8 @@ public class Camera {
        private static final String KEY_SCENE_MODE = "scene-mode";
        private static final String KEY_FLASH_MODE = "flash-mode";
        private static final String KEY_FOCUS_MODE = "focus-mode";
        private static final String KEY_ISO_MODE = "iso";
        private static final String KEY_LENSSHADE = "lensshade";
        // Parameter key suffix for supported values.
        private static final String SUPPORTED_VALUES_SUFFIX = "-values";

@@ -715,6 +717,20 @@ public class Camera {
        public static final String ANTIBANDING_60HZ = "60hz";
        public static final String ANTIBANDING_OFF = "off";

        //Values for ISO settings

        public static final String ISO_AUTO = "auto";
        public static final String ISO_HJR = "ISO_HJR";
        public static final String ISO_100 = "ISO100";
        public static final String ISO_200 = "ISO200";
        public static final String ISO_400 = "ISO400";
        public static final String ISO_800 = "ISO800";

        //Values for Lens Shading

        public static final String LENSSHADE_ENABLE = "enable";
        public static final String LENSSHADE_DISABLE= "disable";

        // Values for flash mode settings.
        /**
         * Flash will not be fired.
@@ -1531,6 +1547,72 @@ public class Camera {
            return "true".equals(str);
        }

	/**
         * Gets the current ISO setting.
         *
         * @return one of ISO_XXX string constant. null if ISO
         *         setting is not supported.
         * @hide
         */
        public String getISOValue() {
            return get(KEY_ISO_MODE);
        }

        /**
         * Sets the ISO.
         *
         * @param iso ISO_XXX string constant.
         * @hide
         */
        public void setISOValue(String iso) {
            set(KEY_ISO_MODE, iso);
        }

         /**
         * Gets the supported ISO values.
         *
         * @return a List of FLASH_MODE_XXX string constants. null if flash mode
         *         setting is not supported.
         * @hide
         */
        public List<String> getSupportedIsoValues() {
            String str = get(KEY_ISO_MODE + SUPPORTED_VALUES_SUFFIX);
            return split(str);
        }

         /**
         * Gets the current LensShade Mode.
         *
         * @return LensShade Mode
         * @hide
         */
        public String getLensShade() {
            return get(KEY_LENSSHADE);
        }

        /**
         * Sets the current LensShade Mode.
         *
         * @return LensShade Mode
         * @hide
         */
        public void setLensShade(String lensshade) {
            set(KEY_LENSSHADE, lensshade);
        }

         /**
         * Gets the supported Lensshade modes.
         *
         * @return a List of LENS_MODE_XXX string constants. null if lens mode
         *         setting is not supported.
         * @hide
         */
        public List<String> getSupportedLensShadeModes() {
            String str = get(KEY_LENSSHADE + SUPPORTED_VALUES_SUFFIX);
            return split(str);
        }


        // Splits a comma delimited string to an ArrayList of String.
        // Return null if the passing string is null or the size is 0.
        private ArrayList<String> split(String str) {

include/ui/CameraParameters.h

100644 → 100755
+18 −0
Original line number Diff line number Diff line
@@ -184,6 +184,12 @@ public:
    // Supported focus modes.
    // Example value: "auto,macro,fixed". Read only.
    static const char KEY_SUPPORTED_FOCUS_MODES[];
    //ISO Values
    static const char KEY_ISO_MODE[];
    static const char KEY_SUPPORTED_ISO_MODES[];
    //Lens Shading Values
    static const char KEY_LENSSHADE[] ;
    static const char KEY_SUPPORTED_LENSSHADE_MODES[] ;

        // Values for white balance settings.
    static const char WHITE_BALANCE_AUTO[];
@@ -264,6 +270,18 @@ public:
    // not call CameraHardwareInterface.autoFocus in this mode.
    static const char FOCUS_MODE_FIXED[];

    // Values for ISO Settings
    static const char ISO_AUTO[];
    static const char ISO_HJR[] ;
    static const char ISO_100[];
    static const char ISO_200[] ;
    static const char ISO_400[];
    static const char ISO_800[];

    // Values for Lens Shading
    static const char LENSSHADE_ENABLE[] ;
    static const char LENSSHADE_DISABLE[] ;

private:
    DefaultKeyedVector<String8,String8>    mMap;
};

libs/ui/CameraParameters.cpp

100644 → 100755
+18 −0
Original line number Diff line number Diff line
@@ -56,6 +56,10 @@ const char CameraParameters::KEY_FLASH_MODE[] = "flash-mode";
const char CameraParameters::KEY_SUPPORTED_FLASH_MODES[] = "flash-mode-values";
const char CameraParameters::KEY_FOCUS_MODE[] = "focus-mode";
const char CameraParameters::KEY_SUPPORTED_FOCUS_MODES[] = "focus-mode-values";
const char CameraParameters::KEY_ISO_MODE[] = "iso";
const char CameraParameters::KEY_SUPPORTED_ISO_MODES[] = "iso-values";
const char CameraParameters::KEY_LENSSHADE[] = "lensshade";
const char CameraParameters::KEY_SUPPORTED_LENSSHADE_MODES[] = "lensshade-values";

// Values for white balance settings.
const char CameraParameters::WHITE_BALANCE_AUTO[] = "auto";
@@ -121,6 +125,20 @@ const char CameraParameters::FOCUS_MODE_INFINITY[] = "infinity";
const char CameraParameters::FOCUS_MODE_MACRO[] = "macro";
const char CameraParameters::FOCUS_MODE_FIXED[] = "fixed";

// Values for ISO Settings
const char CameraParameters::ISO_AUTO[] = "auto";
const char CameraParameters::ISO_HJR[] = "ISO_HJR";
const char CameraParameters::ISO_100[] = "ISO100";
const char CameraParameters::ISO_200[] = "ISO200";
const char CameraParameters::ISO_400[] = "ISO400";
const char CameraParameters::ISO_800[] = "ISO800";

//Values for Lens Shading
const char CameraParameters::LENSSHADE_ENABLE[] = "enable";
const char CameraParameters::LENSSHADE_DISABLE[] = "disable";



static const char* portrait = "portrait";
static const char* landscape = "landscape";