Aplicaciones de realidad aumentada para el aprendizaje de patrones educativos (Manual de sistema)
Texto completo
(2) “APLICACIONES DE REALIDAD AUMENTADA PARA EL APRENDIZAJE DE PATRONES EDUCATIVOS” (MANUAL DE SISTEMA). Por: Edison Alfredo Arrieta Montañez Sebastian Camilo Montañez Caicedo. Instructores: Jaime Alberto Páez Jairo augusto Cortez. UNIVERSIDAD COOPERATIVA DE COLOMBIA SEDE BOGOTA FACULTAD DE INGENIERIA Programa INGENIERIA DE SISTEMAS BOGOTA D.C 2018.
(3) Contenido Introducción .................................................................................................. 4 Objetivos........................................................................................................ 5 Objetivo general......................................................................................... 5 Objetivos específicos del manual ............................................................ 5 Alcances y requerimientos .......................................................................... 6 Alcances ..................................................................................................... 6 Requerimientos.......................................................................................... 6 Planeación ..................................................................................................... 7 herramientas utilizadas y sus versiones ............................................... 11 Código fuente general del desarrollo de las aplicaciones ...................... 12.
(4) Introducción En este proyecto se pretende agilizar el método de aprendizaje de los patrones educativos colaborativos por medio de una aplicación móvil, que permite al usuario observar con ejemplo en 3D el modelo del patrón para que su aprendizaje sea de manera ágil y personal aprovechando los dispositivos móviles que cada persona tiene uno. Este proyecto deriva de un proyecto mayor llamado desarrollo de portafolios electrónicos para la evaluación del aprendizaje por competencias en entornos virtuales. Además, se busca la compresión a detalle de cómo se llevó a cabo el desarrollo de las aplicaciones y con qué herramientas se implementó la realidad aumentada en el proyecto..
(5) Objetivos Objetivo general Desarrollar aplicaciones para dispositivos móviles con tecnología Android en realidad aumentada que permita a los usuarios el aprendizaje de los patrones educativos colaborativos Objetivos específicos del manual • Conocer el planeamiento del desarrollo de las aplicaciones. • Analizar y conocer la implementación de la realidad aumentada en el desarrollo de una aplicación para sistema Android. • Conocer los requerimientos específicos y limitaciones que tienen las aplicaciones desarrolladas. • Tener en cuenta las recomendaciones para tener un uso óptimo de cada aplicación..
(6) Alcances y requerimientos Alcances Las aplicaciones estarán al alcance de los usuarios que ingresen en la plataforma Moodle de patrones educativos realizada por estudiantes de la universidad cooperativa de Colombia. . Todas las personas que tengan un dispositivo móvil con sistema Android desde la versión jelly vean (4.1) podrán usarla.. Requerimientos Diseñar como se llevarán acbao los patrones educativos a la realidad aumentada Usar unity con la herramienta vuforia para realidad aumentada. Desarrollar las aplicaciones para las siguientes versiones del Sistema android o Android Jelly Bean 4.1- 4.3 KitKat 4.4 – 4.1w2 Lollipop 5.0–5.1.1 Marshmallow 6.0–6.1 Nougat 7.0 - 7.1.2 Oreo 8.0 . El producto debe permanecer utilizable en cualquier momento que se solicite. . La información no debe ser manipulada por terceros. . Los actores del programa son o Jaime Paez – product Owner o Jairo Cortez – Product owner.
(7) Planeación El desarrollo del proyecto empezó teniendo claro como plantearíamos cada patrón educativo-colaborativo en realidad aumentada. Después de tener eso establecido seleccionamos las herramientas que usaríamos para realizar los patrones en realidad aumentada. Primero que todo tenemos que dirigirnos a la página de unity y descargarlo (https://store.unity.com/es) y llevar acabo su respectiva instalación, después de tener unity instalado nos dirigimos a la página de herramienta de desarrollo vuforia (https://developer.vuforia.com/). La cual es un kit de desarrollo de software de realidad aumentada para dispositivos móviles que permite la creación de aplicaciones en realidad aumentada y realizamos el registro para poder empezar el desarrollo. Luego de esto en la página de vuforia creamos una llave de licencia por cada aplicación que vamos a crear como se muestra a continuación.. imagen No.1.
(8) imagen No.2. Como ya tenemos la licencia de vuforia por cada aplicación que desarrollaremos, ahora nos dirigimos a establecer un marcador para cada una de las aplicaciones que desarrollaremos y procedemos descargar el paquete de instalación que nos genera vuforia para que la aplicación sincronice que marcador usara para ser ejecutado (en la siguiente imagen indicaremos donde se hace este proceso)..
(9) imagen No.3. Procedemos con el desarrollo de cada aplicación creando un nuevo proyecto en unity y después instalamos el kit de herramientas de vuforia (SDK) que se puede descargar en su pagina (https://developer.vuforia.com/downloads/sdk) y después instalaremos el paquete en cada aplicación que crearemos , el marcador que hicimos anteriormente..
(10) Además, tendremos que copiar el código llave que mostramso anteriormente en la imagen No.2 y pegar dicho código en el recuadro correspondiente y habilitar la apcion de realdiad virtual como se muestra en la imagen No.4.. Ahora empezamos a desarrollar la aplicación de realidad aumentada insertando la figura en 3D que necesitamos, que podemos obtener en la tienda de unity (https://assetstore.unity.com/categories/3d) o podemos crearla con las herramientas que posee el sistema operativo Windows 10 que son el Paint 3D y el 3D builder, ya que las podemos exportar e insertarla en nuestro desarrollo en unity. Finalmente cuando ya hemos terminado todo este proceso y queremos generar nuestro instalador (APK), y para eso necesitamos instalar Android studio (https://developer.android.com/studio/) , después en unity vamos a la opción de generar APK y escogemos desde que versión de Android se puede ejecutar y habilitamos sus permisos para que el usuario lo instala y ejecute sin problemas y por último la generamos y ya será usable. Como se muesta en las siguientes imágenes..
(11) herramientas utilizadas y sus versiones Unity 2018.2.6 (https://store.unity.com/es/download?ref=personal) vuforia-sdk-android-7-2-23.zip (https://developer.vuforia.com/downloads/sdk) android studio 3.1.4 for Windows 64-bit (https://developer.android.com/studio/) paint 3D 1.1702.28017.0 3D builder 13.0.10349.0.
(12) Código fuente general del desarrollo de las aplicaciones El código fuente que veremos acontinuacion es el código generar de cada una de las seis aplicaciones, a razón de que solo insertamos figuras en 3D a las aplicaciones por consiguiente este código nos muestra la configuraicon de cámara que maneja unity para su ejecución y su manejo de figuras 3D, además de estar implícito su configuraicon con vuforia.. Buildconfig.java package com.vuforia.ar.pl; public final class BuildConfig { public static final String APPLICATION_ID = "com.vuforia.ar.pl"; public static final String BUILD_TYPE = "release"; public static final boolean DEBUG = false; public static final String FLAVOR = ""; public static final int VERSION_CODE = 1; public static final String VERSION_NAME = "1.0"; } /* Location: * Qualified Name: com.vuforia.ar.pl.BuildConfig * Java Class Version: 6 (50.0) * JD-Core Version: 0.7.1 */ Camera1_Preview$1.java package com.vuforia.ar.pl; import android.hardware.Camera; import android.hardware.Camera.AutoFocusCallback; import java.util.HashMap; class Camera1_Preview$1 implements Camera.AutoFocusCallback { Camera1_Preview$1(Camera1_Preview paramCamera1_Preview) {} public void onAutoFocus(boolean paramBoolean, Camera paramCamera) {.
(13) paramCamera = Camera1_Preview.access$000(this$0).get(paramCamera); if (paramCamera == null) {} do { return; int i = ((Integer)paramCamera).intValue(); paramCamera = Camera1_Preview.access$100(this$0, i); } while (paramCamera == null); isAutoFocusing = false; } } /* Location: * Qualified Name: com.vuforia.ar.pl.Camera1_Preview.1 * Java Class Version: 6 (50.0) * JD-Core Version: 0.7.1 */ Camera1_Preview$CameraCacheInfo.java package com.vuforia.ar.pl; import android.graphics.SurfaceTexture; import android.hardware.Camera; public class Camera1_Preview$CameraCacheInfo { byte[][] buffer; int bufferFormatPL; int bufferHeight; int bufferSize; int bufferWidth; Camera camera; int[] caps; long deviceHandle; int deviceID; boolean isAutoFocusing; boolean isHalDriven; int overrideFormatAndroid; int overrideHeight; int overrideWidth; int requestFormatAndroid; int requestHeight;.
(14) int requestWidth; int status; CameraSurface surface; SurfaceTexture surfaceTexture; public Camera1_Preview$CameraCacheInfo(Camera1_Preview paramCamera1_Preview) {} } /* Location: * Qualified Name: com.vuforia.ar.pl.Camera1_Preview.CameraCacheInfo * Java Class Version: 6 (50.0) * JD-Core Version: 0.7.1 */. Camera1_Preview.java package com.vuforia.ar.pl; import android.app.Activity; import android.content.pm.PackageManager; import android.graphics.PixelFormat; import android.graphics.Rect; import android.graphics.SurfaceTexture; import android.hardware.Camera; import android.hardware.Camera.Area; import android.hardware.Camera.AutoFocusCallback; import android.hardware.Camera.CameraInfo; import android.hardware.Camera.Parameters; import android.hardware.Camera.PreviewCallback; import android.hardware.Camera.Size; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.ListIterator; import java.util.Vector; import org.json.JSONException; import org.json.JSONObject; public class Camera1_Preview implements Camera.PreviewCallback {.
(15) private static final int AR_CAMERA_DIRECTION_BACK = 268443665; private static final int AR_CAMERA_DIRECTION_FRONT = 268443666; private static final int AR_CAMERA_DIRECTION_UNKNOWN = 268443664; private static final int AR_CAMERA_EXPOSUREMODE_AUTO = 805314560; private static final int AR_CAMERA_EXPOSUREMODE_CONTINUOUSAUTO = 805322752; private static final int AR_CAMERA_EXPOSUREMODE_LOCKED = 805310464; private static final int AR_CAMERA_FOCUSMODE_AUTO = 805306400; private static final int AR_CAMERA_FOCUSMODE_CONTINUOUSAUTO = 805306432; private static final int AR_CAMERA_FOCUSMODE_FIXED = 805306880; private static final int AR_CAMERA_FOCUSMODE_INFINITY = 805306624; private static final int AR_CAMERA_FOCUSMODE_MACRO = 805306496; private static final int AR_CAMERA_FOCUSMODE_NORMAL = 805306384; private static final int AR_CAMERA_IMAGE_FORMAT_ARGB32 = 268439813; private static final int AR_CAMERA_IMAGE_FORMAT_ARGB8888 = 268439813; private static final int AR_CAMERA_IMAGE_FORMAT_BGR24 = 268439822; private static final int AR_CAMERA_IMAGE_FORMAT_BGR888 = 268439822; private static final int AR_CAMERA_IMAGE_FORMAT_BGRA32 = 268439814; private static final int AR_CAMERA_IMAGE_FORMAT_BGRA8888 = 268439814; private static final int AR_CAMERA_IMAGE_FORMAT_LUM = 268439809; private static final int AR_CAMERA_IMAGE_FORMAT_NV12 = 268439815; private static final int AR_CAMERA_IMAGE_FORMAT_NV16 = 268439816; private static final int AR_CAMERA_IMAGE_FORMAT_NV21 = 268439817; private static final int AR_CAMERA_IMAGE_FORMAT_RGB24 = 268439811; private static final int AR_CAMERA_IMAGE_FORMAT_RGB565 = 268439810; private static final int AR_CAMERA_IMAGE_FORMAT_RGB888 = 268439811; private static final int AR_CAMERA_IMAGE_FORMAT_RGBA32 = 268439812; private static final int AR_CAMERA_IMAGE_FORMAT_RGBA4444 = 268439821; private static final int AR_CAMERA_IMAGE_FORMAT_RGBA5551 = 268439820;.
(16) private static final int AR_CAMERA_IMAGE_FORMAT_RGBA8888 = 268439812; private static final int AR_CAMERA_IMAGE_FORMAT_UNKNOWN = 268439808; private static final int AR_CAMERA_IMAGE_FORMAT_YV12 = 268439818; private static final int AR_CAMERA_IMAGE_FORMAT_YV16 = 268439819; private static final int AR_CAMERA_PARAMTYPE_BASE = 536870912; private static final int AR_CAMERA_PARAMTYPE_BRIGHTNESSRANGE = 537133056; private static final int AR_CAMERA_PARAMTYPE_BRIGHTNESSVALUE = 537001984; private static final int AR_CAMERA_PARAMTYPE_CONTRASTRANGE = 537919488; private static final int AR_CAMERA_PARAMTYPE_CONTRASTVALUE = 537395200; private static final int AR_CAMERA_PARAMTYPE_EXPOSUREMODE = 536870944; private static final int AR_CAMERA_PARAMTYPE_EXPOSURETIME = 536871168; private static final int AR_CAMERA_PARAMTYPE_EXPOSURETIMERANGE = 536871424; private static final int AR_CAMERA_PARAMTYPE_EXPOSUREVALUE = 536871936; private static final int AR_CAMERA_PARAMTYPE_EXPOSUREVALUERANGE = 536872960; private static final int AR_CAMERA_PARAMTYPE_FOCUSMODE = 536870914; private static final int AR_CAMERA_PARAMTYPE_FOCUSRANGE = 536870920; private static final int AR_CAMERA_PARAMTYPE_FOCUSREGION = 536870928; private static final int AR_CAMERA_PARAMTYPE_FOCUSVALUE = 536870916; private static final int AR_CAMERA_PARAMTYPE_ISO = 536870976; private static final int AR_CAMERA_PARAMTYPE_ISORANGE = 536871040; private static final int AR_CAMERA_PARAMTYPE_LENS_IS_ADJUSTING = 545259520; private static final int AR_CAMERA_PARAMTYPE_RECORDING_HINT = 541065216; private static final int AR_CAMERA_PARAMTYPE_ROTATION = 538968064; private static final int AR_CAMERA_PARAMTYPE_TORCHMODE = 536870913;.
(17) private static final int AR_CAMERA_PARAMTYPE_VIDEO_STABILIZATION = 553648128; private static final int AR_CAMERA_PARAMTYPE_WHITEBALANCEMODE = 536875008; private static final int AR_CAMERA_PARAMTYPE_WHITEBALANCERANGE = 536887296; private static final int AR_CAMERA_PARAMTYPE_WHITEBALANCEVALUE = 536879104; private static final int AR_CAMERA_PARAMTYPE_ZOOMRANGE = 536936448; private static final int AR_CAMERA_PARAMTYPE_ZOOMVALUE = 536903680; private static final int AR_CAMERA_PARAMVALUE_BASE = 805306368; private static final int AR_CAMERA_STATUS_CAPTURE_RUNNING = 268443651; private static final int AR_CAMERA_STATUS_OPENED = 268443650; private static final int AR_CAMERA_STATUS_UNINITIALIZED = 268443649; private static final int AR_CAMERA_STATUS_UNKNOWN = 268443648; private static final int AR_CAMERA_TORCHMODE_AUTO = 805306372; private static final int AR_CAMERA_TORCHMODE_CONTINUOUSAUTO = 805306376; private static final int AR_CAMERA_TORCHMODE_OFF = 805306369; private static final int AR_CAMERA_TORCHMODE_ON = 805306370; private static final int AR_CAMERA_TYPE_MONO = 268447761; private static final int AR_CAMERA_TYPE_STEREO = 268447762; private static final int AR_CAMERA_TYPE_UNKNOWN = 268447760; private static final int AR_CAMERA_WHITEBALANCEMODE_AUTO = 807403520; private static final int AR_CAMERA_WHITEBALANCEMODE_CONTINUOUSAUTO = 809500672; private static final int AR_CAMERA_WHITEBALANCEMODE_LOCKED = 806354944; private static final int CAMERA_CAPSINFO_VALUE_NUM_SUPPORTED_FRAMERATES = 4; private static final int CAMERA_CAPSINFO_VALUE_NUM_SUPPORTED_IMAGEFORMATS = 5; private static final int CAMERA_CAPSINFO_VALUE_NUM_SUPPORTED_IMAGESIZES = 3; private static final int CAMERA_CAPSINFO_VALUE_SUPPORTED_PARAMVALUES = 2; private static final int CAMERA_CAPSINFO_VALUE_SUPPORTED_QUERYABLE_PARAMS = 0; private static final int CAMERA_CAPSINFO_VALUE_SUPPORTED_SETTABLE_PARAMS = 1;.
(18) private static final int CAMERA_CAPTUREINFO_VALUE_FORMAT = 2; private static final int CAMERA_CAPTUREINFO_VALUE_FRAMERATE = 3; private static final int CAMERA_CAPTUREINFO_VALUE_HEIGHT = 1; private static final int CAMERA_CAPTUREINFO_VALUE_PREVIEWSURFACEENABLED = 4; private static final int CAMERA_CAPTUREINFO_VALUE_WIDTH = 0; private static final int[] CAMERA_IMAGE_FORMAT_CONVERSIONTABLE = { 16, 268439816, 17, 268439817, 4, 268439810, 842094169, 268439818 }; private static boolean CONVERT_FORMAT_TO_ANDROID = false; private static boolean CONVERT_FORMAT_TO_PL = true; private static final String FOCUS_MODE_NORMAL = "normal"; private static final String MODULENAME = "Camera1_Preview"; private static final int NUM_CAPTURE_BUFFERS = 2; private static final int NUM_CAPTURE_BUFFERS_TO_ADD = 2; private static final int NUM_MAX_CAMERAOPEN_RETRY = 10; private static final String SAMSUNG_PARAM_FAST_FPS_MODE = "fastfps-mode"; private static final String SAMSUNG_PARAM_VRMODE = "vrmode"; private static final String SAMSUNG_PARAM_VRMODE_SUPPORTED = "vrmode-supported"; private static final int TIME_CAMERAOPEN_RETRY_DELAY_MS = 250; private static final int _NUM_CAMERA_CAPSINFO_VALUE_ = 6; private static final int _NUM_CAMERA_CAPTUREINFO_VALUE_ = 5; private Vector<CameraCacheInfo> cameraCacheInfo = null; private HashMap<Camera, Integer> cameraCacheInfoIndexCache = null; private SurfaceManager surfaceManager = null; private boolean checkPermission() { try { Activity localActivity = SystemTools.getActivityFromNative(); if (localActivity == null) { return false; } int i = localActivity.getPackageManager().checkPermission("android.permission.CA MERA", localActivity.getPackageName()); if (i == 0) { return true; } } catch (Exception localException) {} return false; }.
(19) private boolean checkSamsungHighFPS(CameraCacheInfo paramCameraCacheInfo) { Camera.Parameters localParameters = getCameraParameters(camera); if (localParameters == null) { SystemTools.setSystemErrorCode(6); return false; } if (("true".equalsIgnoreCase(localParameters.get("vrmode-supported"))) && (requestWidth > 0) && (requestHeight > 0) && (localParameters.get("fast-fpsmode") != null) && (localParameters.getInt("fast-fps-mode") != 0) && ((requestWidth != getPreviewSizewidth) || (requestHeight != getPreviewSizeheight))) { DebugLog.LOGW("Camera1_Preview", "Detected Samsung high fps camera driver bug."); DebugLog.LOGW("Camera1_Preview", "Preview size doesn't match request; width " + requestWidth + "!=" + getPreviewSizewidth + " or height " + requestHeight + "!=" + getPreviewSizeheight); setCameraPreviewFps(30, localParameters); localParameters.setPreviewSize(requestWidth, requestHeight); try { camera.setParameters(localParameters); localParameters = getCameraParameters(camera); if ((requestWidth != getPreviewSizewidth) || (requestHeight != getPreviewSizeheight)) { DebugLog.LOGE("Camera1_Preview", "Unable to workaround Samsung high fps camera driver bug."); DebugLog.LOGE("Camera1_Preview", "Preview size doesn't match request; width " + requestWidth + "!=" + getPreviewSizewidth + " or height " + requestHeight + "!=" + getPreviewSizeheight); return false; } } catch (Exception paramCameraCacheInfo) { SystemTools.setSystemErrorCode(6); return false; } } return true;.
(20) } private CameraCacheInfo getCameraCacheInfo(int paramInt) { if ((paramInt < 0) || (paramInt >= cameraCacheInfo.size())) { return null; } return (CameraCacheInfo)cameraCacheInfo.get(paramInt); } private int getCameraDeviceIndex(int paramInt1, int paramInt2, int paramInt3) { if ((paramInt2 == 268447760) || (SystemTools.checkMinimumApiLevel(9))) { paramInt2 = -1; int i; switch (paramInt3) { default: SystemTools.setSystemErrorCode(2); i = -1; return i; } for (paramInt2 = 0;; paramInt2 = 1) { int j = Camera.getNumberOfCameras(); paramInt3 = 0; for (;;) { if (paramInt3 >= j) { break label129; } Camera.CameraInfo localCameraInfo = new Camera.CameraInfo(); try { Camera.getCameraInfo(paramInt3, localCameraInfo); if ((paramInt2 < 0) || (paramInt2 == facing)) { i = paramInt3; if (paramInt1 < 0) { break; } i = paramInt3; if (paramInt1 == paramInt3) {.
(21) break; } } } catch (Exception localException) { for (;;) {} } paramInt3 += 1; } } label129: SystemTools.setSystemErrorCode(6); return -1; } if (paramInt3 == 268443666) { SystemTools.setSystemErrorCode(2); return -1; } if (paramInt1 >= 1) { SystemTools.setSystemErrorCode(2); return -1; } return 0; } private Camera.Parameters getCameraParameters(Camera paramCamera) { try { paramCamera = paramCamera.getParameters(); return paramCamera; } catch (Exception paramCamera) {} return null; } private native void newFrameAvailable(long paramLong1, int paramInt1, int paramInt2, int paramInt3, int paramInt4, byte[] paramArrayOfByte, long paramLong2); private void setCameraCapsBit(CameraCacheInfo paramCameraCacheInfo, int paramInt1, int paramInt2, boolean paramBoolean).
(22) { switch (paramInt1) { default: return; } for (int i = 805306368;; i = 536870912) { paramInt2 = (int)(Math.log((i ^ 0xFFFFFFFF) & paramInt2) / Math.log(2.0D)); if (!paramBoolean) { break; } paramCameraCacheInfo = caps; paramCameraCacheInfo[paramInt1] |= 1 << paramInt2; return; } paramCameraCacheInfo = caps; paramCameraCacheInfo[paramInt1] &= (1 << paramInt2 ^ 0xFFFFFFFF); } /* Error */ private boolean setCameraCaptureParams(CameraCacheInfo paramCameraCacheInfo, Camera.Parameters paramParameters, int[] paramArrayOfInt1, int[] paramArrayOfInt2) { // Byte code: // 0: aload_3 // 1: ifnonnull +8 -> 9 // 4: aload 4 // 6: ifnull +61 -> 67 // 9: aload 4 // 11: ifnull +62 -> 73 // 14: aload 4 // 16: iconst_0 // 17: iaload // 18: istore 5 // 20: aload_1 // 21: iload 5 // 23: putfield 410 com/vuforia/ar/pl/Camera1_Preview$CameraCacheInfo:overrideWidth I // 26: aload 4 // 28: ifnull +53 -> 81 // 31: aload 4.
(23) // // // // // //. 33: iconst_1 34: iaload 35: istore 5 37: aload_1 38: iload 5 40: putfield 413 com/vuforia/ar/pl/Camera1_Preview$CameraCacheInfo:overrideHeight I // 43: aload 4 // 45: ifnull +44 -> 89 // 48: aload 4 // 50: iconst_2 // 51: iaload // 52: istore 5 // 54: aload_1 // 55: aload_0 // 56: iload 5 // 58: getstatic 217 com/vuforia/ar/pl/Camera1_Preview:CONVERT_FORMAT_TO_ANDR OID Z // 61: invokespecial 417 com/vuforia/ar/pl/Camera1_Preview:translateImageFormat (IZ)I // 64: putfield 420 com/vuforia/ar/pl/Camera1_Preview$CameraCacheInfo:overrideForma tAndroid I // 67: aload_3 // 68: ifnonnull +29 -> 97 // 71: iconst_1 // 72: ireturn // 73: aload_3 // 74: iconst_0 // 75: iaload // 76: istore 5 // 78: goto -58 -> 20 // 81: aload_3 // 82: iconst_1 // 83: iaload // 84: istore 5 // 86: goto -49 -> 37 // 89: aload_3 // 90: iconst_2 // 91: iaload // 92: istore 5 // 94: goto -40 -> 54 // 97: aload_1.
(24) // // // //. 98: aload_3 99: iconst_0 100: iaload 101: putfield 293 com/vuforia/ar/pl/Camera1_Preview$CameraCacheInfo:requestWidth I // 104: aload_1 // 105: aload_3 // 106: iconst_1 // 107: iaload // 108: putfield 296 com/vuforia/ar/pl/Camera1_Preview$CameraCacheInfo:requestHeight I // 111: aload_1 // 112: aload_0 // 113: aload_3 // 114: iconst_2 // 115: iaload // 116: getstatic 217 com/vuforia/ar/pl/Camera1_Preview:CONVERT_FORMAT_TO_ANDR OID Z // 119: invokespecial 417 com/vuforia/ar/pl/Camera1_Preview:translateImageFormat (IZ)I // 122: putfield 423 com/vuforia/ar/pl/Camera1_Preview$CameraCacheInfo:requestFormat Android I // 125: aload_3 // 126: iconst_3 // 127: iaload // 128: istore 5 // 130: aload_1 // 131: getfield 293 com/vuforia/ar/pl/Camera1_Preview$CameraCacheInfo:requestWidth I // 134: ifle +22 -> 156 // 137: aload_1 // 138: getfield 296 com/vuforia/ar/pl/Camera1_Preview$CameraCacheInfo:requestHeight I // 141: ifle +15 -> 156 // 144: aload_2 // 145: aload_1 // 146: getfield 293 com/vuforia/ar/pl/Camera1_Preview$CameraCacheInfo:requestWidth I.
(25) // 149: aload_1 // 150: getfield 296 com/vuforia/ar/pl/Camera1_Preview$CameraCacheInfo:requestHeight I // 153: invokevirtual 347 android/hardware/Camera$Parameters:setPreviewSize (II)V // 156: iload 5 // 158: ifle +27 -> 185 // 161: bipush 8 // 163: invokestatic 373 com/vuforia/ar/pl/SystemTools:checkMinimumApiLevel (I)Z // 166: ifeq +81 -> 247 // 169: aload_0 // 170: iload 5 // 172: aload_2 // 173: invokespecial 343 com/vuforia/ar/pl/Camera1_Preview:setCameraPreviewFps (ILandroid/hardware/Camera$Parameters;)Z // 176: ifne +9 -> 185 // 179: aload_2 // 180: iload 5 // 182: invokevirtual 426 android/hardware/Camera$Parameters:setPreviewFrameRate (I)V // 185: aload_1 // 186: getfield 423 com/vuforia/ar/pl/Camera1_Preview$CameraCacheInfo:requestFormat Android I // 189: ifeq +11 -> 200 // 192: aload_2 // 193: aload_1 // 194: getfield 423 com/vuforia/ar/pl/Camera1_Preview$CameraCacheInfo:requestFormat Android I // 197: invokevirtual 429 android/hardware/Camera$Parameters:setPreviewFormat (I)V // 200: aload_3 // 201: iconst_4 // 202: iaload // 203: ifle +56 -> 259 // 206: iconst_1 // 207: istore 5 // 209: iload 5 // 211: ifeq +34 -> 245 // 214: bipush 11.
(26) // 216: invokestatic 373 com/vuforia/ar/pl/SystemTools:checkMinimumApiLevel (I)Z // 219: ifeq +49 -> 268 // 222: aload_1 // 223: new 431 android/graphics/SurfaceTexture // 226: dup // 227: iconst_m1 // 228: invokespecial 433 android/graphics/SurfaceTexture:<init> (I)V // 231: putfield 437 com/vuforia/ar/pl/Camera1_Preview$CameraCacheInfo:surfaceTextur e Landroid/graphics/SurfaceTexture; // 234: aload_1 // 235: getfield 268 com/vuforia/ar/pl/Camera1_Preview$CameraCacheInfo:camera Landroid/hardware/Camera; // 238: aload_1 // 239: getfield 437 com/vuforia/ar/pl/Camera1_Preview$CameraCacheInfo:surfaceTextur e Landroid/graphics/SurfaceTexture; // 242: invokevirtual 441 android/hardware/Camera:setPreviewTexture (Landroid/graphics/SurfaceTexture;)V // 245: iconst_1 // 246: ireturn // 247: aload_2 // 248: iload 5 // 250: invokevirtual 426 android/hardware/Camera$Parameters:setPreviewFrameRate (I)V // 253: goto -68 -> 185 // 256: astore_1 // 257: iconst_0 // 258: ireturn // 259: iconst_0 // 260: istore 5 // 262: goto -53 -> 209 // 265: astore_1 // 266: iconst_0 // 267: ireturn // 268: aload_0 // 269: getfield 223 com/vuforia/ar/pl/Camera1_Preview:surfaceManager Lcom/vuforia/ar/pl/SurfaceManager; // 272: ifnull +16 -> 288.
(27) // 275: aload_0 // 276: getfield 223 com/vuforia/ar/pl/Camera1_Preview:surfaceManager Lcom/vuforia/ar/pl/SurfaceManager; // 279: aload_1 // 280: invokevirtual 446 com/vuforia/ar/pl/SurfaceManager:addCameraSurface (Lcom/vuforia/ar/pl/Camera1_Preview$CameraCacheInfo;)Z // 283: ifne -38 -> 245 // 286: iconst_0 // 287: ireturn // 288: iconst_0 // 289: ireturn // 290: astore_1 // 291: goto -46 -> 245 // Local variable table: // start length slot name signature // 0 294 0 this Camera1_Preview // 0 294 1 paramCameraCacheInfo CameraCacheInfo // 0 294 2 paramParameters Camera.Parameters // 0 294 3 paramArrayOfInt1 int[] // 0 294 4 paramArrayOfInt2 int[] // 18 243 5 i int // Exception table: // from to target type // 130 156 256 java/lang/Exception // 161 185 256 java/lang/Exception // 185 200 256 java/lang/Exception // 247 253 256 java/lang/Exception // 222 234 265 java/lang/Exception // 234 245 290 java/lang/Exception } private boolean setCameraPreviewFps(int paramInt, Camera.Parameters paramParameters) { Object localObject2 = paramParameters.getSupportedPreviewFpsRange(); Object localObject1 = null; if (((paramInt == 60) || (paramInt == 120)) && ("true".equalsIgnoreCase(paramParameters.get("vrmode-supported")))) { localObject1 = new int[2]; paramParameters.set("vrmode", 1); paramParameters.setRecordingHint(true); paramParameters.set("focus-mode", "continuous-video");.
(28) if (paramInt == 60) { paramParameters.set("fast-fps-mode", 1); localObject1[0] = 60000; localObject1[1] = 60000; } localObject2 = localObject1; if (paramInt == 120) { paramParameters.set("fast-fps-mode", 2); localObject1[0] = 120000; localObject1[1] = 120000; localObject2 = localObject1; } if (localObject2 != null) { paramParameters.setPreviewFpsRange(localObject2[0], localObject2[1]); return true; } } else { if (("true".equalsIgnoreCase(paramParameters.get("vrmode-supported"))) && (paramParameters.get("fast-fps-mode") != null) && (paramParameters.getInt("fast-fps-mode") != 0)) { paramParameters.set("vrmode", 0); paramParameters.set("fast-fps-mode", 0); } Iterator localIterator = ((List)localObject2).iterator(); for (;;) { localObject2 = localObject1; if (!localIterator.hasNext()) { break; } localObject2 = (int[])localIterator.next(); if ((localObject2[0] == paramInt * 1000) && (localObject2[1] localObject2[0] < Integer.MAX_VALUE)) { localObject1 = localObject2; } } } return false;.
(29) } private boolean setCustomCameraParams(Camera.Parameters paramParameters, String paramString) { for (;;) { Object localObject; try { paramString = new JSONObject(paramString); localIterator = paramString.keys(); } catch (JSONException paramParameters) { try { Iterator localIterator; localObject = paramString.get(str); if (localObject.getClass() != String.class) { break label73; } paramParameters.set(str, (String)localObject); } catch (JSONException paramParameters) { return false; } paramParameters = paramParameters; return false; } if (!localIterator.hasNext()) { break label103; } String str = (String)localIterator.next(); label73: if (localObject.getClass() != Integer.class) { break; } paramParameters.set(str, ((Integer)localObject).intValue()); } return false; label103: return true; }.
(30) private boolean setupPreviewBuffer(CameraCacheInfo paramCameraCacheInfo) { Object localObject = getCameraParameters(camera); if (localObject == null) { return false; } int j; for (;;) { try { if (requestWidth == overrideWidth) { i = getPreviewSizewidth; bufferWidth = i; if (requestHeight != overrideHeight) { continue; } i = getPreviewSizeheight; bufferHeight = i; if (requestFormatAndroid != overrideFormatAndroid) { continue; } i = ((Camera.Parameters)localObject).getPreviewFormat(); bufferFormatPL = translateImageFormat(i, CONVERT_FORMAT_TO_PL); } } catch (Exception paramCameraCacheInfo) { return false; } try { localObject = new PixelFormat(); PixelFormat.getPixelFormatInfo(i, (PixelFormat)localObject); j = bitsPerPixel; i = j; } catch (Exception localException) { j = getBitsPerPixel(i); i = j;.
(31) if (j != 0) { continue; } return false; } j = bufferWidth * bufferHeight * i / 8 + 4096; if (j > bufferSize) { break; } camera.setPreviewCallbackWithBuffer(this); return true; i = overrideWidth; continue; i = overrideHeight; continue; i = overrideFormatAndroid; } buffer = new byte[2][]; int i = 0; while (i < 2) { buffer[i] = new byte[j]; if (i < 2) { camera.addCallbackBuffer(buffer[i]); } i += 1; } bufferSize = j; camera.setPreviewCallbackWithBuffer(this); System.gc(); return true; } private int translateImageFormat(int paramInt, boolean paramBoolean) { int i = 0; while (i < CAMERA_IMAGE_FORMAT_CONVERSIONTABLE.length / 2) { int j; if (paramBoolean == CONVERT_FORMAT_TO_PL) { j = CAMERA_IMAGE_FORMAT_CONVERSIONTABLE[(i * 2)]; } while (paramInt == j) { if (paramBoolean == CONVERT_FORMAT_TO_PL) {.
(32) return CAMERA_IMAGE_FORMAT_CONVERSIONTABLE[(i * 2 + 1)]; j = CAMERA_IMAGE_FORMAT_CONVERSIONTABLE[(i * 2 + 1)]; } else { return CAMERA_IMAGE_FORMAT_CONVERSIONTABLE[(i * 2)]; } } i += 1; } if (paramBoolean == CONVERT_FORMAT_TO_PL) { return 268439808; } return 0; } public boolean close(int paramInt) { CameraCacheInfo localCameraCacheInfo = getCameraCacheInfo(paramInt); if (localCameraCacheInfo == null) { SystemTools.setSystemErrorCode(4); return false; } if (isHalDriven) { DebugLog.LOGW("Camera1_Preview", "We shouldn't be here for HAL driven camera!"); return true; } cameraCacheInfoIndexCache.remove(camera); boolean bool = false; try { camera.release(); bool = true; } catch (Exception localException) { for (;;) {} } camera = null; buffer = ((byte[][])null); status = 268443649;.
(33) System.gc(); return bool; } int getBitsPerPixel(int paramInt) { int i = 16; switch (paramInt) { default: i = 0; case 4: case 16: return i; case 17: return 12; } return 12; } public int[] getCameraCapabilities(int paramInt) { CameraCacheInfo localCameraCacheInfo = getCameraCacheInfo(paramInt); if (localCameraCacheInfo == null) { SystemTools.setSystemErrorCode(4); return null; } if (caps != null) { return caps; } Object localObject3 = getCameraParameters(camera); if (localObject3 == null) { SystemTools.setSystemErrorCode(6); return null; } Object localObject4 = ((Camera.Parameters)localObject3).getSupportedPreviewSizes(); Object localObject2 = ((Camera.Parameters)localObject3).getSupportedPreviewFrameRates(); Object localObject1 = ((Camera.Parameters)localObject3).getSupportedPreviewFormats();.
(34) List localList1 = ((Camera.Parameters)localObject3).getSupportedFlashModes(); List localList2 = ((Camera.Parameters)localObject3).getSupportedFocusModes(); int k; label117: int j; if (localObject4 != null) { i = ((List)localObject4).size(); if (localObject2 == null) { break label758; } k = ((List)localObject2).size(); if (localObject1 == null) { break label764; } j = ((List)localObject1).size(); label130: caps = new int[i * 2 + 6 + k + j]; caps[0] = 536870912; if (localList1 == null) { break label775; } if ((!localList1.contains("torch")) && (!localList1.contains("on"))) { break label769; } bool = true; label191: setCameraCapsBit(localCameraCacheInfo, 0, 536870913, bool); setCameraCapsBit(localCameraCacheInfo, 0, 536870914, true); setCameraCapsBit(localCameraCacheInfo, 0, 536870916, SystemTools.checkMinimumApiLevel(8)); setCameraCapsBit(localCameraCacheInfo, 0, 536870928, SystemTools.checkMinimumApiLevel(14)); setCameraCapsBit(localCameraCacheInfo, 0, 536871936, SystemTools.checkMinimumApiLevel(8)); setCameraCapsBit(localCameraCacheInfo, 0, 536872960, SystemTools.checkMinimumApiLevel(8)); if ((!SystemTools.checkMinimumApiLevel(8)) || (!((Camera.Parameters)localObject3).isZoomSupported())) { break label781; } bool = true; label287:.
(35) setCameraCapsBit(localCameraCacheInfo, 0, 536903680, bool); if ((!SystemTools.checkMinimumApiLevel(8)) || (!((Camera.Parameters)localObject3).isZoomSupported())) { break label787; } bool = true; label317: setCameraCapsBit(localCameraCacheInfo, 0, 536936448, bool); setCameraCapsBit(localCameraCacheInfo, 0, 553648128, SystemTools.checkMinimumApiLevel(15)); caps[1] = 536870912; if (localList1 == null) { break label799; } if ((!localList1.contains("torch")) && (!localList1.contains("on"))) { break label793; } bool = true; label385: setCameraCapsBit(localCameraCacheInfo, 1, 536870913, bool); setCameraCapsBit(localCameraCacheInfo, 1, 536870914, true); setCameraCapsBit(localCameraCacheInfo, 1, 536870928, SystemTools.checkMinimumApiLevel(14)); setCameraCapsBit(localCameraCacheInfo, 1, 536871936, SystemTools.checkMinimumApiLevel(8)); if ((!SystemTools.checkMinimumApiLevel(8)) || (!((Camera.Parameters)localObject3).isZoomSupported())) { break label805; } } label758: label764: label769: label775: label781: label787: label793: label799: label805: for (boolean bool = true;; bool = false) { setCameraCapsBit(localCameraCacheInfo, 1, 536903680, bool); setCameraCapsBit(localCameraCacheInfo, 1, 553648128, SystemTools.checkMinimumApiLevel(15)); caps[2] = 805306368;.
(36) if ((localList1 != null) && ((localList1.contains("torch")) || (localList1.contains("on")))) { setCameraCapsBit(localCameraCacheInfo, 2, 805306369, true); setCameraCapsBit(localCameraCacheInfo, 2, 805306370, true); } if (localList2 != null) { setCameraCapsBit(localCameraCacheInfo, 2, 805306384, true); setCameraCapsBit(localCameraCacheInfo, 2, 805306400, localList2.contains("auto")); setCameraCapsBit(localCameraCacheInfo, 2, 805306432, localList2.contains("continuous-video")); setCameraCapsBit(localCameraCacheInfo, 2, 805306496, localList2.contains("macro")); setCameraCapsBit(localCameraCacheInfo, 2, 805306624, localList2.contains("infinity")); setCameraCapsBit(localCameraCacheInfo, 2, 805306880, localList2.contains("fixed")); } caps[3] = i; caps[4] = k; caps[5] = j; int m = 6; paramInt = m; if (i <= 0) { break label811; } localObject3 = ((List)localObject4).listIterator(); i = m; for (;;) { paramInt = i; if (!((ListIterator)localObject3).hasNext()) { break; } localObject4 = (Camera.Size)((ListIterator)localObject3).next(); caps[i] = width; caps[(i + 1)] = height; i += 2; } i = 0; break; k = 0; break label117;.
(37) j = 0; break label130; bool = false; break label191; bool = false; break label191; bool = false; break label287; bool = false; break label317; bool = false; break label385; bool = false; break label385; } label811: int i = paramInt; if (k > 0) { localObject2 = ((List)localObject2).listIterator(); for (;;) { i = paramInt; if (!((ListIterator)localObject2).hasNext()) { break; } i = ((Integer)((ListIterator)localObject2).next()).intValue(); caps[paramInt] = i; paramInt += 1; } } if (j > 0) { localObject1 = ((List)localObject1).listIterator(); while (((ListIterator)localObject1).hasNext()) { paramInt = ((Integer)((ListIterator)localObject1).next()).intValue(); caps[i] = translateImageFormat(paramInt, true); i += 1; } } return caps; } public int[] getCaptureInfo(int paramInt).
(38) { int i = 0; CameraCacheInfo localCameraCacheInfo = getCameraCacheInfo(paramInt); if (localCameraCacheInfo == null) { SystemTools.setSystemErrorCode(4); return null; } Camera.Parameters localParameters = getCameraParameters(camera); if (localParameters == null) { SystemTools.setSystemErrorCode(6); return null; } for (;;) { try { int j = getPreviewSizewidth; int k = getPreviewSizeheight; int m = translateImageFormat(localParameters.getPreviewFormat(), CONVERT_FORMAT_TO_PL); int n = localParameters.getPreviewFrameRate(); if (surface == null) { paramInt = i; if (surfaceTexture == null) { return new int[] { j, k, m, n, paramInt }; } } } catch (Exception localException) { SystemTools.setSystemErrorCode(6); return null; } paramInt = 1; } } public int getDeviceID(int paramInt) { CameraCacheInfo localCameraCacheInfo = getCameraCacheInfo(paramInt);.
(39) if (localCameraCacheInfo == null) { SystemTools.setSystemErrorCode(4); return -1; } return deviceID; } public int getDirection(int paramInt) { if (!checkPermission()) { SystemTools.setSystemErrorCode(6); return -1; } if (SystemTools.checkMinimumApiLevel(9)) { Camera.CameraInfo localCameraInfo = new Camera.CameraInfo(); try { Camera.getCameraInfo(paramInt, localCameraInfo); switch (facing) { default: return 268443664; } } catch (Exception localException) { SystemTools.setSystemErrorCode(6); return -1; } return 268443665; return 268443666; } return 268443665; } String getFlattenedParameters(int paramInt) { Object localObject = getCameraCacheInfo(paramInt); if ((localObject == null) || (camera == null)) { SystemTools.setSystemErrorCode(4); return "";.
(40) } localObject = getCameraParameters(camera); if (localObject == null) { SystemTools.setSystemErrorCode(6); return ""; } return ((Camera.Parameters)localObject).flatten(); } public int getNumberOfCameras() { if (!checkPermission()) { SystemTools.setSystemErrorCode(6); return -1; } int i; if (SystemTools.checkMinimumApiLevel(9)) { try { i = Camera.getNumberOfCameras(); return i; } catch (Exception localException1) { SystemTools.setSystemErrorCode(6); return -1; } } for (;;) { try { boolean bool = SystemTools.getActivityFromNative().getPackageManager().hasSystemFeatu re("android.hardware.camera"); if (bool) { i = 1; return i; } } catch (Exception localException2) {.
(41) SystemTools.setSystemErrorCode(6); return -1; } i = 0; } } public int getOrientation(int paramInt) { if (!checkPermission()) { SystemTools.setSystemErrorCode(6); return -1; } if (SystemTools.checkMinimumApiLevel(9)) { Camera.CameraInfo localCameraInfo = new Camera.CameraInfo(); try { Camera.getCameraInfo(paramInt, localCameraInfo); return orientation; } catch (Exception localException) { SystemTools.setSystemErrorCode(6); return -1; } } SystemTools.setSystemErrorCode(6); return -1; } int getStatus(int paramInt) { CameraCacheInfo localCameraCacheInfo = getCameraCacheInfo(paramInt); if (localCameraCacheInfo == null) { SystemTools.setSystemErrorCode(4); return 268443648; } return status; } Object getTypedCameraParameter(int paramInt1, int paramInt2).
(42) { Object localObject1 = getCameraCacheInfo(paramInt1); if ((localObject1 == null) || (camera == null)) { SystemTools.setSystemErrorCode(4); return null; } Object localObject3 = getCameraParameters(camera); if (localObject3 == null) { SystemTools.setSystemErrorCode(6); return null; } switch (paramInt2) { default: return null; case 536870913: case 536870914: case 536870916: case 536870920: try { localObject1 = ((Camera.Parameters)localObject3).getFlashMode(); if ((((String)localObject1).equals("torch")) || (((String)localObject1).equals("on"))) { return Integer.valueOf(805306370); } if (((String)localObject1).equals("off")) { return Integer.valueOf(805306369); } SystemTools.setSystemErrorCode(6); return null; } catch (Exception localException) { SystemTools.setSystemErrorCode(6); return null; } localObject3 = ((Camera.Parameters)localObject3).getFocusMode(); if (((String)localObject3).equals("auto")) { if (!isAutoFocusing) { break label812; } }.
(43) break; } label812: for (paramInt1 = 805306400;; paramInt1 = 805306384) { return Integer.valueOf(paramInt1); if (((String)localObject3).equals("continuous-video")) { return Integer.valueOf(805306432); } if (((String)localObject3).equals("infinity")) { return Integer.valueOf(805306624); } if (((String)localObject3).equals("macro")) { return Integer.valueOf(805306496); } if (((String)localObject3).equals("fixed")) { return Integer.valueOf(805306880); } SystemTools.setSystemErrorCode(6); return null; if (SystemTools.checkMinimumApiLevel(8)) { return Float.valueOf(((Camera.Parameters)localObject3).getFocalLength()); } SystemTools.setSystemErrorCode(6); return null; if (SystemTools.checkMinimumApiLevel(9)) { localObject1 = new float[3]; ((Camera.Parameters)localObject3).getFocusDistances((float[])localObject1); float f1 = localObject1[0]; float f2 = localObject1[2]; return new float[] { f1, f2 }; } SystemTools.setSystemErrorCode(6); return null; if ((SystemTools.checkMinimumApiLevel(14)) && (((Camera.Parameters)localObject3).getMaxNumFocusAreas() > 0)) { Object localObject2 = ((Camera.Parameters)localObject3).getFocusAreas(); if (((List)localObject2).size() > 0) { localObject2 = (Camera.Area)((List)localObject2).get(0);.
(44) return new float[] { rect.left, rect.top, rect.right, rect.bottom, weight }; } } SystemTools.setSystemErrorCode(6); return null; SystemTools.setSystemErrorCode(6); return null; if (SystemTools.checkMinimumApiLevel(8)) { return Float.valueOf(((Camera.Parameters)localObject3).getExposureCompensation Step() * ((Camera.Parameters)localObject3).getExposureCompensation()); } SystemTools.setSystemErrorCode(6); return null; if (SystemTools.checkMinimumApiLevel(8)) { return new float[] { ((Camera.Parameters)localObject3).getExposureCompensationStep() * ((Camera.Parameters)localObject3).getMinExposureCompensation(), ((Camera.Parameters)localObject3).getExposureCompensationStep() * ((Camera.Parameters)localObject3).getMaxExposureCompensation() }; } SystemTools.setSystemErrorCode(6); return null; SystemTools.setSystemErrorCode(6); return null; SystemTools.setSystemErrorCode(6); return null; SystemTools.setSystemErrorCode(6); return null; if ((SystemTools.checkMinimumApiLevel(8)) && (((Camera.Parameters)localObject3).isZoomSupported())) { return Integer.valueOf(((Camera.Parameters)localObject3).getZoom()); } SystemTools.setSystemErrorCode(6); return null; if ((SystemTools.checkMinimumApiLevel(8)) && (((Camera.Parameters)localObject3).isZoomSupported())) { return new int[] { 0, ((Camera.Parameters)localObject3).getMaxZoom() }; } SystemTools.setSystemErrorCode(6); return null; SystemTools.setSystemErrorCode(6); return null; SystemTools.setSystemErrorCode(6); return null;.
(45) SystemTools.setSystemErrorCode(6); return null; SystemTools.setSystemErrorCode(6); return null; SystemTools.setSystemErrorCode(6); return null; if (((Camera.Parameters)localObject3).getVideoStabilization()) { return Boolean.valueOf(true); } return Boolean.valueOf(false); } } String getUntypedCameraParameter(int paramInt, String paramString) { Object localObject = null; CameraCacheInfo localCameraCacheInfo = getCameraCacheInfo(paramInt); if ((localCameraCacheInfo == null) || (camera == null)) { SystemTools.setSystemErrorCode(4); paramString = (String)localObject; } do { return paramString; localObject = getCameraParameters(camera); if (localObject == null) { SystemTools.setSystemErrorCode(6); return null; } localObject = ((Camera.Parameters)localObject).get(paramString); paramString = (String)localObject; } while (localObject != null); SystemTools.setSystemErrorCode(6); return (String)localObject; } public boolean init() { cameraCacheInfo = new Vector(); cameraCacheInfoIndexCache = new HashMap(); return true; }.
(46) public void onPreviewFrame(byte[] paramArrayOfByte, Camera paramCamera) { long l = System.nanoTime(); if (SystemTools.checkMinimumApiLevel(18)) {} Object localObject = cameraCacheInfoIndexCache.get(paramCamera); if (localObject == null) { if (!SystemTools.checkMinimumApiLevel(18)) {} } do { int i; do { return; i = ((Integer)localObject).intValue(); localObject = getCameraCacheInfo(i); if (localObject != null) { break; } } while (!SystemTools.checkMinimumApiLevel(18)); return; newFrameAvailable(deviceHandle, i, bufferWidth, bufferHeight, bufferFormatPL, paramArrayOfByte, l); paramCamera.addCallbackBuffer(paramArrayOfByte); } while (!SystemTools.checkMinimumApiLevel(18)); } public int open(long paramLong, int paramInt1, int paramInt2, int paramInt3, String paramString, int[] paramArrayOfInt1, int[] paramArrayOfInt2) { if (!checkPermission()) { SystemTools.setSystemErrorCode(6); return -1; } int i = getCameraDeviceIndex(paramInt1, paramInt2, paramInt3); if (i < 0) { return -1; } paramInt3 = -1; CameraCacheInfo localCameraCacheInfo = null; int j = cameraCacheInfo.size(); paramInt2 = 0;.
(47) paramInt1 = paramInt3; if (paramInt2 < j) { localCameraCacheInfo = (CameraCacheInfo)cameraCacheInfo.get(paramInt2); if (deviceID == i) { paramInt1 = paramInt2; } } else { if (paramInt1 < 0) { localCameraCacheInfo = new CameraCacheInfo(); deviceID = i; deviceHandle = paramLong; camera = null; surface = null; buffer = ((byte[][])null); overrideWidth = 0; requestWidth = 0; bufferWidth = 0; overrideHeight = 0; requestHeight = 0; bufferHeight = 0; bufferFormatPL = 268439808; overrideFormatAndroid = 0; requestFormatAndroid = 0; caps = null; status = 268443649; isAutoFocusing = false; isHalDriven = false; } bufferSize = 0; paramInt2 = 0; paramInt3 = 10; } try { label228: if (!SystemTools.checkMinimumApiLevel(9)) { break label319; } camera = Camera.open(deviceID); label249:.
(48) Camera localCamera = camera; if (localCamera == null) { break label343; } paramInt2 = 1; } catch (Exception localException1) { for (;;) { continue; paramInt2 = 0; } } if ((paramInt2 == 0) && (paramInt3 > 0)) {} label319: label343: label600: label609: for (;;) { try {}catch (Exception localException2) { continue; if (((paramArrayOfInt1 == null) || (paramArrayOfInt1.length <= 0)) && ((paramArrayOfInt2 == null) || (paramArrayOfInt2.length <= 0))) { continue; } paramInt2 = 1; if ((paramString == null) || (paramString.length() <= 0)) { continue; } paramInt3 = 1; if ((paramInt2 == 0) && (paramInt3 == 0)) { continue; } Camera.Parameters localParameters = getCameraParameters(camera); if (localParameters != null) { continue; } SystemTools.setSystemErrorCode(6); return -1; paramInt2 = 0; continue; paramInt3 = 0;.
(49) continue; if (paramInt2 == 0) { continue; } if ((paramArrayOfInt1 == null) || (paramArrayOfInt1.length == 5)) { continue; } SystemTools.setSystemErrorCode(2); return -1; if (setCameraCaptureParams(localCameraCacheInfo, localParameters, paramArrayOfInt1, paramArrayOfInt2)) { continue; } SystemTools.setSystemErrorCode(6); return -1; if ((paramInt3 == 0) || (setCustomCameraParams(localParameters, paramString))) { continue; } SystemTools.setSystemErrorCode(2); return -1; try { camera.setParameters(localParameters); if (!checkSamsungHighFPS(localCameraCacheInfo)) { return -1; } } catch (Exception paramString) { SystemTools.setSystemErrorCode(6); return -1; } status = 268443650; paramInt2 = paramInt1; if (paramInt1 >= 0) { continue; } cameraCacheInfo.add(localCameraCacheInfo); paramInt2 = cameraCacheInfo.size() - 1; cameraCacheInfoIndexCache.put(camera, Integer.valueOf(paramInt2)); return paramInt2; } try {.
(50) wait(250L); if (paramInt2 != 0) { break label609; } if (paramInt3 > 0) { break label600; } if (camera != null) { continue; } SystemTools.setSystemErrorCode(6); return -1; } finally {} paramInt2 += 1; break; if (deviceID != 0) { break label249; } camera = Camera.open(); break label249; paramInt3 -= 1; break label228; } } public int registerHalCamera(int paramInt1, int paramInt2, int paramInt3, String paramString, int[] paramArrayOfInt1, int[] paramArrayOfInt2) { int i = -1; if (!checkPermission()) { SystemTools.setSystemErrorCode(6); paramInt2 = i; } int j; do { return paramInt2; j = getCameraDeviceIndex(paramInt1, paramInt2, paramInt3); paramInt2 = i; } while (j < 0); paramInt3 = -1; paramString = null; i = cameraCacheInfo.size();.
(51) paramInt2 = 0; for (;;) { paramInt1 = paramInt3; if (paramInt2 < i) { paramString = (CameraCacheInfo)cameraCacheInfo.get(paramInt2); if ((deviceID == j) && (isHalDriven)) { paramInt1 = paramInt2; } } else { if (paramInt1 < 0) { paramString = new CameraCacheInfo(); deviceID = j; camera = null; surface = null; buffer = ((byte[][])null); overrideWidth = 0; requestWidth = 0; bufferWidth = 0; overrideHeight = 0; requestHeight = 0; bufferHeight = 0; bufferFormatPL = 268439808; overrideFormatAndroid = 0; requestFormatAndroid = 0; caps = null; status = 268443649; isAutoFocusing = false; isHalDriven = true; } bufferSize = 0; paramInt2 = paramInt1; if (paramInt1 >= 0) { break; } cameraCacheInfo.add(paramString); paramInt1 = cameraCacheInfo.size(); DebugLog.LOGD("Camera1_Preview", "New HAL camera cache info added to cache"); return paramInt1 - 1; }.
(52) paramInt2 += 1; } } public boolean setBatchParameters(int paramInt, String paramString) { if (paramString == null) {} CameraCacheInfo localCameraCacheInfo; Camera.Parameters localParameters; do { return false; localCameraCacheInfo = getCameraCacheInfo(paramInt); if ((localCameraCacheInfo == null) || (camera == null)) { SystemTools.setSystemErrorCode(4); return false; } localParameters = getCameraParameters(camera); if (localParameters == null) { SystemTools.setSystemErrorCode(6); return false; } } while (!setCustomCameraParams(localParameters, paramString)); camera.setParameters(localParameters); return true; } public boolean setCaptureInfo(int paramInt, int[] paramArrayOfInt1, int[] paramArrayOfInt2) { CameraCacheInfo localCameraCacheInfo = getCameraCacheInfo(paramInt); if (localCameraCacheInfo == null) { SystemTools.setSystemErrorCode(4); } for (;;) { return false; if (paramArrayOfInt1.length != 5) { SystemTools.setSystemErrorCode(2); return false; }.
(53) Camera.Parameters localParameters = getCameraParameters(camera); if (localParameters == null) { SystemTools.setSystemErrorCode(6); return false; } if (!setCameraCaptureParams(localCameraCacheInfo, localParameters, paramArrayOfInt1, paramArrayOfInt2)) { SystemTools.setSystemErrorCode(6); return false; } try { camera.setParameters(localParameters); if (checkSamsungHighFPS(localCameraCacheInfo)) { return true; } } catch (Exception paramArrayOfInt1) { SystemTools.setSystemErrorCode(6); } } return false; } public void setSurfaceManager(SurfaceManager paramSurfaceManager) { surfaceManager = paramSurfaceManager; } boolean setTypedCameraParameter(int paramInt1, int paramInt2, Object paramObject) { CameraCacheInfo localCameraCacheInfo = getCameraCacheInfo(paramInt1); if ((localCameraCacheInfo == null) || (camera == null)) { SystemTools.setSystemErrorCode(4); return false; } Camera.Parameters localParameters = getCameraParameters(camera); if (localParameters == null) {.
(54) SystemTools.setSystemErrorCode(6); return false; } int i = 0; switch (paramInt2) { default: return false; case 536870976: case 541065216: case 536870913: case 536870914: case 536870916: case 536870920: case 536870928: case 536870944: case 536871936: for (;;) { Object localObject1; Object localObject2; try { localObject1 = Integer.toString(((Number)paramObject).intValue()); localObject2 = localParameters.get("iso-values"); paramObject = localObject1; if (localObject2 != null) { localObject2 = ((String)localObject2).split(","); paramInt1 = 0; paramObject = localObject1; if (paramInt1 < localObject2.length) { if (!localObject2[paramInt1].toLowerCase().contains(((String)localObject1).toLo werCase())) { continue; } paramObject = localObject2[paramInt1]; } } localParameters.set("iso", (String)paramObject); paramInt1 = i; } catch (Exception paramObject).
(55) { SystemTools.setSystemErrorCode(6); return false; } try { camera.setParameters(localParameters); if (paramInt1 != 0) {} switch (paramInt2) { default: return true; } } catch (Exception paramObject) { SystemTools.setSystemErrorCode(6); return false; } paramInt1 += 1; continue; paramInt1 = ((Number)paramObject).intValue(); if (SystemTools.checkMinimumApiLevel(14)) { boolean bool; if (paramInt1 != 0) { bool = true; localParameters.setRecordingHint(bool); paramInt1 = i; } else { bool = false; } } else { if (paramInt1 == 0) { break label1397; } paramObject = "true"; localParameters.set("recording-hint", (String)paramObject); paramInt1 = i; continue;.
(56) switch (((Number)paramObject).intValue()) { case 805306371: SystemTools.setSystemErrorCode(3); return false; case 805306370: if (localParameters.getSupportedFlashModes().contains("torch")) { localParameters.setFlashMode("torch"); paramInt1 = i; } else { localParameters.setFlashMode("on"); paramInt1 = i; } break; case 805306369: localParameters.setFlashMode("off"); paramInt1 = i; break; case 805306372: SystemTools.setSystemErrorCode(3); return false; camera.cancelAutoFocus(); switch (((Number)paramObject).intValue()) { case 805306384: SystemTools.setSystemErrorCode(3); return false; if (localParameters.getSupportedFocusModes().contains("normal")) { localParameters.setFocusMode("normal"); paramInt1 = i; } else { localParameters.setFocusMode("auto"); paramInt1 = 1; } break; case 805306400: localParameters.setFocusMode("auto"); paramInt1 = 1; break;.
(57) case 805306432: if (localParameters.getSupportedFocusModes().contains("continuous-video")) { localParameters.setFocusMode("continuous-video"); paramInt1 = i; } else { SystemTools.setSystemErrorCode(6); return false; } break; case 805306496: localParameters.setFocusMode("macro"); paramInt1 = i; break; case 805306624: localParameters.setFocusMode("infinity"); paramInt1 = i; break; case 805306880: localParameters.setFocusMode("fixed"); paramInt1 = i; continue; SystemTools.setSystemErrorCode(6); return false; SystemTools.setSystemErrorCode(6); return false; if (SystemTools.checkMinimumApiLevel(14)) { paramObject = (float[])paramObject; if (paramObject.length == 5) { break label1410; } SystemTools.setSystemErrorCode(2); return false; SystemTools.setSystemErrorCode(2); return false; localObject1 = new Rect((int)(paramObject[0] * 2000.0D) - 1000, (int)(paramObject[1] * 2000.0D) - 1000, (int)(paramObject[2] * 2000.0D) 1000, (int)(paramObject[3] * 2000.0D) - 1000); localObject2 = new ArrayList(); ((List)localObject2).add(new Camera.Area((Rect)localObject1, (int)(paramObject[4] * 1000.0D)));.
(58) paramInt1 = i; if (localParameters.getMaxNumFocusAreas() > 0) { localParameters.setFocusAreas((List)localObject2); paramInt1 = i; } } else { SystemTools.setSystemErrorCode(6); return false; switch (((Number)paramObject).intValue()) { case 805310464: SystemTools.setSystemErrorCode(3); return false; paramInt1 = i; if (localParameters.isAutoExposureLockSupported()) { localParameters.setAutoExposureLock(true); paramInt1 = i; } break; case 805314560: case 805322752: paramInt1 = i; if (localParameters.isAutoExposureLockSupported()) { localParameters.setAutoExposureLock(false); paramInt1 = i; continue; if (!SystemTools.checkMinimumApiLevel(8)) { break label1085; } float f1 = ((Number)paramObject).floatValue(); float f2 = localParameters.getExposureCompensationStep(); if (f2 == 0.0F) { SystemTools.setSystemErrorCode(6); return false; } localParameters.setExposureCompensation(Math.round(f1 / f2)); paramInt1 = i; } break;.
(59) } } break; } break; } } } SystemTools.setSystemErrorCode(6); return false; case 536872960: SystemTools.setSystemErrorCode(6); return false; case 536875008: label423: label476: label620: label801: label807: label976: label1085: paramInt1 = ((Number)paramObject).intValue(); switch (paramInt1) { } break; } for (;;) { SystemTools.setSystemErrorCode(3); SystemTools.logSystemError("Cannot set unknown white balance mode (" + paramInt1 + ")"); return false; paramInt1 = i; if (!localParameters.isAutoWhiteBalanceLockSupported()) { break; } localParameters.setAutoWhiteBalanceLock(true); paramInt1 = i; break; paramInt1 = i; if (!localParameters.isAutoWhiteBalanceLockSupported()) { break; } localParameters.setAutoWhiteBalanceLock(false);.
(60) paramInt1 = i; break; SystemTools.setSystemErrorCode(6); return false; SystemTools.setSystemErrorCode(6); return false; if ((SystemTools.checkMinimumApiLevel(8)) && (localParameters.isZoomSupported())) { localParameters.setZoom(((Number)paramObject).intValue()); paramInt1 = i; break; } SystemTools.setSystemErrorCode(6); return false; SystemTools.setSystemErrorCode(6); return false; SystemTools.setSystemErrorCode(6); return false; SystemTools.setSystemErrorCode(6); return false; SystemTools.setSystemErrorCode(6); return false; SystemTools.setSystemErrorCode(6); return false; SystemTools.setSystemErrorCode(6); return false; if (((Boolean)paramObject).booleanValue()) { localParameters.setVideoStabilization(true); paramInt1 = i; break; } localParameters.setVideoStabilization(false); paramInt1 = i; break; try { isAutoFocusing = true; camera.autoFocus(new Camera.AutoFocusCallback() { public void onAutoFocus(boolean paramAnonymousBoolean, Camera paramAnonymousCamera) {.
(61) paramAnonymousCamera = cameraCacheInfoIndexCache.get(paramAnonymousCamera); if (paramAnonymousCamera == null) {} do { return; int i = ((Integer)paramAnonymousCamera).intValue(); paramAnonymousCamera = Camera1_Preview.this.getCameraCacheInfo(i); } while (paramAnonymousCamera == null); isAutoFocusing = false; } }); } catch (Exception paramObject) { SystemTools.setSystemErrorCode(6); return false; } label1397: paramObject = "false"; break label423; break label476; break label620; label1410: if ((paramObject[0] < 0.0F) || (paramObject[0] > 1.0F) || (paramObject[1] < 0.0F) || (paramObject[1] > 1.0F) || (paramObject[2] < 0.0F) || (paramObject[2] > 1.0F) || (paramObject[3] < 0.0F) || (paramObject[3] > 1.0F) || (paramObject[4] < 0.0F)) { break label801; } if (paramObject[4] <= 1.0F) { break label807; } break label801; break label976; } } boolean setUntypedCameraParameter(int paramInt, String paramString1, String paramString2) { CameraCacheInfo localCameraCacheInfo = getCameraCacheInfo(paramInt); if ((localCameraCacheInfo == null) || (camera == null)).
(62) { SystemTools.setSystemErrorCode(4); return false; } Camera.Parameters localParameters = getCameraParameters(camera); if (localParameters == null) { SystemTools.setSystemErrorCode(6); return false; } try { localParameters.set(paramString1, paramString2); camera.setParameters(localParameters); return true; } catch (Exception paramString1) { SystemTools.setSystemErrorCode(6); } return false; } public boolean start(int paramInt) { CameraCacheInfo localCameraCacheInfo = getCameraCacheInfo(paramInt); if (localCameraCacheInfo == null) { SystemTools.setSystemErrorCode(4); return false; } if (!setupPreviewBuffer(localCameraCacheInfo)) { SystemTools.setSystemErrorCode(6); return false; } try { camera.startPreview(); status = 268443651; return true; } catch (Exception localException) {.
(63) SystemTools.setSystemErrorCode(6); } return false; } public boolean stop(int paramInt) { CameraCacheInfo localCameraCacheInfo = getCameraCacheInfo(paramInt); if (localCameraCacheInfo == null) { SystemTools.setSystemErrorCode(4); return false; } try { camera.stopPreview(); status = 268443650; return true; } catch (Exception localException) { SystemTools.setSystemErrorCode(6); } return false; } public class CameraCacheInfo { byte[][] buffer; int bufferFormatPL; int bufferHeight; int bufferSize; int bufferWidth; Camera camera; int[] caps; long deviceHandle; int deviceID; boolean isAutoFocusing; boolean isHalDriven; int overrideFormatAndroid; int overrideHeight; int overrideWidth; int requestFormatAndroid; int requestHeight;.
(64) int requestWidth; int status; CameraSurface surface; SurfaceTexture surfaceTexture; public CameraCacheInfo() {} } } /* Location: * Qualified Name: com.vuforia.ar.pl.Camera1_Preview * Java Class Version: 6 (50.0) * JD-Core Version: 0.7.1 */ Camera2_Preview$1.java package com.vuforia.ar.pl; import android.hardware.camera2.CameraDevice; import android.hardware.camera2.CameraDevice.StateCallback; import java.util.concurrent.Semaphore; class Camera2_Preview$1 extends CameraDevice.StateCallback { Camera2_Preview$1(Camera2_Preview paramCamera2_Preview) {} public void onDisconnected(CameraDevice paramCameraDevice) { paramCameraDevice.close(); Camera2_Preview.access$500(this$0).release(); } public void onError(CameraDevice paramCameraDevice, int paramInt) { paramCameraDevice.close(); Camera2_Preview.access$500(this$0).release(); } /* Error */ public void onOpened(CameraDevice paramCameraDevice) { // Byte code:.
(65) // // // // // // // // // // // // // // // // // // // // // // // //. // // // // // // // // // // //. // //. 0: aconst_null 1: astore_2 2: aconst_null 3: astore_3 4: aload_0 5: getfield 15 com/vuforia/ar/pl/Camera2_Preview$1:this$0 Lcom/vuforia/ar/pl/Camera2_Preview; 8: invokestatic 44 com/vuforia/ar/pl/Camera2_Preview:access$400 (Lcom/vuforia/ar/pl/Camera2_Preview;)Ljava/util/Vector; 11: invokevirtual 50 java/util/Vector:iterator ()Ljava/util/Iterator; 14: astore 5 16: aload_3 17: astore_2 18: aload 5 20: invokeinterface 56 1 0 25: ifeq +80 -> 105 28: aload_3 29: astore_2 30: aload 5 32: invokeinterface 60 1 0 37: checkcast 62 com/vuforia/ar/pl/Camera2_Preview$CameraCacheInfo 40: astore 4 42: aload_3 43: astore_2 44: aload 4 46: getfield 66 com/vuforia/ar/pl/Camera2_Preview$CameraCacheInfo:deviceIDString Ljava/lang/String; 49: aload_1 50: invokevirtual 70 android/hardware/camera2/CameraDevice:getId ()Ljava/lang/String; 53: invokevirtual 76 java/lang/String:equals (Ljava/lang/Object;)Z 56: ifeq -40 -> 16 59: aload 4 61: astore_3 62: aload_3 63: astore_2 64: aload_3 65: aload_1 66: putfield 80 com/vuforia/ar/pl/Camera2_Preview$CameraCacheInfo:device Landroid/hardware/camera2/CameraDevice; 69: aload_3 70: astore_2.
(66) // // // //. //. // // // // //. // // //. // // //. 71: aload_3 72: aload_1 73: iconst_1 74: invokevirtual 84 android/hardware/camera2/CameraDevice:createCaptureRequest (I)Landroid/hardware/camera2/CaptureRequest$Builder; 77: putfield 88 com/vuforia/ar/pl/Camera2_Preview$CameraCacheInfo:builder Landroid/hardware/camera2/CaptureRequest$Builder; 80: goto -64 -> 16 83: astore_1 84: aload_2 85: aconst_null 86: putfield 88 com/vuforia/ar/pl/Camera2_Preview$CameraCacheInfo:builder Landroid/hardware/camera2/CaptureRequest$Builder; 89: aload_2 90: aconst_null 91: putfield 80 com/vuforia/ar/pl/Camera2_Preview$CameraCacheInfo:device Landroid/hardware/camera2/CameraDevice; 94: aload_0 95: getfield 15 com/vuforia/ar/pl/Camera2_Preview$1:this$0 Lcom/vuforia/ar/pl/Camera2_Preview; 98: invokestatic 30 com/vuforia/ar/pl/Camera2_Preview:access$500 (Lcom/vuforia/ar/pl/Camera2_Preview;)Ljava/util/concurrent/Semaphor. e; // // // //. 101: invokevirtual 35 java/util/concurrent/Semaphore:release ()V 104: return 105: aload_0 106: getfield 15 com/vuforia/ar/pl/Camera2_Preview$1:this$0 Lcom/vuforia/ar/pl/Camera2_Preview; // 109: invokestatic 30 com/vuforia/ar/pl/Camera2_Preview:access$500 (Lcom/vuforia/ar/pl/Camera2_Preview;)Ljava/util/concurrent/Semaphor e; // // // // //. 112: invokevirtual 35 java/util/concurrent/Semaphore:release ()V 115: return 116: astore_1 117: aload_0 118: getfield 15 com/vuforia/ar/pl/Camera2_Preview$1:this$0 Lcom/vuforia/ar/pl/Camera2_Preview; // 121: invokestatic 30 com/vuforia/ar/pl/Camera2_Preview:access$500 (Lcom/vuforia/ar/pl/Camera2_Preview;)Ljava/util/concurrent/Semaphor e; // 124: invokevirtual 35 java/util/concurrent/Semaphore:release ()V.
(67) // 127: aload_1 // 128: athrow // Local variable table: // start length slot name signature // 0 129 0 this 1 // 0 129 1 paramCameraDevice CameraDevice // 1 89 2 localObject1 Object // 3 69 3 localObject2 Object // 40 20 4 localCameraCacheInfo Camera2_Preview.CameraCacheInfo // 14 17 5 localIterator java.util.Iterator // Exception table: // from to target type // 4 16 83 android/hardware/camera2/CameraAccessException // 18 28 83 android/hardware/camera2/CameraAccessException // 30 42 83 android/hardware/camera2/CameraAccessException // 44 59 83 android/hardware/camera2/CameraAccessException // 64 69 83 android/hardware/camera2/CameraAccessException // 71 80 83 android/hardware/camera2/CameraAccessException // 4 16 116 finally // 18 28 116 finally // 30 42 116 finally // 44 59 116 finally // 64 69 116 finally // 71 80 116 finally // 84 94 116 finally } } /* Location: * Qualified Name: com.vuforia.ar.pl.Camera2_Preview.1 * Java Class Version: 6 (50.0) * JD-Core Version: 0.7.1 */ Camera2_Preview$2.java package com.vuforia.ar.pl;.
(68) import android.hardware.camera2.CameraCaptureSession; import android.hardware.camera2.CameraCaptureSession.StateCallback; import android.hardware.camera2.CameraDevice; import android.hardware.camera2.CaptureRequest.Builder; import android.view.Surface; import java.util.Iterator; import java.util.List; import java.util.Vector; import java.util.concurrent.Semaphore; class Camera2_Preview$2 extends CameraCaptureSession.StateCallback { Camera2_Preview$2(Camera2_Preview paramCamera2_Preview) {} public void onConfigureFailed(CameraCaptureSession paramCameraCaptureSession) { paramCameraCaptureSession.close(); Camera2_Preview.access$500(this$0).release(); } public void onConfigured(CameraCaptureSession paramCameraCaptureSession) { Surface localSurface = null; Iterator localIterator = Camera2_Preview.access$100(this$0).iterator(); Object localObject; do { localObject = localSurface; if (!localIterator.hasNext()) { break; } localObject = (Camera2_Preview.CameraCacheInfo)localIterator.next(); } while (!deviceIDString.equals(paramCameraCaptureSession.getDevice().getId())); session = paramCameraCaptureSession; paramCameraCaptureSession = surfaces.iterator(); while (paramCameraCaptureSession.hasNext()) { localSurface = (Surface)paramCameraCaptureSession.next(); builder.addTarget(localSurface); }.
(69) Camera2_Preview.access$500(this$0).release(); } } /* Location: * Qualified Name: com.vuforia.ar.pl.Camera2_Preview.2 * Java Class Version: 6 (50.0) * JD-Core Version: 0.7.1 */ Camera2_Preview$AutofocusRunner.java package com.vuforia.ar.pl; import android.hardware.camera2.CameraAccessException; import android.hardware.camera2.CameraCaptureSession; import android.hardware.camera2.CameraCaptureSession.CaptureCallback; import android.hardware.camera2.CaptureRequest; import android.hardware.camera2.CaptureRequest.Builder; import android.hardware.camera2.CaptureResult; import android.hardware.camera2.TotalCaptureResult; class Camera2_Preview$AutofocusRunner extends CameraCaptureSession.CaptureCallback { private Camera2_Preview.CameraCacheInfo mCCI; private CaptureRequest mCancelRequest; private CaptureRequest mFocusRequest; public Camera2_Preview$AutofocusRunner(Camera2_Preview paramCamera2_Preview, Camera2_Preview.CameraCacheInfo paramCameraCacheInfo) { mCCI = paramCameraCacheInfo; mCancelRequest = null; mFocusRequest = null; } public void onCaptureCompleted(CameraCaptureSession paramCameraCaptureSession, CaptureRequest paramCaptureRequest, TotalCaptureResult paramTotalCaptureResult) { super.onCaptureCompleted(paramCameraCaptureSession, paramCaptureRequest, paramTotalCaptureResult);.
(70) paramCameraCaptureSession = (Integer)paramTotalCaptureResult.get(CaptureResult.CONTROL_AF_STATE ); if ((paramCaptureRequest.equals(mCancelRequest)) && (paramCameraCaptureSession.intValue() == 0)) {} for (;;) { try { mCCI.session.capture(mFocusRequest, this, mCCI.handler); return; } catch (CameraAccessException paramCameraCaptureSession) {} if ((paramCaptureRequest.equals(mFocusRequest)) && ((paramCameraCaptureSession.intValue() == 4) || (paramCameraCaptureSession.intValue() == 5))) { mCCI.isAutoFocusing = false; return; } } } public boolean triggerAutofocus() throws CameraAccessException { if ((mCCI == null) || (mCCI.builder == null) || (mCCI.session == null)) {} Integer localInteger; do { return false; localInteger = (Integer)mCCI.builder.get(CaptureRequest.CONTROL_AF_MODE); } while ((CaptureRequest.CONTROL_AF_MODE == null) || (localInteger == null) || ((localInteger.intValue() != 1) && (localInteger.intValue() != 2))); mCCI.isAutoFocusing = true; mCCI.builder.set(CaptureRequest.CONTROL_AF_TRIGGER, Integer.valueOf(2)); mCancelRequest = mCCI.builder.build(); mCCI.builder.set(CaptureRequest.CONTROL_AF_TRIGGER, Integer.valueOf(0)); mCCI.builder.set(CaptureRequest.CONTROL_AF_TRIGGER, Integer.valueOf(1)); mFocusRequest = mCCI.builder.build();.
(71) mCCI.builder.set(CaptureRequest.CONTROL_AF_TRIGGER, Integer.valueOf(0)); mCCI.session.capture(mCancelRequest, this, mCCI.handler); return true; } } /* Location: * Qualified Name: com.vuforia.ar.pl.Camera2_Preview.AutofocusRunner * Java Class Version: 6 (50.0) * JD-Core Version: 0.7.1 */ Camera2_Preview$CameraCacheInfo.java package com.vuforia.ar.pl; import android.hardware.camera2.CameraCaptureSession; import android.hardware.camera2.CameraCharacteristics; import android.hardware.camera2.CameraDevice; import android.hardware.camera2.CaptureRequest.Builder; import android.hardware.camera2.CaptureResult; import android.media.Image; import android.media.ImageReader; import android.os.Handler; import android.os.HandlerThread; import android.view.Surface; import java.util.List; import java.util.concurrent.Semaphore; public class Camera2_Preview$CameraCacheInfo { int bufferFormatPL; int bufferHeight; int bufferWidth; CaptureRequest.Builder builder; int[] caps; CameraCharacteristics characteristics; CameraDevice device; long deviceHandle; int deviceID; String deviceIDString; Handler handler; Semaphore imageSemaphore; Image[] images; boolean isAutoFocusing; CaptureResult lastResult;.
(72) int overrideFormatAndroid; int overrideHeight; int overrideWidth; ImageReader reader; int requestFormatAndroid; int requestFramerate; int requestHeight; int requestWidth; CameraCaptureSession session; int status; List<Surface> surfaces; HandlerThread thread; public Camera2_Preview$CameraCacheInfo(Camera2_Preview paramCamera2_Preview) {} }. /* Location: * Qualified Name: com.vuforia.ar.pl.Camera2_Preview.CameraCacheInfo * Java Class Version: 6 (50.0) * JD-Core Version: 0.7.1 */. Camera2_Preview$FrameInfo.java package com.vuforia.ar.pl; public class Camera2_Preview$FrameInfo { long exposureTime; int iso; long timestamp; public Camera2_Preview$FrameInfo(Camera2_Preview paramCamera2_Preview) {} } /* Location: * Qualified Name: com.vuforia.ar.pl.Camera2_Preview.FrameInfo * Java Class Version: 6 (50.0) * JD-Core Version: 0.7.1 */.
(73) Camera2_Preview$OnCameraDataAvailable.java package com.vuforia.ar.pl; import android.hardware.camera2.CaptureResult; import android.media.Image; import android.media.Image.Plane; import android.media.ImageReader; import android.media.ImageReader.OnImageAvailableListener; import android.os.Trace; import java.nio.ByteBuffer; import java.util.HashMap; import java.util.Vector; import java.util.concurrent.Semaphore; class Camera2_Preview$OnCameraDataAvailable implements ImageReader.OnImageAvailableListener { private int DEBUG_FORMAT = 0; private int[] actualBufferSize = null; private int actualCaptureFormat = 268439808; private int currentTestBufferIndex = 0; private ByteBuffer[] testYUVBuffers = new ByteBuffer[2]; public Camera2_Preview$OnCameraDataAvailable(Camera2_Preview paramCamera2_Preview) {} private ByteBuffer convertNV21toPaddedYUV(ByteBuffer paramByteBuffer, Image.Plane paramPlane1, Image.Plane paramPlane2, Image.Plane paramPlane3, int paramInt1, int paramInt2, int paramInt3, int paramInt4, int paramInt5, int paramInt6, int paramInt7) { if (paramByteBuffer != null) { paramByteBuffer.rewind(); if (paramInt4 != 0) { break label69; } paramByteBuffer.put(paramPlane1.getBuffer()); } for (;;) { if (paramInt5 <= 0) { break label153;.
(74) } paramInt3 = 0; while (paramInt3 < actualBufferSize[0] * paramInt5) { paramByteBuffer.put((byte)0); paramInt3 += 1; } paramByteBuffer = ByteBuffer.allocateDirect(paramInt3); break; label69: int i = paramPlane1.getBuffer().limit(); while (paramPlane1.getBuffer().hasRemaining()) { paramPlane1.getBuffer().limit(paramPlane1.getBuffer().position() + paramInt2); paramByteBuffer.put(paramPlane1.getBuffer()); paramInt3 = 0; while (paramInt3 < paramInt4) { paramByteBuffer.put((byte)0); paramInt3 += 1; } paramPlane1.getBuffer().limit(i); } } label153: paramInt3 = 0; while (paramInt3 < paramInt1 / 2) { paramInt4 = 0; while (paramInt4 < paramInt2 / 2) { paramByteBuffer.put(paramPlane2.getBuffer().get()); if (paramPlane2.getBuffer().hasRemaining()) { paramPlane2.getBuffer().get(); } paramInt4 += 1; } paramInt4 = 0; while (paramInt4 < paramInt6) { paramByteBuffer.put((byte)0); paramInt4 += 1; } paramInt3 += 1;.
Documento similar
Individual circadian preference, shift work, and risk of medication errors: a cross-sectional web survey among Italian midwives. Int J Environ Res Public
RNA ‐Seq data for six different types of cancer are analysed: breast (BRCA), colon adenocarcinoma (COAD), lung adenocarcinoma (LUAD), thyroid carcinoma (THCA), prostate
Comments: This is the standard method for locating very faint objects, which are difficult or impossible to see on the acquisition TV or detector. Accurate positions for a brightish
★ Discretionary nights (so called D nights) are full observing nights (test or service observations from the internal ING queue) with no visitor observer.. ★ The plan for these
For wavelength calibrations in the red, the CuNe lamp on its own is only really useful for low-dispersion work, because the red emission lines are so spaced that at high dispersion
Nuestra variable ya no será de tipo double, ahora es un int pero debemos hacer un cambio antes del Math.random.. Debemos incluir
Como él había determinado que la Luna era unas tres veces menor que la Tierra, obser- vando eclipses totales de Luna comparó el tama- ño de esta con el ancho del cono de sombra de la
[r]