Éclairage dynamique

Cette rubrique décrit comment vos applications Windows peuvent fournir des effets d’éclairage dynamiques sur les appareils connectés qui implémentent la norme ouverte Human Interface Devices (HID)Lighting and Illumination. En particulier, la spécification LampArray pour les appareils qui ont une ou plusieurs lampes (lumières, DEL, ampoules, etc.).

API importantes

Vue d’ensemble

La prise en charge de l’éclairage dynamique dans Windows permet aux développeurs d’applications et aux utilisateurs finaux de contrôler et de synchroniser les effets d’éclairage sur les périphériques et autres appareils connectés.

Types d’applications et plateformes pris en charge

  • Win10 version 1809 (octobre 2018) et versions ultérieures.
    • S’applique aux applications UWP et Win32 de premier plan.
  • Windows 11 build 23466 (préversion) et versions ultérieures.
    • S’applique aux applications UWP et Win32 au premier plan et en arrière-plan (ambiant).
  • Xbox GDK March 2023 Update 1 et versions ultérieures.

Périphériques et types d’appareils pris en charge

  • Clavier ou pavé
  • Souris
  • Contrôleur de jeu (manette, stick de vol, volant, etc.).
  • Périphérique (appareils généraux, comme les haut-parleurs, tapis de souris, microphones, webcams, etc.).
  • Scène (appareils de salle/scène/zone, comme les ampoules, projecteurs, lumières stroboscopiques, panneaux d’affichage, flashs d’appareil photo, etc.).
  • Notification (dispositifs pour l’attention des utilisateurs, comme les alarmes, assistants vocaux, etc.).
  • Châssis (composants PC internes comme la RAM, la carte mère, le ventilateur, etc.).
  • Portable (accessoires comme les casques, montres, dispositifs de suivi de fitness, chaussures, etc.).
  • Meubles (comme les chaises, bureaux, bibliothèques, etc.).
  • Art (comme les peintures ou sculptures).
  • Casque (accessoires conçus spécifiquement pour la tête, comme les casques d’écoute ou les microphones).

Une application Windows peut contrôler les appareils HID LampArray lorsque l’application se trouve au premier plan (à compter de Windows 10) et lorsqu’elle se trouve en arrière-plan (ce qu’on appelle également éclairage ambiant, à compter de Windows 11).

Les utilisateurs peuvent personnaliser leur expérience d’appareil LampArray (premier plan et arrière-plan) dans l’écran Paramètres -> Personnalisation -> Éclairage dynamique, ce qui leur permet de synchroniser les appareils de différents fabricants, de contrôler la luminosité et les effets sur les appareils et facteurs de forme sélectionnés, et de hiérarchiser l’accès aux appareils en fonction des applications d’arrière-plan ambiantes. Ces fonctionnalités permettent à vos applications d’amuser les utilisateurs, de les rendre plus productifs, de rendre leurs expériences dans Windows plus accessibles et de fournir des expériences cohérentes sur l’ensemble des appareils compatibles avec l’éclairage dynamique.

Screenshot of the Dynamic Lighting settings screen.

Hiérarchisation des appareils

Windows hiérarchise l’éclairage dynamique en fonction de l’état de l’application. Par défaut, une application de premier plan se voit toujours attribuer le contrôle d’un appareil LampArray, sauf si l’utilisateur a spécifié le contraire dans les Paramètres. Dans les cas où deux applications en arrière-plan ambiant ou plus tentent de contrôler un appareil LampArray, le système attribue le contrôle à l’application prioritaire dans les paramètres.

Éclairage d’arrière-plan (ambiant)

Les API « ambiantes » dans Windows.Devices.Lights permettent aux applications en arrière-plan de contrôler les appareils LampArray pendant que l’utilisateur interagit avec une application non liée au premier plan (par exemple, les applications musicales qui engendrent des effets d’éclairage synchronisés).

