fix(observer): fix the parameters of the observer_cb for Micropython compatibility

This commit is contained in:
Gabor Kiss-Vamosi
2023-12-05 14:25:11 +01:00
parent a6ec0a1101
commit c902556794
14 changed files with 59 additions and 58 deletions

View File

@@ -39,7 +39,7 @@ static void load_scene(uint32_t scene);
static void next_scene_timer_cb(lv_timer_t * timer);
#if LV_USE_PERF_MONITOR
static void sysmon_perf_observer_cb(lv_subject_t * subject, lv_observer_t * observer);
static void sysmon_perf_observer_cb(lv_observer_t * observer, lv_subject_t * subject);
#endif
static void rnd_reset(void);
@@ -462,7 +462,7 @@ static void next_scene_timer_cb(lv_timer_t * timer)
}
#if LV_USE_PERF_MONITOR
static void sysmon_perf_observer_cb(lv_subject_t * subject, lv_observer_t * observer)
static void sysmon_perf_observer_cb(lv_observer_t * observer, lv_subject_t * subject)
{
const lv_sysmon_perf_info_t * info = lv_subject_get_pointer(subject);
lv_obj_t * label = lv_observer_get_target(observer);

View File

@@ -1452,7 +1452,7 @@ static void chart_event_cb(lv_event_t * e)
lv_area_t rect_area;
rect_area.x1 = (int32_t)draw_line_dsc->p1.x;
rect_area.x2 = (int32_t)draw_line_dsc->p2.x;
rect_area.y1 = (int32_t)LV_MAX(draw_line_dsc->p1.y, draw_line_dsc->p2.y) + 1;
rect_area.y1 = (int32_t)LV_MAX(draw_line_dsc->p1.y, draw_line_dsc->p2.y);
rect_area.y2 = (int32_t)obj->coords.y2;
lv_draw_rect(base_dsc->layer, &rect_dsc, &rect_area);
}

View File

