Files
Chris Kaczor 853e8eab0d
Some checks failed
Deploy to Gitea Releases / deploy-to-gitea-releases (push) Failing after 9s
Initial WIP commit
2026-01-27 18:58:09 -05:00

41 lines
2.0 KiB
C#

namespace HardwareMonitorStatusWindow.Service;
public class Hardware
{
public required HardwareType Type { get; set; }
public required string Identifier { get; set; }
public required string Name { get; set; }
public required IEnumerable<Sensor> Sensors { get; set; }
internal static Hardware Create(LibreHardwareMonitor.Hardware.IHardware hardware)
{
return new Hardware
{
Type = MapHardwareType(hardware.HardwareType),
Name = hardware.Name,
Identifier = hardware.Identifier.ToString(),
Sensors = hardware.Sensors.Select(Sensor.Create)
};
}
private static HardwareType MapHardwareType(LibreHardwareMonitor.Hardware.HardwareType hardwareType)
{
return hardwareType switch
{
LibreHardwareMonitor.Hardware.HardwareType.Motherboard => HardwareType.Motherboard,
LibreHardwareMonitor.Hardware.HardwareType.SuperIO => HardwareType.SuperIo,
LibreHardwareMonitor.Hardware.HardwareType.Cpu => HardwareType.Cpu,
LibreHardwareMonitor.Hardware.HardwareType.Memory => HardwareType.Memory,
LibreHardwareMonitor.Hardware.HardwareType.GpuNvidia => HardwareType.GpuNvidia,
LibreHardwareMonitor.Hardware.HardwareType.GpuAmd => HardwareType.GpuAmd,
LibreHardwareMonitor.Hardware.HardwareType.GpuIntel => HardwareType.GpuIntel,
LibreHardwareMonitor.Hardware.HardwareType.Storage => HardwareType.Storage,
LibreHardwareMonitor.Hardware.HardwareType.Network => HardwareType.Network,
LibreHardwareMonitor.Hardware.HardwareType.Cooler => HardwareType.Cooler,
LibreHardwareMonitor.Hardware.HardwareType.EmbeddedController => HardwareType.EmbeddedController,
LibreHardwareMonitor.Hardware.HardwareType.Psu => HardwareType.Psu,
LibreHardwareMonitor.Hardware.HardwareType.Battery => HardwareType.Battery,
_ => throw new ArgumentOutOfRangeException(nameof(hardwareType), hardwareType, null)
};
}
}