Iluminação dinâmica

Este tópico descreve como seus aplicativos do Windows podem fornecer efeitos de iluminação dinâmica em dispositivos conectados que implementam o padrão aberto Dispositivos de Interface Humana (HID)de Iluminação. Em particular, a especificação LampArray para dispositivos com uma ou mais lâmpadas (luzes, LEDs, bulbos e assim por diante).

Note

A classe Lamp não se aplica à funcionalidade HID LampArray e não é relevante para este tópico.

Overview

A iluminação dinâmica permite Windows que os desenvolvedores de aplicativos e os usuários finais controlem e sincronizem os efeitos de iluminação entre periféricos compatíveis e outros dispositivos conectados. Esses recursos podem ser usados para oferecer experiências coesas que entretêm os usuários, tornam-nos mais produtivos e até mesmo tornam suas experiências em Windows mais acessíveis.

Tipos e plataformas de aplicativos com suporte

  • Win10 versão 1809 (outubro de 2018) e posterior.
    • Aplica-se a aplicativos UWP e Win32 em primeiro plano.
  • Windows 11 Build 23466 (versão prévia) e posterior.
    • Aplica-se a aplicativos UWP e Win32 em primeiro plano e plano de fundo (ambiente).
  • Atualização 1 de março de 2023 do Xbox GDK e posteriores.

Dispositivos e tipos de dispositivo com suporte

  • Teclado ou teclado numérico
  • Rato
  • Controlador de jogo (gamepad, flightstick, volante e assim por diante).
  • Periférico (dispositivos gerais como alto-falantes, mouse pads, microfones, webcams e assim por diante).
  • Cena (dispositivos de ambientes como salas, palcos ou áreas, como lâmpadas, holofotes, luzes estroboscópicas, painéis luminosos, flashes de câmera, entre outros).
  • Notificação (dispositivos de atenção do usuário, como alarmes, assistentes de voz e assim por diante).
  • Chassi (componentes internos do computador, como RAM, placa-mãe, ventilador e assim por diante).
  • Vestível (acessórios como fones de ouvido, relógios, rastreadores fitness, sapatos e assim por diante).
  • Móveis (como cadeiras, mesas, estantes e assim por diante).
  • Arte (como uma pintura ou escultura).
  • Headset (acessórios projetados especificamente para a cabeça, como fones de ouvido ou microfones).

Um aplicativo Windows pode controlar dispositivos HID LampArray quando o aplicativo está em primeiro plano (começando com Windows 10) e quando está em segundo plano (também conhecido como iluminação ambiente, começando com Windows 11).

Priorização do dispositivo

Windows prioriza a iluminação dinâmica com base no estado do aplicativo. Por padrão, um aplicativo em primeiro plano sempre recebe o controle de um dispositivo LampArray, a menos que o usuário tenha especificado o contrário em Configurações. Nos casos em que dois ou mais aplicativos em segundo plano ambiente estão tentando controlar um dispositivo LampArray, o sistema atribuirá controle ao aplicativo priorizado em Configurações.

Iluminação de plano de fundo (ambiente)

As APIs de "ambiente" em Windows.Devices.Lights permitem que aplicativos em segundo plano controlem dispositivos LampArray enquanto o usuário interage com um aplicativo em primeiro plano não relacionado (como aplicativos de música que geram efeitos de iluminação sincronizados).

Os aplicativos podem receber eventos LampArray.AvailabilityChanged , dependendo das configurações do usuário. Em conjunto com a classe DeviceWatcher , os aplicativos podem rastrear e gerenciar todos os dispositivos LampArray conectados/desconectados e ver qual usuário espera que o aplicativo controle. Um exemplo de uso é uma interface do usuário que exibe um ícone para cada dispositivo conectado, com os indisponíveis acinzentados, e inclui links para a página de configurações de Iluminação Dinâmica, na qual o usuário pode fazer alterações nas preferências de aplicativos em primeiro plano e em segundo plano.

Configurações do usuário

Captura de tela da tela de configurações de Iluminação Dinâmica.

