Lines Matching full:control

37 /** struct v4l2_ctrl_ops - The control operations that the driver has to provide.
38 * @g_volatile_ctrl: Get a new value for this control. Generally only relevant
39 * for volatile (and usually read-only) controls such as a control
43 * @try_ctrl: Test whether the control's value is valid. Only relevant when
45 * @s_ctrl: Actually set the new control value. s_ctrl is compulsory. The
55 /** struct v4l2_ctrl - The control structure.
57 * @ev_subs: The list of control event subscriptions.
58 * @handler: The handler that owns the control.
61 * @done: Internal flag: set for each processed control.
62 * @is_new: Set when the user specified a new value for this control. It
65 * @is_private: If set, then this control is private to its handler and it
68 * @is_auto: If set, then this control selects whether the other cluster
75 * of the auto control that determines if that control is in
76 * manual mode. So if the value of the auto control equals this
79 * @ops: The control ops.
80 * @id: The control ID.
81 * @name: The control name.
82 * @type: The control type.
83 * @minimum: The control's minimum value.
84 * @maximum: The control's maximum value.
85 * @default_value: The control's default value.
86 * @step: The control's step value for non-menu controls.
87 * @menu_skip_mask: The control's skip mask for menu controls. This makes it
97 * @flags: The control's flags.
98 * @cur: The control's current value.
99 * @val: The control's new s32 value.
100 * @val64: The control's new s64 value.
101 * @string: The control's new string value.
102 * @priv: The control's private pointer. For use by the driver. It is
103 * untouched by the control framework. Note that this pointer is
104 * not freed when the control is deleted. Should this be needed
147 /** struct v4l2_ctrl_ref - The control reference.
150 * @ctrl: The actual control information.
153 * Each control handler has a list of these refs. The list_head is used to
154 * keep a sorted-by-control-ID list of all controls, while the next pointer
155 * is used to link the control in the hash's bucket.
164 /** struct v4l2_ctrl_handler - The control handler keeps track of all the
167 * @lock: Lock to control access to this handler and its controls.
169 * @ctrl_refs: The list of control references.
170 * @cached: The last found control reference. It is common that the same
171 * control is needed multiple times, so this is a simple
173 * @buckets: Buckets for the hashing. Allows for quick control lookup.
175 * @error: The error code of the first failed control addition.
187 /** struct v4l2_ctrl_config - Control configuration structure.
188 * @ops: The control ops.
189 * @id: The control ID.
190 * @name: The control name.
191 * @type: The control type.
192 * @min: The control's minimum value.
193 * @max: The control's maximum value.
194 * @step: The control's step value for non-menu controls.
195 * @def: The control's default value.
196 * @flags: The control's flags.
197 * @menu_skip_mask: The control's skip mask for menu controls. This makes it
207 * @is_private: If set, then this control is private to its handler and it
225 /** v4l2_ctrl_fill() - Fill in the control fields based on the control ID.
236 * control handling only. Once all drivers are converted to use the new
237 * control framework this function will no longer be exported.
243 /** v4l2_ctrl_handler_init() - Initialize the control handler.
244 * @hdl: The control handler.
249 * are allocated) or the control lookup becomes slower (not enough
260 * the control list.
261 * @hdl: The control handler.
268 * to the handler to initialize the hardware to the current control values.
269 * @hdl: The control handler.
278 * @hdl: The control handler.
279 * @prefix: The prefix to use when logging the control values. If the
292 * control.
293 * @hdl: The control handler.
294 * @cfg: The control's configuration data.
295 * @priv: The control's driver-specific private data.
303 /** v4l2_ctrl_new_std() - Allocate and initialize a new standard V4L2 non-menu control.
304 * @hdl: The control handler.
305 * @ops: The control ops.
306 * @id: The control ID.
307 * @min: The control's minimum value.
308 * @max: The control's maximum value.
309 * @step: The control's step value
310 * @def: The control's default value.
312 * If the &v4l2_ctrl struct could not be allocated, or the control
316 * If @id refers to a menu control, then this function will return NULL.
324 /** v4l2_ctrl_new_std_menu() - Allocate and initialize a new standard V4L2 menu control.
325 * @hdl: The control handler.
326 * @ops: The control ops.
327 * @id: The control ID.
328 * @max: The control's maximum value.
329 * @mask: The control's skip mask for menu controls. This makes it
335 * @def: The control's default value.
340 * If @id refers to a non-menu control, then this function will return NULL.
346 /** v4l2_ctrl_add_ctrl() - Add a control from another handler to this handler.
347 * @hdl: The control handler.
348 * @ctrl: The control to add.
350 * It will return NULL if it was unable to add the control reference.
351 * If the control already belonged to the handler, then it will do
359 * @hdl: The control handler.
360 * @add: The control handler whose controls you want to add to
361 * the @hdl control handler.
373 * @controls: The cluster control array of size @ncontrols.
381 * @controls: The cluster control array of size @ncontrols. The first control
382 * must be the 'auto' control (e.g. autogain, autoexposure, etc.)
383 * @manual_val: The value for the first control in the cluster that equals the
385 * @set_volatile: If true, then all controls except the first auto control will
388 * Use for control groups where one control selects some automatic feature and
395 * When the autofoo control is set to automatic, then any manual controls
396 * are set to inactive and any reads will call g_volatile_ctrl (if the control
399 * When the autofoo control is set to manual, then any manual controls will
404 * on the autofoo control and V4L2_CTRL_FLAG_INACTIVE on the foo control(s)
411 /** v4l2_ctrl_find() - Find a control with the given ID.
412 * @hdl: The control handler.
413 * @id: The control ID to find.
420 /** v4l2_ctrl_activate() - Make the control active or inactive.
421 * @ctrl: The control to (de)activate.
422 * @active: True if the control should become active.
429 * This function assumes that the control handler is locked.
433 /** v4l2_ctrl_grab() - Mark the control as grabbed or not grabbed.
434 * @ctrl: The control to (de)activate.
435 * @grabbed: True if the control should become grabbed.
443 * This function assumes that the control handler is not locked and will
449 * associated with the control.
450 * @ctrl: The control to lock.
458 * associated with the control.
459 * @ctrl: The control to unlock.
466 /** v4l2_ctrl_g_ctrl() - Helper function to get the control's value from within a driver.
467 * @ctrl: The control.
469 * This returns the control's value safely by going through the control
470 * framework. This function will lock the control's handler, so it cannot be
477 /** v4l2_ctrl_s_ctrl() - Helper function to set the control's value from within a driver.
478 * @ctrl: The control.
481 * This set the control's new value safely by going through the control
482 * framework. This function will lock the control's handler, so it cannot be
489 /* Internal helper functions that deal with control events. */