v4l2_ctrl_auto_cluster(9) Mark all controls in the cluster as belonging to that cluster and set it up for autofoo/foo-type handling.

SYNOPSIS

void v4l2_ctrl_auto_cluster(unsigned ncontrols, struct v4l2_ctrl ** controls, u8 manual_val, bool set_volatile);

ARGUMENTS

ncontrols

The number of controls in this cluster.

controls

The cluster control array of size ncontrols. The first control must be the 'auto' control (e.g. autogain, autoexposure, etc.)

manual_val

The value for the first control in the cluster that equals the manual setting.

set_volatile

If true, then all controls except the first auto control will be volatile.

DESCRIPTION

Use for control groups where one control selects some automatic feature and the other controls are only active whenever the automatic feature is turned off (manual mode). Typical examples: autogain vs gain, auto-whitebalance vs red and blue balance, etc.

THE BEHAVIOR OF SUCH CONTROLS IS AS FOLLOWS

When the autofoo control is set to automatic, then any manual controls are set to inactive and any reads will call g_volatile_ctrl (if the control was marked volatile).

When the autofoo control is set to manual, then any manual controls will be marked active, and any reads will just return the current value without going through g_volatile_ctrl.

In addition, this function will set the V4L2_CTRL_FLAG_UPDATE flag on the autofoo control and V4L2_CTRL_FLAG_INACTIVE on the foo control(s) if autofoo is in auto mode.

COPYRIGHT