blob: 05e8229e4e1fd4368d7d0dae92b5841d398b30ff [file] [log] [blame]
Angus Kong2bca2102014-03-11 16:27:30 -07001/*
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
17package com.android.camera.debug;
18
19import android.graphics.SurfaceTexture;
20import android.hardware.Camera;
21import android.os.Handler;
22import android.view.SurfaceHolder;
23
Sol Boucher5a344962014-06-17 14:05:08 -070024import com.android.ex.camera2.portability.CameraAgent;
Sol Boucher43e18132014-06-19 15:03:18 -070025import com.android.ex.camera2.portability.CameraCapabilities;
26import com.android.ex.camera2.portability.CameraDeviceInfo;
Sol Boucher5a344962014-06-17 14:05:08 -070027import com.android.ex.camera2.portability.CameraSettings;
Sol Boucherd8cc3ea2014-07-02 10:37:18 -070028import com.android.ex.camera2.portability.CameraStateHolder;
29import com.android.ex.camera2.portability.DispatchThread;
Angus Kong2bca2102014-03-11 16:27:30 -070030
31/**
Sol Boucher5a344962014-06-17 14:05:08 -070032 * A {@link com.android.ex.camera2.portability.CameraAgent.CameraProxy} which wraps the
Angus Kong2bca2102014-03-11 16:27:30 -070033 * other and adds logs for all operations.
34 */
Sol Boucherd8cc3ea2014-07-02 10:37:18 -070035public class DebugCameraProxy extends CameraAgent.CameraProxy {
Angus Kong2bca2102014-03-11 16:27:30 -070036 private final Log.Tag mTag;
Sol Boucher5a344962014-06-17 14:05:08 -070037 private final CameraAgent.CameraProxy mProxy;
Angus Kong2bca2102014-03-11 16:27:30 -070038
39 /**
40 * Constructor.
41 *
42 * @param tag The tag to be used for logs.
43 * @param proxy The camera proxy to be wrapped.
44 */
Sol Boucher5a344962014-06-17 14:05:08 -070045 public DebugCameraProxy(Log.Tag tag, CameraAgent.CameraProxy proxy) {
Angus Kong2bca2102014-03-11 16:27:30 -070046 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
Sol Boucher43e18132014-06-19 15:03:18 -070063 public CameraDeviceInfo.Characteristics getCharacteristics() {
64 log("getCharacteristics");
65 return mProxy.getCharacteristics();
66 }
67
68 @Override
Senpo Hu2a0e18e2014-10-06 18:35:44 -070069 public CameraAgent getAgent() {
70 log("getAgent");
71 return mProxy.getAgent();
72 }
73
74 @Override
Angus Kong88289042014-04-22 16:39:42 -070075 public CameraCapabilities getCapabilities() {
76 log("getCapabilities");
77 return mProxy.getCapabilities();
78 }
79
80 @Override
Sol Boucher5a344962014-06-17 14:05:08 -070081 public void reconnect(Handler handler, CameraAgent.CameraOpenCallback cb) {
Angus Kong2bca2102014-03-11 16:27:30 -070082 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
Sol Boucher5a344962014-06-17 14:05:08 -0700123 public void startPreviewWithCallback(Handler h, CameraAgent.CameraStartPreviewCallback cb) {
Angus Kong2bca2102014-03-11 16:27:30 -0700124 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,
Sol Boucher5a344962014-06-17 14:05:08 -0700136 CameraAgent.CameraPreviewDataCallback cb) {
Angus Kong2bca2102014-03-11 16:27:30 -0700137 log("setPreviewDataCallback");
138 mProxy.setPreviewDataCallback(handler, cb);
139 }
140
141 @Override
142 public void setOneShotPreviewCallback(Handler handler,
Sol Boucher5a344962014-06-17 14:05:08 -0700143 CameraAgent.CameraPreviewDataCallback cb) {
Angus Kong2bca2102014-03-11 16:27:30 -0700144 log("setOneShotPreviewCallback");
145 mProxy.setOneShotPreviewCallback(handler, cb);
146 }
147
148 @Override
149 public void setPreviewDataCallbackWithBuffer(Handler handler,
Sol Boucher5a344962014-06-17 14:05:08 -0700150 CameraAgent.CameraPreviewDataCallback cb) {
Angus Kong2bca2102014-03-11 16:27:30 -0700151 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
Sol Boucher5a344962014-06-17 14:05:08 -0700162 public void autoFocus(Handler handler, CameraAgent.CameraAFCallback cb) {
Angus Kong2bca2102014-03-11 16:27:30 -0700163 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
Sol Boucher5a344962014-06-17 14:05:08 -0700174 public void setAutoFocusMoveCallback(Handler handler, CameraAgent.CameraAFMoveCallback cb) {
Angus Kong2bca2102014-03-11 16:27:30 -0700175 log("setAutoFocusMoveCallback");
176 mProxy.setAutoFocusMoveCallback(handler, cb);
177 }
178
179 @Override
Sol Boucher5a344962014-06-17 14:05:08 -0700180 public void takePicture(Handler handler, CameraAgent.CameraShutterCallback shutter,
181 CameraAgent.CameraPictureCallback raw, CameraAgent.CameraPictureCallback postview,
182 CameraAgent.CameraPictureCallback jpeg) {
Angus Kong2bca2102014-03-11 16:27:30 -0700183 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,
Sol Boucher5a344962014-06-17 14:05:08 -0700201 CameraAgent.CameraFaceDetectionCallback callback) {
Angus Kong2bca2102014-03-11 16:27:30 -0700202 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
Angus Kong2bca2102014-03-11 16:27:30 -0700219 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
Angus Kong6607dae2014-06-10 16:07:45 -0700231 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() {
Angus Kong2bca2102014-03-11 16:27:30 -0700244 log("refreshParameters");
Angus Kong6607dae2014-06-10 16:07:45 -0700245 mProxy.refreshSettings();
Angus Kong2bca2102014-03-11 16:27:30 -0700246 }
247
248 @Override
249 public void enableShutterSound(boolean enable) {
250 log("enableShutterSound:" + enable);
251 mProxy.enableShutterSound(enable);
252 }
253
Angus Kong32048fe2014-06-18 17:20:34 -0700254 @Override
255 public String dumpDeviceSettings() {
256 log("dumpDeviceSettings");
257 return mProxy.dumpDeviceSettings();
258 }
259
Sol Boucherd8cc3ea2014-07-02 10:37:18 -0700260 @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
Angus Kong2bca2102014-03-11 16:27:30 -0700275 private void log(String msg) {
276 Log.v(mTag, msg);
277 }
278}