gupnp_logo.png

GUPnP is an elegant, object-oriented open source framework for creating UPnP devices and control points, written in C using GObject and libsoup. The GUPnP API is intended to be easy to use, efficient and flexible. It provides the same set of features as libupnp, but shields the developer from most of UPnP's internals.

Features

The GUPnP framework consists of the following libraries:

  • GSSDP implements resource discovery and announcement over SSDP.
  • GUPnP implements the UPnP specification: resource announcement and discovery, description, control, event notification, and presentation (GUPnP includes basic web server functionality through libsoup). GUPnP does not include helpers for construction or control of specific standardized resources (e.g. MediaServer); this is left for higher level libraries utilizing the GUPnP framework.

  • GUPnP-AV is a collection of helpers for building AV (audio/video) applications using GUPnP.
  • GUPnP-DLNA is a small utility library that aims to ease the DLNA-related tasks such as media profile guessing, transcoding to a given profile, etc.

Official bindings currently exist for the Vala language only. Unofficial bindings also exist for PHP (provided by Alexey Romanenko). Bindings to other languages are provided through gobject-introspection metadata.

Also available is a collection of developer tools utilising GUPnP and GTK+.

Documentation

Download

Download source tarballs of releases from here.

Bugs

No matter how perfect a software is, there are always bugs in it. If you find any, file it here.

Mailing List and IRC

Mailing-list: mailing list IRC: #gupnp channel on irc.gimp.org.

User counter

If you use GUPnP, we would appreciate it if you could bump-up our user counter by simply clicking on "I USE THIS" button at our openhub page.

Development

Development takes place GNOME git repository that can be viewed here:

To clone the latest development version run the following command:

git clone git://git.gnome.org/PACKAGE_NAME

Where PACKAGE_NAME is gssdp, gupnp, gupnp-av, gupnp-tools, gupnp-vala or gupnp-dlna depending on which components you need.

To submit patches please use Bugzilla. There is git-bz to simplify this task.

CodingStyle

GUPnP follows the same coding style as Rygel except:

  • All the rules that can't apply to C language (e.g the rule about use of 'this' operator and error declaration).
  • We follow 8-space indentation.
  • Single line if/for/while/etc blocks must not be enclosed in '{}'.
  • Don't hand-optimize null checks, leave that to compiler. Instead of 'if (some_variable)' you write 'if (some_variable != null)'

Developers

Projects/GUPnP (last edited 2015-09-28 22:55:41 by AndersJonsson)