1 /* 2 * Copyright (C) 2014 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.android.camera.debug; 18 19 import android.graphics.SurfaceTexture; 20 import android.hardware.Camera; 21 import android.os.Handler; 22 import android.view.SurfaceHolder; 23 24 import com.android.ex.camera2.portability.CameraAgent; 25 import com.android.ex.camera2.portability.CameraCapabilities; 26 import com.android.ex.camera2.portability.CameraDeviceInfo; 27 import com.android.ex.camera2.portability.CameraSettings; 28 import com.android.ex.camera2.portability.CameraStateHolder; 29 import com.android.ex.camera2.portability.DispatchThread; 30 31 /** 32 * A {@link com.android.ex.camera2.portability.CameraAgent.CameraProxy} which wraps the 33 * other and adds logs for all operations. 34 */ 35 public class DebugCameraProxy extends CameraAgent.CameraProxy { 36 private final Log.Tag mTag; 37 private final CameraAgent.CameraProxy mProxy; 38 39 /** 40 * Constructor. 41 * 42 * @param tag The tag to be used for logs. 43 * @param proxy The camera proxy to be wrapped. 44 */ DebugCameraProxy(Log.Tag tag, CameraAgent.CameraProxy proxy)45 public DebugCameraProxy(Log.Tag tag, CameraAgent.CameraProxy proxy) { 46 mTag = tag; 47 mProxy = proxy; 48 } 49 50 @Override getCamera()51 public Camera getCamera() { 52 log("getCamera"); 53 return mProxy.getCamera(); 54 } 55 56 @Override getCameraId()57 public int getCameraId() { 58 log("getCameraId: " + mProxy.getCameraId()); 59 return mProxy.getCameraId(); 60 } 61 62 @Override getCharacteristics()63 public CameraDeviceInfo.Characteristics getCharacteristics() { 64 log("getCharacteristics"); 65 return mProxy.getCharacteristics(); 66 } 67 68 @Override getCapabilities()69 public CameraCapabilities getCapabilities() { 70 log("getCapabilities"); 71 return mProxy.getCapabilities(); 72 } 73 74 @Override reconnect(Handler handler, CameraAgent.CameraOpenCallback cb)75 public void reconnect(Handler handler, CameraAgent.CameraOpenCallback cb) { 76 log("reconnect"); 77 mProxy.reconnect(handler, cb); 78 } 79 80 @Override unlock()81 public void unlock() { 82 log("unlock"); 83 mProxy.unlock(); 84 } 85 86 @Override lock()87 public void lock() { 88 log("lock"); 89 mProxy.lock(); 90 } 91 92 @Override setPreviewTexture(SurfaceTexture surfaceTexture)93 public void setPreviewTexture(SurfaceTexture surfaceTexture) { 94 log("setPreviewTexture"); 95 mProxy.setPreviewTexture(surfaceTexture); 96 } 97 98 @Override setPreviewTextureSync(SurfaceTexture surfaceTexture)99 public void setPreviewTextureSync(SurfaceTexture surfaceTexture) { 100 log("setPreviewTextureSync"); 101 mProxy.setPreviewTextureSync(surfaceTexture); 102 } 103 104 @Override setPreviewDisplay(SurfaceHolder surfaceHolder)105 public void setPreviewDisplay(SurfaceHolder surfaceHolder) { 106 log("setPreviewDisplay"); 107 mProxy.setPreviewDisplay(surfaceHolder); 108 } 109 110 @Override startPreview()111 public void startPreview() { 112 log("startPreview"); 113 mProxy.startPreview(); 114 } 115 116 @Override startPreviewWithCallback(Handler h, CameraAgent.CameraStartPreviewCallback cb)117 public void startPreviewWithCallback(Handler h, CameraAgent.CameraStartPreviewCallback cb) { 118 log("startPreviewWithCallback"); 119 mProxy.startPreviewWithCallback(h, cb); 120 } 121 122 @Override stopPreview()123 public void stopPreview() { 124 log("stopPreview"); 125 mProxy.stopPreview(); 126 } 127 128 @Override setPreviewDataCallback(Handler handler, CameraAgent.CameraPreviewDataCallback cb)129 public void setPreviewDataCallback(Handler handler, 130 CameraAgent.CameraPreviewDataCallback cb) { 131 log("setPreviewDataCallback"); 132 mProxy.setPreviewDataCallback(handler, cb); 133 } 134 135 @Override setOneShotPreviewCallback(Handler handler, CameraAgent.CameraPreviewDataCallback cb)136 public void setOneShotPreviewCallback(Handler handler, 137 CameraAgent.CameraPreviewDataCallback cb) { 138 log("setOneShotPreviewCallback"); 139 mProxy.setOneShotPreviewCallback(handler, cb); 140 } 141 142 @Override setPreviewDataCallbackWithBuffer(Handler handler, CameraAgent.CameraPreviewDataCallback cb)143 public void setPreviewDataCallbackWithBuffer(Handler handler, 144 CameraAgent.CameraPreviewDataCallback cb) { 145 log("setPreviewDataCallbackWithBuffer"); 146 mProxy.setPreviewDataCallbackWithBuffer(handler, cb); 147 } 148 149 @Override addCallbackBuffer(byte[] callbackBuffer)150 public void addCallbackBuffer(byte[] callbackBuffer) { 151 log("addCallbackBuffer"); 152 mProxy.addCallbackBuffer(callbackBuffer); 153 } 154 155 @Override autoFocus(Handler handler, CameraAgent.CameraAFCallback cb)156 public void autoFocus(Handler handler, CameraAgent.CameraAFCallback cb) { 157 log("autoFocus"); 158 mProxy.autoFocus(handler, cb); 159 } 160 161 @Override cancelAutoFocus()162 public void cancelAutoFocus() { 163 log("cancelAutoFocus"); 164 mProxy.cancelAutoFocus(); 165 } 166 167 @Override setAutoFocusMoveCallback(Handler handler, CameraAgent.CameraAFMoveCallback cb)168 public void setAutoFocusMoveCallback(Handler handler, CameraAgent.CameraAFMoveCallback cb) { 169 log("setAutoFocusMoveCallback"); 170 mProxy.setAutoFocusMoveCallback(handler, cb); 171 } 172 173 @Override takePicture(Handler handler, CameraAgent.CameraShutterCallback shutter, CameraAgent.CameraPictureCallback raw, CameraAgent.CameraPictureCallback postview, CameraAgent.CameraPictureCallback jpeg)174 public void takePicture(Handler handler, CameraAgent.CameraShutterCallback shutter, 175 CameraAgent.CameraPictureCallback raw, CameraAgent.CameraPictureCallback postview, 176 CameraAgent.CameraPictureCallback jpeg) { 177 log("takePicture"); 178 mProxy.takePicture(handler, shutter, raw, postview, jpeg); 179 } 180 181 @Override setDisplayOrientation(int degrees)182 public void setDisplayOrientation(int degrees) { 183 log("setDisplayOrientation:" + degrees); 184 mProxy.setDisplayOrientation(degrees); 185 } 186 187 @Override setZoomChangeListener(Camera.OnZoomChangeListener listener)188 public void setZoomChangeListener(Camera.OnZoomChangeListener listener) { 189 log("setZoomChangeListener"); 190 mProxy.setZoomChangeListener(listener); 191 } 192 193 @Override setFaceDetectionCallback(Handler handler, CameraAgent.CameraFaceDetectionCallback callback)194 public void setFaceDetectionCallback(Handler handler, 195 CameraAgent.CameraFaceDetectionCallback callback) { 196 log("setFaceDetectionCallback"); 197 mProxy.setFaceDetectionCallback(handler, callback); 198 } 199 200 @Override startFaceDetection()201 public void startFaceDetection() { 202 log("startFaceDetection"); 203 mProxy.startFaceDetection(); 204 } 205 206 @Override stopFaceDetection()207 public void stopFaceDetection() { 208 log("stopFaceDetection"); 209 mProxy.stopFaceDetection(); 210 } 211 212 @Override setErrorCallback(Handler handler, CameraAgent.CameraErrorCallback cb)213 public void setErrorCallback(Handler handler, CameraAgent.CameraErrorCallback cb) { 214 log("setErrorCallback"); 215 mProxy.setErrorCallback(handler, cb); 216 } 217 218 @Override setParameters(Camera.Parameters params)219 public void setParameters(Camera.Parameters params) { 220 log("setParameters"); 221 mProxy.setParameters(params); 222 } 223 224 @Override getParameters()225 public Camera.Parameters getParameters() { 226 log("getParameters"); 227 return mProxy.getParameters(); 228 } 229 230 @Override getSettings()231 public CameraSettings getSettings() { 232 log("getSettings"); 233 return mProxy.getSettings(); 234 } 235 236 @Override applySettings(final CameraSettings settings)237 public boolean applySettings(final CameraSettings settings) { 238 log("applySettings"); 239 return mProxy.applySettings(settings); 240 } 241 242 @Override refreshSettings()243 public void refreshSettings() { 244 log("refreshParameters"); 245 mProxy.refreshSettings(); 246 } 247 248 @Override enableShutterSound(boolean enable)249 public void enableShutterSound(boolean enable) { 250 log("enableShutterSound:" + enable); 251 mProxy.enableShutterSound(enable); 252 } 253 254 @Override dumpDeviceSettings()255 public String dumpDeviceSettings() { 256 log("dumpDeviceSettings"); 257 return mProxy.dumpDeviceSettings(); 258 } 259 260 @Override getCameraHandler()261 public Handler getCameraHandler() { 262 return mProxy.getCameraHandler(); 263 } 264 265 @Override getDispatchThread()266 public DispatchThread getDispatchThread() { 267 return mProxy.getDispatchThread(); 268 } 269 270 @Override getCameraState()271 public CameraStateHolder getCameraState() { 272 return mProxy.getCameraState(); 273 } 274 log(String msg)275 private void log(String msg) { 276 Log.v(mTag, msg); 277 } 278 } 279