[media] vivi: Add an integer menu test control
Add an integer menu test control for the vivi driver. Signed-off-by: Sakari Ailus <sakari.ailus@iki.fi> Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
Родитель
6ec299f3dc
Коммит
c520331a52
|
@ -177,6 +177,7 @@ struct vivi_dev {
|
|||
struct v4l2_ctrl *menu;
|
||||
struct v4l2_ctrl *string;
|
||||
struct v4l2_ctrl *bitmask;
|
||||
struct v4l2_ctrl *int_menu;
|
||||
|
||||
spinlock_t slock;
|
||||
struct mutex mutex;
|
||||
|
@ -503,6 +504,10 @@ static void vivi_fillbuff(struct vivi_dev *dev, struct vivi_buffer *buf)
|
|||
dev->boolean->cur.val,
|
||||
dev->menu->qmenu[dev->menu->cur.val],
|
||||
dev->string->cur.string);
|
||||
snprintf(str, sizeof(str), " integer_menu %lld, value %d ",
|
||||
dev->int_menu->qmenu_int[dev->int_menu->cur.val],
|
||||
dev->int_menu->cur.val);
|
||||
gen_text(dev, vbuf, line++ * 16, 16, str);
|
||||
mutex_unlock(&dev->ctrl_handler.lock);
|
||||
gen_text(dev, vbuf, line++ * 16, 16, str);
|
||||
if (dev->button_pressed) {
|
||||
|
@ -1158,6 +1163,22 @@ static const struct v4l2_ctrl_config vivi_ctrl_bitmask = {
|
|||
.step = 0,
|
||||
};
|
||||
|
||||
static const s64 vivi_ctrl_int_menu_values[] = {
|
||||
1, 1, 2, 3, 5, 8, 13, 21, 42,
|
||||
};
|
||||
|
||||
static const struct v4l2_ctrl_config vivi_ctrl_int_menu = {
|
||||
.ops = &vivi_ctrl_ops,
|
||||
.id = VIVI_CID_CUSTOM_BASE + 7,
|
||||
.name = "Integer menu",
|
||||
.type = V4L2_CTRL_TYPE_INTEGER_MENU,
|
||||
.min = 1,
|
||||
.max = 8,
|
||||
.def = 4,
|
||||
.menu_skip_mask = 0x02,
|
||||
.qmenu_int = vivi_ctrl_int_menu_values,
|
||||
};
|
||||
|
||||
static const struct v4l2_file_operations vivi_fops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = v4l2_fh_open,
|
||||
|
@ -1268,6 +1289,7 @@ static int __init vivi_create_instance(int inst)
|
|||
dev->menu = v4l2_ctrl_new_custom(hdl, &vivi_ctrl_menu, NULL);
|
||||
dev->string = v4l2_ctrl_new_custom(hdl, &vivi_ctrl_string, NULL);
|
||||
dev->bitmask = v4l2_ctrl_new_custom(hdl, &vivi_ctrl_bitmask, NULL);
|
||||
dev->int_menu = v4l2_ctrl_new_custom(hdl, &vivi_ctrl_int_menu, NULL);
|
||||
if (hdl->error) {
|
||||
ret = hdl->error;
|
||||
goto unreg_dev;
|
||||
|
|
Загрузка…
Ссылка в новой задаче