On 23/06/17 15:56, Soren Brinkmann wrote:
> Print the numerical ID for each control in list commands.
> 
> Signed-off-by: Soren Brinkmann <[email protected]>
> ---
> I was trying to set controls from a userspace application and was hence 
> looking
> for an easy way to find the control IDs to use with VIDIOC_(G|S)_EXT_CTRLS. 
> The
> -l/-L options of v4l2-ctl already provide most information needed, hence I
> thought I'd add the numerical ID too.

Good idea. I applied the patch but with two small changes:

1) I replaced qmenu.id by queryctrl->id to be more consistent.
2) I replaced the '/' separator by a space. It made the output a bit more 
readable IMHO.

Regards,

        Hans

> 
>       Sören
> 
>  utils/v4l2-ctl/v4l2-ctl-common.cpp | 45 
> +++++++++++++++++++-------------------
>  1 file changed, 23 insertions(+), 22 deletions(-)
> 
> diff --git a/utils/v4l2-ctl/v4l2-ctl-common.cpp 
> b/utils/v4l2-ctl/v4l2-ctl-common.cpp
> index 6d9371eacbb7..149053bbbd4a 100644
> --- a/utils/v4l2-ctl/v4l2-ctl-common.cpp
> +++ b/utils/v4l2-ctl/v4l2-ctl-common.cpp
> @@ -313,67 +313,68 @@ static void print_qctrl(int fd, struct 
> v4l2_query_ext_ctrl *queryctrl,
>       qmenu.id = queryctrl->id;
>       switch (queryctrl->type) {
>       case V4L2_CTRL_TYPE_INTEGER:
> -             printf("%31s (int)    : min=%lld max=%lld step=%lld 
> default=%lld",
> -                             s.c_str(),
> +             printf("%31s/%#8.8x (int)    : min=%lld max=%lld step=%lld 
> default=%lld",
> +                             s.c_str(), qmenu.id,
>                               queryctrl->minimum, queryctrl->maximum,
>                               queryctrl->step, queryctrl->default_value);
>               break;
>       case V4L2_CTRL_TYPE_INTEGER64:
> -             printf("%31s (int64)  : min=%lld max=%lld step=%lld 
> default=%lld",
> -                             s.c_str(),
> +             printf("%31s/%#8.8x (int64)  : min=%lld max=%lld step=%lld 
> default=%lld",
> +                             s.c_str(), qmenu.id,
>                               queryctrl->minimum, queryctrl->maximum,
>                               queryctrl->step, queryctrl->default_value);
>               break;
>       case V4L2_CTRL_TYPE_STRING:
> -             printf("%31s (str)    : min=%lld max=%lld step=%lld",
> -                             s.c_str(),
> +             printf("%31s/%#8.8x (str)    : min=%lld max=%lld step=%lld",
> +                             s.c_str(), qmenu.id,
>                               queryctrl->minimum, queryctrl->maximum,
>                               queryctrl->step);
>               break;
>       case V4L2_CTRL_TYPE_BOOLEAN:
> -             printf("%31s (bool)   : default=%lld",
> -                             s.c_str(), queryctrl->default_value);
> +             printf("%31s/%#8.8x (bool)   : default=%lld",
> +                             s.c_str(), qmenu.id, queryctrl->default_value);
>               break;
>       case V4L2_CTRL_TYPE_MENU:
> -             printf("%31s (menu)   : min=%lld max=%lld default=%lld",
> -                             s.c_str(),
> +             printf("%31s/%#8.8x (menu)   : min=%lld max=%lld default=%lld",
> +                             s.c_str(), qmenu.id,
>                               queryctrl->minimum, queryctrl->maximum,
>                               queryctrl->default_value);
>               break;
>       case V4L2_CTRL_TYPE_INTEGER_MENU:
> -             printf("%31s (intmenu): min=%lld max=%lld default=%lld",
> -                             s.c_str(),
> +             printf("%31s/%#8.8x (intmenu): min=%lld max=%lld default=%lld",
> +                             s.c_str(), qmenu.id,
>                               queryctrl->minimum, queryctrl->maximum,
>                               queryctrl->default_value);
>               break;
>       case V4L2_CTRL_TYPE_BUTTON:
> -             printf("%31s (button) :", s.c_str());
> +             printf("%31s/%#8.8x (button) :", s.c_str(), qmenu.id);
>               break;
>       case V4L2_CTRL_TYPE_BITMASK:
> -             printf("%31s (bitmask): max=0x%08llx default=0x%08llx",
> -                             s.c_str(), queryctrl->maximum,
> +             printf("%31s/%#8.8x (bitmask): max=0x%08llx default=0x%08llx",
> +                             s.c_str(), qmenu.id, queryctrl->maximum,
>                               queryctrl->default_value);
>               break;
>       case V4L2_CTRL_TYPE_U8:
> -             printf("%31s (u8)     : min=%lld max=%lld step=%lld 
> default=%lld",
> -                             s.c_str(),
> +             printf("%31s/%#8.8x (u8)     : min=%lld max=%lld step=%lld 
> default=%lld",
> +                             s.c_str(), qmenu.id,
>                               queryctrl->minimum, queryctrl->maximum,
>                               queryctrl->step, queryctrl->default_value);
>               break;
>       case V4L2_CTRL_TYPE_U16:
> -             printf("%31s (u16)    : min=%lld max=%lld step=%lld 
> default=%lld",
> -                             s.c_str(),
> +             printf("%31s/%#8.8x (u16)    : min=%lld max=%lld step=%lld 
> default=%lld",
> +                             s.c_str(), qmenu.id,
>                               queryctrl->minimum, queryctrl->maximum,
>                               queryctrl->step, queryctrl->default_value);
>               break;
>       case V4L2_CTRL_TYPE_U32:
> -             printf("%31s (u32)    : min=%lld max=%lld step=%lld 
> default=%lld",
> -                             s.c_str(),
> +             printf("%31s/%#8.8x (u32)    : min=%lld max=%lld step=%lld 
> default=%lld",
> +                             s.c_str(), qmenu.id,
>                               queryctrl->minimum, queryctrl->maximum,
>                               queryctrl->step, queryctrl->default_value);
>               break;
>       default:
> -             printf("%31s (unknown): type=%x", s.c_str(), queryctrl->type);
> +             printf("%31s/%#8.8x (unknown): type=%x",
> +                             s.c_str(), qmenu.id, queryctrl->type);
>               break;
>       }
>       if (queryctrl->nr_of_dims == 0) {
> 

Reply via email to