Introduction: ------------- Renderer-service-upnp is a high level d-Bus API that allows client applications to discover and manipulate UPNP and DLNA media renderers. Renderer-service-upnp is a d-Bus service implemented on top of the GUPnP libraries. It is designed to facilitate the creation of Digital Media Controllers (DMCs), in conjunction with media-service-upnp, and to implement the DLNA 2-box push use case. The use of renderer-service-upnp boasts a number of advantages: 1. It provides a language and toolkit neutral API that can be used by any programming environment that supports d-Bus bindings. 2. It exposes high level APIs that are specifically designed for manipulating Digital Media Renderers (DMRs). 3. It reduces network traffic by communicating with Digital Media Renderers on behalf of its clients. This means that the device upon which renderer-service-upnp runs, only downloads and parses a DMR's device and service description files once, regardless of the number of media applications making use of its services. Compilation ------------ Renderer-service-upnp is built using autotools and gcc. It also has a number of dependencies on third party libraries, notably glib, gupnp, gssdp, gupnp-av and libsoup. Both development versions of these libraries and autotools need to be installed before renderer-service-upnp can be compiled. On Ubuntu 11.10 autotools, and the glib and libsoup development libraries can be installed with the following commands. sudo apt-get install autoconf sudo apt-get install libglib2.0-dev sudo apt-get install libsoup2.4-dev The GUPnP libraries in Ubuntu are a little out of date so it is best to download the latest versions of these projects from their source code repositories: git://git.gnome.org/gupnp git://git.gnome.org/gssdp git://git.gnome.org/gupnp-av Renderer-service-upnp should however, compile against older versions of GUPnP, although you might see some warnings. On Ubuntu the development versions of the GUPnP libraries can be installed as follows: sudo apt-get install libgupnp-1.0-dev sudo apt-get install libgupnp-av-1.0-dev sudo apt-get install libgssdp-1.0-dev The development version of d-Bus is also required. This can be installed on Ubuntu by typing: sudo apt-get install libdbus-1-dev Although renderer-service-upnp does not link against the d-Bus libraries, the development version of this package is required by its build system to determine where to install the .service files. Working with the source code repository --------------------------------------- Renderer-service-upnp can be downloaded, compiled and installed as follows: Clone repository # git clone git://github.com/01org/renderer-service-upnp.git # cd renderer-service-upnp Configure and build # ./autoreconf -i # ./configure # make Final installation # sudo make install These instructions are suitable for users who simply want to install and run renderer-service-upnp. However, developers wishing to contribute to the project should follow a separate "Configure and build" step. Configure and build # ./bootstrap-configure # make The script "bootstrap-configure" cleans the repository, calls autreconf and then invokes configure with proper settings for development. These settings include the enabling of maintainer mode and debugging. Developers can remove autogenerated files with the following command # make maintainer-clean Configure Options: ------------------ --enable-werror This option is disabled by default. To enable use --enable-werror. When enabled, all warnings are treated as errors during compilation. Should be enabled during development to ensure that errors do not creep into the code base. This option is enabled by bootstrap-configure. --enable-debug This option is disabled by default. To enable use --enable-debug. When enabled, the make files produce debug builds. This option is enabled by bootstrap-configure. --enable-optimization This option is enabled by default. To disable use --disable-optimization. When enabled it turns on compiler optimizations. Disable = -O0, enable = -O2.