| /* |
| * Copyright 2015 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.params; |
| |
| import android.hardware.camera2.utils.HashCodeHelpers; |
| |
| /** |
| * Immutable class to store an input configuration that is used to create a reprocessable capture |
| * session. |
| * |
| * @see android.hardware.camera2.CameraDevice#createReprocessableCaptureSession |
| * @see android.hardware.camera2.CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP |
| */ |
| public final class InputConfiguration { |
| |
| private final int mWidth; |
| private final int mHeight; |
| private final int mFormat; |
| |
| /** |
| * Create an input configration with the width, height, and user-defined format. |
| * |
| * <p>Images of an user-defined format are accessible by applications. Use |
| * {@link android.hardware.camera2.CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP} |
| * to query supported input formats</p> |
| * |
| * @param width Width of the input buffers. |
| * @param height Height of the input buffers. |
| * @param format Format of the input buffers. One of ImageFormat or PixelFormat constants. |
| * |
| * @see android.graphics.ImageFormat |
| * @see android.graphics.PixelFormat |
| * @see android.hardware.camera2.CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP |
| */ |
| public InputConfiguration(int width, int height, int format) { |
| mWidth = width; |
| mHeight = height; |
| mFormat = format; |
| } |
| |
| /** |
| * Get the width of this input configration. |
| * |
| * @return width of this input configuration. |
| */ |
| public int getWidth() { |
| return mWidth; |
| } |
| |
| /** |
| * Get the height of this input configration. |
| * |
| * @return height of this input configuration. |
| */ |
| public int getHeight() { |
| return mHeight; |
| } |
| |
| /** |
| * Get the format of this input configration. |
| * |
| * @return format of this input configuration. |
| */ |
| public int getFormat() { |
| return mFormat; |
| } |
| |
| /** |
| * Check if this InputConfiguration is equal to another InputConfiguration. |
| * |
| * <p>Two input configurations are equal if and only if they have the same widths, heights, and |
| * formats.</p> |
| * |
| * @param obj the object to compare this instance with. |
| * |
| * @return {@code true} if the objects were equal, {@code false} otherwise. |
| */ |
| @Override |
| public boolean equals(Object obj) { |
| if (!(obj instanceof InputConfiguration)) { |
| return false; |
| } |
| |
| InputConfiguration otherInputConfig = (InputConfiguration) obj; |
| |
| if (otherInputConfig.getWidth() == mWidth && |
| otherInputConfig.getHeight() == mHeight && |
| otherInputConfig.getFormat() == mFormat) { |
| return true; |
| } |
| return false; |
| } |
| |
| /** |
| * {@inheritDoc} |
| */ |
| @Override |
| public int hashCode() { |
| return HashCodeHelpers.hashCode(mWidth, mHeight, mFormat); |
| } |
| |
| /** |
| * Return this {@link InputConfiguration} as a string representation. |
| * |
| * <p> {@code "InputConfiguration(w:%d, h:%d, format:%d)"}, where {@code %d} represents |
| * the width, height, and format, respectively.</p> |
| * |
| * @return string representation of {@link InputConfiguration} |
| */ |
| @Override |
| public String toString() { |
| return String.format("InputConfiguration(w:%d, h:%d, format:%d)", mWidth, mHeight, mFormat); |
| } |
| } |