1bb5cb5fa3d9e4ac18f4b4c9adaf237b804a09c56Paul Rohde/* 2bb5cb5fa3d9e4ac18f4b4c9adaf237b804a09c56Paul Rohde * Copyright (C) 2015 The Android Open Source Project 3bb5cb5fa3d9e4ac18f4b4c9adaf237b804a09c56Paul Rohde * 4bb5cb5fa3d9e4ac18f4b4c9adaf237b804a09c56Paul Rohde * Licensed under the Apache License, Version 2.0 (the "License"); 5bb5cb5fa3d9e4ac18f4b4c9adaf237b804a09c56Paul Rohde * you may not use this file except in compliance with the License. 6bb5cb5fa3d9e4ac18f4b4c9adaf237b804a09c56Paul Rohde * You may obtain a copy of the License at 7bb5cb5fa3d9e4ac18f4b4c9adaf237b804a09c56Paul Rohde * 8bb5cb5fa3d9e4ac18f4b4c9adaf237b804a09c56Paul Rohde * http://www.apache.org/licenses/LICENSE-2.0 9bb5cb5fa3d9e4ac18f4b4c9adaf237b804a09c56Paul Rohde * 10bb5cb5fa3d9e4ac18f4b4c9adaf237b804a09c56Paul Rohde * Unless required by applicable law or agreed to in writing, software 11bb5cb5fa3d9e4ac18f4b4c9adaf237b804a09c56Paul Rohde * distributed under the License is distributed on an "AS IS" BASIS, 12bb5cb5fa3d9e4ac18f4b4c9adaf237b804a09c56Paul Rohde * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13bb5cb5fa3d9e4ac18f4b4c9adaf237b804a09c56Paul Rohde * See the License for the specific language governing permissions and 14bb5cb5fa3d9e4ac18f4b4c9adaf237b804a09c56Paul Rohde * limitations under the License. 15bb5cb5fa3d9e4ac18f4b4c9adaf237b804a09c56Paul Rohde */ 16bb5cb5fa3d9e4ac18f4b4c9adaf237b804a09c56Paul Rohde 17b6a4d96a310a1dee22ddea89b09130bcda206bb3Paul Rohdepackage com.android.camera.device; 18b6a4d96a310a1dee22ddea89b09130bcda206bb3Paul Rohde 19b6a4d96a310a1dee22ddea89b09130bcda206bb3Paul Rohde/** 20b6a4d96a310a1dee22ddea89b09130bcda206bb3Paul Rohde * Provides a set of executable actions for a given camera device key. 21b6a4d96a310a1dee22ddea89b09130bcda206bb3Paul Rohde * 22b6a4d96a310a1dee22ddea89b09130bcda206bb3Paul Rohde * In the case of Camera2 API, this is the example signature: 23b6a4d96a310a1dee22ddea89b09130bcda206bb3Paul Rohde * 24b6a4d96a310a1dee22ddea89b09130bcda206bb3Paul Rohde * <pre><code> 25b6a4d96a310a1dee22ddea89b09130bcda206bb3Paul Rohde * Provider implements CameraDeviceActionProvider<CameraDevice, String> 26b6a4d96a310a1dee22ddea89b09130bcda206bb3Paul Rohde * </code></pre> 27b6a4d96a310a1dee22ddea89b09130bcda206bb3Paul Rohde * 28b6a4d96a310a1dee22ddea89b09130bcda206bb3Paul Rohde * @paramThe type of camera device the actions produce. 29b6a4d96a310a1dee22ddea89b09130bcda206bb3Paul Rohde */ 301d84d7107686aa428ee2eeb1a8caf0ea3e43b1dfPaul Rohdepublic interface CameraDeviceActionProvider<TDevice> { 31b6a4d96a310a1dee22ddea89b09130bcda206bb3Paul Rohde 32b6a4d96a310a1dee22ddea89b09130bcda206bb3Paul Rohde /** 33b6a4d96a310a1dee22ddea89b09130bcda206bb3Paul Rohde * Return a new set of device and api specific actions for the given 34b6a4d96a310a1dee22ddea89b09130bcda206bb3Paul Rohde * types. 35b6a4d96a310a1dee22ddea89b09130bcda206bb3Paul Rohde */ 361d84d7107686aa428ee2eeb1a8caf0ea3e43b1dfPaul Rohde public SingleDeviceActions<TDevice> get(CameraDeviceKey key); 37b6a4d96a310a1dee22ddea89b09130bcda206bb3Paul Rohde} 38