13651aa3f8296eae150590b765fda1d87f49fb5b6Eino-Ville Talvala/*
23651aa3f8296eae150590b765fda1d87f49fb5b6Eino-Ville Talvala * Copyright (C) 2016 The Android Open Source Project
33651aa3f8296eae150590b765fda1d87f49fb5b6Eino-Ville Talvala *
43651aa3f8296eae150590b765fda1d87f49fb5b6Eino-Ville Talvala * Licensed under the Apache License, Version 2.0 (the "License");
53651aa3f8296eae150590b765fda1d87f49fb5b6Eino-Ville Talvala * you may not use this file except in compliance with the License.
63651aa3f8296eae150590b765fda1d87f49fb5b6Eino-Ville Talvala * You may obtain a copy of the License at
73651aa3f8296eae150590b765fda1d87f49fb5b6Eino-Ville Talvala *
83651aa3f8296eae150590b765fda1d87f49fb5b6Eino-Ville Talvala *      http://www.apache.org/licenses/LICENSE-2.0
93651aa3f8296eae150590b765fda1d87f49fb5b6Eino-Ville Talvala *
103651aa3f8296eae150590b765fda1d87f49fb5b6Eino-Ville Talvala * Unless required by applicable law or agreed to in writing, software
113651aa3f8296eae150590b765fda1d87f49fb5b6Eino-Ville Talvala * distributed under the License is distributed on an "AS IS" BASIS,
123651aa3f8296eae150590b765fda1d87f49fb5b6Eino-Ville Talvala * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
133651aa3f8296eae150590b765fda1d87f49fb5b6Eino-Ville Talvala * See the License for the specific language governing permissions and
143651aa3f8296eae150590b765fda1d87f49fb5b6Eino-Ville Talvala * limitations under the License.
153651aa3f8296eae150590b765fda1d87f49fb5b6Eino-Ville Talvala */
163651aa3f8296eae150590b765fda1d87f49fb5b6Eino-Ville Talvalapackage com.android.devcamera;
17a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala
18a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvalaimport android.hardware.camera2.CameraCaptureSession;
19a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvalaimport android.hardware.camera2.CameraDevice;
20a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvalaimport android.hardware.camera2.CaptureFailure;
21a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvalaimport android.hardware.camera2.CaptureRequest;
22a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvalaimport android.hardware.camera2.CaptureResult;
23a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvalaimport android.hardware.camera2.TotalCaptureResult;
24a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvalaimport android.util.Log;
25a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala
26a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala/**
27a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala * Static utility class that logs various camera2 callbacks.
28a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala *
293651aa3f8296eae150590b765fda1d87f49fb5b6Eino-Ville Talvala * The only reason this exists as a separate class is void cluttering up Api2Camera.
30a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala */
31a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala
323651aa3f8296eae150590b765fda1d87f49fb5b6Eino-Ville Talvalapublic class LoggingCallbacks {
333651aa3f8296eae150590b765fda1d87f49fb5b6Eino-Ville Talvala    private static final String TAG = "DevCamera_LOG2";
34a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala    private static final Boolean LOG_EVERY_FRAME = false;
35a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala    private static final Boolean LOG_NON_ERRORS = false;
36a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala
37a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala    public static class DeviceStateCallback extends CameraDevice.StateCallback {
38a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala        @Override
39a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala        public void onOpened(CameraDevice camera) {
40a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala            if (LOG_NON_ERRORS) {
41a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala                Log.v(TAG, "Camera opened.");
42a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala            }
43a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala        }
44a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala
45a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala        @Override
46a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala        public void onClosed(CameraDevice camera) {
47a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala            if (LOG_NON_ERRORS) {
48a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala                Log.v(TAG, "Camera closed.");
49a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala            }
50a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala        }
51a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala
52a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala        @Override
53a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala        public void onDisconnected(CameraDevice camera) {
54a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala            Log.v(TAG, "Camera disconnected.");
55a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala        }
56a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala
57a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala        @Override
58a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala        public void onError(CameraDevice camera, int error) {
59a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala            Log.v(TAG, "Camera error: " + error);
60a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala        }
61a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala    }
62a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala
63a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala    public static class SessionStateCallback extends CameraCaptureSession.StateCallback {
64a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala        @Override
65a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala        public void onConfigured(CameraCaptureSession session) {
66a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala            if (LOG_NON_ERRORS) {
67a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala                Log.v(TAG, "Capture session callback onConfigured("+session+")");
68a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala            }
69a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala        }
70a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala
71a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala        @Override
72a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala        public void onConfigureFailed(CameraCaptureSession session) {
73a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala            Log.v(TAG, "Capture session callback onConfigureFailed("+session+")");
74a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala            super.onReady(session);
75a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala        }
76a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala
77a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala        @Override
78a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala        public void onReady(CameraCaptureSession session) {
79a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala            if (LOG_NON_ERRORS) {
80a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala                Log.v(TAG, "Capture session callback onReady("+session+")");
81a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala            }
82a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala            super.onReady(session);
83a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala        }
84a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala
85a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala        @Override
86a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala        public void onActive(CameraCaptureSession session) {
87a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala            if (LOG_NON_ERRORS) {
88a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala                Log.v(TAG, "Capture session callback onActive("+session+")");
89a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala            }
90a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala            super.onActive(session);
91a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala        }
92a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala
93a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala        @Override
94a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala        public void onClosed(CameraCaptureSession session) {
95a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala            if (LOG_NON_ERRORS) {
96a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala                Log.v(TAG, "Capture session callback onClosed("+session+")");
97a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala            }
98a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala            super.onClosed(session);
99a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala        }
100a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala    }
101a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala
102a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala    public static class SessionCaptureCallback extends CameraCaptureSession.CaptureCallback {
103a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala        @Override
104a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala        public void onCaptureStarted(CameraCaptureSession session, CaptureRequest request, long timestamp, long frameNumber) {
105a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala            if (LOG_EVERY_FRAME) {
106a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala                Log.v(TAG, "Capture started.");
107a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala            }
108a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala            super.onCaptureStarted(session, request, timestamp, frameNumber);
109a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala        }
110a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala
111a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala        @Override
112a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala        public void onCaptureProgressed(CameraCaptureSession session, CaptureRequest request, CaptureResult partialResult) {
113a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala            if (LOG_EVERY_FRAME) {
114a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala                Log.v(TAG, "Capture progressed.");
115a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala            }
116a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala            super.onCaptureProgressed(session, request, partialResult);
117a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala        }
118a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala
119a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala        @Override
120a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala        public void onCaptureCompleted(CameraCaptureSession session, CaptureRequest request, TotalCaptureResult result) {
121a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala            if (LOG_EVERY_FRAME) {
122a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala                Log.v(TAG, "Capture completed.");
123a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala            }
124a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala            super.onCaptureCompleted(session, request, result);
125a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala        }
126a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala
127a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala        @Override
128a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala        public void onCaptureFailed(CameraCaptureSession session, CaptureRequest request, CaptureFailure failure) {
129a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala            super.onCaptureFailed(session, request, failure);
130a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala        }
131a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala
132a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala        @Override
133a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala        public void onCaptureSequenceCompleted(CameraCaptureSession session, int sequenceId, long frameNumber) {
134a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala            super.onCaptureSequenceCompleted(session, sequenceId, frameNumber);
135a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala        }
136a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala
137a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala    }
138a8a96dfce795a6621cdf7b890442fa5ed1252a55Eino-Ville Talvala}
139