author | jun.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) |
commit | ff183bc781e7efcab81a586b8b2ba7f95eae29d5 (patch) | |
tree | 198d53e918eb65d4f0062a1704e7b1375c0153d0 | |
parent | 321d5478d3f80ff233bcaa96502b0ba19c0540a2 (diff) | |
download | camera-ff183bc781e7efcab81a586b8b2ba7f95eae29d5.zip camera-ff183bc781e7efcab81a586b8b2ba7f95eae29d5.tar.gz camera-ff183bc781e7efcab81a586b8b2ba7f95eae29d5.tar.bz2 |
added support for open()
-rwxr-xr-x | CameraHal_Module.cpp | 9 | ||||
-rwxr-xr-x | V4LCameraAdapter/V4LCameraAdapter.cpp | 51 | ||||
-rwxr-xr-x | inc/V4LCameraAdapter/V4LCameraAdapter.h | 3 |
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 ¶ms) 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; |