diff options
author | Sylwester Nawrocki <s.nawrocki@samsung.com> | 2012-05-06 14:30:44 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2012-05-14 13:03:21 -0400 |
commit | 515f32879a05bdb69f9b3f86f53db4c04b95e845 (patch) | |
tree | 9a090c658d1dc1c96286cb9359cbfd13b42f5db3 /drivers | |
parent | 6491d1adfbf0e2ffbdfcda8cef60edc01b6700b3 (diff) |
[media] V4L: Add helper function for standard integer menu controls
This patch adds v4l2_ctrl_new_int_menu() helper function which can be used
in drivers for creating standard integer menu control with driver-specific
menu item list. It is similar to v4l2_ctrl_new_std_menu(), except it doesn't
have a mask parameter and an additional qmenu parameter allows passing
an array of signed 64-bit integers as the menu item list.
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Sakari Ailus <sakari.ailus@iki.fi>
Tested-by: Sakari Ailus <sakari.ailus@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/media/video/v4l2-ctrls.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/media/video/v4l2-ctrls.c b/drivers/media/video/v4l2-ctrls.c index 9bd8a92419e1..fdcb9e21d9d3 100644 --- a/drivers/media/video/v4l2-ctrls.c +++ b/drivers/media/video/v4l2-ctrls.c | |||
@@ -1544,6 +1544,27 @@ struct v4l2_ctrl *v4l2_ctrl_new_std_menu(struct v4l2_ctrl_handler *hdl, | |||
1544 | } | 1544 | } |
1545 | EXPORT_SYMBOL(v4l2_ctrl_new_std_menu); | 1545 | EXPORT_SYMBOL(v4l2_ctrl_new_std_menu); |
1546 | 1546 | ||
1547 | /* Helper function for standard integer menu controls */ | ||
1548 | struct v4l2_ctrl *v4l2_ctrl_new_int_menu(struct v4l2_ctrl_handler *hdl, | ||
1549 | const struct v4l2_ctrl_ops *ops, | ||
1550 | u32 id, s32 max, s32 def, const s64 *qmenu_int) | ||
1551 | { | ||
1552 | const char *name; | ||
1553 | enum v4l2_ctrl_type type; | ||
1554 | s32 min; | ||
1555 | s32 step; | ||
1556 | u32 flags; | ||
1557 | |||
1558 | v4l2_ctrl_fill(id, &name, &type, &min, &max, &step, &def, &flags); | ||
1559 | if (type != V4L2_CTRL_TYPE_INTEGER_MENU) { | ||
1560 | handler_set_err(hdl, -EINVAL); | ||
1561 | return NULL; | ||
1562 | } | ||
1563 | return v4l2_ctrl_new(hdl, ops, id, name, type, | ||
1564 | 0, max, 0, def, flags, NULL, qmenu_int, NULL); | ||
1565 | } | ||
1566 | EXPORT_SYMBOL(v4l2_ctrl_new_int_menu); | ||
1567 | |||
1547 | /* Add a control from another handler to this handler */ | 1568 | /* Add a control from another handler to this handler */ |
1548 | struct v4l2_ctrl *v4l2_ctrl_add_ctrl(struct v4l2_ctrl_handler *hdl, | 1569 | struct v4l2_ctrl *v4l2_ctrl_add_ctrl(struct v4l2_ctrl_handler *hdl, |
1549 | struct v4l2_ctrl *ctrl) | 1570 | struct v4l2_ctrl *ctrl) |