1f5198bf2ec5f39e8a46552172124bd7411f5c63fShuzhen Wang/* Copyright (c) 2012, The Linux Foundation. All rights reserved. 2f5198bf2ec5f39e8a46552172124bd7411f5c63fShuzhen Wang * 3f5198bf2ec5f39e8a46552172124bd7411f5c63fShuzhen Wang * Redistribution and use in source and binary forms, with or without 4f5198bf2ec5f39e8a46552172124bd7411f5c63fShuzhen Wang * modification, are permitted provided that the following conditions are 5f5198bf2ec5f39e8a46552172124bd7411f5c63fShuzhen Wang * met: 6f5198bf2ec5f39e8a46552172124bd7411f5c63fShuzhen Wang * * Redistributions of source code must retain the above copyright 7f5198bf2ec5f39e8a46552172124bd7411f5c63fShuzhen Wang * notice, this list of conditions and the following disclaimer. 8f5198bf2ec5f39e8a46552172124bd7411f5c63fShuzhen Wang * * Redistributions in binary form must reproduce the above 9f5198bf2ec5f39e8a46552172124bd7411f5c63fShuzhen Wang * copyright notice, this list of conditions and the following 10f5198bf2ec5f39e8a46552172124bd7411f5c63fShuzhen Wang * disclaimer in the documentation and/or other materials provided 11f5198bf2ec5f39e8a46552172124bd7411f5c63fShuzhen Wang * with the distribution. 12b274848d051a4f2d5a9e7e3b152d26211c4b2e83Duy Truong * * Neither the name of The Linux Foundation nor the names of its 13f5198bf2ec5f39e8a46552172124bd7411f5c63fShuzhen Wang * contributors may be used to endorse or promote products derived 14f5198bf2ec5f39e8a46552172124bd7411f5c63fShuzhen Wang * from this software without specific prior written permission. 15f5198bf2ec5f39e8a46552172124bd7411f5c63fShuzhen Wang * 16f5198bf2ec5f39e8a46552172124bd7411f5c63fShuzhen Wang * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED 17f5198bf2ec5f39e8a46552172124bd7411f5c63fShuzhen Wang * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 18f5198bf2ec5f39e8a46552172124bd7411f5c63fShuzhen Wang * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT 19f5198bf2ec5f39e8a46552172124bd7411f5c63fShuzhen Wang * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS 20f5198bf2ec5f39e8a46552172124bd7411f5c63fShuzhen Wang * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 21f5198bf2ec5f39e8a46552172124bd7411f5c63fShuzhen Wang * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 22f5198bf2ec5f39e8a46552172124bd7411f5c63fShuzhen Wang * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 23f5198bf2ec5f39e8a46552172124bd7411f5c63fShuzhen Wang * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 24f5198bf2ec5f39e8a46552172124bd7411f5c63fShuzhen Wang * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 25f5198bf2ec5f39e8a46552172124bd7411f5c63fShuzhen Wang * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN 26f5198bf2ec5f39e8a46552172124bd7411f5c63fShuzhen Wang * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27f5198bf2ec5f39e8a46552172124bd7411f5c63fShuzhen Wang * 28f5198bf2ec5f39e8a46552172124bd7411f5c63fShuzhen Wang */ 29f5198bf2ec5f39e8a46552172124bd7411f5c63fShuzhen Wang 306f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev#ifndef __QCAMERA2FACTORY_H__ 316f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev#define __QCAMERA2FACTORY_H__ 32f5198bf2ec5f39e8a46552172124bd7411f5c63fShuzhen Wang 336f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev#include <hardware/camera.h> 346f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev#include <system/camera.h> 356f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev#include <media/msmb_camera.h> 36f5198bf2ec5f39e8a46552172124bd7411f5c63fShuzhen Wang 376f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev#include "QCamera2HWI.h" 38f5198bf2ec5f39e8a46552172124bd7411f5c63fShuzhen Wang 396f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevnamespace qcamera { 40f5198bf2ec5f39e8a46552172124bd7411f5c63fShuzhen Wang 416f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevclass QCamera2Factory 426f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev{ 436f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevpublic: 446f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev QCamera2Factory(); 456f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev virtual ~QCamera2Factory(); 46f5198bf2ec5f39e8a46552172124bd7411f5c63fShuzhen Wang 476f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static int get_number_of_cameras(); 486f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static int get_camera_info(int camera_id, struct camera_info *info); 49f5198bf2ec5f39e8a46552172124bd7411f5c63fShuzhen Wang 506f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevprivate: 516f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int getNumberOfCameras(); 526f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int getCameraInfo(int camera_id, struct camera_info *info); 536f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int cameraDeviceOpen(int camera_id, struct hw_device_t **hw_device); 546f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static int camera_device_open(const struct hw_module_t *module, const char *id, 556f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev struct hw_device_t **hw_device); 56f5198bf2ec5f39e8a46552172124bd7411f5c63fShuzhen Wang 576f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevpublic: 586f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev static struct hw_module_methods_t mModuleMethods; 59f5198bf2ec5f39e8a46552172124bd7411f5c63fShuzhen Wang 606f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevprivate: 616f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev int mNumOfCameras; 626f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev}; 63f5198bf2ec5f39e8a46552172124bd7411f5c63fShuzhen Wang 646f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev}; /*namespace qcamera*/ 656f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 666f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchevextern camera_module_t HAL_MODULE_INFO_SYM; 676f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev 686f83d735d8e3b918da42e6b559fcd0efb78133e5Iliyan Malchev#endif /* ANDROID_HARDWARE_QUALCOMM_CAMERA_H */ 69