diff options
Diffstat (limited to 'devices/temp_darwin.go')
-rw-r--r-- | devices/temp_darwin.go | 41 |
1 files changed, 9 insertions, 32 deletions
diff --git a/devices/temp_darwin.go b/devices/temp_darwin.go index e60b4be..4e068a4 100644 --- a/devices/temp_darwin.go +++ b/devices/temp_darwin.go @@ -2,45 +2,22 @@ package devices -// #cgo LDFLAGS: -framework IOKit -// #include "include/smc.c" -import "C" +import smc "github.com/xxxserxxx/iSMC" func init() { RegisterTemp(update) + ts = make(map[string]float32) } +var ts map[string]float32 + func update(temps map[string]int) map[string]error { - temperatureKeys := map[string]string{ - C.AMBIENT_AIR_0: "ambient_air_0", - C.AMBIENT_AIR_1: "ambient_air_1", - C.CPU_0_DIODE: "cpu_0_diode", - C.CPU_0_HEATSINK: "cpu_0_heatsink", - C.CPU_0_PROXIMITY: "cpu_0_proximity", - C.ENCLOSURE_BASE_0: "enclosure_base_0", - C.ENCLOSURE_BASE_1: "enclosure_base_1", - C.ENCLOSURE_BASE_2: "enclosure_base_2", - C.ENCLOSURE_BASE_3: "enclosure_base_3", - C.GPU_0_DIODE: "gpu_0_diode", - C.GPU_0_HEATSINK: "gpu_0_heatsink", - C.GPU_0_PROXIMITY: "gpu_0_proximity", - C.HARD_DRIVE_BAY: "hard_drive_bay", - C.MEMORY_SLOT_0: "memory_slot_0", - C.MEMORY_SLOTS_PROXIMITY: "memory_slots_proximity", - C.NORTHBRIDGE: "northbridge", - C.NORTHBRIDGE_DIODE: "northbridge_diode", - C.NORTHBRIDGE_PROXIMITY: "northbridge_proximity", - C.THUNDERBOLT_0: "thunderbolt_0", - C.THUNDERBOLT_1: "thunderbolt_1", - C.WIRELESS_MODULE: "wireless_module", + err := smc.GetTemp(ts) + if err != nil { + return map[string]error{"temps": err} } - - C.open_smc() - defer C.close_smc() - - for key, val := range temperatureKeys { - temps[val] = int(C.get_tmp(C.CString(key), C.CELSIUS)) + for k, v := range ts { + temps[k] = int(v + 0.5) } - return nil } |