Un environnement applicatif UPnP efficace, flexible et facile à utiliser

# GUPnP

GUPnP est un environnement applicatif libre orienté objet pour la création de périphériques et de points de contrôle UPnP. Il est écrit en C avec GObject et libsoup. L'API de GUPnP se veut efficace, flexible et facile à utiliser.

L'environnement applicatif GUPnP comprend les composants suivants :

GSSDP : la bibliothèque de bas niveau implémentant la découverte et l'annonce de ressources sur le réseau, suivant le protocole SSDP.

GUPnP : la bibliothèque principale qui implémente les spécifications de UPnP : annonce et découverte de ressources, description, contrôle, notification d'événements et présentation (GUPnP inclut la fonctionnalité d'un serveur Web de base, à travers libsoup). GUPnP ne comprends pas de routines d'assistance pour la construction ou le contrôle de ressources spécifiques standardisées (par exemple MediaServer); cette tâche est laissée à des éléments de plus haut niveau, basés sur GUPnP.

GUPnP A/V : une petite bibliothèque utilitaire qui facilite la création et la gestion de profils UPnP A/V.

GUPnP DLNA : une petite bibliothèque utilitaire qui facilite la gestion des tâches liées à DLNA, comme par exemple découvrir le profil du média, transcoder pour un certain profil, etc.

GUPnP IGD : une bibliothèque pour gérer le mappage de ports « Internet Gateway Device » (passerelle internet).

GUPnP Vala : l'interface Vala des bibliothèques GUPnP.

GUPnP Tools : un remplacement libre des outils UPnP de Intel, basé sur GUPnP. Ces outils permettent de tester et déboguer facilement des périphériques UPnP et leurs points de contrôle. Les outils pour client et serveur suivants sont disponibles :

Universal Control Point : un outil qui permet de découvrir des périphériques UPnP et leurs services, de récupérer leurs informations, de s'abonner aux événements et d'invoquer des actions.

Network Light : une ampoule virtuelle qui peut être contrôlée par un point de contrôle. On peut l'allumer, l'éteindre, changer son intensité et interroger son état. L'outil contient aussi une interface graphique simple qui permet de contrôler toutes les ampoules virtuelles disponibles sur le réseau.

AV Control Point : une interface utilisateur de lecteur multimédia très simple, qui permet de découvrir et de jouer du contenu multimédia disponible sur le réseau. C'est en réalité juste un point de contrôle et par conséquent il n'est pas capable de lire lui-même un média. Il s'en remet à des périphériques UPnP externes de type MediaRenderer pour effectivement jouer le contenu.

Upload : un simple utilitaire en ligne de commande qui télécharge des fichiers vers des MediaServers connus. Il utilise « Universal Control Point » pour découvrir les serveurs MediaServers.

L'environnement applicatif GUPnP est né d'une frustration à l'usage de libupnp et de sa gestion des threads hasardeuse. GUPnP utilise un unique thread, bien qu'il soit asynchrone. Il s'intègre avec la boucle principale de GLib. Il fournit les mêmes fonctionnalités que libupnp, tandis qu'il masque les fonctionnements internes de UPnP derrière une élégante conception orientée objet.

GUPnP est un logiciel libre. Toutes ses bibliothèques sont fournies sous la licence GNU LGPL. Les outils GUPnP sont fournis sous la licence GNU GPL.

Vous devriez utiliser GUPnP dès que votre logiciel a besoin de communiquer avec des périphériques UPnP ou DLNA. Par exemple la Playstation 3 de Sony, des télévisions et des téléphones de Samsung, la XBox de Microsoft ou encore tout routeur moderne. La liste est longue et continue de s'agrandir.

Outre l'interaction avec les appareils UPnP existants, GUPnP pourrait aussi être utilisé, avec avantage, pour créer une solution sur réseau local où des périphériques et services peuvent être découverts et interagir entre-eux, ceci sans la moindre configuration de l'utilisateur.

Pour une information complète sur GUPnP, consultez le site Web du projet.