PowerControl: Decompose MenuStack.cs into Options/

This commit is contained in:
Kamil Trzciński 2022-12-19 22:47:10 +01:00
parent ebe1cdba87
commit f207c12935
18 changed files with 660 additions and 528 deletions

View file

@ -0,0 +1,36 @@
using CommonHelpers;
using PowerControl.Helpers;
namespace PowerControl.Options
{
public static class SMT
{
public static Menu.MenuItemWithOptions Instance = new Menu.MenuItemWithOptions()
{
Name = "SMT",
ApplyDelay = 500,
Options = { "No", "Yes" },
ResetValue = () => { return "Yes"; },
CurrentValue = delegate ()
{
if (!RTSS.IsOSDForeground(out var processId))
return null;
if (!ProcessorCores.HasSMTThreads())
return null;
return ProcessorCores.IsUsingSMT(processId.Value) ? "Yes" : "No";
},
ApplyValue = delegate (object selected)
{
if (!RTSS.IsOSDForeground(out var processId))
return null;
if (!ProcessorCores.HasSMTThreads())
return null;
ProcessorCores.SetProcessSMT(processId.Value, selected.ToString() == "Yes");
return ProcessorCores.IsUsingSMT(processId.Value) ? "Yes" : "No";
}
};
}
}