15d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala/* 25d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala * Copyright (C) 2015 The Android Open Source Project 35d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala * 45d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala * Licensed under the Apache License, Version 2.0 (the "License"); 55d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala * you may not use this file except in compliance with the License. 65d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala * You may obtain a copy of the License at 75d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala * 85d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala * http://www.apache.org/licenses/LICENSE-2.0 95d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala * 105d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala * Unless required by applicable law or agreed to in writing, software 115d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala * distributed under the License is distributed on an "AS IS" BASIS, 125d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 135d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala * See the License for the specific language governing permissions and 145d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala * limitations under the License. 155d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala */ 165d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvalapackage android.hardware.camera2.utils; 175d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala 185d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvalaimport android.os.Parcel; 195d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvalaimport android.os.Parcelable; 205d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvalaimport android.hardware.camera2.ICameraDeviceUser; 215d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala 225d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala/** 235d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala * The status information returned for a successful capture request submission. 245d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala * 255d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala * Includes the request ID for the newly submitted capture request, and the 265d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala * last frame number of either the previous repeating request (for repeating 275d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala * requests), or of the request(s) just submitted (for single-shot capture). 285d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala * 295d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala * @hide 305d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala */ 315d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvalapublic class SubmitInfo implements Parcelable { 325d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala 335d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala private int mRequestId; 345d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala private long mLastFrameNumber; 355d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala 365d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala public SubmitInfo() { 375d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala mRequestId = -1; 385d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala mLastFrameNumber = ICameraDeviceUser.NO_IN_FLIGHT_REPEATING_FRAMES; 395d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala } 405d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala 415d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala public SubmitInfo(int requestId, long lastFrameNumber) { 425d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala mRequestId = requestId; 435d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala mLastFrameNumber = lastFrameNumber; 445d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala } 455d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala 465d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala public static final Parcelable.Creator<SubmitInfo> CREATOR = 475d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala new Parcelable.Creator<SubmitInfo>() { 485d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala @Override 495d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala public SubmitInfo createFromParcel(Parcel in) { 505d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala return new SubmitInfo(in); 515d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala } 525d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala 535d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala @Override 545d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala public SubmitInfo[] newArray(int size) { 555d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala return new SubmitInfo[size]; 565d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala } 575d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala }; 585d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala 595d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala private SubmitInfo(Parcel in) { 605d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala readFromParcel(in); 615d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala } 625d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala 635d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala @Override 645d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala public int describeContents() { 655d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala return 0; 665d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala } 675d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala 685d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala @Override 695d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala public void writeToParcel(Parcel dest, int flags) { 705d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala dest.writeInt(mRequestId); 715d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala dest.writeLong(mLastFrameNumber); 725d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala } 735d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala 745d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala public void readFromParcel(Parcel in) { 755d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala mRequestId = in.readInt(); 765d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala mLastFrameNumber = in.readLong(); 775d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala } 785d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala 795d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala /** 805d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala * Return the request ID for the submitted capture request/burst. 815d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala * 825d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala * This is used to track the completion status of the requested captures, 835d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala * and to cancel repeating requests. 845d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala */ 855d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala public int getRequestId() { 865d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala return mRequestId; 875d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala } 885d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala 895d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala /** 905d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala * Return the last frame number for the submitted capture request/burst. 915d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala * 925d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala * For a repeating request, this is the last frame number of the _prior_ 935d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala * repeating request, to indicate when to fire the sequence completion callback 945d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala * for the prior repeating request. 955d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala * 965d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala * For a single-shot capture, this is the last frame number of _this_ 975d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala * burst, to indicate when to fire the sequence completion callback for the request itself. 985d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala * 995d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala * For a repeating request, may be NO_IN_FLIGHT_REPEATING_FRAMES, if no 1005d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala * instances of a prior repeating request were actually issued to the camera device. 1015d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala */ 1025d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala public long getLastFrameNumber() { 1035d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala return mLastFrameNumber; 1045d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala } 1055d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala 1065d2d7788f1759b0f3d2c057af0b3ea61b0354feeEino-Ville Talvala} 107