1d1f113d0f0ce5099f8efba40a88398f7945bb5e0Ruben Brunk/*
2d1f113d0f0ce5099f8efba40a88398f7945bb5e0Ruben Brunk * Copyright (C) 2014 The Android Open Source Project
3d1f113d0f0ce5099f8efba40a88398f7945bb5e0Ruben Brunk *
4d1f113d0f0ce5099f8efba40a88398f7945bb5e0Ruben Brunk * Licensed under the Apache License, Version 2.0 (the "License");
5d1f113d0f0ce5099f8efba40a88398f7945bb5e0Ruben Brunk * you may not use this file except in compliance with the License.
6d1f113d0f0ce5099f8efba40a88398f7945bb5e0Ruben Brunk * You may obtain a copy of the License at
7d1f113d0f0ce5099f8efba40a88398f7945bb5e0Ruben Brunk *
8d1f113d0f0ce5099f8efba40a88398f7945bb5e0Ruben Brunk *      http://www.apache.org/licenses/LICENSE-2.0
9d1f113d0f0ce5099f8efba40a88398f7945bb5e0Ruben Brunk *
10d1f113d0f0ce5099f8efba40a88398f7945bb5e0Ruben Brunk * Unless required by applicable law or agreed to in writing, software
11d1f113d0f0ce5099f8efba40a88398f7945bb5e0Ruben Brunk * distributed under the License is distributed on an "AS IS" BASIS,
12d1f113d0f0ce5099f8efba40a88398f7945bb5e0Ruben Brunk * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13d1f113d0f0ce5099f8efba40a88398f7945bb5e0Ruben Brunk * See the License for the specific language governing permissions and
14d1f113d0f0ce5099f8efba40a88398f7945bb5e0Ruben Brunk * limitations under the License.
15d1f113d0f0ce5099f8efba40a88398f7945bb5e0Ruben Brunk */
16d1f113d0f0ce5099f8efba40a88398f7945bb5e0Ruben Brunk
17d1f113d0f0ce5099f8efba40a88398f7945bb5e0Ruben Brunkpackage android.hardware.camera2.impl;
18d1f113d0f0ce5099f8efba40a88398f7945bb5e0Ruben Brunk
19d1f113d0f0ce5099f8efba40a88398f7945bb5e0Ruben Brunk/**
20d1f113d0f0ce5099f8efba40a88398f7945bb5e0Ruben Brunk * Setter interface for use with Command pattern metadata value setters.
21d1f113d0f0ce5099f8efba40a88398f7945bb5e0Ruben Brunk */
22d1f113d0f0ce5099f8efba40a88398f7945bb5e0Ruben Brunkpublic interface SetCommand {
23d1f113d0f0ce5099f8efba40a88398f7945bb5e0Ruben Brunk
24d1f113d0f0ce5099f8efba40a88398f7945bb5e0Ruben Brunk    /**
25d1f113d0f0ce5099f8efba40a88398f7945bb5e0Ruben Brunk     * Set the value in the given metadata.
26d1f113d0f0ce5099f8efba40a88398f7945bb5e0Ruben Brunk     *
27d1f113d0f0ce5099f8efba40a88398f7945bb5e0Ruben Brunk     * @param metadata {@link CameraMetadataNative} to set value in.
28d1f113d0f0ce5099f8efba40a88398f7945bb5e0Ruben Brunk     * @param value value to set.
29d1f113d0f0ce5099f8efba40a88398f7945bb5e0Ruben Brunk     * @param <T> type of the value to set.
30d1f113d0f0ce5099f8efba40a88398f7945bb5e0Ruben Brunk     */
31d1f113d0f0ce5099f8efba40a88398f7945bb5e0Ruben Brunk    public <T> void setValue(/*inout*/CameraMetadataNative metadata,
32d1f113d0f0ce5099f8efba40a88398f7945bb5e0Ruben Brunk                             T value);
33d1f113d0f0ce5099f8efba40a88398f7945bb5e0Ruben Brunk}
34