Skip to content

Commit

Permalink
V4L/DVB (3280): Added VIDIOC_QUERYCTRL to saa7115
Browse files Browse the repository at this point in the history
- Added VIDIOC_QUERYCTRL to saa7115

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
  • Loading branch information
Hans Verkuil authored and Mauro Carvalho Chehab committed Jan 9, 2006
1 parent d92c20e commit da4ae5a
Showing 1 changed file with 55 additions and 0 deletions.
55 changes: 55 additions & 0 deletions drivers/media/video/saa7115.c
Original file line number Diff line number Diff line change
Expand Up @@ -1012,6 +1012,48 @@ static void saa7115_decode_vbi_line(struct i2c_client *client,

/* ============ SAA7115 AUDIO settings (end) ============= */

static struct v4l2_queryctrl saa7115_qctrl[] = {
{
.id = V4L2_CID_BRIGHTNESS,
.type = V4L2_CTRL_TYPE_INTEGER,
.name = "Brightness",
.minimum = 0,
.maximum = 255,
.step = 1,
.default_value = 128,
.flags = 0,
}, {
.id = V4L2_CID_CONTRAST,
.type = V4L2_CTRL_TYPE_INTEGER,
.name = "Contrast",
.minimum = 0,
.maximum = 255,
.step = 1,
.default_value = 64,
.flags = 0,
}, {
.id = V4L2_CID_SATURATION,
.type = V4L2_CTRL_TYPE_INTEGER,
.name = "Saturation",
.minimum = 0,
.maximum = 255,
.step = 1,
.default_value = 64,
.flags = 0,
}, {
.id = V4L2_CID_HUE,
.type = V4L2_CTRL_TYPE_INTEGER,
.name = "Hue",
.minimum = -128,
.maximum = 127,
.step = 1,
.default_value = 0,
.flags = 0,
},
};

/* ----------------------------------------------------------------------- */

static int saa7115_command(struct i2c_client *client, unsigned int cmd, void *arg)
{
struct saa7115_state *state = i2c_get_clientdata(client);
Expand Down Expand Up @@ -1052,6 +1094,19 @@ static int saa7115_command(struct i2c_client *client, unsigned int cmd, void *ar
case VIDIOC_S_CTRL:
return saa7115_set_v4lctrl(client, (struct v4l2_control *)arg);

case VIDIOC_QUERYCTRL:
{
struct v4l2_queryctrl *qc = arg;
int i;

for (i = 0; i < ARRAY_SIZE(saa7115_qctrl); i++)
if (qc->id && qc->id == saa7115_qctrl[i].id) {
memcpy(qc, &saa7115_qctrl[i], sizeof(*qc));
return 0;
}
return -EINVAL;
}

case VIDIOC_G_STD:
*(v4l2_std_id *)arg = saa7115_get_v4lstd(client);
break;
Expand Down

0 comments on commit da4ae5a

Please sign in to comment.