LenovoLegionToolkit

Форк
0
/
PanelLogoSpectrumBacklightFeature.cs 
33 строки · 1.2 Кб
1
using System;
2
using System.Threading.Tasks;
3
using LenovoLegionToolkit.Lib.Controllers;
4

5
namespace LenovoLegionToolkit.Lib.Features.PanelLogo;
6

7
public class PanelLogoSpectrumBacklightFeature : IFeature<PanelLogoBacklightState>
8
{
9
    private readonly SpectrumKeyboardBacklightController _controller;
10

11
    public PanelLogoSpectrumBacklightFeature(SpectrumKeyboardBacklightController controller)
12
    {
13
        _controller = controller;
14
    }
15

16
    public async Task<bool> IsSupportedAsync()
17
    {
18
        var isSupported = await _controller.IsSupportedAsync().ConfigureAwait(false);
19
        if (!isSupported)
20
            return false;
21

22
        var (layout, _, _) = await _controller.GetKeyboardLayoutAsync().ConfigureAwait(false);
23
        return layout == SpectrumLayout.Full;
24
    }
25

26
    public Task<PanelLogoBacklightState[]> GetAllStatesAsync() => Task.FromResult(Enum.GetValues<PanelLogoBacklightState>());
27

28
    public async Task<PanelLogoBacklightState> GetStateAsync() => await _controller.GetLogoStatusAsync().ConfigureAwait(false)
29
        ? PanelLogoBacklightState.On
30
        : PanelLogoBacklightState.Off;
31

32
    public Task SetStateAsync(PanelLogoBacklightState state) => _controller.SetLogoStatusAsync(state == PanelLogoBacklightState.On);
33
}
34

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

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

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

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