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 CameraCapabilities getCapabilities() {
     70         log("getCapabilities");
     71         return mProxy.getCapabilities();
     72     }
     73 
     74     @Override
     75     public void reconnect(Handler handler, CameraAgent.CameraOpenCallback cb) {
     76         log("reconnect");
     77         mProxy.reconnect(handler, cb);
     78     }
     79 
     80     @Override
     81     public void unlock() {
     82         log("unlock");
     83         mProxy.unlock();
     84     }
     85 
     86     @Override
     87     public void lock() {
     88         log("lock");
     89         mProxy.lock();
     90     }
     91 
     92     @Override
     93     public void setPreviewTexture(SurfaceTexture surfaceTexture) {
     94         log("setPreviewTexture");
     95         mProxy.setPreviewTexture(surfaceTexture);
     96     }
     97 
     98     @Override
     99     public void setPreviewTextureSync(SurfaceTexture surfaceTexture) {
    100         log("setPreviewTextureSync");
    101         mProxy.setPreviewTextureSync(surfaceTexture);
    102     }
    103 
    104     @Override
    105     public void setPreviewDisplay(SurfaceHolder surfaceHolder) {
    106         log("setPreviewDisplay");
    107         mProxy.setPreviewDisplay(surfaceHolder);
    108     }
    109 
    110     @Override
    111     public void startPreview() {
    112         log("startPreview");
    113         mProxy.startPreview();
    114     }
    115 
    116     @Override
    117     public void startPreviewWithCallback(Handler h, CameraAgent.CameraStartPreviewCallback cb) {
    118         log("startPreviewWithCallback");
    119         mProxy.startPreviewWithCallback(h, cb);
    120     }
    121 
    122     @Override
    123     public void stopPreview() {
    124         log("stopPreview");
    125         mProxy.stopPreview();
    126     }
    127 
    128     @Override
    129     public void setPreviewDataCallback(Handler handler,
    130             CameraAgent.CameraPreviewDataCallback cb) {
    131         log("setPreviewDataCallback");
    132         mProxy.setPreviewDataCallback(handler, cb);
    133     }
    134 
    135     @Override
    136     public void setOneShotPreviewCallback(Handler handler,
    137             CameraAgent.CameraPreviewDataCallback cb) {
    138         log("setOneShotPreviewCallback");
    139         mProxy.setOneShotPreviewCallback(handler, cb);
    140     }
    141 
    142     @Override
    143     public void setPreviewDataCallbackWithBuffer(Handler handler,
    144             CameraAgent.CameraPreviewDataCallback cb) {
    145         log("setPreviewDataCallbackWithBuffer");
    146         mProxy.setPreviewDataCallbackWithBuffer(handler, cb);
    147     }
    148 
    149     @Override
    150     public void addCallbackBuffer(byte[] callbackBuffer) {
    151         log("addCallbackBuffer");
    152         mProxy.addCallbackBuffer(callbackBuffer);
    153     }
    154 
    155     @Override
    156     public void autoFocus(Handler handler, CameraAgent.CameraAFCallback cb) {
    157         log("autoFocus");
    158         mProxy.autoFocus(handler, cb);
    159     }
    160 
    161     @Override
    162     public void cancelAutoFocus() {
    163         log("cancelAutoFocus");
    164         mProxy.cancelAutoFocus();
    165     }
    166 
    167     @Override
    168     public void setAutoFocusMoveCallback(Handler handler, CameraAgent.CameraAFMoveCallback cb) {
    169         log("setAutoFocusMoveCallback");
    170         mProxy.setAutoFocusMoveCallback(handler, cb);
    171     }
    172 
    173     @Override
    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
    182     public void setDisplayOrientation(int degrees) {
    183         log("setDisplayOrientation:" + degrees);
    184         mProxy.setDisplayOrientation(degrees);
    185     }
    186 
    187     @Override
    188     public void setZoomChangeListener(Camera.OnZoomChangeListener listener) {
    189         log("setZoomChangeListener");
    190         mProxy.setZoomChangeListener(listener);
    191     }
    192 
    193     @Override
    194     public void setFaceDetectionCallback(Handler handler,
    195             CameraAgent.CameraFaceDetectionCallback callback) {
    196         log("setFaceDetectionCallback");
    197         mProxy.setFaceDetectionCallback(handler, callback);
    198     }
    199 
    200     @Override
    201     public void startFaceDetection() {
    202         log("startFaceDetection");
    203         mProxy.startFaceDetection();
    204     }
    205 
    206     @Override
    207     public void stopFaceDetection() {
    208         log("stopFaceDetection");
    209         mProxy.stopFaceDetection();
    210     }
    211 
    212     @Override
    213     public void setErrorCallback(Handler handler, CameraAgent.CameraErrorCallback cb) {
    214         log("setErrorCallback");
    215         mProxy.setErrorCallback(handler, cb);
    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