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

Commit 73a998a3 authored by Apurva Rajguru's avatar Apurva Rajguru Committed by Ricardo Cerqueira
Browse files

Camera: Adding framework support for Touch AEC.

Change-Id: I11ba827e6b8d680b01a0869afa2c049501b21b71
parent b96df7bf
Loading
Loading
Loading
Loading
+83 −0
Original line number Diff line number Diff line
@@ -74251,6 +74251,17 @@
 visibility="public"
>
</method>
<method name="getSupportedTouchAfAec"
 return="java.util.List&lt;java.lang.String&gt;"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</method>
<method name="getSupportedWhiteBalance"
 return="java.util.List&lt;java.lang.String&gt;"
 abstract="false"
@@ -74262,6 +74273,28 @@
 visibility="public"
>
</method>
<method name="getTouchAfAec"
 return="java.lang.String"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</method>
<method name="getTouchIndexAec"
 return="android.hardware.Camera.Size"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</method>
<method name="getVerticalViewAngle"
 return="float"
 abstract="false"
@@ -74804,6 +74837,34 @@
<parameter name="enabled" type="boolean">
</parameter>
</method>
<method name="setTouchAfAec"
 return="void"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="value" type="java.lang.String">
</parameter>
</method>
<method name="setTouchIndexAec"
 return="void"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="x" type="int">
</parameter>
<parameter name="y" type="int">
</parameter>
</method>
<method name="setWhiteBalance"
 return="void"
 abstract="false"
@@ -75492,6 +75553,28 @@
 visibility="public"
>
</field>
<field name="TOUCH_AF_AEC_OFF"
 type="java.lang.String"
 transient="false"
 volatile="false"
 value="&quot;touch-off&quot;"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="TOUCH_AF_AEC_ON"
 type="java.lang.String"
 transient="false"
 volatile="false"
 value="&quot;touch-on&quot;"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="WHITE_BALANCE_AUTO"
 type="java.lang.String"
 transient="false"
