diff --git a/src/bin/system/machine.h b/src/bin/system/machine.h index 1fb6885..89ddf4a 100644 --- a/src/bin/system/machine.h +++ b/src/bin/system/machine.h @@ -143,12 +143,7 @@ sensor_t ** 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 +system_sensor_thermal_get(sensor_t *snsr); 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 f4f25b2..821a613 100644 --- a/src/bin/system/machine/sensors.bogox +++ b/src/bin/system/machine/sensors.bogox @@ -35,37 +35,31 @@ system_sensors_thermal_free(sensor_t **sensors, int count) } int -system_sensor_thermal_by_id(char *id, double *value) +system_sensor_thermal_get(sensor_t *sensor) { #if defined(__linux__) - char *d = file_contents(id); + char *d = file_contents(sensor->path); if (d) { - *value = atof(d); - if (*value) *value /= 1000; + double val = atof(d); + if (val); + sensor->value = val /= 1000; free(d); return 1; } return 0; -#endif - return 0; -} - -#if defined(__OpenBSD__) -int -system_sensor_thermal_by_mib(int mibs[], double *value) -{ +#elif defined(__OpenBSD__) struct sensor snsr; size_t slen = sizeof(struct sensor); - if (sysctl(mibs, 5, &snsr, &slen, NULL, 0) == -1) return 0; + if (sysctl(sensor->mibs, 5, &snsr, &slen, NULL, 0) == -1) return 0; - *value = (snsr.value - 273150000) / 1000000.0; + sensor->value = (snsr.value - 273150000) / 1000000.0; return 1; -} - #endif + return 0; +} sensor_t ** system_sensors_thermal_get(int *sensor_count) diff --git a/src/bin/ui/ui_sensors.c b/src/bin/ui/ui_sensors.c index 9f68eb4..01ea2d1 100644 --- a/src/bin/ui/ui_sensors.c +++ b/src/bin/ui/ui_sensors.c @@ -85,12 +85,13 @@ _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; + if (!system_sensor_thermal_get(pd->sensor)) + msg->thermal_valid = 0; + else + { + msg->thermal_valid = 1; + msg->thermal_temp = pd->sensor->value; + } } system_power_state_get(&msg->power);