summaryrefslogtreecommitdiff
authorjun.gao <jun.gao@amlogic.com>2012-04-01 02:20:03 (GMT)
committer jun.gao <jun.gao@amlogic.com>2012-04-01 02:20:03 (GMT)
commitff183bc781e7efcab81a586b8b2ba7f95eae29d5 (patch)
tree198d53e918eb65d4f0062a1704e7b1375c0153d0
parent321d5478d3f80ff233bcaa96502b0ba19c0540a2 (diff)
downloadcamera-ff183bc781e7efcab81a586b8b2ba7f95eae29d5.zip
camera-ff183bc781e7efcab81a586b8b2ba7f95eae29d5.tar.gz
camera-ff183bc781e7efcab81a586b8b2ba7f95eae29d5.tar.bz2
added support for open()
Diffstat
-rwxr-xr-xCameraHal_Module.cpp9
-rwxr-xr-xV4LCameraAdapter/V4LCameraAdapter.cpp51
-rwxr-xr-xinc/V4LCameraAdapter/V4LCameraAdapter.h3
3 files changed, 54 insertions, 9 deletions
diff --git a/CameraHal_Module.cpp b/CameraHal_Module.cpp
index 675720b..1d0ad48 100755
--- a/CameraHal_Module.cpp
+++ b/CameraHal_Module.cpp
@@ -650,11 +650,16 @@ int camera_get_camera_info(int camera_id, struct camera_info *info)
{
if (strcmp(valstr, (const char *) android::TICameraParameters::FACING_FRONT) == 0)
{
- face_value = CAMERA_FACING_FRONT;
+
+ //face_value = CAMERA_FACING_FRONT;
+ face_value = CAMERA_FACING_BACK;
+
}
else if (strcmp(valstr, (const char *) android::TICameraParameters::FACING_BACK) == 0)
{
- face_value = CAMERA_FACING_BACK;
+
+ face_value = CAMERA_FACING_FRONT;
+ // face_value = CAMERA_FACING_BACK;
}
}
diff --git a/V4LCameraAdapter/V4LCameraAdapter.cpp b/V4LCameraAdapter/V4LCameraAdapter.cpp
index 537af2a..f196f08 100755
--- a/V4LCameraAdapter/V4LCameraAdapter.cpp
+++ b/V4LCameraAdapter/V4LCameraAdapter.cpp
@@ -117,10 +117,45 @@ static int writefile(char* path,char* content)
#endif
/*--------------------Camera Adapter Class STARTS here-----------------------------*/
+int V4LCameraAdapter:: GetFlexVideoPath(char * path)
+{
+
+ int fd0 = open("/dev/video0", O_RDONLY);
+ int fd1 = open("/dev/video1", O_RDONLY);
+ int fd2 = open("/dev/video2", O_RDONLY);
+ int fd3 = open("/dev/video3", O_RDONLY);
+ //char path[20] ;
+ memset(path,0,sizeof(path));
+ if(fd3>=0){
+ sprintf(path,"%s","/dev/video3");
+ close(fd3);
+ }
+ if(fd2>=0){
+ sprintf(path,"%s","/dev/video2");
+ close(fd2);
+ }
+ else if (fd1>=0 ){
+ sprintf(path,"%s","/dev/video1");
+ close(fd1);
+ }
+ else if (fd0>=0){
+ sprintf(path,"%s","/dev/video0");
+ close(fd0);
+ }
+ else{
+ CAMHAL_LOGEB("Error dont found any video = %s ",path);
+ return -EINVAL;
+ }
+
+
+ return 0 ;
+}
+
+
status_t V4LCameraAdapter::initialize(CameraProperties::Properties* caps)
{
LOG_FUNCTION_NAME;
-
+ GetFlexVideoPath(videopath);
char value[PROPERTY_VALUE_MAX];
property_get("debug.camera.showfps", value, "0");
mDebugFps = atoi(value);
@@ -138,7 +173,8 @@ status_t V4LCameraAdapter::initialize(CameraProperties::Properties* caps)
mUsbCameraStatus = USBCAMERA_NO_INIT;
#endif
- if ((mCameraHandle = open(DEVICE_PATH(mSensorIndex), O_RDWR)) == -1)
+
+ if ((mCameraHandle = open(videopath, O_RDWR)) == -1)
{
CAMHAL_LOGEB("Error while opening handle to V4L2 Camera: %s", strerror(errno));
return -EINVAL;
@@ -293,12 +329,15 @@ status_t V4LCameraAdapter::setParameters(const CameraParameters &params)
if(flashmode)
set_flash_mode(flashmode);
focusmode = mParams.get(CameraParameters::KEY_FOCUS_MODE);
- if(exposure)
- SetExposure(mCameraHandle,exposure);
+ if(exposure)
+ SetExposure(mCameraHandle,"0");
+ //SetExposure(mCameraHandle,exposure);
if(white_balance)
- set_white_balance(mCameraHandle,white_balance);
+ //set_white_balance(mCameraHandle,white_balance);
+ set_white_balance(mCameraHandle,"auto");
if(effect)
- set_effect(mCameraHandle,effect);
+ set_effect(mCameraHandle, "none");
+ // set_effect(mCameraHandle,effect);
if(banding)
set_banding(mCameraHandle,banding);
if(focusmode) {
diff --git a/inc/V4LCameraAdapter/V4LCameraAdapter.h b/inc/V4LCameraAdapter/V4LCameraAdapter.h
index ec50342..8f34ba6 100755
--- a/inc/V4LCameraAdapter/V4LCameraAdapter.h
+++ b/inc/V4LCameraAdapter/V4LCameraAdapter.h
@@ -284,6 +284,7 @@ private:
static int beginAutoFocusThread(void *cookie);
int GenExif(ExifElementsTable* exiftable);
+ int GetFlexVideoPath(char * path);
public:
@@ -318,7 +319,7 @@ private:
struct VideoInfo *mVideoInfo;
int mCameraHandle;
-
+ char videopath [20];
int nQueued;
int nDequeued;