# lv_observer_private.h (/api/private/core/lv_observer_private_h)



<RelatedHeaders name="lv_observer.h" isPrivate="true" />

<ApiSummary functions="2" structs="2" />

Functions [#functions]

<ApiMember kind="function" name="lv_subject_global_init" file="private/core/lv_observer_private.h" line="59" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/core/lv_observer_private.h#L59">
  lv_subject_global_init [#lv_subject_global_init]

  ```c title=" " lineNumbers=1
  void lv_subject_global_init(void)
  ```
</ApiMember>

<ApiMember kind="function" name="lv_subject_global_deinit" file="private/core/lv_observer_private.h" line="60" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/core/lv_observer_private.h#L60">
  lv_subject_global_deinit [#lv_subject_global_deinit]

  ```c title=" " lineNumbers=1
  void lv_subject_global_deinit(void)
  ```
</ApiMember>

Structs [#structs]

<ApiMember kind="struct" name="_lv_observer_t">
  \_lv_observer_t [#_lv_observer_t]

  The observer object: a descriptor returned when subscribing LVGL widgets to subjects

  | Member                | Type                                                     | Description                                             |
  | --------------------- | -------------------------------------------------------- | ------------------------------------------------------- |
  | `subject`             | <ApiLink name="lv_subject_t" display="lv_subject_t *" /> | Observed subject                                        |
  | `cb`                  | <ApiLink name="lv_observer_cb_t" />                      | Callback that notifies when value changes               |
  | `target`              | `void *`                                                 | A target for the observer, e.g. a widget or any pointer |
  | `user_data`           | `void *`                                                 | Additional parameter, can be used freely by user        |
  | `user_cb`             | `void(*)(void)`                                          | Additional function pointer, can be used freely by user |
  | `auto_free_user_data` | `uint32_t`                                               | Automatically free user data when observer is removed   |
  | `notified`            | `uint32_t`                                               | Was observer already notified?                          |
  | `for_obj`             | `uint32_t`                                               | Is `target` a pointer to a Widget (`lv_obj_t *`)?       |
</ApiMember>

<ApiMember kind="struct" name="_lv_subject_increment_dsc_t">
  \_lv_subject_increment_dsc_t [#_lv_subject_increment_dsc_t]

  Descriptor created by <ApiLink name="lv_obj_add_subject_increment_event" display="lv_obj_add_subject_increment_event()" />

  | Member      | Type                                                     | Description                                                     |
  | ----------- | -------------------------------------------------------- | --------------------------------------------------------------- |
  | `subject`   | <ApiLink name="lv_subject_t" display="lv_subject_t *" /> | The subject to adjust                                           |
  | `step`      | `int32_t`                                                | The step add to the subject                                     |
  | `rollover`  | `bool`                                                   | Where to start over from the other end when one end is exceeded |
  | `min_value` | `int32_t`                                                | Don't set a value smaller than this                             |
  | `max_value` | `int32_t`                                                | Don't set a value larger than this                              |
</ApiMember>

Dependencies [#dependencies]

<FileIncludes includes="[&#x22;lvgl_public.h&#x22;]" includedBy="[&#x22;lvgl_private.h&#x22;]" />
