基础代码搜寻过程之哪里确定摄像头有几个
return Camera::getNumberOfCameras();
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;
}
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)
# 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