Home | History | Annotate | Download | only in debug
      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      */
     45     public DebugCameraProxy(Log.Tag tag, CameraAgent.CameraProxy proxy) {
     46         mTag = tag;
     47         mProxy = proxy;
     48     }
     49 
     50     @Override
     51     public Camera getCamera() {
     52         log("getCamera");
     53         return mProxy.getCamera();
     54     }
     55 
     56     @Override
     57     public int getCameraId() {
     58         log("getCameraId: " + mProxy.getCameraId());
     59         return mProxy.getCameraId();
     60     }
     61 
     62     @Override
     63     public CameraDeviceInfo.Characteristics getCharacteristics() {
     64         log("getCharacteristics");
     65         return mProxy.getCharacteristics();
     66     }
     67 
     68     @Override
     69     public CameraAgent getAgent() {
     70         log("getAgent");
     71         return mProxy.getAgent();
     72     }
     73 
     74     @Override
     75     public CameraCapabilities getCapabilities() {
     76         log("getCapabilities");
     77         return mProxy.getCapabilities();
     78     }
     79 
     80     @Override
     81     public void reconnect(Handler handler, CameraAgent.CameraOpenCallback cb) {
     82         log("reconnect");
     83         mProxy.reconnect(handler, cb);
     84     }
     85 
     86     @Override
     87     public void unlock() {
     88         log("unlock");
     89         mProxy.unlock();
     90     }
     91 
     92     @Override
     93     public void lock() {
     94         log("lock");
     95         mProxy.lock();
     96     }
     97 
     98     @Override
     99     public void setPreviewTexture(SurfaceTexture surfaceTexture) {
    100         log("setPreviewTexture");
    101         mProxy.setPreviewTexture(surfaceTexture);
    102     }
    103 
    104     @Override
    105     public void setPreviewTextureSync(SurfaceTexture surfaceTexture) {
    106         log("setPreviewTextureSync");
    107         mProxy.setPreviewTextureSync(surfaceTexture);
    108     }
    109 
    110     @Override
    111     public void setPreviewDisplay(SurfaceHolder surfaceHolder) {
    112         log("setPreviewDisplay");
    113         mProxy.setPreviewDisplay(surfaceHolder);
    114     }
    115 
    116     @Override
    117     public void startPreview() {
    118         log("startPreview");
    119         mProxy.startPreview();
    120     }
    121 
    122     @Override
    123     public void startPreviewWithCallback(Handler h, CameraAgent.CameraStartPreviewCallback cb) {
    124         log("startPreviewWithCallback");
    125         mProxy.startPreviewWithCallback(h, cb);
    126     }
    127 
    128     @Override
    129     public void stopPreview() {
    130         log("stopPreview");
    131         mProxy.stopPreview();
    132     }
    133 
    134     @Override
    135     public void setPreviewDataCallback(Handler handler,
    136             CameraAgent.CameraPreviewDataCallback cb) {
    137         log("setPreviewDataCallback");
    138         mProxy.setPreviewDataCallback(handler, cb);
    139     }
    140 
    141     @Override
    142     public void setOneShotPreviewCallback(Handler handler,
    143             CameraAgent.CameraPreviewDataCallback cb) {
    144         log("setOneShotPreviewCallback");
    145         mProxy.setOneShotPreviewCallback(handler, cb);
    146     }
    147 
    148     @Override
    149     public void setPreviewDataCallbackWithBuffer(Handler handler,
    150             CameraAgent.CameraPreviewDataCallback cb) {
    151         log("setPreviewDataCallbackWithBuffer");
    152         mProxy.setPreviewDataCallbackWithBuffer(handler, cb);
    153     }
    154 
    155     @Override
    156     public void addCallbackBuffer(byte[] callbackBuffer) {
    157         log("addCallbackBuffer");
    158         mProxy.addCallbackBuffer(callbackBuffer);
    159     }
    160 
    161     @Override
    162     public void autoFocus(Handler handler, CameraAgent.CameraAFCallback cb) {
    163         log("autoFocus");
    164         mProxy.autoFocus(handler, cb);
    165     }
    166 
    167     @Override
    168     public void cancelAutoFocus() {
    169         log("cancelAutoFocus");
    170         mProxy.cancelAutoFocus();
    171     }
    172 
    173     @Override
    174     public void setAutoFocusMoveCallback(Handler handler, CameraAgent.CameraAFMoveCallback cb) {
    175         log("setAutoFocusMoveCallback");
    176         mProxy.setAutoFocusMoveCallback(handler, cb);
    177     }
    178 
    179     @Override
    180     public void takePicture(Handler handler, CameraAgent.CameraShutterCallback shutter,
    181             CameraAgent.CameraPictureCallback raw, CameraAgent.CameraPictureCallback postview,
    182             CameraAgent.CameraPictureCallback jpeg) {
    183         log("takePicture");
    184         mProxy.takePicture(handler, shutter, raw, postview, jpeg);
    185     }
    186 
    187     @Override
    188     public void setDisplayOrientation(int degrees) {
    189         log("setDisplayOrientation:" + degrees);
    190         mProxy.setDisplayOrientation(degrees);
    191     }
    192 
    193     @Override
    194     public void setZoomChangeListener(Camera.OnZoomChangeListener listener) {
    195         log("setZoomChangeListener");
    196         mProxy.setZoomChangeListener(listener);
    197     }
    198 
    199     @Override
    200     public void setFaceDetectionCallback(Handler handler,
    201             CameraAgent.CameraFaceDetectionCallback callback) {
    202         log("setFaceDetectionCallback");
    203         mProxy.setFaceDetectionCallback(handler, callback);
    204     }
    205 
    206     @Override
    207     public void startFaceDetection() {
    208         log("startFaceDetection");
    209         mProxy.startFaceDetection();
    210     }
    211 
    212     @Override
    213     public void stopFaceDetection() {
    214         log("stopFaceDetection");
    215         mProxy.stopFaceDetection();
    216     }
    217 
    218     @Override
    219     public void setParameters(Camera.Parameters params) {
    220         log("setParameters");
    221         mProxy.setParameters(params);
    222     }
    223 
    224     @Override
    225     public Camera.Parameters getParameters() {
    226         log("getParameters");
    227         return mProxy.getParameters();
    228     }
    229 
    230     @Override
    231     public CameraSettings getSettings() {
    232         log("getSettings");
    233         return mProxy.getSettings();
    234     }
    235 
    236     @Override
    237     public boolean applySettings(final CameraSettings settings) {
    238         log("applySettings");
    239         return mProxy.applySettings(settings);
    240     }
    241 
    242     @Override
    243     public void refreshSettings() {
    244         log("refreshParameters");
    245         mProxy.refreshSettings();
    246     }
    247 
    248     @Override
    249     public void enableShutterSound(boolean enable) {
    250         log("enableShutterSound:" + enable);
    251         mProxy.enableShutterSound(enable);
    252     }
    253 
    254     @Override
    255     public String dumpDeviceSettings() {
    256         log("dumpDeviceSettings");
    257         return mProxy.dumpDeviceSettings();
    258     }
    259 
    260     @Override
    261     public Handler getCameraHandler() {
    262         return mProxy.getCameraHandler();
    263     }
    264 
    265     @Override
    266     public DispatchThread getDispatchThread() {
    267         return mProxy.getDispatchThread();
    268     }
    269 
    270     @Override
    271     public CameraStateHolder getCameraState() {
    272         return mProxy.getCameraState();
    273     }
    274 
    275     private void log(String msg) {
    276         Log.v(mTag, msg);
    277     }
    278 }
    279