sensors: use your brain

This commit is contained in:
Alastair Poole 2020-12-22 17:53:17 +00:00
parent 16cdd0e12a
commit 1313354239
3 changed files with 18 additions and 28 deletions

View File

@ -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);

View File

@ -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)

View File

@ -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);