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