v4l2-ctrls: change the boolean type of V4L2_CID_FOCUS_AUTO to menu type
RFC PATCH v2 1/3 v4l2-ctrls: change the boolean type of V4L2_CID_FOCUS_AUTO to menu type
Support more modes of autofocus, it changes the type of V4L2_CID_FOCUS_AUTO from boolean to menu. And it includes 4 kinds of enumeration types:
V4L2_FOCUS_AUTO, V4L2_FOCUS_MANUAL, V4L2_FOCUS_MACRO, V4L2_FOCUS_CONTINUOUS
Signed-off-by Heungjun Kim <[email protected]>
Signed-off-by Kyungmin Park <[email protected]>
--- drivers/media/video/v4l2-ctrls.c | 11 ++++++++++- include/linux/videodev2.h | 6 ++++++ 2 files changed, 16 insertions(+), 1 deletions(-)
drivers/media/video/v4l2-ctrls.c +10 -1
@@ -197,6 +197,13 @@ const char * const *v4l2_ctrl_get_menu(u32 id)"Aperture Priority Mode" ,NULL }; +static const char *const camera_focus_auto[] = { +"Manual Focus" , +"Normal Auto Focus" , +"Macro Auto Focus" , +"Continuous Auto Focus" , +NULL + };static const char *const colorfx[] = {"None" , "Black & White",
@@ -252,6 +259,8 @@ const char * const *v4l2_ctrl_get_menu(u32 id)return camera_power_line_frequency;case V4L2_CID_EXPOSURE_AUTO :return camera_exposure_auto; +case V4L2_CID_FOCUS_AUTO : +return camera_focus_auto;case V4L2_CID_COLORFX :return colorfx;case V4L2_CID_TUNE_PREEMPHASIS :
@@ -416,7 +425,6 @@ void v4l2_ctrl_fill(u32 id, const char **name, enum v4l2_ctrl_type *type,case V4L2_CID_MPEG_VIDEO_GOP_CLOSURE :case V4L2_CID_MPEG_VIDEO_PULLDOWN :case V4L2_CID_EXPOSURE_AUTO_PRIORITY : -case V4L2_CID_FOCUS_AUTO :case V4L2_CID_PRIVACY :case V4L2_CID_AUDIO_LIMITER_ENABLED :case V4L2_CID_AUDIO_COMPRESSION_ENABLED :
@@ -450,6 +458,7 @@ void v4l2_ctrl_fill(u32 id, const char **name, enum v4l2_ctrl_type *type,case V4L2_CID_MPEG_STREAM_TYPE :case V4L2_CID_MPEG_STREAM_VBI_FMT :case V4L2_CID_EXPOSURE_AUTO : +case V4L2_CID_FOCUS_AUTO :case V4L2_CID_COLORFX :case V4L2_CID_TUNE_PREEMPHASIS : *type =V4L2_CTRL_TYPE_MENU ;
include/linux/videodev2.h +6 -0
@@ -1374,6 +1374,12 @@ enum v4l2_exposure_auto_type {#define V4L2_CID_FOCUS_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+10)#define V4L2_CID_FOCUS_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+11)#define V4L2_CID_FOCUS_AUTO (V4L2_CID_CAMERA_CLASS_BASE+12) +enum v4l2_focus_auto_type { +V4L2_FOCUS_MANUAL =0 , +V4L2_FOCUS_AUTO =1 , +V4L2_FOCUS_MACRO =2 , +V4L2_FOCUS_CONTINUOUS =3 +};#define V4L2_CID_ZOOM_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+13)#define V4L2_CID_ZOOM_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+14)
Signature · 1 line
1.7.0.4