1b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine/* 2b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine * Copyright (C) 2011 The Android Open Source Project 3b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine * 4b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine * Licensed under the Apache License, Version 2.0 (the "License"); 5b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine * you may not use this file except in compliance with the License. 6b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine * You may obtain a copy of the License at 7b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine * 8b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine * http://www.apache.org/licenses/LICENSE-2.0 9b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine * 10b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine * Unless required by applicable law or agreed to in writing, software 11b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine * distributed under the License is distributed on an "AS IS" BASIS, 12b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine * See the License for the specific language governing permissions and 14b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine * limitations under the License. 15b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine */ 16b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine 17b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine#ifndef HW_EMULATOR_CAMERA_EMULATED_FAKE_CAMERA_H 18b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine#define HW_EMULATOR_CAMERA_EMULATED_FAKE_CAMERA_H 19b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine 20b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine/* 21b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine * Contains declaration of a class EmulatedFakeCamera that encapsulates 22b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine * functionality of a fake camera. This class is nothing more than a placeholder 23b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine * for EmulatedFakeCameraDevice instance. 24b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine */ 25b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine 265467be2eefc007ebf09baf109dafe058abc1ffc5Vladimir Chtchetkine#include "EmulatedCamera.h" 275467be2eefc007ebf09baf109dafe058abc1ffc5Vladimir Chtchetkine#include "EmulatedFakeCameraDevice.h" 28b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine 29b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkinenamespace android { 30b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine 31b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine/* Encapsulates functionality of a fake camera. 32b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine * This class is nothing more than a placeholder for EmulatedFakeCameraDevice 33b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine * instance that emulates a fake camera device. 34b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine */ 35b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkineclass EmulatedFakeCamera : public EmulatedCamera { 36b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkinepublic: 37b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine /* Constructs EmulatedFakeCamera instance. */ 38c9d6edeea5921a11e305273f3dd604278c45e9d7Vladimir Chtchetkine EmulatedFakeCamera(int cameraId, bool facingBack, struct hw_module_t* module); 39b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine 40b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine /* Destructs EmulatedFakeCamera instance. */ 41b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine ~EmulatedFakeCamera(); 42b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine 43b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine /**************************************************************************** 44b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine * EmulatedCamera virtual overrides. 45b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine ***************************************************************************/ 46b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine 47b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkinepublic: 4849842cee0549befb6d7a4353247190820037e1c4Vladimir Chtchetkine /* Initializes EmulatedFakeCamera instance. */ 49b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine status_t Initialize(); 50b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine 51b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine /**************************************************************************** 52b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine * EmulatedCamera abstract API implementation. 53b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine ***************************************************************************/ 54b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine 55b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkineprotected: 56b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine /* Gets emulated camera device ised by this instance of the emulated camera. 57b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine */ 585467be2eefc007ebf09baf109dafe058abc1ffc5Vladimir Chtchetkine EmulatedCameraDevice* getCameraDevice(); 59b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine 60b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine /**************************************************************************** 61b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine * Data memebers. 62b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine ***************************************************************************/ 63b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine 64b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkineprotected: 65c9d6edeea5921a11e305273f3dd604278c45e9d7Vladimir Chtchetkine /* Facing back (true) or front (false) switch. */ 66c9d6edeea5921a11e305273f3dd604278c45e9d7Vladimir Chtchetkine bool mFacingBack; 67c9d6edeea5921a11e305273f3dd604278c45e9d7Vladimir Chtchetkine 68b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine /* Contained fake camera device object. */ 695467be2eefc007ebf09baf109dafe058abc1ffc5Vladimir Chtchetkine EmulatedFakeCameraDevice mFakeCameraDevice; 70b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine}; 71b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine 72b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine}; /* namespace android */ 73b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine 74b97c2f0b5919b716ba5433e6153a29d7e1e357feVladimir Chtchetkine#endif /* HW_EMULATOR_CAMERA_EMULATED_FAKE_CAMERA_H */ 75