/* * Copyright (C) 2014 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.hardware.camera2.impl; import android.os.Parcel; import android.os.Parcelable; /** * @hide */ public class CaptureResultExtras implements Parcelable { private int requestId; private int subsequenceId; private int afTriggerId; private int precaptureTriggerId; private long frameNumber; private int partialResultCount; private int errorStreamId; private String errorPhysicalCameraId; private long lastCompletedRegularFrameNumber; private long lastCompletedReprocessFrameNumber; private long lastCompletedZslFrameNumber; private boolean hasReadoutTimestamp; private long readoutTimestamp; public static final @android.annotation.NonNull Parcelable.Creator CREATOR = new Parcelable.Creator() { @Override public CaptureResultExtras createFromParcel(Parcel in) { return new CaptureResultExtras(in); } @Override public CaptureResultExtras[] newArray(int size) { return new CaptureResultExtras[size]; } }; private CaptureResultExtras(Parcel in) { readFromParcel(in); } public CaptureResultExtras(int requestId, int subsequenceId, int afTriggerId, int precaptureTriggerId, long frameNumber, int partialResultCount, int errorStreamId, String errorPhysicalCameraId, long lastCompletedRegularFrameNumber, long lastCompletedReprocessFrameNumber, long lastCompletedZslFrameNumber, boolean hasReadoutTimestamp, long readoutTimestamp) { this.requestId = requestId; this.subsequenceId = subsequenceId; this.afTriggerId = afTriggerId; this.precaptureTriggerId = precaptureTriggerId; this.frameNumber = frameNumber; this.partialResultCount = partialResultCount; this.errorStreamId = errorStreamId; this.errorPhysicalCameraId = errorPhysicalCameraId; this.lastCompletedRegularFrameNumber = lastCompletedRegularFrameNumber; this.lastCompletedReprocessFrameNumber = lastCompletedReprocessFrameNumber; this.lastCompletedZslFrameNumber = lastCompletedZslFrameNumber; this.hasReadoutTimestamp = hasReadoutTimestamp; this.readoutTimestamp = readoutTimestamp; } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeInt(requestId); dest.writeInt(subsequenceId); dest.writeInt(afTriggerId); dest.writeInt(precaptureTriggerId); dest.writeLong(frameNumber); dest.writeInt(partialResultCount); dest.writeInt(errorStreamId); if ((errorPhysicalCameraId != null) && !errorPhysicalCameraId.isEmpty()) { dest.writeBoolean(true); dest.writeString(errorPhysicalCameraId); } else { dest.writeBoolean(false); } dest.writeLong(lastCompletedRegularFrameNumber); dest.writeLong(lastCompletedReprocessFrameNumber); dest.writeLong(lastCompletedZslFrameNumber); dest.writeBoolean(hasReadoutTimestamp); if (hasReadoutTimestamp) { dest.writeLong(readoutTimestamp); } } public void readFromParcel(Parcel in) { requestId = in.readInt(); subsequenceId = in.readInt(); afTriggerId = in.readInt(); precaptureTriggerId = in.readInt(); frameNumber = in.readLong(); partialResultCount = in.readInt(); errorStreamId = in.readInt(); boolean errorPhysicalCameraIdPresent = in.readBoolean(); if (errorPhysicalCameraIdPresent) { errorPhysicalCameraId = in.readString(); } lastCompletedRegularFrameNumber = in.readLong(); lastCompletedReprocessFrameNumber = in.readLong(); lastCompletedZslFrameNumber = in.readLong(); hasReadoutTimestamp = in.readBoolean(); if (hasReadoutTimestamp) { readoutTimestamp = in.readLong(); } } public String getErrorPhysicalCameraId() { return errorPhysicalCameraId; } public int getRequestId() { return requestId; } public int getSubsequenceId() { return subsequenceId; } public int getAfTriggerId() { return afTriggerId; } public int getPrecaptureTriggerId() { return precaptureTriggerId; } public long getFrameNumber() { return frameNumber; } public int getPartialResultCount() { return partialResultCount; } public int getErrorStreamId() { return errorStreamId; } public long getLastCompletedRegularFrameNumber() { return lastCompletedRegularFrameNumber; } public long getLastCompletedReprocessFrameNumber() { return lastCompletedReprocessFrameNumber; } public long getLastCompletedZslFrameNumber() { return lastCompletedZslFrameNumber; } public boolean hasReadoutTimestamp() { return hasReadoutTimestamp; } public long getReadoutTimestamp() { return readoutTimestamp; } }