blob: c81d339578cf65ce2e81db9cf53aa76e337f6399 [file] [log] [blame]
/*
* Copyright (C) 2020 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.annotation.NonNull;
import android.hardware.camera2.CameraExtensionCharacteristics.Extension;
import android.hardware.camera2.CameraExtensionSession;
import java.util.List;
import java.util.concurrent.Executor;
/**
* A class that aggregates all supported arguments for
* {@link CameraExtensionSession} initialization.
*/
public final class ExtensionSessionConfiguration {
private static final String TAG = "ExtensionSessionConfiguration";
private int mExtensionType;
private List<OutputConfiguration> mOutputs;
private Executor mExecutor = null;
private CameraExtensionSession.StateCallback mCallback = null;
/**
* Create a new ExtensionSessionConfiguration
*
* @param extension to be used for processing
* @param outputs a list of output configurations for the capture session
* @param executor the executor which will be used for invoking the callbacks
* @param listener callbacks to be invoked when the state of the
* CameraExtensionSession changes
*/
public ExtensionSessionConfiguration(@Extension int extension,
@NonNull List<OutputConfiguration> outputs, @NonNull Executor executor,
@NonNull CameraExtensionSession.StateCallback listener) {
mExtensionType = extension;
mOutputs = outputs;
mExecutor = executor;
mCallback = listener;
}
/**
* Retrieve the extension type.
*
* @return the extension type.
*/
public @Extension
int getExtension() {
return mExtensionType;
}
/**
* Retrieve the {@link OutputConfiguration} list for the capture
* session.
*
* @return A list of output configurations for the capture session.
*/
public @NonNull
List<OutputConfiguration> getOutputConfigurations() {
return mOutputs;
}
/**
* Retrieve the CameraCaptureSession.StateCallback
* listener.
*
* @return A state callback interface implementation.
*/
public @NonNull
CameraExtensionSession.StateCallback getStateCallback() {
return mCallback;
}
/**
* Retrieve the Executor for the CameraExtensionSession instance.
*
* @return The Executor on which the callback will be invoked.
*/
public @NonNull
Executor getExecutor() {
return mExecutor;
}
}