Les applications peuvent recevoir des événements LampArray.AvailabilityChanged, en fonction des paramètres utilisateur. Conjointement avec la classe DeviceWatcher, les applications peuvent suivre et gérer tous les appareils LampArray connectés/déconnectés et voir ce que l’utilisateur s’attend à voir l’application contrôler. Un exemple d’utilisation est une interface utilisateur qui affiche une icône pour chaque appareil connecté, grisée si non disponible, et des liens vers la page des paramètres d’éclairage dynamique où l’utilisateur peut apporter des modifications aux préférences d’application au premier plan/en arrière-plan.

Paramètres utilisateur

Les utilisateurs peuvent contrôler et configurer leurs appareils HID LampArray au niveau individuel et global via la page Éclairage dynamique dans Paramètres -> Personnalisation -> Éclairage dynamique. Cette page s’affiche dans les paramètres quand au moins un appareil compatible est connecté au PC.

Screenshot of the Dynamic Lighting settings screen.

  1. Lorsqu’ils sont connectés, les appareils compatibles s’affichent dans les cartes d’appareil en haut de la page, où les utilisateurs peuvent modifier les paramètres d’appareils individuels.

  2. Les paramètres d’éclairage dynamique global se trouvent sous les cartes d’appareil (les modifications apportées à ces paramètres affectent tous les appareils connectés).

    1. Le bouton bascule Utiliser l’éclairage dynamique sur mes appareils permet aux utilisateurs d’activer ou de désactiver l’éclairage dynamique. Lorsque l’éclairage dynamique est désactivé, les appareils devraient fonctionner avec leur comportement d’éclairage non dynamique par défaut. L’éclairage dynamique comprend un ensemble intégré d’effets de base.
    2. L’option Les applications compatibles au premier plan contrôlent toujours l’éclairage permet aux utilisateurs d’activer ou de désactiver le comportement de l’application pour l’éclairage dynamique par défaut. Lorsque cette fonctionnalité est désactivée, une application en arrière-plan peut contrôler ses appareils associés, même lorsqu’une application de premier plan qui souhaite le contrôle est active.
    3. La section Contrôle de la lumière d’arrière-plan permet aux utilisateurs de hiérarchiser les applications installées qui se sont inscrites en tant que contrôleurs d’arrière-plan ambiant. Faire glisser une application en haut de la liste la priorise et garantit qu’elle peut contrôler les appareils sur les autres applications de la liste. Les paramètres d’arrière-plan ambiant sont liés à un appareil et au port sur lequel il est connecté. Si vous débranchez, puis branchez un LampArray sur un autre port (USB), il apparaît sous la forme d’un autre appareil.
    4. Le curseur Luminosité permet aux utilisateurs de définir la luminosité des DEL sur leurs appareils.
    5. La liste déroulante Effets permet aux utilisateurs de sélectionner des couleurs et des effets pour leurs appareils.

    Screenshot of the Dynamic Lighting settings Effects screen.

Remarque

Lorsqu’un appareil n’est pas sélectionné pour le Contrôle de l’éclairage en arrière-plan, il fonctionne en « mode autonome », ce qui signifie que l’appareil rétablit le comportement du microprogramme par défaut.

Empaquetage et identité de l’application

Les applications en arrière-plan ambiant doivent déclarer l’AppExtension « com.microsoft.windows.lighting » dans le manifeste de l’application (pour plus d’informations sur la procédure à suivre, consultez Créer et héberger une extension d’application). Cette exigence est appliquée par AmbientLightingServer, qui accepte uniquement les connexions d’un AmbientLightingClient dans un processus avec l’identité de package (application empaquetée) prenant en charge l’extension. Cette exigence est nécessaire pour permettre à l’utilisateur de définir une stratégie pour les applications installées, puis de mettre en corrélation cette stratégie au moment de l’exécution.

L’identité de l’application est requise pour les applications ambiantes, de sorte que les préférences utilisateur peuvent être déterminées au moment de l’exécution. Une fois qu’une application est installée, si elle utilise les API ambiantes, le système doit mettre en corrélation l’instance en cours d’exécution d’une application avec les préférences de l’utilisateur. En outre, mettre votre application à la disposition de l’utilisateur dans les paramètres nécessite un artefact post-installation qui indique au système que votre application est un utilisateur légitime des API ambiantes.

