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