netstar pushed a commit to branch master. http://git.enlightenment.org/apps/evisum.git/commit/?id=0b45319b8f2e876c3d2f5433e5ba0779ee2edf86
commit 0b45319b8f2e876c3d2f5433e5ba0779ee2edf86 Author: Alastair Poole <nets...@gmail.com> Date: Wed Dec 23 11:54:07 2020 +0000 sensors: find issue with combo --- src/bin/system/machine.h | 9 +++++--- src/bin/system/machine/sensors.bogox | 27 ++++++++++++++---------- src/bin/ui/ui_sensors.c | 40 ++++++++++++------------------------ 3 files changed, 35 insertions(+), 41 deletions(-) diff --git a/src/bin/system/machine.h b/src/bin/system/machine.h index 89ddf4a..5387057 100644 --- a/src/bin/system/machine.h +++ b/src/bin/system/machine.h @@ -49,7 +49,7 @@ typedef struct #if defined(__linux__) char *path; #elif defined(__OpenBSD__) - int mibs[5]; + int mibs[5]; #endif double value; bool invalid; @@ -142,11 +142,14 @@ system_memory_usage_get(meminfo_t *memory); sensor_t ** system_sensors_thermal_get(int *count); +void +system_sensors_thermal_free(sensor_t **sensors, int count); + int -system_sensor_thermal_get(sensor_t *snsr); +system_sensor_thermal_get(sensor_t *sensor); void -system_sensors_thermal_free(sensor_t **sensors, int count); +system_sensor_thermal_free(sensor_t *sensor); void system_power_state_get(power_t *power); diff --git a/src/bin/system/machine/sensors.bogox b/src/bin/system/machine/sensors.bogox index 2a7b88f..fb8ee9d 100644 --- a/src/bin/system/machine/sensors.bogox +++ b/src/bin/system/machine/sensors.bogox @@ -14,21 +14,27 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +void +system_sensor_thermal_free(sensor_t *sensor) +{ + if (sensor->name) + free(sensor->name); + if (sensor->child_name) + free(sensor->child_name); +#if defined(__linux__) + if (sensor->path) + free(sensor->path); +#endif + free(sensor); +} + void system_sensors_thermal_free(sensor_t **sensors, int count) { for (int i = 0; i < count; i++) { - sensor_t *snsr = sensors[i]; - if (snsr->name) - free(snsr->name); - if (snsr->child_name) - free(snsr->child_name); -#if defined(__linux__) - if (snsr->path) - free(snsr->path); -#endif - free(snsr); + sensor_t *sensor = sensors[i]; + system_sensor_thermal_free(sensor); } if (sensors) free(sensors); @@ -492,7 +498,6 @@ system_power_state_free(power_t *power) { for (int i = 0; i < power->battery_count; i++) { - if (power->batteries[i]->name) free(power->batteries[i]->name); #if defined(__OpenBSD__) diff --git a/src/bin/ui/ui_sensors.c b/src/bin/ui/ui_sensors.c index 4d59b1f..2b051aa 100644 --- a/src/bin/ui/ui_sensors.c +++ b/src/bin/ui/ui_sensors.c @@ -83,7 +83,7 @@ _sensors_update(void *data, Ecore_Thread *thread) while (!ecore_thread_check(thread)) { - if (pd->selected_it) + if (pd->sensor) { if (!system_sensor_thermal_get(pd->sensor)) msg->thermal_valid = 0; @@ -93,9 +93,11 @@ _sensors_update(void *data, Ecore_Thread *thread) msg->thermal_temp = pd->sensor->value; } } + system_power_state_get(&msg->power); ecore_thread_feedback(thread, msg); + if (ecore_thread_check(thread)) break; usleep(1000000); @@ -112,21 +114,21 @@ _sensors_update_feedback_cb(void *data, Ecore_Thread *thread, void *msgdata) Eina_List *l; Data *msg = msgdata; - if (!eina_lock_take_try(&_lock)) return; - EINA_LIST_FREE(pd->sensors, s) elm_genlist_item_append(pd->combobox, pd->itc, s, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL); + if (msg->thermal_valid) + elm_progressbar_value_set(pd->thermal_pb, msg->thermal_temp / 100); l = eina_list_nth_list(pd->batteries, 0); if (l) { if (msg->power.have_ac) elm_object_text_set(pd->power_fr, _("Power (AC)")); - else + else elm_object_text_set(pd->power_fr, _("Power")); } - for (int i = 0; i < msg->power.battery_count; i++) + for (int i = 0; l && msg->power.battery_count; i++) { if (msg->power.batteries[i]->present) { @@ -136,27 +138,16 @@ _sensors_update_feedback_cb(void *data, Ecore_Thread *thread, void *msgdata) } l = eina_list_next(l); } - if (msg->thermal_valid) - elm_progressbar_value_set(pd->thermal_pb, msg->thermal_temp / 100); system_power_state_free(&msg->power); - - eina_lock_release(&_lock); } static void _item_del(void *data, Evas_Object *obj) { sensor_t *s = data; - if (s->name) - free(s->name); - if (s->child_name) - free(s->child_name); -#if defined(__linux__) - if (s->path) - free(s->path); -#endif - free(s); + + system_sensor_thermal_free(s); } static void @@ -175,7 +166,7 @@ _combo_expanded_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info) } static void -_combo_item_pressed_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info) +_combo_item_pressed_cb(void *data, Evas_Object *obj, void *event_info) { Ui_Data *pd; Elm_Object_Item *it; @@ -193,7 +184,7 @@ _combo_item_pressed_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_inf } static Evas_Object * -_content_get(void *data, Evas_Object *obj EINA_UNUSED, const char *part EINA_UNUSED) +_content_get(void *data, Evas_Object *obj, const char *part) { Evas_Object *bx, *lb; sensor_t *s; @@ -209,8 +200,8 @@ _content_get(void *data, Evas_Object *obj EINA_UNUSED, const char *part EINA_UNU evas_object_show(bx); lb = elm_label_add(obj); - evas_object_size_hint_weight_set(lb, FILL, FILL); - evas_object_size_hint_align_set(lb, 0.0, EXPAND); + evas_object_size_hint_weight_set(lb, EXPAND, EXPAND); + evas_object_size_hint_align_set(lb, 0.0, FILL); _name_set(buf, sizeof(buf), s); elm_object_text_set(lb, buf); evas_object_show(lb); @@ -228,7 +219,6 @@ _win_del_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, Ui_Data *pd = data; Ui *ui = pd->ui; - eina_lock_take(&_lock); ecore_thread_cancel(ui->sensors.thread); ecore_thread_wait(ui->sensors.thread, 0.5); ui->sensors.thread = NULL; @@ -241,8 +231,6 @@ _win_del_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, elm_genlist_item_class_free(pd->itc); free(pd); - eina_lock_release(&_lock); - eina_lock_free(&_lock); } static void @@ -272,8 +260,6 @@ ui_win_sensors_add(Ui *ui) if (!pd) return; pd->ui = ui; - eina_lock_new(&_lock); - ui->sensors.win = win = elm_win_util_standard_add("evisum", _("Sensors")); elm_win_autodel_set(win, EINA_TRUE); evas_object_size_hint_weight_set(win, EXPAND, EXPAND); --