Loading services/camera/libcameraservice/Android.mk +4 −0 Original line number Diff line number Diff line Loading @@ -91,4 +91,8 @@ ifeq ($(BOARD_FIRST_CAMERA_FRONT_FACING),true) LOCAL_CFLAGS += -DFIRST_CAMERA_FACING=CAMERA_FACING_FRONT -DFIRST_CAMERA_ORIENTATION=0 endif ifeq ($(BOARD_HAS_LGE_FFC), true) LOCAL_CFLAGS += -DBOARD_HAS_LGE_FFC endif include $(BUILD_SHARED_LIBRARY) services/camera/libcameraservice/CameraService.cpp +32 −2 Original line number Diff line number Diff line Loading @@ -899,7 +899,18 @@ status_t CameraService::Client::setParameters(const String8& params) { status_t result = checkPidAndHardware(); if (result != NO_ERROR) return result; CameraParameters p(params); #ifdef BOARD_HAS_LGE_FFC if (!p.get("camera-sensor") || !strcmp(p.get("camera-sensor"),"0")) { if (!strcmp(p.get("rotation"),"90")) p.set("rotation","270"); else if (!strcmp(p.get("rotation"),"270")) p.set("rotation","90"); } #endif return mHardware->setParameters(p); } Loading Loading @@ -1315,8 +1326,12 @@ void CameraService::Client::copyFrameAndPostCopiedFrame( client->dataCallback(CAMERA_MSG_PREVIEW_FRAME, frame); } #define FFC_VENDOR_HTC 0x1 #define FFC_VENDOR_LGE 0x2 int mFrontCameraType = 0; int CameraService::Client::getOrientation(int degrees, bool mirror) { if (!mirror) { if (!mirror || mFrontCameraType == FFC_VENDOR_LGE) { if (degrees == 0) return 0; else if (degrees == 90) return HAL_TRANSFORM_ROT_90; else if (degrees == 180) return HAL_TRANSFORM_ROT_180; Loading Loading @@ -1435,8 +1450,13 @@ static const CameraInfo sCameraInfo[] = { static int getNumberOfCameras() { if (access(HTC_SWITCH_CAMERA_FILE_PATH, W_OK) == 0) { mFrontCameraType = FFC_VENDOR_HTC; return 2; } #ifdef BOARD_HAS_LGE_FFC mFrontCameraType = FFC_VENDOR_LGE; return 2; #endif /* FIXME: Support non-HTC front camera */ return 1; } Loading Loading @@ -1469,7 +1489,17 @@ extern "C" sp<CameraHardwareInterface> HAL_openCameraHardware(int cameraId) { LOGV("openCameraHardware: call createInstance"); if (getNumberOfCameras() == 2) { if (mFrontCameraType == FFC_VENDOR_HTC) { htcCameraSwitch(cameraId); } else if (mFrontCameraType == FFC_VENDOR_LGE) { sp<CameraHardwareInterface> hardware = openCameraHardware(cameraId); if (hardware != NULL) { CameraParameters params(hardware->getParameters()); params.set("camera-sensor", cameraId); hardware->setParameters(params); } return hardware; } #ifdef BOARD_USE_REVERSE_FFC if (cameraId == 1) { /* Change default parameters for the front camera */ Loading Loading
services/camera/libcameraservice/Android.mk +4 −0 Original line number Diff line number Diff line Loading @@ -91,4 +91,8 @@ ifeq ($(BOARD_FIRST_CAMERA_FRONT_FACING),true) LOCAL_CFLAGS += -DFIRST_CAMERA_FACING=CAMERA_FACING_FRONT -DFIRST_CAMERA_ORIENTATION=0 endif ifeq ($(BOARD_HAS_LGE_FFC), true) LOCAL_CFLAGS += -DBOARD_HAS_LGE_FFC endif include $(BUILD_SHARED_LIBRARY)
services/camera/libcameraservice/CameraService.cpp +32 −2 Original line number Diff line number Diff line Loading @@ -899,7 +899,18 @@ status_t CameraService::Client::setParameters(const String8& params) { status_t result = checkPidAndHardware(); if (result != NO_ERROR) return result; CameraParameters p(params); #ifdef BOARD_HAS_LGE_FFC if (!p.get("camera-sensor") || !strcmp(p.get("camera-sensor"),"0")) { if (!strcmp(p.get("rotation"),"90")) p.set("rotation","270"); else if (!strcmp(p.get("rotation"),"270")) p.set("rotation","90"); } #endif return mHardware->setParameters(p); } Loading Loading @@ -1315,8 +1326,12 @@ void CameraService::Client::copyFrameAndPostCopiedFrame( client->dataCallback(CAMERA_MSG_PREVIEW_FRAME, frame); } #define FFC_VENDOR_HTC 0x1 #define FFC_VENDOR_LGE 0x2 int mFrontCameraType = 0; int CameraService::Client::getOrientation(int degrees, bool mirror) { if (!mirror) { if (!mirror || mFrontCameraType == FFC_VENDOR_LGE) { if (degrees == 0) return 0; else if (degrees == 90) return HAL_TRANSFORM_ROT_90; else if (degrees == 180) return HAL_TRANSFORM_ROT_180; Loading Loading @@ -1435,8 +1450,13 @@ static const CameraInfo sCameraInfo[] = { static int getNumberOfCameras() { if (access(HTC_SWITCH_CAMERA_FILE_PATH, W_OK) == 0) { mFrontCameraType = FFC_VENDOR_HTC; return 2; } #ifdef BOARD_HAS_LGE_FFC mFrontCameraType = FFC_VENDOR_LGE; return 2; #endif /* FIXME: Support non-HTC front camera */ return 1; } Loading Loading @@ -1469,7 +1489,17 @@ extern "C" sp<CameraHardwareInterface> HAL_openCameraHardware(int cameraId) { LOGV("openCameraHardware: call createInstance"); if (getNumberOfCameras() == 2) { if (mFrontCameraType == FFC_VENDOR_HTC) { htcCameraSwitch(cameraId); } else if (mFrontCameraType == FFC_VENDOR_LGE) { sp<CameraHardwareInterface> hardware = openCameraHardware(cameraId); if (hardware != NULL) { CameraParameters params(hardware->getParameters()); params.set("camera-sensor", cameraId); hardware->setParameters(params); } return hardware; } #ifdef BOARD_USE_REVERSE_FFC if (cameraId == 1) { /* Change default parameters for the front camera */ Loading