1 /* 2 * Copyright (C) 2014 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 package android.hardware.camera2.impl; 17 18 import android.os.Parcel; 19 import android.os.Parcelable; 20 21 /** 22 * @hide 23 */ 24 public class CaptureResultExtras implements Parcelable { 25 private int requestId; 26 private int subsequenceId; 27 private int afTriggerId; 28 private int precaptureTriggerId; 29 private long frameNumber; 30 private int partialResultCount; 31 private int errorStreamId; 32 private String errorPhysicalCameraId; 33 private long lastCompletedRegularFrameNumber; 34 private long lastCompletedReprocessFrameNumber; 35 private long lastCompletedZslFrameNumber; 36 private boolean hasReadoutTimestamp; 37 private long readoutTimestamp; 38 39 public static final @android.annotation.NonNull Parcelable.Creator<CaptureResultExtras> CREATOR = 40 new Parcelable.Creator<CaptureResultExtras>() { 41 @Override 42 public CaptureResultExtras createFromParcel(Parcel in) { 43 return new CaptureResultExtras(in); 44 } 45 46 @Override 47 public CaptureResultExtras[] newArray(int size) { 48 return new CaptureResultExtras[size]; 49 } 50 }; 51 CaptureResultExtras(Parcel in)52 private CaptureResultExtras(Parcel in) { 53 readFromParcel(in); 54 } 55 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)56 public CaptureResultExtras(int requestId, int subsequenceId, int afTriggerId, 57 int precaptureTriggerId, long frameNumber, 58 int partialResultCount, int errorStreamId, 59 String errorPhysicalCameraId, long lastCompletedRegularFrameNumber, 60 long lastCompletedReprocessFrameNumber, 61 long lastCompletedZslFrameNumber, boolean hasReadoutTimestamp, 62 long readoutTimestamp) { 63 this.requestId = requestId; 64 this.subsequenceId = subsequenceId; 65 this.afTriggerId = afTriggerId; 66 this.precaptureTriggerId = precaptureTriggerId; 67 this.frameNumber = frameNumber; 68 this.partialResultCount = partialResultCount; 69 this.errorStreamId = errorStreamId; 70 this.errorPhysicalCameraId = errorPhysicalCameraId; 71 this.lastCompletedRegularFrameNumber = lastCompletedRegularFrameNumber; 72 this.lastCompletedReprocessFrameNumber = lastCompletedReprocessFrameNumber; 73 this.lastCompletedZslFrameNumber = lastCompletedZslFrameNumber; 74 this.hasReadoutTimestamp = hasReadoutTimestamp; 75 this.readoutTimestamp = readoutTimestamp; 76 } 77 78 @Override describeContents()79 public int describeContents() { 80 return 0; 81 } 82 83 @Override writeToParcel(Parcel dest, int flags)84 public void writeToParcel(Parcel dest, int flags) { 85 dest.writeInt(requestId); 86 dest.writeInt(subsequenceId); 87 dest.writeInt(afTriggerId); 88 dest.writeInt(precaptureTriggerId); 89 dest.writeLong(frameNumber); 90 dest.writeInt(partialResultCount); 91 dest.writeInt(errorStreamId); 92 if ((errorPhysicalCameraId != null) && !errorPhysicalCameraId.isEmpty()) { 93 dest.writeBoolean(true); 94 dest.writeString(errorPhysicalCameraId); 95 } else { 96 dest.writeBoolean(false); 97 } 98 dest.writeLong(lastCompletedRegularFrameNumber); 99 dest.writeLong(lastCompletedReprocessFrameNumber); 100 dest.writeLong(lastCompletedZslFrameNumber); 101 dest.writeBoolean(hasReadoutTimestamp); 102 if (hasReadoutTimestamp) { 103 dest.writeLong(readoutTimestamp); 104 } 105 } 106 readFromParcel(Parcel in)107 public void readFromParcel(Parcel in) { 108 requestId = in.readInt(); 109 subsequenceId = in.readInt(); 110 afTriggerId = in.readInt(); 111 precaptureTriggerId = in.readInt(); 112 frameNumber = in.readLong(); 113 partialResultCount = in.readInt(); 114 errorStreamId = in.readInt(); 115 boolean errorPhysicalCameraIdPresent = in.readBoolean(); 116 if (errorPhysicalCameraIdPresent) { 117 errorPhysicalCameraId = in.readString(); 118 } 119 lastCompletedRegularFrameNumber = in.readLong(); 120 lastCompletedReprocessFrameNumber = in.readLong(); 121 lastCompletedZslFrameNumber = in.readLong(); 122 hasReadoutTimestamp = in.readBoolean(); 123 if (hasReadoutTimestamp) { 124 readoutTimestamp = in.readLong(); 125 } 126 } 127 getErrorPhysicalCameraId()128 public String getErrorPhysicalCameraId() { 129 return errorPhysicalCameraId; 130 } 131 getRequestId()132 public int getRequestId() { 133 return requestId; 134 } 135 getSubsequenceId()136 public int getSubsequenceId() { 137 return subsequenceId; 138 } 139 getAfTriggerId()140 public int getAfTriggerId() { 141 return afTriggerId; 142 } 143 getPrecaptureTriggerId()144 public int getPrecaptureTriggerId() { 145 return precaptureTriggerId; 146 } 147 getFrameNumber()148 public long getFrameNumber() { 149 return frameNumber; 150 } 151 getPartialResultCount()152 public int getPartialResultCount() { 153 return partialResultCount; 154 } 155 getErrorStreamId()156 public int getErrorStreamId() { 157 return errorStreamId; 158 } 159 getLastCompletedRegularFrameNumber()160 public long getLastCompletedRegularFrameNumber() { 161 return lastCompletedRegularFrameNumber; 162 } 163 getLastCompletedReprocessFrameNumber()164 public long getLastCompletedReprocessFrameNumber() { 165 return lastCompletedReprocessFrameNumber; 166 } 167 getLastCompletedZslFrameNumber()168 public long getLastCompletedZslFrameNumber() { 169 return lastCompletedZslFrameNumber; 170 } 171 hasReadoutTimestamp()172 public boolean hasReadoutTimestamp() { 173 return hasReadoutTimestamp; 174 } 175 getReadoutTimestamp()176 public long getReadoutTimestamp() { 177 return readoutTimestamp; 178 } 179 } 180