Cette exigence d’identité est satisfaite via l’empaquetage MSIX.

Si vous utilisez déjà l’empaquetage MSIX pour l’empaquetage et l’installation, il n’y a pas d’autres exigences.

Si vous avez une application non empaquetée, des étapes supplémentaires sont nécessaires pour obtenir l’identité de l’application. Vous pouvez soit migrer votre installation vers un empaquetage MSIX complet, soit utiliser la fonctionnalité Empaquetage épars et emplacement externe simplifiée de MSIX. La fonctionnalité Empaquetage épars et emplacement externe a été conçue pour permettre aux installations d’application existantes de tirer parti de l’identité d’application sans nécessiter une conversion complète de l’installation en MSIX. Il s’agit d’une nouvelle étape de votre installation qui utilise des outils pour créer un package MSIX pour représenter l’application que vous installez.

Vous devez définir un manifeste d’empaquetage AppXManifest.xml qui décrit votre installation. Le package MSIX est créé avec l’outil MakeAppXPackage. Au moment de l’installation, vous installez le package MSIX à l’aide d’une API de gestionnaire de package qui spécifie l’emplacement de votre exécutable installé. Pour des raisons pratiques, le script PowerShell add-appxpackage encapsule également ce comportement d’API. Vous pouvez également utiliser AddPackageByUriAsync au moment de l’installation pour installer le package MSIX.

Pour les installations d’applications non empaquetées, il existe également une exigence de manifeste d’application côte à côte pour votre exécutable.

Consultez la Vue d’ensemble du déploiement pour obtenir une explication plus détaillée des applications empaquetées et non empaquetées.

Glossaire

Les termes et concepts suivants sont utilisés pour décrire différents composants du système ambiant.

  • Mode autonome

    Défini dans la spécification HID en tant que mode où le matériel revient au comportement par défaut tel que défini par son microprogramme. Par exemple, un appareil peut avoir un effet visuel préprogrammé qui utilisé par valeur lorsque le système d’exploitation ne contrôle pas activement l’appareil, ou si l’utilisateur a refusé d’impliquer le système d’exploitation pour l’appareil. L’appareil doit répondre à la commande HID pour revenir du mode autonome afin de garantir une interaction fluide avec les attentes des utilisateurs.

  • Applications ambiantes

    Les consommateurs de l’API Windows.Devices.Lights qui ont également l’identité de package et prennent en charge l’extension d’application requise. Les applications ambiantes reçoivent des notifications de la part d’AmbientLightingClient. Les événements informent l’application des appareils auxquels elle a accès. De cette façon, une application peut afficher l’interface utilisateur énumérant les appareils d’éclairage connectés et griser les appareils actuellement inaccessibles en raison des paramètres de stratégie utilisateur. Les applications ambiantes utilisent les API Windows.Devices.Lights pour générer des effets sur les appareils disponibles.

  • Applet de paramètres

    Stocke les préférences utilisateur par appareil dans la clé de registre HKEY_CURRENT_USER (HKCU). L’utilisateur peut définir par appareil l’ensemble prioritaire d’applications ambiantes pour l’appareil donné. L’utilisateur peut également refuser l’éclairage dynamique.

  • Identité des applications

    Concept de modèle d’application. Une application qui a une identité d’application peut être identifiée par le système au moment de l’exécution.

  • MSIX

    Technologie de déploiement et d’empaquetage Microsoft, anciennement appelée APPX.

Exemples

Exemple de LampArray

Montre comment contrôler l’éclairage RVB des appareils périphériques en utilisant les API Windows.Devices.Lights et Windows.Devices.Lights.Effects.

Exemple AutoRGB

Montre comment extraire une couleur unique et représentative d’un écran de bureau et l’utiliser pour éclairer des lampes DEL sur un appareil RVB connecté.

Voir aussi