71 lines
1.4 KiB
Go
71 lines
1.4 KiB
Go
package plugin
|
|
|
|
import (
|
|
"github.com/shayne/hwinfo-streamdeck/internal/hwinfo"
|
|
hwsensorsservice "github.com/shayne/hwinfo-streamdeck/pkg/service"
|
|
)
|
|
|
|
// Plugin implementation
|
|
type Plugin struct {
|
|
Service *Service
|
|
}
|
|
|
|
// PollTime implementation for plugin
|
|
func (p *Plugin) PollTime() (uint64, error) {
|
|
shmem, err := p.Service.Shmem()
|
|
if err != nil {
|
|
return 0, err
|
|
}
|
|
return shmem.PollTime(), nil
|
|
}
|
|
|
|
// Sensors implementation for plugin
|
|
func (p *Plugin) Sensors() ([]hwsensorsservice.Sensor, error) {
|
|
shmem, err := p.Service.Shmem()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
var sensors []hwsensorsservice.Sensor
|
|
for s := range shmem.IterSensors() {
|
|
sensors = append(sensors, &sensor{s})
|
|
}
|
|
return sensors, nil
|
|
}
|
|
|
|
// ReadingsForSensorID implementation for plugin
|
|
func (p *Plugin) ReadingsForSensorID(id string) ([]hwsensorsservice.Reading, error) {
|
|
res, err := p.Service.ReadingsBySensorID(id)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
var readings []hwsensorsservice.Reading
|
|
for _, r := range res {
|
|
readings = append(readings, &reading{r})
|
|
}
|
|
return readings, nil
|
|
}
|
|
|
|
type sensor struct {
|
|
hwinfo.Sensor
|
|
}
|
|
|
|
func (s sensor) Name() string {
|
|
return s.NameOrig()
|
|
}
|
|
|
|
type reading struct {
|
|
hwinfo.Reading
|
|
}
|
|
|
|
func (r reading) Label() string {
|
|
return r.LabelOrig()
|
|
}
|
|
|
|
func (r reading) Type() string {
|
|
return r.Reading.Type().String()
|
|
}
|
|
|
|
func (r reading) TypeI() int32 {
|
|
return int32(r.Reading.Type())
|
|
}
|