-
Notifications
You must be signed in to change notification settings - Fork 16
/
LiquidctlPlugin.cs
59 lines (52 loc) · 1.73 KB
/
LiquidctlPlugin.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
using System.Collections.Generic;
using System.Linq;
using FanControl.Plugins;
namespace FanControl.Liquidctl
{
public class LiquidctlPlugin : IPlugin2
{
internal List<LiquidctlDevice> devices = new List<LiquidctlDevice>();
internal IPluginLogger logger;
public string Name => "LiquidctlPlugin";
public LiquidctlPlugin(IPluginLogger pluginLogger)
{
logger = pluginLogger;
}
public void Initialize()
{
LiquidctlCLIWrapper.Initialize();
}
public void Load(IPluginSensorsContainer _container)
{
List<LiquidctlStatusJSON> input = LiquidctlCLIWrapper.ReadStatus();
foreach (LiquidctlStatusJSON liquidctl in input)
{
LiquidctlDevice device = new LiquidctlDevice(liquidctl, logger);
logger.Log(device.GetDeviceInfo());
if (device.hasPumpSpeed)
_container.FanSensors.Add(device.pumpSpeed);
if (device.hasPumpDuty)
_container.ControlSensors.Add(device.pumpDuty);
if (device.hasLiquidTemperature)
_container.TempSensors.Add(device.liquidTemperature);
if (device.hasFanSpeed)
{
_container.FanSensors.Add(device.fanSpeed);
_container.ControlSensors.Add(device.fanControl);
}
devices.Add(device);
}
}
public void Close()
{
devices.Clear();
}
public void Update()
{
foreach (LiquidctlDevice device in devices)
{
device.LoadJSON();
}
}
}
}