summaryrefslogtreecommitdiffstats
path: root/services/camera/libcameraservice/CameraService.cpp
diff options
context:
space:
mode:
authortbalden <illespal@gmail.com>2013-03-23 23:06:45 +0100
committertbalden <illespal@gmail.com>2013-04-14 11:01:38 +0200
commitff2064e7dcad3c85005fc4564e04fde184240df9 (patch)
tree52dd63087c9954b038196439420e91c843dcab8c /services/camera/libcameraservice/CameraService.cpp
parent203e28ca88001f2a0f4db7a3018977c687333941 (diff)
downloadframeworks_av-ff2064e7dcad3c85005fc4564e04fde184240df9.zip
frameworks_av-ff2064e7dcad3c85005fc4564e04fde184240df9.tar.gz
frameworks_av-ff2064e7dcad3c85005fc4564e04fde184240df9.tar.bz2
Camera: QCOM legacy definitions,HTC cam switch,NO_UPDATE_PREVIEW
Updating Camera parameters, and service with several compatibility patches: 1., QCOM legacy CameraParameters and functions: Adding these will make ICS qcomm camera blobs work on JB 4.2. Use BOARD_USES_QCOM_LEGACY_CAM_PARAMS := true in BoardConfig to use this. Also fixes the problem of legacy qcom camera blobs with recent libcameraservice QCOM_HARDWARE changes, where the orientation is messed up on first preview: the fix is leaving out setPreviewWindow(window) for legacy qcomm cam blobs. 2., Also adding NO_UPDATE_PREVIEW flag for legacy purposes. 3., Adding adding the set orientation patch: Always set buffers orientation when setting the qcom camera preview window Fixes the rotated preview on TouchPad https://github.com/CyanogenMod/android_frameworks_base/commit/1a8e41a3c7434737db89b604352575f8b3109e7a 4., camera: Full support for HTC camera switch 5., Adding more parameters for HTC Explorer Change-Id: I2bfc72b8ef027665356788f1db7f96b31d037dbe
Diffstat (limited to 'services/camera/libcameraservice/CameraService.cpp')
-rw-r--r--services/camera/libcameraservice/CameraService.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/services/camera/libcameraservice/CameraService.cpp b/services/camera/libcameraservice/CameraService.cpp
index d8365eb..387a784 100644
--- a/services/camera/libcameraservice/CameraService.cpp
+++ b/services/camera/libcameraservice/CameraService.cpp
@@ -21,6 +21,8 @@
#include <stdio.h>
#include <sys/types.h>
#include <pthread.h>
+#include <unistd.h>
+#include <fcntl.h>
#include <binder/IPCThreadState.h>
#include <binder/IServiceManager.h>
@@ -68,6 +70,24 @@ static int getCallingUid() {
// ----------------------------------------------------------------------------
+#if defined(BOARD_HAVE_HTC_FFC)
+#define HTC_SWITCH_CAMERA_FILE_PATH "/sys/android_camera2/htcwc"
+static void htcCameraSwitch(int cameraId)
+{
+ char buffer[16];
+ int fd;
+
+ if (access(HTC_SWITCH_CAMERA_FILE_PATH, W_OK) == 0) {
+ snprintf(buffer, sizeof(buffer), "%d", cameraId);
+
+ fd = open(HTC_SWITCH_CAMERA_FILE_PATH, O_WRONLY);
+ write(fd, buffer, strlen(buffer));
+ close(fd);
+ }
+}
+#endif
+
+
// This is ugly and only safe if we never re-create the CameraService, but
// should be ok for now.
static CameraService *gCameraService;
@@ -158,6 +178,10 @@ sp<ICamera> CameraService::connect(
return NULL;
}
+#if defined(BOARD_HAVE_HTC_FFC)
+ htcCameraSwitch(cameraId);
+#endif
+
Mutex::Autolock lock(mServiceLock);
if (mClient[cameraId] != 0) {
client = mClient[cameraId].promote();