给什么平台,跳什么舞

基础代码搜寻过程之哪里确定摄像头有几个

联芯平台:
 
frameworks/base/core/java/android/hardware/Camera.java:    public native static int getNumberOfCameras(); 
frameworks/base/core/jni/android_hardware_Camera.cpp
    return Camera::getNumberOfCameras();
frameworks/base/libs/camera/Camera.cpp
int32_t Camera::getNumberOfCameras()
{
    const sp<ICameraService>& cs = getCameraService();
    if (cs == 0) return 0;
    return cs->getNumberOfCameras();
}

frameworks/base/services/camera/libcameraservice/CameraService.cpp
int32_t CameraService::getNumberOfCameras() {
    return mNumberOfCameras;
}

mNumberOfCameras = mModule->get_number_of_cameras();
 
初始化mModule:

if (hw_get_module(CAMERA_HARDWARE_MODULE_ID,(const hw_module_t **)&mModule) < 0) 

 

 
 

frameworks/base/services/camera/libcameraservice/CameraService.h
camera_module_t mModule;

hardware/libhardware/include/hardware/camera.h
定义了camera_module_t

hardware/leadcore/lc1810/libcamera/ComipCameraHWInterface.cpp

struct camera_module HAL_MODULE_INFO_SYM = { 

  get_number_of_cameras   : HAL_getNumberOfCameras,

}

static int HAL_getNumberOfCameras()
{
    LOG2("HAL_getNumberOfCameras");
    return sizeof(sCameraInfo) / sizeof(sCameraInfo[0]);
}

static CameraInfo sCameraInfo[] = {
  {
    CAMERA_FACING_BACK,
    90, /* orientation */
  },
#if (CAMERA_NUMBER == 2)
  {
    CAMERA_FACING_FRONT,
    270, /* orientation */
  }
#endif
};

 

leadcore/lc1810/libcamera/Android.mk: -DCAMERA_NUMBER=$(CAMERA_NUMBER)

device/leadcore/lc1810/BoardConfig.mk
# Camera
ifeq ($(TARGET_BOARD_PLATFORM), lc1810_yl8150s_v1_0)
CAMERA_NUMBER := 2
else ifeq ($(TARGET_BOARD_PLATFORM), lc1810_yl8150s_v1_1)
CAMERA_NUMBER := 2
else ifeq ($(TARGET_BOARD_PLATFORM), lc1810_yl8150s_v1_2)
CAMERA_NUMBER := 2
else ifeq ($(TARGET_BOARD_PLATFORM), lc1810_zytn968)
CAMERA_NUMBER := 2
else ifeq ($(TARGET_BOARD_PLATFORM), lc1810_yl8150s_evb)
CAMERA_NUMBER := 2
else ifeq ($(TARGET_BOARD_PLATFORM), lc1810_evb)
CAMERA_NUMBER := 2
else
CAMERA_NUMBER := 1
endif
posted @ 2013-12-20 10:42  Jimwind  阅读(247)  评论(0)    收藏  举报
==============精通*学习*关注==============