• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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