Os usuários podem personalizar a experiência do dispositivo LampArray (em primeiro plano e em segundo plano) por meio da tela Configurações –> Personalização –> Iluminação dinâmica .

  1. Quando conectados, os dispositivos compatíveis aparecerão nos cartões de dispositivo na parte superior da página em que os usuários podem alterar as configurações individuais do dispositivo.

  2. As configurações de Iluminação Dinâmica Global estão localizadas abaixo dos cartões de dispositivo (alterações nessas configurações afetam todos os dispositivos conectados).

    1. A alternância Usar Iluminação Dinâmica em meus dispositivos permite que os usuários ativem ou desativem a Iluminação Dinâmica. Quando a Iluminação Dinâmica está desativada, os dispositivos devem funcionar com seu comportamento padrão de Iluminação Não Dinâmica. A iluminação dinâmica inclui um conjunto interno de efeitos básicos.
    2. Os aplicativos compatíveis em primeiro plano sempre controlam a iluminação , permitindo que os usuários ativem ou desativem o comportamento padrão do aplicativo de Iluminação Dinâmica. Quando esse recurso é desativado, um aplicativo em segundo plano pode controlar seus dispositivos associados mesmo quando um aplicativo em primeiro plano que deseja que o controle esteja ativo.
    3. A seção Controle de luz em segundo plano permite que os usuários priorizem aplicativos instalados que se registraram como controladores de plano de fundo ambiente. Arrastar um aplicativo para a parte superior da lista o priorizará e garantirá que ele possa controlar dispositivos em relação a outros aplicativos na lista. As configurações de plano de fundo ambiente estão vinculadas a um dispositivo e à porta em que ele está conectado. Se você desconectar e, em seguida, conectar o LampArray a uma porta (USB) diferente, ele aparecerá como um dispositivo diferente.
    4. O controle deslizante De brilho permite que os usuários definam o brilho do LED em seus dispositivos.
    5. O menu suspenso Effects permite aos usuários selecionar cores e efeitos para seus dispositivos.

    Captura de tela da tela Efeitos das configurações de Iluminação Dinâmica.

Note

Quando um dispositivo não está selecionado para controle de luz em segundo plano, ele opera no "modo autônomo".

Isso é definido na especificação HID como um modo em que o hardware volta ao comportamento padrão, conforme definido por seu firmware. Por exemplo, um dispositivo pode ter um efeito visual pré-programado que é o padrão quando o sistema operacional não está controlando ativamente o dispositivo ou se o usuário optou por não envolvimento do sistema operacional para o dispositivo. O dispositivo deve responder ao comando HID para retornar do modo autônomo para garantir uma interação tranquila com as expectativas do usuário.

Empacotamento e identidade do aplicativo

Os aplicativos de plano de fundo ambiente devem declarar o AppExtension "com.microsoft.windows.lighting" no manifesto do aplicativo (para obter mais detalhes sobre como fazer isso, consulte Criar e hospedar uma extensão de aplicativo). Esse requisito é aplicado pelo AmbientLightingServer, que aceita conexões somente de um AmbientLightingClient em um processo com identidade de pacote (aplicativo empacotado) e que dá suporte à extensão. Esse requisito é necessário para permitir que o usuário defina a política para aplicativos instalados e, em seguida, correlacione essa política em runtime.

A identidade do aplicativo é necessária para aplicativos ambientes, de modo que as preferências do usuário possam ser determinadas em runtime. Depois que um aplicativo é instalado, se ele estiver usando as APIs de ambiente, o sistema precisará correlacionar a instância em execução de um aplicativo com as preferências do usuário. Além disso, disponibilizar seu aplicativo para o usuário nas configurações requer um artefato pós-instalação que indica ao sistema que seu aplicativo é um usuário legítimo das APIs de iluminação ambiente.

Esse requisito de identidade é atendido por meio do empacotamento MSIX (uma tecnologia de implantação e empacotamento da Microsoft, anteriormente chamada de APPX).

Se você já estiver usando o empacotamento MSIX para empacotamento e instalação, não haverá mais requisitos.

Se você tiver um aplicativo não empacotado, haverá etapas adicionais necessárias para obter a identidade do aplicativo. Você pode migrar sua instalação para o MSIX completo ou usar o recurso simplificado de Empacotamento Esparso e Localização Externa do MSIX. O empacotamento esparso com local externo foi projetado para permitir que instalações de aplicativos existentes se beneficiem da identidade do aplicativo sem exigir uma conversão completa da configuração/instalação para MSIX. É uma nova etapa em sua instalação/instalação que usa ferramentas para criar um pacote MSIX para representar o aplicativo que você está instalando.

Você deve definir um manifesto de empacotamento AppXManifest.xml que descreva sua instalação. O pacote MSIX é criado com a ferramenta MakeAppXPackage. No momento da instalação, você instala o pacote MSIX usando uma API Gerenciador de Pacotes que especifica o local do executável instalado. Por conveniência, o script do PowerShell add-appxpackage encapsula esse comportamento de API também. Como alternativa, AddPackageByUriAsync pode ser usado no momento da instalação para instalar o pacote MSIX.

Para instalações de aplicativos sem empacotamento, exige-se também um manifesto side-by-side do aplicativo para seu executável.

Confira a visão geral da implantação para obter uma explicação mais detalhada dos aplicativos empacotados e descompactados.

Exemplos

Exemplo de LampArray

Demonstra como controlar a iluminação RGB de dispositivos periféricos usando o Windows. Devices.Lights e Windows. APIs Devices.Lights.Effects.

Exemplo de AutoRGB

Demonstra como extrair uma única cor representativa de uma tela da área de trabalho e usá-la para iluminar lâmpadas LED em um dispositivo RGB conectado.

Consulte também