netstar pushed a commit to branch master.

http://git.enlightenment.org/apps/evisum.git/commit/?id=16cdd0e12a9d83013702631c904c55dc3e57b012

commit 16cdd0e12a9d83013702631c904c55dc3e57b012
Author: Alastair Poole <nets...@gmail.com>
Date:   Tue Dec 22 14:13:16 2020 +0000

    mibs: fix openbsd
---
 src/bin/system/machine.h             |  7 +++++++
 src/bin/system/machine/sensors.bogox | 17 +++++++++++++++++
 src/bin/ui/ui_sensors.c              | 33 +++++++++++++++++++--------------
 3 files changed, 43 insertions(+), 14 deletions(-)

diff --git a/src/bin/system/machine.h b/src/bin/system/machine.h
index be8cdc6..1fb6885 100644
--- a/src/bin/system/machine.h
+++ b/src/bin/system/machine.h
@@ -48,6 +48,8 @@ typedef struct
    char   *child_name;
 #if defined(__linux__)
    char   *path;
+#elif defined(__OpenBSD__)
+   int      mibs[5];
 #endif
    double  value;
    bool    invalid;
@@ -143,6 +145,11 @@ system_sensors_thermal_get(int *count);
 int
 system_sensor_thermal_by_id(char *id, double *value);
 
+#if defined(__OpenBSD__)
+int
+system_sensor_thermal_by_mib(int mib[], double *value);
+#endif
+
 void
 system_sensors_thermal_free(sensor_t **sensors, int count);
 
diff --git a/src/bin/system/machine/sensors.bogox 
b/src/bin/system/machine/sensors.bogox
index 4656ec3..f4f25b2 100644
--- a/src/bin/system/machine/sensors.bogox
+++ b/src/bin/system/machine/sensors.bogox
@@ -51,6 +51,22 @@ system_sensor_thermal_by_id(char *id, double *value)
    return 0;
 }
 
+#if defined(__OpenBSD__)
+int
+system_sensor_thermal_by_mib(int mibs[], double *value)
+{
+   struct sensor snsr;
+   size_t slen = sizeof(struct sensor);
+
+   if (sysctl(mibs, 5, &snsr, &slen, NULL, 0) == -1) return 0;
+
+   *value = (snsr.value - 273150000) / 1000000.0;
+
+   return 1;
+}
+
+#endif
+
 sensor_t **
 system_sensors_thermal_get(int *sensor_count)
 {
@@ -94,6 +110,7 @@ system_sensors_thermal_get(int *sensor_count)
         sensors[(*sensor_count)++] = sensor = calloc(1, sizeof(sensor_t));
         sensor->name = strdup(snsrdev.xname);
         sensor->value = (snsr.value - 273150000) / 1000000.0; // (uK -> C)
+        memcpy(sensor->mibs, &mibs, sizeof(mibs));
      }
 #elif defined(__FreeBSD__) || defined(__DragonFly__)
    sensor_t *sensor;
diff --git a/src/bin/ui/ui_sensors.c b/src/bin/ui/ui_sensors.c
index 3124364..9f68eb4 100644
--- a/src/bin/ui/ui_sensors.c
+++ b/src/bin/ui/ui_sensors.c
@@ -85,7 +85,11 @@ _sensors_update(void *data, Ecore_Thread *thread)
      {
         if (pd->selected_it)
           {
+#if defined(__OpenBSD__)
+             if (system_sensor_thermal_by_mib(pd->sensor->mibs, 
&msg->thermal_temp))
+#else
              if (system_sensor_thermal_by_id(pd->sensor->path, 
&msg->thermal_temp))
+#endif
                msg->thermal_valid = 1;
           }
         system_power_state_get(&msg->power);
@@ -285,19 +289,22 @@ ui_win_sensors_add(Ui *ui)
    evas_object_show(content);
    elm_object_content_set(win, content);
 
-   pd->power_fr = fr = elm_frame_add(win);
-   evas_object_size_hint_weight_set(fr, EXPAND, EXPAND);
-   evas_object_size_hint_align_set(fr, FILL, FILL);
-   elm_object_text_set(fr, _("Power"));
-   evas_object_show(fr);
-
-   bx = elm_box_add(win);
-   evas_object_size_hint_weight_set(bx, EXPAND, EXPAND);
-   evas_object_size_hint_align_set(bx, FILL, FILL);
-   evas_object_show(bx);
-   elm_object_content_set(fr, bx);
-
    system_power_state_get(&power);
+   if (power.battery_count)
+     {
+        pd->power_fr = fr = elm_frame_add(win);
+        evas_object_size_hint_weight_set(fr, EXPAND, EXPAND);
+        evas_object_size_hint_align_set(fr, FILL, FILL);
+        elm_object_text_set(fr, _("Power"));
+        evas_object_show(fr);
+
+        bx = elm_box_add(win);
+        evas_object_size_hint_weight_set(bx, EXPAND, EXPAND);
+        evas_object_size_hint_align_set(bx, FILL, FILL);
+        evas_object_show(bx);
+        elm_object_content_set(fr, bx);
+        elm_box_pack_end(content, fr);
+     }
 
    for (int i = 0; i < power.battery_count; i++)
      {
@@ -346,8 +353,6 @@ ui_win_sensors_add(Ui *ui)
 
    system_power_state_free(&power);
 
-   elm_box_pack_end(content, fr);
-
    fr = elm_frame_add(win);
    evas_object_size_hint_weight_set(fr, EXPAND, EXPAND);
    evas_object_size_hint_align_set(fr, FILL, FILL);

-- 


Reply via email to