+62 −0
Original line number Diff line number Diff line
@@ -1011,6 +1011,8 @@ public class Camera {
        private static final String KEY_GPS_PROCESSING_METHOD = "gps-processing-method";
        private static final String KEY_WHITE_BALANCE = "whitebalance";
        private static final String KEY_EFFECT = "effect";
        private static final String KEY_TOUCH_AF_AEC = "touch-af-aec";
        private static final String KEY_TOUCH_INDEX_AEC = "touch-index-aec";
        private static final String KEY_ANTIBANDING = "antibanding";
        private static final String KEY_SCENE_MODE = "scene-mode";
        private static final String KEY_FLASH_MODE = "flash-mode";
@@ -1072,6 +1074,10 @@ public class Camera {
        public static final String EFFECT_BLACKBOARD = "blackboard";
        public static final String EFFECT_AQUA = "aqua";

        // Values for touch af/aec settings.
        public static final String TOUCH_AF_AEC_OFF = "touch-off";
        public static final String TOUCH_AF_AEC_ON = "touch-on";

        // Values for auto exposure settings.
        public static final String AUTO_EXPOSURE_FRAME_AVG = "meter-average";
        public static final String AUTO_EXPOSURE_CENTER_WEIGHTED = "meter-center";
@@ -2014,6 +2020,62 @@ public class Camera {
            return split(str);
        }

        /**
         * Gets the current Touch AF/AEC setting.
         *
         * @return one of TOUCH_AF_AEC_XXX string constant. null if Touch AF/AEC
         *         setting is not supported.
         *
         */
        public String getTouchAfAec() {
            return get(KEY_TOUCH_AF_AEC);
        }

        /**
         * Sets the current TOUCH AF/AEC setting.
         *
         * @param value TOUCH_AF_AEC_XXX string constants.
         *
         */
        public void setTouchAfAec(String value) {
            set(KEY_TOUCH_AF_AEC, value);
        }

       /**
         * Gets the supported Touch AF/AEC setting.
         *
         * @return a List of TOUCH_AF_AEC_XXX string constants. null if TOUCH AF/AEC
         *         setting is not supported.
         *
         */
        public List<String> getSupportedTouchAfAec() {
            String str = get(KEY_TOUCH_AF_AEC + SUPPORTED_VALUES_SUFFIX);
            return split(str);
        }

        /**
         * Sets the touch co-ordinate for Touch AF/AEC.
         *
         * @param x  the x co-ordinate of the touch event
         * @param y the y co-ordinate of the touch event
         *
         */
        public void setTouchIndexAec(int x, int y) {
            String v = Integer.toString(x) + "x" + Integer.toString(y);
            set(KEY_TOUCH_INDEX_AEC, v);
        }

        /**
         * Returns the touch co-ordinates of the touch event.
         *
         * @return a Index object with the x and y co-ordinated
         *          for the touch event
         *
         */
        public Size getTouchIndexAec() {
            String pair = get(KEY_TOUCH_INDEX_AEC);
            return strToSize(pair);
        }

        /**
         * Get Sharpness level
+11 −0
Original line number Diff line number Diff line
@@ -71,6 +71,8 @@ public:
    void getSupportedPictureSizes(Vector<Size> &sizes) const;
    void setPictureFormat(const char *format);
    const char *getPictureFormat() const;
    void setTouchIndexAec(int x, int y);
    void getTouchIndexAec(int *x, int *y) const;

    void dump() const;
    status_t dump(int fd, const Vector<String16>& args) const;
@@ -226,6 +228,11 @@ public:
    // Supported color effect settings.
    // Example value: "none,mono,sepia". Read only.
    static const char KEY_SUPPORTED_EFFECTS[];
    //Touch Af/AEC settings.
    static const char KEY_TOUCH_AF_AEC[];
    static const char KEY_SUPPORTED_TOUCH_AF_AEC[];
    //Touch Index for AEC.
    static const char KEY_TOUCH_INDEX_AEC[];
    // Current antibanding setting.
    // Example value: "auto" or ANTIBANDING_XXX constants. Read/write.
    static const char KEY_ANTIBANDING[];
@@ -358,6 +365,10 @@ public:
    static const char EFFECT_BLACKBOARD[];
    static const char EFFECT_AQUA[];

    // Values for Touch AF/AEC
    static const char TOUCH_AF_AEC_OFF[] ;
    static const char TOUCH_AF_AEC_ON[] ;

    // Values for antibanding settings.
    static const char ANTIBANDING_AUTO[];
    static const char ANTIBANDING_50HZ[];
+31 −0
Original line number Diff line number Diff line
@@ -55,6 +55,9 @@ const char CameraParameters::KEY_WHITE_BALANCE[] = "whitebalance";
const char CameraParameters::KEY_SUPPORTED_WHITE_BALANCE[] = "whitebalance-values";
const char CameraParameters::KEY_EFFECT[] = "effect";
const char CameraParameters::KEY_SUPPORTED_EFFECTS[] = "effect-values";
const char CameraParameters::KEY_TOUCH_AF_AEC[] = "touch-af-aec";
const char CameraParameters::KEY_SUPPORTED_TOUCH_AF_AEC[] = "touch-af-aec-values";
const char CameraParameters::KEY_TOUCH_INDEX_AEC[] = "touch-index-aec";
const char CameraParameters::KEY_ANTIBANDING[] = "antibanding";
const char CameraParameters::KEY_SUPPORTED_ANTIBANDING[] = "antibanding-values";
const char CameraParameters::KEY_SCENE_MODE[] = "scene-mode";
@@ -104,6 +107,10 @@ const char CameraParameters::EFFECT_WHITEBOARD[] = "whiteboard";
const char CameraParameters::EFFECT_BLACKBOARD[] = "blackboard";
const char CameraParameters::EFFECT_AQUA[] = "aqua";

// Values for auto exposure settings.
const char CameraParameters::TOUCH_AF_AEC_OFF[] = "touch-off";
const char CameraParameters::TOUCH_AF_AEC_ON[] = "touch-on";

// Values for antibanding settings.
const char CameraParameters::ANTIBANDING_AUTO[] = "auto";
const char CameraParameters::ANTIBANDING_50HZ[] = "50hz";
@@ -471,6 +478,30 @@ void CameraParameters::dump() const
    }
}

void CameraParameters::setTouchIndexAec(int x, int y)
{
    char str[32];
    sprintf(str, "%dx%d", x, y);
    set(KEY_TOUCH_INDEX_AEC, str);
}

void CameraParameters::getTouchIndexAec(int *x, int *y) const
{
    *x = -1;
    *y = -1;

    // Get the current string, if it doesn't exist, leave the -1x-1
    const char *p = get(KEY_TOUCH_INDEX_AEC);
    if (p == 0)
        return;

    int tempX, tempY;
    if (parse_pair(p, &tempX, &tempY, 'x') == 0) {
        *x = tempX;
        *y = tempY;
    }
}

status_t CameraParameters::dump(int fd, const Vector<String16>& args) const
{
    const size_t SIZE = 256;