19c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall/* 29c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall * Copyright (C) 2014 The Android Open Source Project 39c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall * 49c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall * Licensed under the Apache License, Version 2.0 (the "License"); 59c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall * you may not use this file except in compliance with the License. 69c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall * You may obtain a copy of the License at 79c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall * 89c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall * http://www.apache.org/licenses/LICENSE-2.0 99c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall * 109c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall * Unless required by applicable law or agreed to in writing, software 119c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall * distributed under the License is distributed on an "AS IS" BASIS, 129c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall * See the License for the specific language governing permissions and 149c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall * limitations under the License. 159c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall */ 169c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall 179c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lallpackage com.android.camera.one.v2.camera2proxy; 189c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall 199c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lallimport java.util.List; 209c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall 219c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lallimport android.hardware.camera2.CameraAccessException; 229c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lallimport android.hardware.camera2.CaptureFailure; 239c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lallimport android.hardware.camera2.CaptureRequest; 249c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lallimport android.hardware.camera2.CaptureResult; 259c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lallimport android.hardware.camera2.TotalCaptureResult; 269c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lallimport android.os.Handler; 279c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall 289c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lallimport com.android.camera.async.SafeCloseable; 299c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall 309c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall/** 319c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall * Interface for {@link android.hardware.camera2.CameraCaptureSession}. 329c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall * <p> 339c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall * Note that this also enables translation of IllegalStateException (an 349c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall * unchecked exception) resulting from the underlying session being closed into 359c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall * a checked exception, forcing callers to explicitly handle this edge case. 369c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall * </p> 379c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall */ 389c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lallpublic interface CameraCaptureSessionProxy extends SafeCloseable { 399c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall public interface CaptureCallback { 409c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall public void onCaptureCompleted(CameraCaptureSessionProxy session, CaptureRequest request, 419c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall TotalCaptureResult result); 429c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall 439c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall public void onCaptureFailed(CameraCaptureSessionProxy session, CaptureRequest request, 449c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall CaptureFailure failure); 459c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall 469c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall public void onCaptureProgressed(CameraCaptureSessionProxy session, CaptureRequest request, 479c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall CaptureResult partialResult); 489c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall 499c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall public void onCaptureSequenceAborted(CameraCaptureSessionProxy session, int sequenceId); 509c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall 519c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall public void onCaptureSequenceCompleted(CameraCaptureSessionProxy session, int sequenceId, 529c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall long frameNumber); 539c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall 549c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall public void onCaptureStarted(CameraCaptureSessionProxy session, CaptureRequest request, 559c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall long timestamp, long frameNumber); 569c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall } 579c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall 589c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall public interface StateCallback { 599c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall public void onActive(CameraCaptureSessionProxy session); 609c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall 619c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall public void onClosed(CameraCaptureSessionProxy session); 629c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall 639c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall public void onConfigureFailed(CameraCaptureSessionProxy session); 649c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall 659c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall public void onConfigured(CameraCaptureSessionProxy session); 669c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall 679c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall public void onReady(CameraCaptureSessionProxy session); 689c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall } 699c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall 7071cdc139c2e2840929c51c38701e3c25f1b4ecdcPuneet Lall public void abortCaptures() throws CameraAccessException, CameraCaptureSessionClosedException; 719c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall 729c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall public int capture(CaptureRequest request, CaptureCallback listener, Handler handler) 739c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall throws CameraAccessException, CameraCaptureSessionClosedException; 749c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall 759c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall public int captureBurst(List<CaptureRequest> requests, CaptureCallback listener, Handler 769c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall handler) throws CameraAccessException, CameraCaptureSessionClosedException; 779c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall 789c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall @Override 799c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall public void close(); 809c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall 819c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall public CameraDeviceProxy getDevice(); 829c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall 839c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall public int setRepeatingBurst(List<CaptureRequest> requests, CaptureCallback listener, Handler 849c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall handler) throws CameraAccessException, CameraCaptureSessionClosedException; 859c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall 869c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall public int setRepeatingRequest(CaptureRequest request, CaptureCallback listener, Handler 879c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall handler) throws CameraAccessException, CameraCaptureSessionClosedException; 889c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall 899c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall public void stopRepeating() throws CameraAccessException, CameraCaptureSessionClosedException; 909c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall} 91