<?xml version="1.0" encoding="utf-8"?>
<page xmlns="http://projectmallard.org/1.0/" type="topic" id="gupnp" xml:lang="gl">
<info>
  <link type="guide" xref="index" group="gstreamer"/>
  <desc>Un marco de traballo UPnP doado de usar, eficiente e flexíbel</desc>
  <revision pkgversion="1.0" date="2011-05-17" status="candidate"/>
</info>

<title>GUPnP</title>

<p>GUPnP é un marco de traballo de fontes abertas orientado a obxectos para crear dispositivos UPnP e puntos de control, escrito en C empregando GObject e libsoup. A API de GUPnP pretende ser doado de usar, eficiente e flexíbel.</p>

<p>O marco de traballo GUPnP consiste  nos seguintes paquetes/compoñentes:</p>

<list>

<item><p>GSSDP: unha biblioteca de baixo nivel que implementa o descubrimento e anuncio de recursos en redes mediante o protocolo SSDP.</p></item>

<item><p>GUPnP: a biblioteca principal que implementa a especificación UPnP: anuncio e descubrimento de recursos, descrición, control, notificación de eventos e presentación (GUPnP inclúe a funcionalidade dun servidor web básico mediante libsoup). GUPnP non inclúe axudantes para a construción ou control dos recursos estándarizados específicos (p.ex. MediaServer); isto é para bibliotecas de nivel máis alto empregando o marco de traballo GUPnP.</p></item>

<item><p>GUPnP A/V: A small utility library that aims to ease the handling and implementation of
UPnP A/V profiles.</p></item>

<item><p>GUPnP DLNA: A small utility library that aims to ease the DLNA-related tasks such as media
profile guessing, transcoding to a given profile, etc.</p></item>

<item><p>GUPnP IGD: A library to handle UPnP Internet Gateway Device port mappings.</p></item>

<item><p>GUPnP para Vala: «bindings» Vala para as bibliotecas de GUPnP.</p></item>

<item><p>Ferramentas de GUPnP: substitucións libres para as ferramentas UPnP de Intel. Fornécenlle as ferramentas do lado do cliente e do servidor que lle permiten probar e depurar de forma doada dispositivos e puntos de control UPnP:</p>

<list>

<item><p>Universal Control Point: unha ferramenta que lle permite descubrir dispositivos e servizos, obter información sobre eles, e subscribirse ás eventos e accións invocadas</p></item>

<item><p>Network Light: a virtual light bulb that allows control points to switch it on and off,
change its dimming level and query its current status. It also provides a simple UI to control all
the network lights available on the network.</p></item>

<item><p>AV Control Point: a simple media player UI that enables one to discover and play multimedia
contents available on a network. It is strictly a control point and therefore does not have any
playback capabilities of it's own and relies on external UPnP MediaRenderer devices for actual
playback.</p></item>

<item><p>Upload: unha ferramenta de liña de ordes sinxela para subir ficheiros a MediaServers coñecidos. Use Universal Control Point para descubrir os MediaServers.</p></item>

</list>

</item>

</list>

<p>The GUPnP framework was born out of frustration with libupnp and its mess of threads. GUPnP is
entirely single-threaded (though asynchronous), integrates with the GLib main loop, and provides the
same set of features as libupnp while hiding most of the UPnP internals through an elegant
object-oriented design.</p>

<p>GUPnP é software libre. Todas as bibliotecas son publicadas baixo a GNU LGPL, mentres que as ferramentas GUPnP son publicadas baixo a GNU GPL.</p>

<p>You should use GUPnP whenever you need your code to communicate with any UPnP or DLNA devices.
Examples of such devices includes Sony Playstation 3 and Bravia model TVs, Samsung TVs and phones, Microsoft XBox and all modern router etc. The list of such devices is huge and its increasing.</p>

<p>Apart from dealing with existing UPnP devices, GUPnP can very effectively be used to easily
create custom home network solutions where devices/services are able to discover and interact with
each other without any configuration from user.</p>

<p>Para obter información de GUPnP visite a <link href="http://www.gupnp.org">páxina principal do proxecto</link>.</p>
</page>
