| /* |
| * 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.legacy; |
| |
| import android.hardware.Camera; |
| import android.hardware.camera2.CameraCharacteristics; |
| import android.hardware.camera2.CaptureRequest; |
| import android.util.Size; |
| |
| import static com.android.internal.util.Preconditions.*; |
| |
| /** |
| * Hold important data necessary to build the camera1 parameters up from a capture request. |
| */ |
| public class LegacyRequest { |
| /** Immutable characteristics for the camera corresponding to this request */ |
| public final CameraCharacteristics characteristics; |
| /** Immutable capture request, as requested by the user */ |
| public final CaptureRequest captureRequest; |
| /** Immutable api1 preview buffer size at the time of the request */ |
| public final Size previewSize; |
| /** <em>Mutable</em> camera parameters */ |
| public final Camera.Parameters parameters; |
| |
| /** |
| * Create a new legacy request; the parameters are copied. |
| * |
| * @param characteristics immutable static camera characteristics for this camera |
| * @param captureRequest immutable user-defined capture request |
| * @param previewSize immutable internal preview size used for {@link Camera#setPreviewSurface} |
| * @param parameters the initial camera1 parameter state; (copied) can be mutated |
| */ |
| public LegacyRequest(CameraCharacteristics characteristics, CaptureRequest captureRequest, |
| Size previewSize, Camera.Parameters parameters) { |
| this.characteristics = checkNotNull(characteristics, "characteristics must not be null"); |
| this.captureRequest = checkNotNull(captureRequest, "captureRequest must not be null"); |
| this.previewSize = checkNotNull(previewSize, "previewSize must not be null"); |
| checkNotNull(parameters, "parameters must not be null"); |
| |
| this.parameters = Camera.getParametersCopy(parameters); |
| } |
| |
| /** |
| * Update the current parameters in-place to be a copy of the new parameters. |
| * |
| * @param parameters non-{@code null} parameters for api1 camera |
| */ |
| public void setParameters(Camera.Parameters parameters) { |
| checkNotNull(parameters, "parameters must not be null"); |
| |
| this.parameters.copyFrom(parameters); |
| } |
| } |