diff options
author | Linux Build Service Account <lnxbuild@localhost> | 2017-03-03 17:28:34 -0800 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-03-03 17:28:34 -0800 |
commit | 08fd546be5672e9d27a0c5343f581c03bdbe5db6 (patch) | |
tree | 9d614e5c41d4e8eb3c3a246173b15f55584273d2 /src/org/codeaurora | |
parent | aca636015e3d82552f7066f35429129aab976313 (diff) | |
parent | 574d7516850e08e0d2ee2c5d68cbb710d6669998 (diff) | |
download | android_packages_apps_Snap-08fd546be5672e9d27a0c5343f581c03bdbe5db6.tar.gz android_packages_apps_Snap-08fd546be5672e9d27a0c5343f581c03bdbe5db6.tar.bz2 android_packages_apps_Snap-08fd546be5672e9d27a0c5343f581c03bdbe5db6.zip |
Merge "SnapdragonCamera: Wrapper for QC API" into camera.lnx.1.0-dev.1.0
Diffstat (limited to 'src/org/codeaurora')
-rw-r--r-- | src/org/codeaurora/snapcam/wrapper/ExtendedFaceWrapper.java | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/src/org/codeaurora/snapcam/wrapper/ExtendedFaceWrapper.java b/src/org/codeaurora/snapcam/wrapper/ExtendedFaceWrapper.java new file mode 100644 index 000000000..4c92e630d --- /dev/null +++ b/src/org/codeaurora/snapcam/wrapper/ExtendedFaceWrapper.java @@ -0,0 +1,127 @@ +/* + * Copyright (c) 2017, The Linux Foundation. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * * Neither the name of The Linux Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN + * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package org.codeaurora.snapcam.wrapper; + +import java.lang.reflect.Method; + +import android.hardware.Camera.Face; +import android.os.Bundle; + +public class ExtendedFaceWrapper{ + private final static String CLASS_NAME = "org.codeaurora.camera.ExtendedFace"; + private static Class<?> mExtendFaceClass; + public Face mFace; + public ExtendedFaceWrapper(Face face){ + mFace = face; + } + + public static boolean isExtendedFaceInstance(Object object) { + if ( mExtendFaceClass == null ){ + try { + mExtendFaceClass = Class.forName(CLASS_NAME); + }catch (Exception exception){ + exception.printStackTrace(); + return false; + } + } + return mExtendFaceClass.isInstance(object); + } + + public int getSmileDegree() { + return (int)invokeMethod("getSmileDegree"); + } + + public int getSmileScore() { + return (int)invokeMethod("getSmileScore"); + } + + public int getBlinkDetected() { + return (int)invokeMethod("getBlinkDetected"); + } + + + public int getFaceRecognized() { + return (int)invokeMethod("getFaceRecognized"); + } + + public int getGazeAngle() { + return (int)invokeMethod("getGazeAngle"); + } + + public int getUpDownDirection() { + return (int)invokeMethod("getUpDownDirection"); + } + + public int getLeftRightDirection() { + return (int)invokeMethod("getLeftRightDirection"); + } + + + public int getRollDirection() { + return (int)invokeMethod("getRollDirection"); + } + + public int getLeftEyeBlinkDegree() { + return (int)invokeMethod("getLeftEyeBlinkDegree"); + } + + + public int getRightEyeBlinkDegree() { + return (int)invokeMethod("getRightEyeBlinkDegree"); + } + + + public int getLeftRightGazeDegree() { + return (int)invokeMethod("getLeftRightGazeDegree"); + } + + + public int getTopBottomGazeDegree() { + return (int)invokeMethod("getTopBottomGazeDegree"); + } + + public Bundle getExtendedFaceInfo() { + return (Bundle)invokeMethod("getExtendedFaceInfo"); + } + + private Object invokeMethod(String name){ + Object result = null; + try { + if ( mExtendFaceClass == null ){ + mExtendFaceClass = Class.forName(CLASS_NAME); + } + Method method = mExtendFaceClass.getDeclaredMethod(name); + result = method.invoke(mFace); + }catch(Exception exception){ + exception.printStackTrace(); + } + return result; + } +} |