LenovoLegionToolkit

Форк
0
/
OverclockDiscreteGPUAutomationStep.cs 
40 строк · 1.4 Кб
1
using System;
2
using System.Threading.Tasks;
3
using LenovoLegionToolkit.Lib.Controllers;
4

5
namespace LenovoLegionToolkit.Lib.Automation.Steps;
6

7
public class OverclockDiscreteGPUAutomationStep : IAutomationStep<OverclockDiscreteGPUAutomationStepState>
8
{
9
    private readonly GPUOverclockController _controller = IoCContainer.Resolve<GPUOverclockController>();
10

11
    public OverclockDiscreteGPUAutomationStepState State { get; }
12

13
    public OverclockDiscreteGPUAutomationStep(OverclockDiscreteGPUAutomationStepState state) => State = state;
14

15
    public Task<OverclockDiscreteGPUAutomationStepState[]> GetAllStatesAsync() => Task.FromResult(Enum.GetValues<OverclockDiscreteGPUAutomationStepState>());
16

17
    public Task<bool> IsSupportedAsync() => _controller.IsSupportedAsync();
18

19
    public async Task RunAsync(AutomationEnvironment _)
20
    {
21
        if (!await _controller.IsSupportedAsync().ConfigureAwait(false))
22
            return;
23

24
        var (_, info) = _controller.GetState();
25

26
        switch (State)
27
        {
28
            case OverclockDiscreteGPUAutomationStepState.On:
29
                _controller.SaveState(true, info);
30
                break;
31
            case OverclockDiscreteGPUAutomationStepState.Off:
32
                _controller.SaveState(false, info);
33
                break;
34
        }
35

36
        await _controller.ApplyStateAsync(true).ConfigureAwait(false);
37
    }
38

39
    IAutomationStep IAutomationStep.DeepCopy() => new OverclockDiscreteGPUAutomationStep(State);
40
}
41

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.