12cdfa261f44182292d07b7b3b1e9fce8376e4df5Ruben Brunk/*
22cdfa261f44182292d07b7b3b1e9fce8376e4df5Ruben Brunk * Copyright (C) 2014 The Android Open Source Project
32cdfa261f44182292d07b7b3b1e9fce8376e4df5Ruben Brunk *
42cdfa261f44182292d07b7b3b1e9fce8376e4df5Ruben Brunk * Licensed under the Apache License, Version 2.0 (the "License");
52cdfa261f44182292d07b7b3b1e9fce8376e4df5Ruben Brunk * you may not use this file except in compliance with the License.
62cdfa261f44182292d07b7b3b1e9fce8376e4df5Ruben Brunk * You may obtain a copy of the License at
72cdfa261f44182292d07b7b3b1e9fce8376e4df5Ruben Brunk *
82cdfa261f44182292d07b7b3b1e9fce8376e4df5Ruben Brunk *      http://www.apache.org/licenses/LICENSE-2.0
92cdfa261f44182292d07b7b3b1e9fce8376e4df5Ruben Brunk *
102cdfa261f44182292d07b7b3b1e9fce8376e4df5Ruben Brunk * Unless required by applicable law or agreed to in writing, software
112cdfa261f44182292d07b7b3b1e9fce8376e4df5Ruben Brunk * distributed under the License is distributed on an "AS IS" BASIS,
122cdfa261f44182292d07b7b3b1e9fce8376e4df5Ruben Brunk * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
132cdfa261f44182292d07b7b3b1e9fce8376e4df5Ruben Brunk * See the License for the specific language governing permissions and
142cdfa261f44182292d07b7b3b1e9fce8376e4df5Ruben Brunk * limitations under the License.
152cdfa261f44182292d07b7b3b1e9fce8376e4df5Ruben Brunk */
162cdfa261f44182292d07b7b3b1e9fce8376e4df5Ruben Brunk
172cdfa261f44182292d07b7b3b1e9fce8376e4df5Ruben Brunkpackage android.hardware.camera2.impl;
182cdfa261f44182292d07b7b3b1e9fce8376e4df5Ruben Brunk
192cdfa261f44182292d07b7b3b1e9fce8376e4df5Ruben Brunk/**
202cdfa261f44182292d07b7b3b1e9fce8376e4df5Ruben Brunk * Getter interface for use with Command pattern metadata value getters.
212cdfa261f44182292d07b7b3b1e9fce8376e4df5Ruben Brunk */
222cdfa261f44182292d07b7b3b1e9fce8376e4df5Ruben Brunkpublic interface GetCommand {
232cdfa261f44182292d07b7b3b1e9fce8376e4df5Ruben Brunk
242cdfa261f44182292d07b7b3b1e9fce8376e4df5Ruben Brunk    /**
252cdfa261f44182292d07b7b3b1e9fce8376e4df5Ruben Brunk     * Get the value from the given {@link CameraMetadataNative} object.
262cdfa261f44182292d07b7b3b1e9fce8376e4df5Ruben Brunk     *
272cdfa261f44182292d07b7b3b1e9fce8376e4df5Ruben Brunk     * @param metadata the {@link CameraMetadataNative} object to get the value from.
282cdfa261f44182292d07b7b3b1e9fce8376e4df5Ruben Brunk     * @param key the {@link CameraMetadataNative.Key} to look up.
292cdfa261f44182292d07b7b3b1e9fce8376e4df5Ruben Brunk     * @param <T> the type of the value.
302cdfa261f44182292d07b7b3b1e9fce8376e4df5Ruben Brunk     * @return the value for a given {@link CameraMetadataNative.Key}.
312cdfa261f44182292d07b7b3b1e9fce8376e4df5Ruben Brunk     */
322cdfa261f44182292d07b7b3b1e9fce8376e4df5Ruben Brunk    public <T> T getValue(CameraMetadataNative metadata, CameraMetadataNative.Key<T> key);
332cdfa261f44182292d07b7b3b1e9fce8376e4df5Ruben Brunk}
34