blob: 936ed8f3db70cbb3711bf05cc408e503863d3ee9 [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
24import com.android.camera.app.CameraManager;
25
26/**
27 * A {@link com.android.camera.app.CameraManager.CameraProxy} which wraps the
28 * other and adds logs for all operations.
29 */
30public class DebugCameraProxy implements CameraManager.CameraProxy {
31 private final Log.Tag mTag;
32 private final CameraManager.CameraProxy mProxy;
33
34 /**
35 * Constructor.
36 *
37 * @param tag The tag to be used for logs.
38 * @param proxy The camera proxy to be wrapped.
39 */
40 public DebugCameraProxy(Log.Tag tag, CameraManager.CameraProxy proxy) {
41 mTag = tag;
42 mProxy = proxy;
43 }
44
45 @Override
46 public Camera getCamera() {
47 log("getCamera");
48 return mProxy.getCamera();
49 }
50
51 @Override
52 public int getCameraId() {
53 log("getCameraId: " + mProxy.getCameraId());
54 return mProxy.getCameraId();
55 }
56
57 @Override
58 public void release(boolean synchronous) {
59 log("release " + (synchronous ? "sync" : "async"));
60 mProxy.release(synchronous);
61 }
62
63 @Override
64 public void reconnect(Handler handler, CameraManager.CameraOpenCallback cb) {
65 log("reconnect");
66 mProxy.reconnect(handler, cb);
67 }
68
69 @Override
70 public void unlock() {
71 log("unlock");
72 mProxy.unlock();
73 }
74
75 @Override
76 public void lock() {
77 log("lock");
78 mProxy.lock();
79 }
80
81 @Override
82 public void setPreviewTexture(SurfaceTexture surfaceTexture) {
83 log("setPreviewTexture");
84 mProxy.setPreviewTexture(surfaceTexture);
85 }
86
87 @Override
88 public void setPreviewTextureSync(SurfaceTexture surfaceTexture) {
89 log("setPreviewTextureSync");
90 mProxy.setPreviewTextureSync(surfaceTexture);
91 }
92
93 @Override
94 public void setPreviewDisplay(SurfaceHolder surfaceHolder) {
95 log("setPreviewDisplay");
96 mProxy.setPreviewDisplay(surfaceHolder);
97 }
98
99 @Override
100 public void startPreview() {
101 log("startPreview");
102 mProxy.startPreview();
103 }
104
105 @Override
106 public void startPreviewWithCallback(Handler h, CameraManager.CameraStartPreviewCallback cb) {
107 log("startPreviewWithCallback");
108 mProxy.startPreviewWithCallback(h, cb);
109 }
110
111 @Override
112 public void stopPreview() {
113 log("stopPreview");
114 mProxy.stopPreview();
115 }
116
117 @Override
118 public void setPreviewDataCallback(Handler handler,
119 CameraManager.CameraPreviewDataCallback cb) {
120 log("setPreviewDataCallback");
121 mProxy.setPreviewDataCallback(handler, cb);
122 }
123
124 @Override
125 public void setOneShotPreviewCallback(Handler handler,
126 CameraManager.CameraPreviewDataCallback cb) {
127 log("setOneShotPreviewCallback");
128 mProxy.setOneShotPreviewCallback(handler, cb);
129 }
130
131 @Override
132 public void setPreviewDataCallbackWithBuffer(Handler handler,
133 CameraManager.CameraPreviewDataCallback cb) {
134 log("setPreviewDataCallbackWithBuffer");
135 mProxy.setPreviewDataCallbackWithBuffer(handler, cb);
136 }
137
138 @Override
139 public void addCallbackBuffer(byte[] callbackBuffer) {
140 log("addCallbackBuffer");
141 mProxy.addCallbackBuffer(callbackBuffer);
142 }
143
144 @Override
145 public void autoFocus(Handler handler, CameraManager.CameraAFCallback cb) {
146 log("autoFocus");
147 mProxy.autoFocus(handler, cb);
148 }
149
150 @Override
151 public void cancelAutoFocus() {
152 log("cancelAutoFocus");
153 mProxy.cancelAutoFocus();
154 }
155
156 @Override
157 public void setAutoFocusMoveCallback(Handler handler, CameraManager.CameraAFMoveCallback cb) {
158 log("setAutoFocusMoveCallback");
159 mProxy.setAutoFocusMoveCallback(handler, cb);
160 }
161
162 @Override
163 public void takePicture(Handler handler, CameraManager.CameraShutterCallback shutter,
164 CameraManager.CameraPictureCallback raw, CameraManager.CameraPictureCallback postview,
165 CameraManager.CameraPictureCallback jpeg) {
166 log("takePicture");
167 mProxy.takePicture(handler, shutter, raw, postview, jpeg);
168 }
169
170 @Override
171 public void setDisplayOrientation(int degrees) {
172 log("setDisplayOrientation:" + degrees);
173 mProxy.setDisplayOrientation(degrees);
174 }
175
176 @Override
177 public void setZoomChangeListener(Camera.OnZoomChangeListener listener) {
178 log("setZoomChangeListener");
179 mProxy.setZoomChangeListener(listener);
180 }
181
182 @Override
183 public void setFaceDetectionCallback(Handler handler,
184 CameraManager.CameraFaceDetectionCallback callback) {
185 log("setFaceDetectionCallback");
186 mProxy.setFaceDetectionCallback(handler, callback);
187 }
188
189 @Override
190 public void startFaceDetection() {
191 log("startFaceDetection");
192 mProxy.startFaceDetection();
193 }
194
195 @Override
196 public void stopFaceDetection() {
197 log("stopFaceDetection");
198 mProxy.stopFaceDetection();
199 }
200
201 @Override
202 public void setErrorCallback(Handler handler, CameraManager.CameraErrorCallback cb) {
203 log("setErrorCallback");
204 mProxy.setErrorCallback(handler, cb);
205 }
206
207 @Override
208 public void setParameters(Camera.Parameters params) {
209 log("setParameters");
210 mProxy.setParameters(params);
211 }
212
213 @Override
214 public Camera.Parameters getParameters() {
215 log("getParameters");
216 return mProxy.getParameters();
217 }
218
219 @Override
220 public void refreshParameters() {
221 log("refreshParameters");
222 mProxy.refreshParameters();
223 }
224
225 @Override
226 public void enableShutterSound(boolean enable) {
227 log("enableShutterSound:" + enable);
228 mProxy.enableShutterSound(enable);
229 }
230
231 private void log(String msg) {
232 Log.v(mTag, msg);
233 }
234}