package hwinfo /* #include #include "hwisenssm2.h" */ import "C" import ( "strconv" "unsafe" "github.com/shayne/hwinfo-streamdeck/internal/hwinfo/util" ) // Sensor element (e.g. motherboard, cpu, gpu...) type Sensor struct { cs C.PHWiNFO_SENSORS_SENSOR_ELEMENT } // NewSensor constructs a Sensor func NewSensor(data []byte) Sensor { return Sensor{ cs: C.PHWiNFO_SENSORS_SENSOR_ELEMENT(unsafe.Pointer(&data[0])), } } // SensorID a unique Sensor ID func (s *Sensor) SensorID() uint64 { return uint64(s.cs.dwSensorID) } // SensorInst the instance of the sensor (together with SensorID forms a unique ID) func (s *Sensor) SensorInst() uint64 { return uint64(s.cs.dwSensorInst) } // ID a unique ID combining SensorID and SensorInst func (s *Sensor) ID() string { // keeping old method used in legacy steam deck plugin return strconv.FormatUint(s.SensorID()*100+s.SensorInst(), 10) } // NameOrig original name of sensor func (s *Sensor) NameOrig() string { return util.DecodeCharPtr(unsafe.Pointer(&s.cs.szSensorNameOrig), C.HWiNFO_SENSORS_STRING_LEN2) } // NameUser sensor name displayed, which might have been renamed by user func (s *Sensor) NameUser() string { return util.DecodeCharPtr(unsafe.Pointer(&s.cs.szSensorNameUser), C.HWiNFO_SENSORS_STRING_LEN2) }