@@ -40,7 +40,7 @@ A typical use case looks like this:
extern lv_subject_t some_subject;
//Will be called when the related subject's value changes
static void some_observer_cb(lv_subject_t * subject, lv_observer_t * observer)
static void some_observer_cb(lv_observer_t * observer, lv_subject_t * subject)
{
int32_t v = lv_subject_get_int(subject);
do_something(v);
@@ -135,7 +135,7 @@ Where the observer callback should look like this:
.. code:: c
static void some_observer_cb(lv_subject_t * subject, lv_observer_t * observer)
static void some_observer_cb(lv_observer_t * observer, lv_subject_t * subject)
{
...
}
@@ -218,7 +218,7 @@ The above Voltage/Current measurement example looks like this in the practice:
...
static void all_observer_cb(lv_subject_t * subject, lv_observer_t * observer)
static void all_observer_cb(lv_observer_t * observer, lv_subject_t * subject)
{
lv_obj_t * label = lv_observer_get_target(observer);
lv_subject_t * subject_mode = lv_subject_get_group_element(subject, 0);

View File

@@ -1,7 +1,7 @@
#include "../../lv_examples.h"
#if LV_USE_TINY_TTF && LV_BUILD_EXAMPLES && LV_USE_OBSERVER
static void font_size_observer_cb(lv_subject_t * subject, lv_observer_t * observer);
static void font_size_observer_cb(lv_observer_t * observer, lv_subject_t * subject);
static lv_subject_t subject_font;
static lv_font_t font;
@@ -43,7 +43,7 @@ void lv_example_tiny_ttf_3(void)
lv_subject_add_observer(&subject_font, font_size_observer_cb, &style);
}
static void font_size_observer_cb(lv_subject_t * subject, lv_observer_t * observer)
static void font_size_observer_cb(lv_observer_t * observer, lv_subject_t * subject)
{
lv_style_t * style = observer->user_data;
int32_t size = lv_subject_get_int(subject);

View File

@@ -25,7 +25,7 @@ void lv_example_observer_2(void)
* It doesn't know anything about the internals of the UI
* and uses any the `engine_subject` as an interface.
* -------------------------------------------------*/
static void engine_state_observer_cb(lv_subject_t * subject, lv_observer_t * observer)
static void engine_state_observer_cb(lv_observer_t * observer, lv_subject_t * subject)
{
LV_UNUSED(observer);
@@ -66,7 +66,7 @@ static void textarea_event_cb(lv_event_t * e)
}
}
static void info_label_observer_cb(lv_subject_t * subject, lv_observer_t * observer)
static void info_label_observer_cb(lv_observer_t * observer, lv_subject_t * subject)
{
lv_obj_t * label = lv_observer_get_target(observer);
switch(lv_subject_get_int(subject)) {

View File

@@ -15,8 +15,8 @@ const char * minute_options =
static void set_btn_clicked_event_cb(lv_event_t * e);
static void close_clicked_event_cb(lv_event_t * e);
static void hour_roller_options_update(lv_subject_t * subject, lv_observer_t * observer);
static void time_observer_cb(lv_subject_t * subject, lv_observer_t * observer);
static void hour_roller_options_update(lv_observer_t * observer, lv_subject_t * subject);
static void time_observer_cb(lv_observer_t * observer, lv_subject_t * subject);
typedef enum {
TIME_FORMAT_12,
@@ -118,7 +118,7 @@ static void close_clicked_event_cb(lv_event_t * e)
}
/*Watch all related subject to display the current time correctly*/
static void time_observer_cb(lv_subject_t * subject, lv_observer_t * observer)
static void time_observer_cb(lv_observer_t * observer, lv_subject_t * subject)
{
int32_t hour = lv_subject_get_int(lv_subject_get_group_element(subject, 0));
int32_t minute = lv_subject_get_int(lv_subject_get_group_element(subject, 1));
@@ -136,7 +136,7 @@ static void time_observer_cb(lv_subject_t * subject, lv_observer_t * observer)
}
/*Change the hour options on format change*/
static void hour_roller_options_update(lv_subject_t * subject, lv_observer_t * observer)
static void hour_roller_options_update(lv_observer_t * observer, lv_subject_t * subject)
{
lv_obj_t * roller = lv_observer_get_target(observer);
int32_t prev_selected = lv_roller_get_selected(roller);

View File

@@ -1,11 +1,11 @@
#include "../../lv_examples.h"
#if LV_USE_OBSERVER && LV_USE_SLIDER && LV_USE_LABEL && LV_USE_ROLLER && LV_USE_DROPDOWN && LV_FONT_MONTSERRAT_30 && LV_BUILD_EXAMPLES
static void cont_observer_cb(lv_subject_t * subject, lv_observer_t * observer);
static void cont_observer_cb(lv_observer_t * observer, lv_subject_t * subject);
static void btn_create(lv_obj_t * parent, const char * text);
static void btn_click_event_cb(lv_event_t * e);
static void btn_observer_cb(lv_subject_t * subject, lv_observer_t * observer);
static void indicator_observer_cb(lv_subject_t * subject, lv_observer_t * observer);
static void btn_observer_cb(lv_observer_t * observer, lv_subject_t * subject);
static void indicator_observer_cb(lv_observer_t * observer, lv_subject_t * subject);
static lv_subject_t current_tab_subject;
static lv_subject_t slider_subject[4];
@@ -74,7 +74,7 @@ static void anim_set_x_cb(void * obj, int32_t v)
lv_obj_set_x(obj, v);
}
static void cont_observer_cb(lv_subject_t * subject, lv_observer_t * observer)
static void cont_observer_cb(lv_observer_t * observer, lv_subject_t * subject)
{
int32_t prev_v = lv_subject_get_previous_int(subject);
int32_t cur_v = lv_subject_get_int(subject);
@@ -170,7 +170,7 @@ static void btn_click_event_cb(lv_event_t * e)
lv_subject_set_int(&current_tab_subject, idx);
}
static void btn_observer_cb(lv_subject_t * subject, lv_observer_t * observer)
static void btn_observer_cb(lv_observer_t * observer, lv_subject_t * subject)
{
int32_t prev_v = lv_subject_get_previous_int(subject);
int32_t cur_v = lv_subject_get_int(subject);
@@ -182,7 +182,7 @@ static void btn_observer_cb(lv_subject_t * subject, lv_observer_t * observer)
if(idx == cur_v) lv_obj_add_state(btn, LV_STATE_CHECKED);
}
static void indicator_observer_cb(lv_subject_t * subject, lv_observer_t * observer)
static void indicator_observer_cb(lv_observer_t * observer, lv_subject_t * subject)
{
int32_t cur_v = lv_subject_get_int(subject);
lv_obj_t * indicator = lv_observer_get_target(observer);

View File

@@ -10,10 +10,10 @@ typedef enum {
FW_UPDATE_STATE_READY,
} fw_update_state_t;
static void fw_upload_manager_observer_cb(lv_subject_t * subject, lv_observer_t * observer);
static void fw_upload_manager_observer_cb(lv_observer_t * observer, lv_subject_t * subject);
static void fw_update_btn_clicked_event_cb(lv_event_t * e);
static void fw_update_close_event_cb(lv_event_t * e);
static void fw_update_win_observer_cb(lv_subject_t * subject, lv_observer_t * observer);
static void fw_update_win_observer_cb(lv_observer_t * observer, lv_subject_t * subject);
static lv_subject_t fw_download_percent_subject;
static lv_subject_t fw_update_status_subject;
@@ -73,7 +73,7 @@ static void restart_btn_click_event_cb(lv_event_t * e)
lv_subject_set_int(&fw_update_status_subject, FW_UPDATE_STATE_IDLE);
}
static void fw_update_win_observer_cb(lv_subject_t * subject, lv_observer_t * observer)
static void fw_update_win_observer_cb(lv_observer_t * observer, lv_subject_t * subject)
{
lv_obj_t * win = lv_observer_get_target(observer);
lv_obj_t * cont = lv_win_get_content(win);
@@ -148,7 +148,7 @@ static void download_timer_cb(lv_timer_t * t)
/**
* Emulate connection and FW dowlading by timers
*/
static void fw_upload_manager_observer_cb(lv_subject_t * subject, lv_observer_t * observer)
static void fw_upload_manager_observer_cb(lv_observer_t * observer, lv_subject_t * subject)
{
LV_UNUSED(subject);
LV_UNUSED(observer);

View File

@@ -56,7 +56,7 @@ typedef struct {
lv_style_t style_scrollbar;
} my_panel_styles_t;
static void my_panel_style_observer_cb(lv_subject_t * subject, lv_observer_t * observer)
static void my_panel_style_observer_cb(lv_observer_t * observer, lv_subject_t * subject)
{
LV_UNUSED(subject);
LV_UNUSED(observer);
@@ -126,7 +126,7 @@ typedef struct {
lv_style_t style_pressed;
} my_button_styles_t;
static void my_button_style_observer_cb(lv_subject_t * subject, lv_observer_t * observer)
static void my_button_style_observer_cb(lv_observer_t * observer, lv_subject_t * subject)
{
LV_UNUSED(subject);
LV_UNUSED(observer);

View File

@@ -29,26 +29,26 @@ typedef struct {
* STATIC PROTOTYPES
**********************/
static void unsubscribe_on_delete_cb(lv_event_t * e);
static void group_notify_cb(lv_subject_t * subject, lv_observer_t * observer);
static void group_notify_cb(lv_observer_t * observer, lv_subject_t * subject);
static lv_observer_t * bind_to_bitfield(lv_subject_t * subject, lv_obj_t * obj, lv_observer_cb_t cb, uint32_t flag,
int32_t ref_value, bool inv);
static void obj_flag_observer_cb(lv_subject_t * subject, lv_observer_t * observer);
static void obj_state_observer_cb(lv_subject_t * subject, lv_observer_t * observer);
static void obj_flag_observer_cb(lv_observer_t * observer, lv_subject_t * subject);
static void obj_state_observer_cb(lv_observer_t * observer, lv_subject_t * subject);
static void btn_value_changed_event_cb(lv_event_t * e);
static void label_text_observer_cb(lv_subject_t * subject, lv_observer_t * observer);
static void label_text_observer_cb(lv_observer_t * observer, lv_subject_t * subject);
static void arc_value_changed_event_cb(lv_event_t * e);
static void arc_value_observer_cb(lv_subject_t * subject, lv_observer_t * observer);
static void arc_value_observer_cb(lv_observer_t * observer, lv_subject_t * subject);
static void slider_value_changed_event_cb(lv_event_t * e);
static void slider_value_observer_cb(lv_subject_t * subject, lv_observer_t * observer);
static void slider_value_observer_cb(lv_observer_t * observer, lv_subject_t * subject);
static void roller_value_changed_event_cb(lv_event_t * e);
static void roller_value_observer_cb(lv_subject_t * subject, lv_observer_t * observer);
static void roller_value_observer_cb(lv_observer_t * observer, lv_subject_t * subject);
static void dropdown_value_changed_event_cb(lv_event_t * e);
static void dropdown_value_observer_cb(lv_subject_t * subject, lv_observer_t * observer);
static void dropdown_value_observer_cb(lv_observer_t * observer, lv_subject_t * subject);
/**********************
* STATIC VARIABLES
@@ -294,7 +294,7 @@ lv_observer_t * lv_subject_add_observer_obj(lv_subject_t * subject, lv_observer_
}
/* update object immediately */
if(observer->cb) observer->cb(subject, observer);
if(observer->cb) observer->cb(observer, subject);
return observer;
}
@@ -319,7 +319,7 @@ lv_observer_t * lv_subject_add_observer_with_target(lv_subject_t * subject, lv_o
observer->target = target;
/* update object immediately */
if(observer->cb) observer->cb(subject, observer);
if(observer->cb) observer->cb(observer, subject);
return observer;
}
@@ -381,7 +381,7 @@ void lv_subject_notify(lv_subject_t * subject)
subject->notify_restart_query = 0;
_LV_LL_READ(&(subject->subs_ll), observer) {
if(observer->cb && observer->notified == 0) {
observer->cb(subject, observer);
observer->cb(observer, subject);
if(subject->notify_restart_query) break;
observer->notified = 1;
}
@@ -498,7 +498,7 @@ lv_observer_t * lv_dropdown_bind_value(lv_obj_t * obj, lv_subject_t * subject)
* STATIC FUNCTIONS
**********************/
static void group_notify_cb(lv_subject_t * subject, lv_observer_t * observer)
static void group_notify_cb(lv_observer_t * observer, lv_subject_t * subject)
{
LV_UNUSED(subject);
lv_subject_t * subject_group = observer->user_data;
@@ -534,7 +534,7 @@ static lv_observer_t * bind_to_bitfield(lv_subject_t * subject, lv_obj_t * obj,
return observable;
}
static void obj_flag_observer_cb(lv_subject_t * subject, lv_observer_t * observer)
static void obj_flag_observer_cb(lv_observer_t * observer, lv_subject_t * subject)
{
flag_and_cond_t * p = observer->user_data;
@@ -549,7 +549,7 @@ static void obj_flag_observer_cb(lv_subject_t * subject, lv_observer_t * observe
}
}
static void obj_state_observer_cb(lv_subject_t * subject, lv_observer_t * observer)
static void obj_state_observer_cb(lv_observer_t * observer, lv_subject_t * subject)
{
flag_and_cond_t * p = observer->user_data;
@@ -572,7 +572,7 @@ static void btn_value_changed_event_cb(lv_event_t * e)
lv_subject_set_int(subject, lv_obj_has_state(obj, LV_STATE_CHECKED));
}
static void label_text_observer_cb(lv_subject_t * subject, lv_observer_t * observer)
static void label_text_observer_cb(lv_observer_t * observer, lv_subject_t * subject)
{
const char * fmt = observer->user_data;
@@ -602,7 +602,7 @@ static void arc_value_changed_event_cb(lv_event_t * e)
lv_subject_set_int(subject, lv_arc_get_value(arc));
}
static void arc_value_observer_cb(lv_subject_t * subject, lv_observer_t * observer)
static void arc_value_observer_cb(lv_observer_t * observer, lv_subject_t * subject)
{
lv_arc_set_value(observer->target, subject->value.num);
}
@@ -615,7 +615,7 @@ static void slider_value_changed_event_cb(lv_event_t * e)
lv_subject_set_int(subject, lv_slider_get_value(slider));
}
static void slider_value_observer_cb(lv_subject_t * subject, lv_observer_t * observer)
static void slider_value_observer_cb(lv_observer_t * observer, lv_subject_t * subject)
{
lv_slider_set_value(observer->target, subject->value.num, LV_ANIM_OFF);
}
@@ -628,7 +628,7 @@ static void roller_value_changed_event_cb(lv_event_t * e)
lv_subject_set_int(subject, lv_roller_get_selected(roller));
}
static void roller_value_observer_cb(lv_subject_t * subject, lv_observer_t * observer)
static void roller_value_observer_cb(lv_observer_t * observer, lv_subject_t * subject)
{
if((int32_t)lv_roller_get_selected(observer->target) != subject->value.num) {
lv_roller_set_selected(observer->target, subject->value.num, LV_ANIM_OFF);
@@ -643,7 +643,7 @@ static void dropdown_value_changed_event_cb(lv_event_t * e)
lv_subject_set_int(subject, lv_dropdown_get_selected(dropdown));
}
static void dropdown_value_observer_cb(lv_subject_t * subject, lv_observer_t * observer)
static void dropdown_value_observer_cb(lv_observer_t * observer, lv_subject_t * subject)
{
lv_dropdown_set_selected(observer->target, subject->value.num);
}

View File

@@ -61,9 +61,10 @@ typedef struct {
/**
* Callback called when the observed value changes
* @param s the lv_observer_t object created when the object was subscribed to the value
* @param observer pointer to the observer of the callback
* @param subject pointer to the subject of the observer
*/
typedef void (*lv_observer_cb_t)(lv_subject_t * subject, struct _lv_observer_t * observer);
typedef void (*lv_observer_cb_t)(struct _lv_observer_t * observer, lv_subject_t * subject);
/**
* The observer object: a descriptor returned when subscribing LVGL widgets to subjects

View File

@@ -43,12 +43,12 @@ static void sysmon_backend_init_async_cb(void * user_data);
#if LV_USE_PERF_MONITOR
static void perf_update_timer_cb(lv_timer_t * t);
static void perf_observer_cb(lv_subject_t * subject, lv_observer_t * observer);
static void perf_observer_cb(lv_observer_t * observer, lv_subject_t * subject);
#endif
#if LV_USE_MEM_MONITOR
static void mem_update_timer_cb(lv_timer_t * t);
static void mem_observer_cb(lv_subject_t * subject, lv_observer_t * observer);
static void mem_observer_cb(lv_observer_t * observer, lv_subject_t * subject);
#endif
/**********************
@@ -170,7 +170,7 @@ static void perf_update_timer_cb(lv_timer_t * t)
info->calculated.run_cnt = prev_info.calculated.run_cnt;
}
static void perf_observer_cb(lv_subject_t * subject, lv_observer_t * observer)
static void perf_observer_cb(lv_observer_t * observer, lv_subject_t * subject)
{
lv_obj_t * label = lv_observer_get_target(observer);
const lv_sysmon_perf_info_t * perf = lv_subject_get_pointer(subject);
@@ -206,7 +206,7 @@ static void mem_update_timer_cb(lv_timer_t * t)
lv_subject_set_pointer(&sysmon_mem.subject, mem_mon);
}
static void mem_observer_cb(lv_subject_t * subject, lv_observer_t * observer)
static void mem_observer_cb(lv_observer_t * observer, lv_subject_t * subject)
{
lv_obj_t * label = lv_observer_get_target(observer);
const lv_mem_monitor_t * mon = lv_subject_get_pointer(subject);

View File

@@ -6,7 +6,7 @@
#include "lv_test_helpers.h"
static void create_ui(void);
static void chart_type_observer_cb(lv_subject_t * subject, lv_observer_t * observer);
static void chart_type_observer_cb(lv_observer_t * observer, lv_subject_t * subject);
static void buttonmatrix_event_cb(lv_event_t * e);
static lv_obj_t * list_button_create(lv_obj_t * parent);
static void opa_anim_cb(void * var, int32_t v);
@@ -193,7 +193,7 @@ static void create_ui(void)
lv_image_set_scale_x(img, 400);
}
static void chart_type_observer_cb(lv_subject_t * subject, lv_observer_t * observer)
static void chart_type_observer_cb(lv_observer_t * observer, lv_subject_t * subject)
{
int32_t v = lv_subject_get_int(subject);
lv_obj_t * chart = lv_observer_get_target(observer);

View File

@@ -18,7 +18,7 @@ void tearDown(void)
static int32_t prev_v;
static int32_t current_v;
static void observer_int(lv_subject_t * subject, lv_observer_t * observer)
static void observer_int(lv_observer_t * observer, lv_subject_t * subject)
{
LV_UNUSED(observer);
prev_v = lv_subject_get_previous_int(subject);
@@ -180,7 +180,7 @@ void test_observer_color(void)
static int32_t group_observer_called;
static void group_observer_cb(lv_subject_t * subject, lv_observer_t * observer)
static void group_observer_cb(lv_observer_t * observer, lv_subject_t * subject)
{
LV_UNUSED(observer);
LV_UNUSED(subject);