Lines Matching full:control

17  * Include the stateless codec compound control definitions.
37 * union v4l2_ctrl_ptr - A pointer to a control value.
75 * struct v4l2_ctrl_ops - The control operations that the driver has to provide.
77 * @g_volatile_ctrl: Get a new value for this control. Generally only relevant
78 * for volatile (and usually read-only) controls such as a control
82 * @try_ctrl: Test whether the control's value is valid. Only relevant when
84 * @s_ctrl: Actually set the new control value. s_ctrl is compulsory. The
95 * struct v4l2_ctrl_type_ops - The control type operations that the driver
117 * that should be called when a control value has changed.
120 * @priv: control private data
128 * struct v4l2_ctrl - The control structure.
131 * @ev_subs: The list of control event subscriptions.
132 * @handler: The handler that owns the control.
135 * @done: Internal flag: set for each processed control.
136 * @is_new: Set when the user specified a new value for this control. It
141 * @is_private: If set, then this control is private to its handler and it
144 * @is_auto: If set, then this control selects whether the other cluster
148 * @is_int: If set, then this control has a simple integer value (i.e. it
150 * @is_string: If set, then this control has type %V4L2_CTRL_TYPE_STRING.
151 * @is_ptr: If set, then this control is an array and/or has type >=
155 * @is_array: If set, then this control contains an N-dimensional array.
159 * control's value changes.
161 * of the auto control that determines if that control is in
162 * manual mode. So if the value of the auto control equals this
165 * @ops: The control ops.
166 * @type_ops: The control type ops.
167 * @id: The control ID.
168 * @name: The control name.
169 * @type: The control type.
170 * @minimum: The control's minimum value.
171 * @maximum: The control's maximum value.
172 * @default_value: The control's default value.
173 * @step: The control's step value for non-menu controls.
175 * @elem_size: The size in bytes of the control.
178 * @menu_skip_mask: The control's skip mask for menu controls. This makes it
193 * @flags: The control's flags.
195 * @cur.val: The control's current value, if the @type is represented via
197 * @val: The control's new s32 value.
198 * @priv: The control's private pointer. For use by the driver. It is
199 * untouched by the control framework. Note that this pointer is
200 * not freed when the control is deleted. Should this be needed
203 * @p_cur: The control's current value represented via a union which
204 * provides a standard way of accessing control types
206 * @p_new: The control's new value represented via a union which provides
207 * a standard way of accessing control types
262 * struct v4l2_ctrl_ref - The control reference.
266 * @ctrl: The actual control information.
271 * @req_done: Internal flag: if the control handler containing this control
273 * the control has been applied. This prevents applying controls
275 * control of a cluster is applied, they all are).
276 * @req: If set, this refers to another request that sets this control.
277 * @p_req: If the control handler containing this control reference
279 * value of the control that should be applied when the request
280 * is executed, or to the value of the control at the time
283 * Each control handler has a list of these refs. The list_head is used to
284 * keep a sorted-by-control-ID list of all controls, while the next pointer
285 * is used to link the control in the hash's bucket.
299 * struct v4l2_ctrl_handler - The control handler keeps track of all the
304 * @lock: Lock to control access to this handler and its controls.
307 * @ctrl_refs: The list of control references.
308 * @cached: The last found control reference. It is common that the same
309 * control is needed multiple times, so this is a simple
311 * @buckets: Buckets for the hashing. Allows for quick control lookup.
312 * @notify: A notify callback that is called whenever the control changes
318 * @error: The error code of the first failed control addition.
320 * @requests: List to keep track of open control handler request objects.
321 * For the parent control handler (@req_obj.req == NULL) this
322 * is the list header. When the parent control handler is
349 * struct v4l2_ctrl_config - Control configuration structure.
351 * @ops: The control ops.
352 * @type_ops: The control type ops. Only needed for compound controls.
353 * @id: The control ID.
354 * @name: The control name.
355 * @type: The control type.
356 * @min: The control's minimum value.
357 * @max: The control's maximum value.
358 * @step: The control's step value for non-menu controls.
359 * @def: The control's default value.
361 * @elem_size: The size in bytes of the control.
362 * @flags: The control's flags.
363 * @menu_skip_mask: The control's skip mask for menu controls. This makes it
375 * @is_private: If set, then this control is private to its handler and it
398 * v4l2_ctrl_fill - Fill in the control fields based on the control ID.
400 * @id: ID of the control
401 * @name: pointer to be filled with a string with the name of the control
402 * @type: pointer for storing the type of the control
403 * @min: pointer for storing the minimum value for the control
404 * @max: pointer for storing the maximum value for the control
405 * @step: pointer for storing the control step
406 * @def: pointer for storing the default value for the control
407 * @flags: pointer for storing the flags to be used on the control
420 * control handling only. Once all drivers are converted to use the new
421 * control framework this function will no longer be exported.
428 * v4l2_ctrl_handler_init_class() - Initialize the control handler.
429 * @hdl: The control handler.
434 * are allocated) or the control lookup becomes slower (not enough
458 * @hdl: The control handler.
463 * are allocated) or the control lookup becomes slower (not enough
471 * Use this helper function to initialize a control handler.
491 * the control list.
492 * @hdl: The control handler.
500 * associated with the control.
501 * @ctrl: The control to lock.
510 * associated with the control.
511 * @ctrl: The control to unlock.
520 * to the handler to initialize the hardware to the current control values. The
521 * caller is responsible for acquiring the control handler mutex on behalf of
523 * @hdl: The control handler.
533 * to the handler to initialize the hardware to the current control values.
534 * @hdl: The control handler.
544 * @hdl: The control handler.
545 * @prefix: The prefix to use when logging the control values. If the
559 * control.
561 * @hdl: The control handler.
562 * @cfg: The control's configuration data.
563 * @priv: The control's driver-specific private data.
574 * control.
576 * @hdl: The control handler.
577 * @ops: The control ops.
578 * @id: The control ID.
579 * @min: The control's minimum value.
580 * @max: The control's maximum value.
581 * @step: The control's step value
582 * @def: The control's default value.
584 * If the &v4l2_ctrl struct could not be allocated, or the control
588 * If @id refers to a menu control, then this function will return NULL.
599 * menu control.
601 * @hdl: The control handler.
602 * @ops: The control ops.
603 * @id: The control ID.
604 * @max: The control's maximum value.
605 * @mask: The control's skip mask for menu controls. This makes it
611 * @def: The control's default value.
616 * If @id refers to a non-menu control, then this function will return NULL.
623 * v4l2_ctrl_new_std_menu_items() - Create a new standard V4L2 menu control
626 * @hdl: The control handler.
627 * @ops: The control ops.
628 * @id: The control ID.
629 * @max: The control's maximum value.
630 * @mask: The control's skip mask for menu controls. This makes it
636 * @def: The control's default value.
640 * menu of this control.
650 * v4l2_ctrl_new_int_menu() - Create a new standard V4L2 integer menu control.
652 * @hdl: The control handler.
653 * @ops: The control ops.
654 * @id: The control ID.
655 * @max: The control's maximum value.
656 * @def: The control's default value.
657 * @qmenu_int: The control's menu entries.
662 * If @id refers to a non-integer-menu control, then this function will
672 * used when adding a control handler.
683 * @hdl: The control handler.
684 * @add: The control handler whose controls you want to add to
685 * the @hdl control handler.
704 * @ctrl: The control that is filtered.
719 * @controls: The cluster control array of size @ncontrols.
729 * @controls: The cluster control array of size @ncontrols. The first control
730 * must be the 'auto' control (e.g. autogain, autoexposure, etc.)
731 * @manual_val: The value for the first control in the cluster that equals the
733 * @set_volatile: If true, then all controls except the first auto control will
736 * Use for control groups where one control selects some automatic feature and
743 * When the autofoo control is set to automatic, then any manual controls
744 * are set to inactive and any reads will call g_volatile_ctrl (if the control
747 * When the autofoo control is set to manual, then any manual controls will
752 * on the autofoo control and %V4L2_CTRL_FLAG_INACTIVE on the foo control(s)
761 * v4l2_ctrl_find() - Find a control with the given ID.
763 * @hdl: The control handler.
764 * @id: The control ID to find.
772 * v4l2_ctrl_activate() - Make the control active or inactive.
773 * @ctrl: The control to (de)activate.
774 * @active: True if the control should become active.
781 * This function assumes that the control handler is locked.
788 * @ctrl: The control to (de)activate.
789 * @grabbed: True if the control should become grabbed.
797 * This function assumes that the control handler is locked by the caller.
802 * v4l2_ctrl_grab() - Mark the control as grabbed or not grabbed.
804 * @ctrl: The control to (de)activate.
805 * @grabbed: True if the control should become grabbed.
813 * This function assumes that the control handler is not locked and will
829 * @ctrl: The control to update.
830 * @min: The control's minimum value.
831 * @max: The control's maximum value.
832 * @step: The control's step value
833 * @def: The control's default value.
835 * Update the range of a control on the fly. This works for control types
840 * control type.
842 * The caller is responsible for acquiring the control handler mutex on behalf
849 * v4l2_ctrl_modify_range() - Update the range of a control.
851 * @ctrl: The control to update.
852 * @min: The control's minimum value.
853 * @max: The control's maximum value.
854 * @step: The control's step value
855 * @def: The control's default value.
857 * Update the range of a control on the fly. This works for control types
862 * control type.
864 * This function assumes that the control handler is not locked and will
880 * v4l2_ctrl_notify() - Function to set a notify callback for a control.
882 * @ctrl: The control.
886 * This function sets a callback function for the control. If @ctrl is NULL,
897 * v4l2_ctrl_get_name() - Get the name of the control
899 * @id: The control ID.
901 * This function returns the name of the given control ID or NULL if it isn't
902 * a known control.
907 * v4l2_ctrl_get_menu() - Get the menu string array of the control
909 * @id: The control ID.
912 * given control ID or NULL if it isn't a known menu control.
917 * v4l2_ctrl_get_int_menu() - Get the integer menu array of the control
919 * @id: The control ID.
922 * This function returns the integer array of the given control ID or NULL if it
923 * if it isn't a known integer menu control.
928 * v4l2_ctrl_g_ctrl() - Helper function to get the control's value from
931 * @ctrl: The control.
933 * This returns the control's value safely by going through the control
934 * framework. This function will lock the control's handler, so it cannot be
944 * @ctrl: The control.
947 * This sets the control's new value safely by going through the control
948 * framework. This function assumes the control's handler is already locked,
956 * v4l2_ctrl_s_ctrl() - Helper function to set the control's value from
958 * @ctrl: The control.
961 * This sets the control's new value safely by going through the control
962 * framework. This function will lock the control's handler, so it cannot be
979 * v4l2_ctrl_g_ctrl_int64() - Helper function to get a 64-bit control's value
982 * @ctrl: The control.
984 * This returns the control's value safely by going through the control
985 * framework. This function will lock the control's handler, so it cannot be
995 * @ctrl: The control.
998 * This sets the control's new value safely by going through the control
999 * framework. This function assumes the control's handler is already locked,
1007 * v4l2_ctrl_s_ctrl_int64() - Helper function to set a 64-bit control's value
1010 * @ctrl: The control.
1013 * This sets the control's new value safely by going through the control
1014 * framework. This function will lock the control's handler, so it cannot be
1033 * @ctrl: The control.
1036 * This sets the control's new string safely by going through the control
1037 * framework. This function assumes the control's handler is already locked,
1045 * v4l2_ctrl_s_ctrl_string() - Helper function to set a control's string value
1048 * @ctrl: The control.
1051 * This sets the control's new string safely by going through the control
1052 * framework. This function will lock the control's handler, so it cannot be
1068 /* Internal helper functions that deal with control events. */
1113 * control events.
1120 * That just polls for control events.
1128 * v4l2_ctrl_request_setup - helper function to apply control values in a request
1131 * @parent: The parent control handler ('priv' in media_request_object_find())
1133 * This is a helper function to call the control handler's s_ctrl callback with
1134 * the control values contained in the request. Do note that this approach of
1135 * applying control values in a request is only applicable to memory-to-memory
1142 * v4l2_ctrl_request_complete - Complete a control handler request object
1145 * @parent: The parent control handler ('priv' in media_request_object_find())
1147 * This function is to be called on each control handler that may have had a
1148 * request object associated with it, i.e. control handlers of a driver that
1151 * The function first obtains the values of any volatile controls in the control
1159 * v4l2_ctrl_request_hdl_find - Find the control handler in the request
1162 * @parent: The parent control handler ('priv' in media_request_object_find())
1164 * This function finds the control handler in the request. It may return
1180 * v4l2_ctrl_request_hdl_put - Put the control handler
1182 * @hdl: Put this control handler
1184 * This function released the control handler previously obtained from'
1194 * v4l2_ctrl_request_ctrl_find() - Find a control with the given ID.
1196 * @hdl: The control handler from the request.
1197 * @id: The ID of the control to find.
1199 * This function returns a pointer to the control if this control is
1316 * that just subscribes control events.
1326 * v4l2_ctrl_subdev_log_status - Log all controls owned by subdev's control