Commit 74980159 authored by Laurent Pinchart's avatar Laurent Pinchart Committed by Mauro Carvalho Chehab

V4L/DVB (9899): v4l2: Add missing control names

Update v4l2_ctrl_get_name() and v4l2_ctrl_get_menu() with missing
control names and menu values.
Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart@skynet.be>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 046425f8
...@@ -321,6 +321,19 @@ const char **v4l2_ctrl_get_menu(u32 id) ...@@ -321,6 +321,19 @@ const char **v4l2_ctrl_get_menu(u32 id)
"Private packet, IVTV format", "Private packet, IVTV format",
NULL NULL
}; };
static const char *camera_power_line_frequency[] = {
"Disabled",
"50 Hz",
"60 Hz",
NULL
};
static const char *camera_exposure_auto[] = {
"Auto Mode",
"Manual Mode",
"Shutter Priority Mode",
"Aperture Priority Mode",
NULL
};
switch (id) { switch (id) {
case V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ: case V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ:
...@@ -353,6 +366,10 @@ const char **v4l2_ctrl_get_menu(u32 id) ...@@ -353,6 +366,10 @@ const char **v4l2_ctrl_get_menu(u32 id)
return mpeg_stream_type; return mpeg_stream_type;
case V4L2_CID_MPEG_STREAM_VBI_FMT: case V4L2_CID_MPEG_STREAM_VBI_FMT:
return mpeg_stream_vbi_fmt; return mpeg_stream_vbi_fmt;
case V4L2_CID_POWER_LINE_FREQUENCY:
return camera_power_line_frequency;
case V4L2_CID_EXPOSURE_AUTO:
return camera_exposure_auto;
default: default:
return NULL; return NULL;
} }
...@@ -364,17 +381,37 @@ const char *v4l2_ctrl_get_name(u32 id) ...@@ -364,17 +381,37 @@ const char *v4l2_ctrl_get_name(u32 id)
{ {
switch (id) { switch (id) {
/* USER controls */ /* USER controls */
case V4L2_CID_USER_CLASS: return "User Controls"; case V4L2_CID_USER_CLASS: return "User Controls";
case V4L2_CID_AUDIO_VOLUME: return "Volume"; case V4L2_CID_AUDIO_VOLUME: return "Volume";
case V4L2_CID_AUDIO_MUTE: return "Mute"; case V4L2_CID_AUDIO_MUTE: return "Mute";
case V4L2_CID_AUDIO_BALANCE: return "Balance"; case V4L2_CID_AUDIO_BALANCE: return "Balance";
case V4L2_CID_AUDIO_BASS: return "Bass"; case V4L2_CID_AUDIO_BASS: return "Bass";
case V4L2_CID_AUDIO_TREBLE: return "Treble"; case V4L2_CID_AUDIO_TREBLE: return "Treble";
case V4L2_CID_AUDIO_LOUDNESS: return "Loudness"; case V4L2_CID_AUDIO_LOUDNESS: return "Loudness";
case V4L2_CID_BRIGHTNESS: return "Brightness"; case V4L2_CID_BRIGHTNESS: return "Brightness";
case V4L2_CID_CONTRAST: return "Contrast"; case V4L2_CID_CONTRAST: return "Contrast";
case V4L2_CID_SATURATION: return "Saturation"; case V4L2_CID_SATURATION: return "Saturation";
case V4L2_CID_HUE: return "Hue"; case V4L2_CID_HUE: return "Hue";
case V4L2_CID_BLACK_LEVEL: return "Black Level";
case V4L2_CID_AUTO_WHITE_BALANCE: return "White Balance, Automatic";
case V4L2_CID_DO_WHITE_BALANCE: return "Do White Balance";
case V4L2_CID_RED_BALANCE: return "Red Balance";
case V4L2_CID_BLUE_BALANCE: return "Blue Balance";
case V4L2_CID_GAMMA: return "Gamma";
case V4L2_CID_EXPOSURE: return "Exposure";
case V4L2_CID_AUTOGAIN: return "Gain, Automatic";
case V4L2_CID_GAIN: return "Gain";
case V4L2_CID_HFLIP: return "Horizontal Flip";
case V4L2_CID_VFLIP: return "Vertical Flip";
case V4L2_CID_HCENTER: return "Horizontal Center";
case V4L2_CID_VCENTER: return "Vertical Center";
case V4L2_CID_POWER_LINE_FREQUENCY: return "Power Line Frequency";
case V4L2_CID_HUE_AUTO: return "Hue, Automatic";
case V4L2_CID_WHITE_BALANCE_TEMPERATURE: return "White Balance Temperature";
case V4L2_CID_SHARPNESS: return "Sharpness";
case V4L2_CID_BACKLIGHT_COMPENSATION: return "Backlight Compensation";
case V4L2_CID_CHROMA_AGC: return "Chroma AGC";
case V4L2_CID_COLOR_KILLER: return "Color Killer";
/* MPEG controls */ /* MPEG controls */
case V4L2_CID_MPEG_CLASS: return "MPEG Encoder Controls"; case V4L2_CID_MPEG_CLASS: return "MPEG Encoder Controls";
...@@ -411,6 +448,25 @@ const char *v4l2_ctrl_get_name(u32 id) ...@@ -411,6 +448,25 @@ const char *v4l2_ctrl_get_name(u32 id)
case V4L2_CID_MPEG_STREAM_PES_ID_VIDEO: return "Stream PES Video ID"; case V4L2_CID_MPEG_STREAM_PES_ID_VIDEO: return "Stream PES Video ID";
case V4L2_CID_MPEG_STREAM_VBI_FMT: return "Stream VBI Format"; case V4L2_CID_MPEG_STREAM_VBI_FMT: return "Stream VBI Format";
/* CAMERA controls */
case V4L2_CID_CAMERA_CLASS: return "Camera Controls";
case V4L2_CID_EXPOSURE_AUTO: return "Auto Exposure";
case V4L2_CID_EXPOSURE_ABSOLUTE: return "Exposure Time, Absolute";
case V4L2_CID_EXPOSURE_AUTO_PRIORITY: return "Exposure, Dynamic Framerate";
case V4L2_CID_PAN_RELATIVE: return "Pan, Relative";
case V4L2_CID_TILT_RELATIVE: return "Tilt, Relative";
case V4L2_CID_PAN_RESET: return "Pan, Reset";
case V4L2_CID_TILT_RESET: return "Tilt, Reset";
case V4L2_CID_PAN_ABSOLUTE: return "Pan, Absolute";
case V4L2_CID_TILT_ABSOLUTE: return "Tilt, Absolute";
case V4L2_CID_FOCUS_ABSOLUTE: return "Focus, Absolute";
case V4L2_CID_FOCUS_RELATIVE: return "Focus, Relative";
case V4L2_CID_FOCUS_AUTO: return "Focus, Automatic";
case V4L2_CID_ZOOM_ABSOLUTE: return "Zoom, Absolute";
case V4L2_CID_ZOOM_RELATIVE: return "Zoom, Relative";
case V4L2_CID_ZOOM_CONTINUOUS: return "Zoom, Continuous";
case V4L2_CID_PRIVACY: return "Privacy";
default: default:
return NULL; return NULL;
} }
...@@ -429,14 +485,22 @@ int v4l2_ctrl_query_fill(struct v4l2_queryctrl *qctrl, s32 min, s32 max, s32 ste ...@@ -429,14 +485,22 @@ int v4l2_ctrl_query_fill(struct v4l2_queryctrl *qctrl, s32 min, s32 max, s32 ste
switch (qctrl->id) { switch (qctrl->id) {
case V4L2_CID_AUDIO_MUTE: case V4L2_CID_AUDIO_MUTE:
case V4L2_CID_AUDIO_LOUDNESS: case V4L2_CID_AUDIO_LOUDNESS:
case V4L2_CID_AUTO_WHITE_BALANCE:
case V4L2_CID_AUTOGAIN:
case V4L2_CID_HFLIP:
case V4L2_CID_VFLIP:
case V4L2_CID_HUE_AUTO:
case V4L2_CID_MPEG_AUDIO_MUTE: case V4L2_CID_MPEG_AUDIO_MUTE:
case V4L2_CID_MPEG_VIDEO_MUTE: case V4L2_CID_MPEG_VIDEO_MUTE:
case V4L2_CID_MPEG_VIDEO_GOP_CLOSURE: case V4L2_CID_MPEG_VIDEO_GOP_CLOSURE:
case V4L2_CID_MPEG_VIDEO_PULLDOWN: case V4L2_CID_MPEG_VIDEO_PULLDOWN:
case V4L2_CID_EXPOSURE_AUTO_PRIORITY:
case V4L2_CID_PRIVACY:
qctrl->type = V4L2_CTRL_TYPE_BOOLEAN; qctrl->type = V4L2_CTRL_TYPE_BOOLEAN;
min = 0; min = 0;
max = step = 1; max = step = 1;
break; break;
case V4L2_CID_POWER_LINE_FREQUENCY:
case V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ: case V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ:
case V4L2_CID_MPEG_AUDIO_ENCODING: case V4L2_CID_MPEG_AUDIO_ENCODING:
case V4L2_CID_MPEG_AUDIO_L1_BITRATE: case V4L2_CID_MPEG_AUDIO_L1_BITRATE:
...@@ -452,10 +516,12 @@ int v4l2_ctrl_query_fill(struct v4l2_queryctrl *qctrl, s32 min, s32 max, s32 ste ...@@ -452,10 +516,12 @@ int v4l2_ctrl_query_fill(struct v4l2_queryctrl *qctrl, s32 min, s32 max, s32 ste
case V4L2_CID_MPEG_VIDEO_BITRATE_MODE: case V4L2_CID_MPEG_VIDEO_BITRATE_MODE:
case V4L2_CID_MPEG_STREAM_TYPE: case V4L2_CID_MPEG_STREAM_TYPE:
case V4L2_CID_MPEG_STREAM_VBI_FMT: case V4L2_CID_MPEG_STREAM_VBI_FMT:
case V4L2_CID_EXPOSURE_AUTO:
qctrl->type = V4L2_CTRL_TYPE_MENU; qctrl->type = V4L2_CTRL_TYPE_MENU;
step = 1; step = 1;
break; break;
case V4L2_CID_USER_CLASS: case V4L2_CID_USER_CLASS:
case V4L2_CID_CAMERA_CLASS:
case V4L2_CID_MPEG_CLASS: case V4L2_CID_MPEG_CLASS:
qctrl->type = V4L2_CTRL_TYPE_CTRL_CLASS; qctrl->type = V4L2_CTRL_TYPE_CTRL_CLASS;
qctrl->flags |= V4L2_CTRL_FLAG_READ_ONLY; qctrl->flags |= V4L2_CTRL_FLAG_READ_ONLY;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment