Imported Upstream version 0.20.12 upstream/0.20.12
authorKévin THIERRY <kevin.thierry@open.eurogiciel.org>
Fri, 21 Nov 2014 08:31:07 +0000 (09:31 +0100)
committerKévin THIERRY <kevin.thierry@open.eurogiciel.org>
Fri, 21 Nov 2014 08:31:07 +0000 (09:31 +0100)
112 files changed:
INSTALL
Makefile.in
NEWS
aclocal.m4
build-aux/compile [new file with mode: 0755]
build-aux/config.guess
build-aux/config.sub
build-aux/depcomp
build-aux/install-sh
build-aux/ltmain.sh
build-aux/missing
build-aux/test-driver [new file with mode: 0755]
config.h.in
configure
configure.ac
doc/Makefile.in
doc/gupnp-docs.xml
doc/gupnp-sections.txt
doc/gupnp.types
doc/html/GUPnPAcl.html [new file with mode: 0644]
doc/html/GUPnPContext.html
doc/html/GUPnPContextManager.html
doc/html/GUPnPControlPoint.html
doc/html/GUPnPDevice.html
doc/html/GUPnPDeviceInfo.html
doc/html/GUPnPDeviceProxy.html
doc/html/GUPnPResourceFactory.html
doc/html/GUPnPRootDevice.html
doc/html/GUPnPService.html
doc/html/GUPnPServiceInfo.html
doc/html/GUPnPServiceProxy.html
doc/html/GUPnPWhiteList.html
doc/html/GUPnPXMLDoc.html
doc/html/annotation-glossary.html
doc/html/api-context.html [new file with mode: 0644]
doc/html/api-device-control.html
doc/html/api-device-impl.html
doc/html/api-device-info.html
doc/html/api-tools.html
doc/html/api-utility.html
doc/html/api.html
doc/html/client-tutorial.html
doc/html/glossary.html
doc/html/gupnp-Error-codes.html
doc/html/gupnp-Special-UPnP-types.html
doc/html/gupnp-binding-tool.html
doc/html/gupnp-gupnp-service-introspection.html
doc/html/gupnp.devhelp2
doc/html/home.png
doc/html/index.html
doc/html/index.sgml
doc/html/ix01.html
doc/html/left-insensitive.png [new file with mode: 0644]
doc/html/left.png
doc/html/overview.html
doc/html/right-insensitive.png [new file with mode: 0644]
doc/html/right.png
doc/html/schemas-device.html
doc/html/schemas-service.html
doc/html/schemas.html
doc/html/server-tutorial.html
doc/html/style.css
doc/html/tutorial.html
doc/html/up-insensitive.png [new file with mode: 0644]
doc/html/up.png
doc/server-tutorial.xml
examples/Makefile.in
examples/light-client.c
examples/light-server.c
gtk-doc.make
gupnp-1.0-uninstalled.pc.in
gupnp-1.0.pc.in
libgupnp/Makefile.am
libgupnp/Makefile.in
libgupnp/gupnp-acl-private.h [new file with mode: 0644]
libgupnp/gupnp-acl.c [new file with mode: 0644]
libgupnp/gupnp-acl.h [new file with mode: 0644]
libgupnp/gupnp-context-manager.c
libgupnp/gupnp-context-private.h
libgupnp/gupnp-context.c
libgupnp/gupnp-context.h
libgupnp/gupnp-device-info.c
libgupnp/gupnp-linux-context-manager.c
libgupnp/gupnp-linux-context-manager.h
libgupnp/gupnp-network-manager.c
libgupnp/gupnp-resource-factory.c
libgupnp/gupnp-root-device.c
libgupnp/gupnp-service-info.c
libgupnp/gupnp-service-info.h
libgupnp/gupnp-service-introspection.c
libgupnp/gupnp-service-proxy.c
libgupnp/gupnp-service-proxy.h
libgupnp/gupnp-service.c
libgupnp/gupnp-white-list.c
libgupnp/gupnp-white-list.h
libgupnp/gupnp-xml-doc.c
libgupnp/gupnp.h
m4/gtk-doc.m4
m4/libtool.m4
packaging/GUPnP.changes [deleted file]
packaging/GUPnP.spec [deleted file]
tests/Makefile.in
tests/gtest/Makefile.am
tests/gtest/Makefile.in
tests/gtest/data/TestBgo696762.xml [deleted file]
tests/gtest/data/TestDevice.xml [new file with mode: 0644]
tests/gtest/data/TestService.xml [moved from tests/gtest/data/ServiceBgo69762.xml with 96% similarity]
tests/gtest/test-bugs.c
tests/test-introspection.c
tools/Makefile.in
vala/GUPnP-1.0.metadata
vala/Makefile.in

diff --git a/INSTALL b/INSTALL
index a1e89e1..2099840 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -1,7 +1,7 @@
 Installation Instructions
 *************************
 
-Copyright (C) 1994-1996, 1999-2002, 2004-2011 Free Software Foundation,
+Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation,
 Inc.
 
    Copying and distribution of this file, with or without modification,
@@ -12,8 +12,8 @@ without warranty of any kind.
 Basic Installation
 ==================
 
-   Briefly, the shell commands `./configure; make; make install' should
-configure, build, and install this package.  The following
+   Briefly, the shell command `./configure && make && make install'
+should configure, build, and install this package.  The following
 more-detailed instructions are generic; see the `README' file for
 instructions specific to this package.  Some packages provide this
 `INSTALL' file but do not implement all of the features documented
@@ -309,9 +309,10 @@ causes the specified `gcc' to be used as the C compiler (unless it is
 overridden in the site shell script).
 
 Unfortunately, this technique does not work for `CONFIG_SHELL' due to
-an Autoconf bug.  Until the bug is fixed you can use this workaround:
+an Autoconf limitation.  Until the limitation is lifted, you can use
+this workaround:
 
-     CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
+     CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
 
 `configure' Invocation
 ======================
@@ -367,4 +368,3 @@ operates.
 
 `configure' also accepts some other, not widely useful, options.  Run
 `configure --help' for more details.
-
index 10a9163..cd9fbba 100644 (file)
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \  ]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -53,13 +80,19 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = .
-DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
-       $(srcdir)/Makefile.in $(srcdir)/config.h.in \
-       $(srcdir)/gupnp-1.0-uninstalled.pc.in \
-       $(srcdir)/gupnp-1.0.pc.in $(top_srcdir)/configure AUTHORS \
-       COPYING ChangeLog INSTALL NEWS build-aux/config.guess \
-       build-aux/config.sub build-aux/depcomp build-aux/install-sh \
-       build-aux/ltmain.sh build-aux/missing
+DIST_COMMON = INSTALL NEWS README AUTHORS ChangeLog \
+       $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+       $(top_srcdir)/configure $(am__configure_deps) \
+       $(srcdir)/config.h.in $(srcdir)/gupnp-1.0.pc.in \
+       $(srcdir)/gupnp-1.0-uninstalled.pc.in COPYING \
+       build-aux/compile build-aux/config.guess build-aux/config.sub \
+       build-aux/install-sh build-aux/missing build-aux/ltmain.sh \
+       $(top_srcdir)/build-aux/compile \
+       $(top_srcdir)/build-aux/config.guess \
+       $(top_srcdir)/build-aux/config.sub \
+       $(top_srcdir)/build-aux/install-sh \
+       $(top_srcdir)/build-aux/ltmain.sh \
+       $(top_srcdir)/build-aux/missing
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/gtk-doc.m4 \
        $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
@@ -74,21 +107,28 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = config.h
 CONFIG_CLEAN_FILES = gupnp-1.0.pc gupnp-1.0-uninstalled.pc
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 AM_V_GEN = $(am__v_GEN_@AM_V@)
 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-       html-recursive info-recursive install-data-recursive \
-       install-dvi-recursive install-exec-recursive \
-       install-html-recursive install-info-recursive \
-       install-pdf-recursive install-ps-recursive install-recursive \
-       installcheck-recursive installdirs-recursive pdf-recursive \
-       ps-recursive uninstall-recursive
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+       ctags-recursive dvi-recursive html-recursive info-recursive \
+       install-data-recursive install-dvi-recursive \
+       install-exec-recursive install-html-recursive \
+       install-info-recursive install-pdf-recursive \
+       install-ps-recursive install-recursive installcheck-recursive \
+       installdirs-recursive pdf-recursive ps-recursive \
+       tags-recursive uninstall-recursive
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -125,11 +165,33 @@ am__installdirs = "$(DESTDIR)$(pkgconfigdir)"
 DATA = $(pkgconfig_DATA)
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-       $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
-       distdir dist dist-all distcheck
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
+       cscope distdir dist dist-all distcheck
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
+       $(LISP)config.h.in
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+CSCOPE = cscope
 DIST_SUBDIRS = $(SUBDIRS)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 distdir = $(PACKAGE)-$(VERSION)
@@ -140,6 +202,7 @@ am__remove_distdir = \
       && rm -rf "$(distdir)" \
       || { sleep 5 && rm -rf "$(distdir)"; }; \
   else :; fi
+am__post_remove_distdir = $(am__remove_distdir)
 am__relativize = \
   dir0=`pwd`; \
   sed_first='s,^\([^/]*\)/.*$$,\1,'; \
@@ -167,6 +230,7 @@ am__relativize = \
   reldir="$$dir2"
 GZIP_ENV = --best
 DIST_ARCHIVES = $(distdir).tar.xz
+DIST_TARGETS = dist-xz
 distuninstallcheck_listfiles = find . -type f -print
 am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
   | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
@@ -198,17 +262,17 @@ ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
 FGREP = @FGREP@
-GIO_CFLAGS = @GIO_CFLAGS@
-GIO_LIBS = @GIO_LIBS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
 GREP = @GREP@
 GTHREAD_CFLAGS = @GTHREAD_CFLAGS@
 GTHREAD_LIBS = @GTHREAD_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
+HAVE_IFADDRS_H = @HAVE_IFADDRS_H@
 HAVE_NETLINK = @HAVE_NETLINK@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -261,6 +325,7 @@ SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
 USE_NETLINK = @USE_NETLINK@
+UUID_LIBS = @UUID_LIBS@
 VAPIGEN = @VAPIGEN@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
@@ -368,8 +433,8 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 $(am__aclocal_m4_deps):
 
 config.h: stamp-h1
-       @if test ! -f $@; then rm -f stamp-h1; else :; fi
-       @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi
+       @test -f $@ || rm -f stamp-h1
+       @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1
 
 stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
        @rm -f stamp-h1
@@ -417,22 +482,25 @@ uninstall-pkgconfigDATA:
        dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir)
 
 # This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
-       @fail= failcom='exit 1'; \
-       for f in x $$MAKEFLAGS; do \
-         case $$f in \
-           *=* | --[!k]*);; \
-           *k*) failcom='fail=yes';; \
-         esac; \
-       done; \
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+       @fail=; \
+       if $(am__make_keepgoing); then \
+         failcom='fail=yes'; \
+       else \
+         failcom='exit 1'; \
+       fi; \
        dot_seen=no; \
        target=`echo $@ | sed s/-recursive//`; \
-       list='$(SUBDIRS)'; for subdir in $$list; do \
+       case "$@" in \
+         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+         *) list='$(SUBDIRS)' ;; \
+       esac; \
+       for subdir in $$list; do \
          echo "Making $$target in $$subdir"; \
          if test "$$subdir" = "."; then \
            dot_seen=yes; \
@@ -447,57 +515,12 @@ $(RECURSIVE_TARGETS):
          $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
        fi; test -z "$$fail"
 
-$(RECURSIVE_CLEAN_TARGETS):
-       @fail= failcom='exit 1'; \
-       for f in x $$MAKEFLAGS; do \
-         case $$f in \
-           *=* | --[!k]*);; \
-           *k*) failcom='fail=yes';; \
-         esac; \
-       done; \
-       dot_seen=no; \
-       case "$@" in \
-         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-         *) list='$(SUBDIRS)' ;; \
-       esac; \
-       rev=''; for subdir in $$list; do \
-         if test "$$subdir" = "."; then :; else \
-           rev="$$subdir $$rev"; \
-         fi; \
-       done; \
-       rev="$$rev ."; \
-       target=`echo $@ | sed s/-recursive//`; \
-       for subdir in $$rev; do \
-         echo "Making $$target in $$subdir"; \
-         if test "$$subdir" = "."; then \
-           local_target="$$target-am"; \
-         else \
-           local_target="$$target"; \
-         fi; \
-         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-         || eval $$failcom; \
-       done && test -z "$$fail"
-tags-recursive:
-       list='$(SUBDIRS)'; for subdir in $$list; do \
-         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-       done
-ctags-recursive:
-       list='$(SUBDIRS)'; for subdir in $$list; do \
-         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-       done
+ID: $(am__tagged_files)
+       $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-       unique=`for i in $$list; do \
-           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-         done | \
-         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-             END { if (nonempty) { for (i in files) print i; }; }'`; \
-       mkid -fID $$unique
-tags: TAGS
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
-               $(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
        set x; \
        here=`pwd`; \
        if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -513,12 +536,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
              set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
          fi; \
        done; \
-       list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
-       unique=`for i in $$list; do \
-           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-         done | \
-         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       $(am__define_uniq_tagged_files); \
        shift; \
        if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
          test -n "$$unique" || unique=$$empty_fix; \
@@ -530,15 +548,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
              $$unique; \
          fi; \
        fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
-               $(TAGS_FILES) $(LISP)
-       list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
-       unique=`for i in $$list; do \
-           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-         done | \
-         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-             END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       $(am__define_uniq_tagged_files); \
        test -z "$(CTAGS_ARGS)$$unique" \
          || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
             $$unique
@@ -547,9 +561,31 @@ GTAGS:
        here=`$(am__cd) $(top_builddir) && pwd` \
          && $(am__cd) $(top_srcdir) \
          && gtags -i $(GTAGS_ARGS) "$$here"
+cscope: cscope.files
+       test ! -s cscope.files \
+         || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
+clean-cscope:
+       -rm -f cscope.files
+cscope.files: clean-cscope cscopelist
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+       list='$(am__tagged_files)'; \
+       case "$(srcdir)" in \
+         [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+         *) sdir=$(subdir)/$(srcdir) ;; \
+       esac; \
+       for i in $$list; do \
+         if test -f "$$i"; then \
+           echo "$(subdir)/$$i"; \
+         else \
+           echo "$$sdir/$$i"; \
+         fi; \
+       done >> $(top_builddir)/cscope.files
 
 distclean-tags:
        -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+       -rm -f cscope.out cscope.in.out cscope.po.out cscope.files
 
 distdir: $(DISTFILES)
        $(am__remove_distdir)
@@ -617,39 +653,41 @@ distdir: $(DISTFILES)
        || chmod -R a+r "$(distdir)"
 dist-gzip: distdir
        tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
-       $(am__remove_distdir)
+       $(am__post_remove_distdir)
 
 dist-bzip2: distdir
        tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
-       $(am__remove_distdir)
+       $(am__post_remove_distdir)
 
 dist-lzip: distdir
        tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
-       $(am__remove_distdir)
-
-dist-lzma: distdir
-       tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
-       $(am__remove_distdir)
+       $(am__post_remove_distdir)
 dist-xz: distdir
        tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
-       $(am__remove_distdir)
+       $(am__post_remove_distdir)
 
 dist-tarZ: distdir
+       @echo WARNING: "Support for shar distribution archives is" \
+                      "deprecated." >&2
+       @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
        tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
-       $(am__remove_distdir)
+       $(am__post_remove_distdir)
 
 dist-shar: distdir
+       @echo WARNING: "Support for distribution archives compressed with" \
+                      "legacy program 'compress' is deprecated." >&2
+       @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
        shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
-       $(am__remove_distdir)
+       $(am__post_remove_distdir)
 
 dist-zip: distdir
        -rm -f $(distdir).zip
        zip -rq $(distdir).zip $(distdir)
-       $(am__remove_distdir)
+       $(am__post_remove_distdir)
 
-dist dist-all: distdir
-       tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
-       $(am__remove_distdir)
+dist dist-all:
+       $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
+       $(am__post_remove_distdir)
 
 # This target untars the dist file and tries a VPATH configuration.  Then
 # it guarantees that the distribution is self-contained by making another
@@ -660,8 +698,6 @@ distcheck: dist
          GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
        *.tar.bz2*) \
          bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
-       *.tar.lzma*) \
-         lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
        *.tar.lz*) \
          lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
        *.tar.xz*) \
@@ -673,18 +709,19 @@ distcheck: dist
        *.zip*) \
          unzip $(distdir).zip ;;\
        esac
-       chmod -R a-w $(distdir); chmod u+w $(distdir)
-       mkdir $(distdir)/_build
-       mkdir $(distdir)/_inst
+       chmod -R a-w $(distdir)
+       chmod u+w $(distdir)
+       mkdir $(distdir)/_build $(distdir)/_inst
        chmod a-w $(distdir)
        test -d $(distdir)/_build || exit 0; \
        dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
          && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
          && am__cwd=`pwd` \
          && $(am__cd) $(distdir)/_build \
-         && ../configure --srcdir=.. --prefix="$$dc_install_base" \
+         && ../configure \
            $(AM_DISTCHECK_CONFIGURE_FLAGS) \
            $(DISTCHECK_CONFIGURE_FLAGS) \
+           --srcdir=.. --prefix="$$dc_install_base" \
          && $(MAKE) $(AM_MAKEFLAGS) \
          && $(MAKE) $(AM_MAKEFLAGS) dvi \
          && $(MAKE) $(AM_MAKEFLAGS) check \
@@ -707,7 +744,7 @@ distcheck: dist
          && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
          && cd "$$am__cwd" \
          || exit 1
-       $(am__remove_distdir)
+       $(am__post_remove_distdir)
        @(echo "$(distdir) archives ready for distribution: "; \
          list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
          sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
@@ -846,25 +883,24 @@ ps-am:
 
 uninstall-am: uninstall-pkgconfigDATA
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \
-       ctags-recursive install-am install-strip tags-recursive
-
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-       all all-am am--refresh check check-am clean clean-generic \
-       clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \
-       dist-gzip dist-lzip dist-lzma dist-shar dist-tarZ dist-xz \
-       dist-zip distcheck distclean distclean-generic distclean-hdr \
-       distclean-libtool distclean-tags distcleancheck distdir \
-       distuninstallcheck dvi dvi-am html html-am info info-am \
-       install install-am install-data install-data-am install-dvi \
-       install-dvi-am install-exec install-exec-am install-html \
-       install-html-am install-info install-info-am install-man \
-       install-pdf install-pdf-am install-pkgconfigDATA install-ps \
-       install-ps-am install-strip installcheck installcheck-am \
-       installdirs installdirs-am maintainer-clean \
+.MAKE: $(am__recursive_targets) all install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
+       am--refresh check check-am clean clean-cscope clean-generic \
+       clean-libtool cscope cscopelist-am ctags ctags-am dist \
+       dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \
+       dist-xz dist-zip distcheck distclean distclean-generic \
+       distclean-hdr distclean-libtool distclean-tags distcleancheck \
+       distdir distuninstallcheck dvi dvi-am html html-am info \
+       info-am install install-am install-data install-data-am \
+       install-dvi install-dvi-am install-exec install-exec-am \
+       install-html install-html-am install-info install-info-am \
+       install-man install-pdf install-pdf-am install-pkgconfigDATA \
+       install-ps install-ps-am install-strip installcheck \
+       installcheck-am installdirs installdirs-am maintainer-clean \
        maintainer-clean-generic mostlyclean mostlyclean-generic \
-       mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
-       uninstall uninstall-am uninstall-pkgconfigDATA
+       mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
+       uninstall-am uninstall-pkgconfigDATA
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/NEWS b/NEWS
index 7aec806..99ba0dd 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,7 +1,159 @@
-0.20.5
+0.20.12
+=======
+
+Changes since 0.20.11:
+
+- Several documentation fixes.
+- Fix warning from clang.
+- Prevent a critical if there's no DBus available and a DBus-based context
+  manager is used.
+- Don't try to use a DBus context manager if we don't have a system bus.
+- Use g_return_val_if_fail.
+- Fix a small leak of CallbackData in GUPnPServiceProxy.
+- Add a gupnp_service_proxy_add_notify_full variant to be nice to
+  gobject-introspection.
+- Several code cleanups.
+- Fix a reference leak in ACL.
+- Make "document" property of GUPnPDeviceInfo readable.
+- Add gupnp_service_proxy_add_raw_notify which can be used to get the raw
+  xmlDoc received through notification.
+
+Bugs fixed in this release:
+ - https://bugzilla.gnome.org/show_bug.cgi?id=701446
+ - https://bugzilla.gnome.org/show_bug.cgi?id=706123
+ - https://bugzilla.gnome.org/show_bug.cgi?id=706127
+ - https://bugzilla.gnome.org/show_bug.cgi?id=727709
+ - https://bugzilla.gnome.org/show_bug.cgi?id=729827
+ - https://bugzilla.gnome.org/show_bug.cgi?id=730359
+ - https://bugzilla.gnome.org/show_bug.cgi?id=730690
+
+All contributors to this release:
+ - Jens Georg <mail@jensge.org>
+ - Philip Withnall <philip.withnall@collabora.co.uk>
+
+0.20.11
+=======
+
+Changes since 0.20.10:
+
+- Disable the Unix context manager on Android.
+- Fix Windows compilation.
+- Fix a memory leak in Linux context manager.
+- Fix libuuid dependencies in pkg-config files.
+- Implement a simple ACL infrastructure.
+
+
+Bugs fixed in this release:
+ - https://bugzilla.gnome.org/show_bug.cgi?id=711027
+ - https://bugzilla.gnome.org/show_bug.cgi?id=723715
+ - https://bugzilla.gnome.org/show_bug.cgi?id=727539
+ - https://bugzilla.gnome.org/show_bug.cgi?id=728889
+
+All contributors to this release:
+ - Philip Withnall <philip.withnall@collabora.co.uk>
+ - Jens Georg <mail@jensge.org>
+ - Olivier Crête <olivier.crete@collabora.com>
+ - Luciana Fujii <luciana.fujii@collabora.com>
+
+0.20.10
+=======
+
+Changes since 0.20.9:
+
+- Make sure ResourceFactory creates proxies with the correct GType.
+- Make it possible to unsubscribe from a service proxy during a call-back.
+- Disable managed RootDevices on WL change in addition to ControlPoints.
+
+Bugs fixed in this release:
+ - https://bugzilla.gnome.org/show_bug.cgi?id=678701
+ - https://bugzilla.gnome.org/show_bug.cgi?id=690400
+ - https://bugzilla.gnome.org/show_bug.cgi?id=711332
+
+All contributors to this release:
+ - Jussi Kukkonen <jussi.kukkonen@intel.com>
+ - Jens Georg <mail@jensge.org>
+
+0.20.9
+======
+
+Changes since 0.20.8:
+
+- Enforce HTTP 1.1 for device description requests.
+- Add libuuid to Requires.private of pkg-config file.
+- Deprecate gupnp_service_proxy_{begin,send}_action_hash as they cannot
+  guarantee the argument order.
+- Add gupnp_service_info_get_introspection_async_full() that makes it possible
+  to cancel an introspcetion request using GCancellable.
+- Fix a crash when running with GSSDP < 0.14.6.
+
+Bugs fixed in this release:
+ - https://bugzilla.gnome.org/show_bug.cgi?id=704867
+ - https://bugzilla.gnome.org/show_bug.cgi?id=710491
+ - https://bugzilla.gnome.org/show_bug.cgi?id=711027
+ - https://bugzilla.gnome.org/show_bug.cgi?id=711167
+ - https://bugzilla.gnome.org/show_bug.cgi?id=720369
+ - https://bugzilla.gnome.org/show_bug.cgi?id=720372
+
+All contributors to this release:
+ - Jussi Kukkonen <jussi.kukkonen@intel.com>
+ - Jens Georg <mail@jensge.org>
+ - Philip Withnall <philip.withnall@collabora.co.uk>
+ - Parthiban Balasubramanian <p.balasubramanian@cablelabs.com>
+
+0.20.8
+======
+
+Changes since 0.20.7:
+- Minor compilation and style fixes in the Linux CM.
+- Add gupnp_white_list_add_entryv utility function.
+- Use "port" property to set "msearch-port" property on base class.
+- Other style fixes
+
+Bugs fixed in this release:
+ - https://bugzilla.gnome.org/show_bug.cgi?id=711015
+
+All contributors to this release:
+ - Jens Georg <mail@jensge.org>
+
+0.20.7
+======
+
+Changes since 0.20.6:
+- Fix GCC warnings about local includes.
+- Do not hand out libxml2-allocated strings.
+- Fix a crash when a notification host was not available.
+- Always call action call-back asynchronously, even when there was an error.
+- Add performance measurement options to light-server/-client.
+
+Bugs fixed in this release:
+ - https://bugzilla.gnome.org/show_bug.cgi?id=669729
+ - https://bugzilla.gnome.org/show_bug.cgi?id=703263
+ - https://bugzilla.gnome.org/show_bug.cgi?id=708162
+ - https://bugzilla.gnome.org/show_bug.cgi?id=708575
+ - https://bugzilla.gnome.org/show_bug.cgi?id=708751
+
+All contributors to this release:
+ - Jens Georg <mail@jensge.org>
+ - Andrzej Bieniek <andyhelp@gmail.com>
+ - Emanuele Aina <emanuele.aina@collabora.com>
+
+0.20.6
 ======
 
 Changes since 0.20.5:
+ - Don't do excessive network rescans.
+
+Bugs fixed in this release:
+ - https://bugzilla.gnome.org/show_bug.cgi?id=706996
+
+All contributors to this release:
+ - Ludovic Ferrandis <ludovic.ferrandis@intel.com>
+ - Jens Georg <mail@jensge.org>
+
+0.20.5
+======
+
+Changes since 0.20.4:
  - Add some missing G_{BEGIN,END}_DECLS guards.
  - Fix uninitialized variable use introduced in previous version.
  - Add simple network device whitelisting infrastructure.
index c5649ce..cfa324e 100644 (file)
@@ -1,8 +1,7 @@
-# generated automatically by aclocal 1.11.6 -*- Autoconf -*-
+# generated automatically by aclocal 1.14.1 -*- Autoconf -*-
+
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
 
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation,
-# Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
+m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
 [m4_warning([this file was generated for autoconf 2.69.
 You have another version of autoconf.  It may work, but is not guaranteed to.
 If you have problems, you may need to regenerate the build system entirely.
-To do so, use the procedure documented by the package, typically `autoreconf'.])])
+To do so, use the procedure documented by the package, typically 'autoreconf'.])])
 
 # pkg.m4 - Macros to locate and utilise pkg-config.            -*- Autoconf -*-
 # serial 1 (pkg-config-0.24)
@@ -180,25 +180,22 @@ else
 fi[]dnl
 ])# PKG_CHECK_MODULES
 
-# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 2002-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 1
-
 # AM_AUTOMAKE_VERSION(VERSION)
 # ----------------------------
 # Automake X.Y traces this macro to ensure aclocal.m4 has been
 # generated from the m4 files accompanying Automake X.Y.
 # (This private macro should not be called outside this file.)
 AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.11'
+[am__api_version='1.14'
 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
 dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [1.11.6], [],
+m4_if([$1], [1.14.1], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -214,24 +211,22 @@ m4_define([_AM_AUTOCONF_VERSION], [])
 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.11.6])dnl
+[AM_AUTOMAKE_VERSION([1.14.1])dnl
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
 
 # AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
 
-# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 1
-
 # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
-# $ac_aux_dir to `$srcdir/foo'.  In other projects, it is set to
-# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
+# $ac_aux_dir to '$srcdir/foo'.  In other projects, it is set to
+# '$srcdir', '$srcdir/..', or '$srcdir/../..'.
 #
 # Of course, Automake must honor this variable whenever it calls a
 # tool from the auxiliary directory.  The problem is that $srcdir (and
@@ -250,7 +245,7 @@ _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
 #
 # The reason of the latter failure is that $top_srcdir and $ac_aux_dir
 # are both prefixed by $srcdir.  In an in-source build this is usually
-# harmless because $srcdir is `.', but things will broke when you
+# harmless because $srcdir is '.', but things will broke when you
 # start a VPATH build or use an absolute $srcdir.
 #
 # So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
@@ -276,22 +271,19 @@ am_aux_dir=`cd $ac_aux_dir && pwd`
 
 # AM_CONDITIONAL                                            -*- Autoconf -*-
 
-# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1997-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 9
-
 # AM_CONDITIONAL(NAME, SHELL-CONDITION)
 # -------------------------------------
 # Define a conditional.
 AC_DEFUN([AM_CONDITIONAL],
-[AC_PREREQ(2.52)dnl
ifelse([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
-       [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+[AC_PREREQ([2.52])dnl
m4_if([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
+       [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
 AC_SUBST([$1_TRUE])dnl
 AC_SUBST([$1_FALSE])dnl
 _AM_SUBST_NOTMAKE([$1_TRUE])dnl
@@ -310,16 +302,14 @@ AC_CONFIG_COMMANDS_PRE(
 Usually this means the macro was only invoked conditionally.]])
 fi])])
 
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009,
-# 2010, 2011 Free Software Foundation, Inc.
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 12
 
-# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
+# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be
 # written in clear, in which case automake, when reading aclocal.m4,
 # will think it sees a *use*, and therefore will trigger all it's
 # C support machinery.  Also note that it means that autoscan, seeing
@@ -329,7 +319,7 @@ fi])])
 # _AM_DEPENDENCIES(NAME)
 # ----------------------
 # See how the compiler implements dependency checking.
-# NAME is "CC", "CXX", "GCJ", or "OBJC".
+# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC".
 # We try a few techniques and use that to set a single cache variable.
 #
 # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
@@ -342,12 +332,13 @@ AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
 AC_REQUIRE([AM_MAKE_INCLUDE])dnl
 AC_REQUIRE([AM_DEP_TRACK])dnl
 
-ifelse([$1], CC,   [depcc="$CC"   am_compiler_list=],
-       [$1], CXX,  [depcc="$CXX"  am_compiler_list=],
-       [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
-       [$1], UPC,  [depcc="$UPC"  am_compiler_list=],
-       [$1], GCJ,  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
-                   [depcc="$$1"   am_compiler_list=])
+m4_if([$1], [CC],   [depcc="$CC"   am_compiler_list=],
+      [$1], [CXX],  [depcc="$CXX"  am_compiler_list=],
+      [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+      [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'],
+      [$1], [UPC],  [depcc="$UPC"  am_compiler_list=],
+      [$1], [GCJ],  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
+                    [depcc="$$1"   am_compiler_list=])
 
 AC_CACHE_CHECK([dependency style of $depcc],
                [am_cv_$1_dependencies_compiler_type],
@@ -355,8 +346,8 @@ AC_CACHE_CHECK([dependency style of $depcc],
   # We make a subdir and do the tests there.  Otherwise we can end up
   # making bogus files that we don't know about and never remove.  For
   # instance it was reported that on HP-UX the gcc test will end up
-  # making a dummy file named `D' -- because `-MD' means `put the output
-  # in D'.
+  # making a dummy file named 'D' -- because '-MD' means "put the output
+  # in D".
   rm -rf conftest.dir
   mkdir conftest.dir
   # Copy depcomp to subdir because otherwise we won't find it if we're
@@ -396,16 +387,16 @@ AC_CACHE_CHECK([dependency style of $depcc],
     : > sub/conftest.c
     for i in 1 2 3 4 5 6; do
       echo '#include "conftst'$i'.h"' >> sub/conftest.c
-      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
-      # Solaris 8's {/usr,}/bin/sh.
-      touch sub/conftst$i.h
+      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+      # Solaris 10 /bin/sh.
+      echo '/* dummy */' > sub/conftst$i.h
     done
     echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
 
-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # We check with '-c' and '-o' for the sake of the "dashmstdout"
     # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle `-M -o', and we need to detect this.  Also, some Intel
-    # versions had trouble with output in subdirs
+    # handle '-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs.
     am__obj=sub/conftest.${OBJEXT-o}
     am__minus_obj="-o $am__obj"
     case $depmode in
@@ -414,8 +405,8 @@ AC_CACHE_CHECK([dependency style of $depcc],
       test "$am__universal" = false || continue
       ;;
     nosideeffect)
-      # after this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested
+      # After this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested.
       if test "x$enable_dependency_tracking" = xyes; then
        continue
       else
@@ -423,7 +414,7 @@ AC_CACHE_CHECK([dependency style of $depcc],
       fi
       ;;
     msvc7 | msvc7msys | msvisualcpp | msvcmsys)
-      # This compiler won't grok `-c -o', but also, the minuso test has
+      # This compiler won't grok '-c -o', but also, the minuso test has
       # not run yet.  These depmodes are late enough in the game, and
       # so weak that their functioning should not be impacted.
       am__obj=conftest.${OBJEXT-o}
@@ -471,7 +462,7 @@ AM_CONDITIONAL([am__fastdep$1], [
 # AM_SET_DEPDIR
 # -------------
 # Choose a directory name for dependency files.
-# This macro is AC_REQUIREd in _AM_DEPENDENCIES
+# This macro is AC_REQUIREd in _AM_DEPENDENCIES.
 AC_DEFUN([AM_SET_DEPDIR],
 [AC_REQUIRE([AM_SET_LEADING_DOT])dnl
 AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
@@ -481,9 +472,13 @@ AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
 # AM_DEP_TRACK
 # ------------
 AC_DEFUN([AM_DEP_TRACK],
-[AC_ARG_ENABLE(dependency-tracking,
-[  --disable-dependency-tracking  speeds up one-time build
-  --enable-dependency-tracking   do not reject slow dependency extractors])
+[AC_ARG_ENABLE([dependency-tracking], [dnl
+AS_HELP_STRING(
+  [--enable-dependency-tracking],
+  [do not reject slow dependency extractors])
+AS_HELP_STRING(
+  [--disable-dependency-tracking],
+  [speeds up one-time build])])
 if test "x$enable_dependency_tracking" != xno; then
   am_depcomp="$ac_aux_dir/depcomp"
   AMDEPBACKSLASH='\'
@@ -498,20 +493,18 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl
 
 # Generate code to set up dependency tracking.              -*- Autoconf -*-
 
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-#serial 5
 
 # _AM_OUTPUT_DEPENDENCY_COMMANDS
 # ------------------------------
 AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
 [{
-  # Autoconf 2.62 quotes --file arguments for eval, but not when files
+  # Older Autoconf quotes --file arguments for eval, but not when files
   # are listed without --file.  Let's play safe and only enable the eval
   # if we detect the quoting.
   case $CONFIG_FILES in
@@ -524,7 +517,7 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
     # Strip MF so we end up with the name of the file.
     mf=`echo "$mf" | sed -e 's/:.*$//'`
     # Check whether this is an Automake generated Makefile or not.
-    # We used to match only the files named `Makefile.in', but
+    # We used to match only the files named 'Makefile.in', but
     # some people rename them; so instead we look at the file content.
     # Grep'ing the first line is not enough: some people post-process
     # each Makefile.in and add a new line on top of each file to say so.
@@ -536,21 +529,19 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
       continue
     fi
     # Extract the definition of DEPDIR, am__include, and am__quote
-    # from the Makefile without running `make'.
+    # from the Makefile without running 'make'.
     DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
     test -z "$DEPDIR" && continue
     am__include=`sed -n 's/^am__include = //p' < "$mf"`
-    test -z "am__include" && continue
+    test -z "$am__include" && continue
     am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
-    # When using ansi2knr, U may be empty or an underscore; expand it
-    U=`sed -n 's/^U = //p' < "$mf"`
     # Find all dependency output files, they are included files with
     # $(DEPDIR) in their names.  We invoke sed twice because it is the
     # simplest approach to changing $(DEPDIR) to its actual value in the
     # expansion.
     for file in `sed -n "
       s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
-        sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+        sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
       # Make sure the directory exists.
       test -f "$dirpart/$file" && continue
       fdir=`AS_DIRNAME(["$file"])`
@@ -568,7 +559,7 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
 # This macro should only be invoked once -- use via AC_REQUIRE.
 #
 # This code is only required when automatic dependency tracking
-# is enabled.  FIXME.  This creates each `.P' file that we will
+# is enabled.  FIXME.  This creates each '.P' file that we will
 # need in order to bootstrap the dependency handling code.
 AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
 [AC_CONFIG_COMMANDS([depfiles],
@@ -578,18 +569,21 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
 
 # Do all the work for Automake.                             -*- Autoconf -*-
 
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 16
-
 # This macro actually does too much.  Some checks are only needed if
 # your package does certain things.  But this isn't really a big deal.
 
+dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O.
+m4_define([AC_PROG_CC],
+m4_defn([AC_PROG_CC])
+[_AM_PROG_CC_C_O
+])
+
 # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
 # AM_INIT_AUTOMAKE([OPTIONS])
 # -----------------------------------------------
@@ -602,7 +596,7 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
 # arguments mandatory, and then we can depend on a new Autoconf
 # release and drop the old call support.
 AC_DEFUN([AM_INIT_AUTOMAKE],
-[AC_PREREQ([2.62])dnl
+[AC_PREREQ([2.65])dnl
 dnl Autoconf wants to disallow AM_ names.  We explicitly allow
 dnl the ones we care about.
 m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
@@ -631,31 +625,40 @@ AC_SUBST([CYGPATH_W])
 # Define the identity of the package.
 dnl Distinguish between old-style and new-style calls.
 m4_ifval([$2],
-[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+[AC_DIAGNOSE([obsolete],
+             [$0: two- and three-arguments forms are deprecated.])
+m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
  AC_SUBST([PACKAGE], [$1])dnl
  AC_SUBST([VERSION], [$2])],
 [_AM_SET_OPTIONS([$1])dnl
 dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
-m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
+m4_if(
+  m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]),
+  [ok:ok],,
   [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
  AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
  AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
 
 _AM_IF_OPTION([no-define],,
-[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
- AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
+[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package])
+ AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl
 
 # Some tools Automake needs.
 AC_REQUIRE([AM_SANITY_CHECK])dnl
 AC_REQUIRE([AC_ARG_PROGRAM])dnl
-AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
-AM_MISSING_PROG(AUTOCONF, autoconf)
-AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
-AM_MISSING_PROG(AUTOHEADER, autoheader)
-AM_MISSING_PROG(MAKEINFO, makeinfo)
+AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])
+AM_MISSING_PROG([AUTOCONF], [autoconf])
+AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])
+AM_MISSING_PROG([AUTOHEADER], [autoheader])
+AM_MISSING_PROG([MAKEINFO], [makeinfo])
 AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
 AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
-AC_REQUIRE([AM_PROG_MKDIR_P])dnl
+AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+# For better backward compatibility.  To be removed once Automake 1.9.x
+# dies out for good.  For more background, see:
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
 # We need awk for the "check" target.  The system "awk" is bad on
 # some platforms.
 AC_REQUIRE([AC_PROG_AWK])dnl
@@ -666,34 +669,78 @@ _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
                             [_AM_PROG_TAR([v7])])])
 _AM_IF_OPTION([no-dependencies],,
 [AC_PROVIDE_IFELSE([AC_PROG_CC],
-                 [_AM_DEPENDENCIES(CC)],
-                 [define([AC_PROG_CC],
-                         defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
+                 [_AM_DEPENDENCIES([CC])],
+                 [m4_define([AC_PROG_CC],
+                            m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl
 AC_PROVIDE_IFELSE([AC_PROG_CXX],
-                 [_AM_DEPENDENCIES(CXX)],
-                 [define([AC_PROG_CXX],
-                         defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+                 [_AM_DEPENDENCIES([CXX])],
+                 [m4_define([AC_PROG_CXX],
+                            m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl
 AC_PROVIDE_IFELSE([AC_PROG_OBJC],
-                 [_AM_DEPENDENCIES(OBJC)],
-                 [define([AC_PROG_OBJC],
-                         defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
+                 [_AM_DEPENDENCIES([OBJC])],
+                 [m4_define([AC_PROG_OBJC],
+                            m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
+                 [_AM_DEPENDENCIES([OBJCXX])],
+                 [m4_define([AC_PROG_OBJCXX],
+                            m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
 ])
-_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
-dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
-dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen.  This macro
-dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
+AC_REQUIRE([AM_SILENT_RULES])dnl
+dnl The testsuite driver may need to know about EXEEXT, so add the
+dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen.  This
+dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
 AC_CONFIG_COMMANDS_PRE(dnl
 [m4_provide_if([_AM_COMPILER_EXEEXT],
   [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
-])
 
-dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion.  Do not
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes.  So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+  cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present.  This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell bug-automake@gnu.org about your system, including the value
+of your $PATH and any error possibly output before this message.  This
+can help us improve future automake versions.
+
+END
+  if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+    echo 'Configuration will proceed anyway, since you have set the' >&2
+    echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+    echo >&2
+  else
+    cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <http://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+    AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
+  fi
+fi])
+
+dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion.  Do not
 dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
 dnl mangled by Autoconf and run in a shell conditional statement.
 m4_define([_AC_COMPILER_EXEEXT],
 m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
 
-
 # When config.status generates a header, we must update the stamp-h file.
 # This file resides in the same directory as the config header
 # that is generated.  The stamp files are numbered to have different names.
@@ -715,15 +762,12 @@ for _am_header in $config_headers :; do
 done
 echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
 
-# Copyright (C) 2001, 2003, 2005, 2008, 2011 Free Software Foundation,
-# Inc.
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 1
-
 # AM_PROG_INSTALL_SH
 # ------------------
 # Define $install_sh.
@@ -737,16 +781,14 @@ if test x"${install_sh}" != xset; then
     install_sh="\${SHELL} $am_aux_dir/install-sh"
   esac
 fi
-AC_SUBST(install_sh)])
+AC_SUBST([install_sh])])
 
-# Copyright (C) 2003, 2005  Free Software Foundation, Inc.
+# Copyright (C) 2003-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 2
-
 # Check whether the underlying file-system supports filenames
 # with a leading dot.  For instance MS-DOS doesn't.
 AC_DEFUN([AM_SET_LEADING_DOT],
@@ -763,20 +805,17 @@ AC_SUBST([am__leading_dot])])
 # Add --enable-maintainer-mode option to configure.         -*- Autoconf -*-
 # From Jim Meyering
 
-# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008,
-# 2011 Free Software Foundation, Inc.
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 5
-
 # AM_MAINTAINER_MODE([DEFAULT-MODE])
 # ----------------------------------
 # Control maintainer-specific portions of Makefiles.
-# Default is to disable them, unless `enable' is passed literally.
-# For symmetry, `disable' may be passed as well.  Anyway, the user
+# Default is to disable them, unless 'enable' is passed literally.
+# For symmetry, 'disable' may be passed as well.  Anyway, the user
 # can override the default with the --enable/--disable switch.
 AC_DEFUN([AM_MAINTAINER_MODE],
 [m4_case(m4_default([$1], [disable]),
@@ -787,10 +826,11 @@ AC_DEFUN([AM_MAINTAINER_MODE],
 AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
   dnl maintainer-mode's default is 'disable' unless 'enable' is passed
   AC_ARG_ENABLE([maintainer-mode],
-[  --][am_maintainer_other][-maintainer-mode  am_maintainer_other make rules and dependencies not useful
-                         (and sometimes confusing) to the casual installer],
-      [USE_MAINTAINER_MODE=$enableval],
-      [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
+    [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode],
+      am_maintainer_other[ make rules and dependencies not useful
+      (and sometimes confusing) to the casual installer])],
+    [USE_MAINTAINER_MODE=$enableval],
+    [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
   AC_MSG_RESULT([$USE_MAINTAINER_MODE])
   AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
   MAINT=$MAINTAINER_MODE_TRUE
@@ -798,18 +838,14 @@ AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
 ]
 )
 
-AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
-
 # Check to see how 'make' treats includes.                 -*- Autoconf -*-
 
-# Copyright (C) 2001, 2002, 2003, 2005, 2009  Free Software Foundation, Inc.
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 4
-
 # AM_MAKE_INCLUDE()
 # -----------------
 # Check to see how make treats includes.
@@ -827,7 +863,7 @@ am__quote=
 _am_result=none
 # First try GNU make style include.
 echo "include confinc" > confmf
-# Ignore all kinds of additional output from `make'.
+# Ignore all kinds of additional output from 'make'.
 case `$am_make -s -f confmf 2> /dev/null` in #(
 *the\ am__doit\ target*)
   am__include=include
@@ -854,15 +890,12 @@ rm -f confinc confmf
 
 # Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
 
-# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1997-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 6
-
 # AM_MISSING_PROG(NAME, PROGRAM)
 # ------------------------------
 AC_DEFUN([AM_MISSING_PROG],
@@ -870,11 +903,10 @@ AC_DEFUN([AM_MISSING_PROG],
 $1=${$1-"${am_missing_run}$2"}
 AC_SUBST($1)])
 
-
 # AM_MISSING_HAS_RUN
 # ------------------
-# Define MISSING if not defined so far and test if it supports --run.
-# If it does, set am_missing_run to use it, otherwise, to nothing.
+# Define MISSING if not defined so far and test if it is modern enough.
+# If it is, set am_missing_run to use it, otherwise, to nothing.
 AC_DEFUN([AM_MISSING_HAS_RUN],
 [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
 AC_REQUIRE_AUX_FILE([missing])dnl
@@ -887,54 +919,22 @@ if test x"${MISSING+set}" != xset; then
   esac
 fi
 # Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
-  am_missing_run="$MISSING --run "
+if eval "$MISSING --is-lightweight"; then
+  am_missing_run="$MISSING "
 else
   am_missing_run=
-  AC_MSG_WARN([`missing' script is too old or missing])
+  AC_MSG_WARN(['missing' script is too old or missing])
 fi
 ])
 
-# Copyright (C) 2003, 2004, 2005, 2006, 2011 Free Software Foundation,
-# Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# serial 1
-
-# AM_PROG_MKDIR_P
-# ---------------
-# Check for `mkdir -p'.
-AC_DEFUN([AM_PROG_MKDIR_P],
-[AC_PREREQ([2.60])dnl
-AC_REQUIRE([AC_PROG_MKDIR_P])dnl
-dnl Automake 1.8 to 1.9.6 used to define mkdir_p.  We now use MKDIR_P,
-dnl while keeping a definition of mkdir_p for backward compatibility.
-dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
-dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
-dnl Makefile.ins that do not define MKDIR_P, so we do our own
-dnl adjustment using top_builddir (which is defined more often than
-dnl MKDIR_P).
-AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
-case $mkdir_p in
-  [[\\/$]]* | ?:[[\\/]]*) ;;
-  */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
-esac
-])
-
 # Helper functions for option handling.                     -*- Autoconf -*-
 
-# Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 Free Software
-# Foundation, Inc.
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 5
-
 # _AM_MANGLE_OPTION(NAME)
 # -----------------------
 AC_DEFUN([_AM_MANGLE_OPTION],
@@ -944,7 +944,7 @@ AC_DEFUN([_AM_MANGLE_OPTION],
 # --------------------
 # Set option NAME.  Presently that only means defining a flag for this option.
 AC_DEFUN([_AM_SET_OPTION],
-[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
+[m4_define(_AM_MANGLE_OPTION([$1]), [1])])
 
 # _AM_SET_OPTIONS(OPTIONS)
 # ------------------------
@@ -958,13 +958,58 @@ AC_DEFUN([_AM_SET_OPTIONS],
 AC_DEFUN([_AM_IF_OPTION],
 [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
 
-# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 1
+# _AM_PROG_CC_C_O
+# ---------------
+# Like AC_PROG_CC_C_O, but changed for automake.  We rewrite AC_PROG_CC
+# to automatically call this.
+AC_DEFUN([_AM_PROG_CC_C_O],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([compile])dnl
+AC_LANG_PUSH([C])dnl
+AC_CACHE_CHECK(
+  [whether $CC understands -c and -o together],
+  [am_cv_prog_cc_c_o],
+  [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])
+  # Make sure it works both with $CC and with simple cc.
+  # Following AC_PROG_CC_C_O, we do the test twice because some
+  # compilers refuse to overwrite an existing .o file with -o,
+  # though they will create one.
+  am_cv_prog_cc_c_o=yes
+  for am_i in 1 2; do
+    if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \
+         && test -f conftest2.$ac_objext; then
+      : OK
+    else
+      am_cv_prog_cc_c_o=no
+      break
+    fi
+  done
+  rm -f core conftest*
+  unset am_i])
+if test "$am_cv_prog_cc_c_o" != yes; then
+   # Losing compiler, so override with the script.
+   # FIXME: It is wrong to rewrite CC.
+   # But if we don't then we get into trouble of one sort or another.
+   # A longer-term fix would be to have automake use am__CC in this case,
+   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+   CC="$am_aux_dir/compile $CC"
+fi
+AC_LANG_POP([C])])
+
+# For backward compatibility.
+AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
+
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
 
 # AM_RUN_LOG(COMMAND)
 # -------------------
@@ -979,22 +1024,16 @@ AC_DEFUN([AM_RUN_LOG],
 
 # Check to make sure that the build environment is sane.    -*- Autoconf -*-
 
-# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 5
-
 # AM_SANITY_CHECK
 # ---------------
 AC_DEFUN([AM_SANITY_CHECK],
 [AC_MSG_CHECKING([whether build environment is sane])
-# Just in case
-sleep 1
-echo timestamp > conftest.file
 # Reject unsafe characters in $srcdir or the absolute working directory
 # name.  Accept space and tab only in the latter.
 am_lf='
@@ -1005,32 +1044,40 @@ case `pwd` in
 esac
 case $srcdir in
   *[[\\\"\#\$\&\'\`$am_lf\ \   ]]*)
-    AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
+    AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);;
 esac
 
-# Do `set' in a subshell so we don't clobber the current shell's
+# Do 'set' in a subshell so we don't clobber the current shell's
 # arguments.  Must try -L first in case configure is actually a
 # symlink; some systems play weird games with the mod time of symlinks
 # (eg FreeBSD returns the mod time of the symlink's containing
 # directory).
 if (
-   set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
-   if test "$[*]" = "X"; then
-      # -L didn't work.
-      set X `ls -t "$srcdir/configure" conftest.file`
-   fi
-   rm -f conftest.file
-   if test "$[*]" != "X $srcdir/configure conftest.file" \
-      && test "$[*]" != "X conftest.file $srcdir/configure"; then
-
-      # If neither matched, then we have a broken ls.  This can happen
-      # if, for instance, CONFIG_SHELL is bash and it inherits a
-      # broken ls alias from the environment.  This has actually
-      # happened.  Such a system could not be considered "sane".
-      AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
-alias in your environment])
-   fi
-
+   am_has_slept=no
+   for am_try in 1 2; do
+     echo "timestamp, slept: $am_has_slept" > conftest.file
+     set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+     if test "$[*]" = "X"; then
+       # -L didn't work.
+       set X `ls -t "$srcdir/configure" conftest.file`
+     fi
+     if test "$[*]" != "X $srcdir/configure conftest.file" \
+       && test "$[*]" != "X conftest.file $srcdir/configure"; then
+
+       # If neither matched, then we have a broken ls.  This can happen
+       # if, for instance, CONFIG_SHELL is bash and it inherits a
+       # broken ls alias from the environment.  This has actually
+       # happened.  Such a system could not be considered "sane".
+       AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
+  alias in your environment])
+     fi
+     if test "$[2]" = conftest.file || test $am_try -eq 2; then
+       break
+     fi
+     # Just in case.
+     sleep 1
+     am_has_slept=yes
+   done
    test "$[2]" = conftest.file
    )
 then
@@ -1040,31 +1087,50 @@ else
    AC_MSG_ERROR([newly created file is older than distributed files!
 Check your system clock])
 fi
-AC_MSG_RESULT(yes)])
+AC_MSG_RESULT([yes])
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+  ( sleep 1 ) &
+  am_sleep_pid=$!
+fi
+AC_CONFIG_COMMANDS_PRE(
+  [AC_MSG_CHECKING([that generated files are newer than configure])
+   if test -n "$am_sleep_pid"; then
+     # Hide warnings about reused PIDs.
+     wait $am_sleep_pid 2>/dev/null
+   fi
+   AC_MSG_RESULT([done])])
+rm -f conftest.file
+])
 
-# Copyright (C) 2009, 2011  Free Software Foundation, Inc.
+# Copyright (C) 2009-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 2
-
 # AM_SILENT_RULES([DEFAULT])
 # --------------------------
 # Enable less verbose build rules; with the default set to DEFAULT
-# (`yes' being less verbose, `no' or empty being verbose).
+# ("yes" being less verbose, "no" or empty being verbose).
 AC_DEFUN([AM_SILENT_RULES],
-[AC_ARG_ENABLE([silent-rules],
-[  --enable-silent-rules          less verbose build output (undo: `make V=1')
-  --disable-silent-rules         verbose build output (undo: `make V=0')])
-case $enable_silent_rules in
-yes) AM_DEFAULT_VERBOSITY=0;;
-no)  AM_DEFAULT_VERBOSITY=1;;
-*)   AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
+[AC_ARG_ENABLE([silent-rules], [dnl
+AS_HELP_STRING(
+  [--enable-silent-rules],
+  [less verbose build output (undo: "make V=1")])
+AS_HELP_STRING(
+  [--disable-silent-rules],
+  [verbose build output (undo: "make V=0")])dnl
+])
+case $enable_silent_rules in @%:@ (((
+  yes) AM_DEFAULT_VERBOSITY=0;;
+   no) AM_DEFAULT_VERBOSITY=1;;
+    *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
 esac
 dnl
-dnl A few `make' implementations (e.g., NonStop OS and NextStep)
+dnl A few 'make' implementations (e.g., NonStop OS and NextStep)
 dnl do not support nested variable expansions.
 dnl See automake bug#9928 and bug#10237.
 am_make=${MAKE-make}
@@ -1082,7 +1148,7 @@ else
   am_cv_make_support_nested_variables=no
 fi])
 if test $am_cv_make_support_nested_variables = yes; then
-  dnl Using `$V' instead of `$(V)' breaks IRIX make.
+  dnl Using '$V' instead of '$(V)' breaks IRIX make.
   AM_V='$(V)'
   AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
 else
@@ -1099,44 +1165,40 @@ AC_SUBST([AM_BACKSLASH])dnl
 _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
 ])
 
-# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 1
-
 # AM_PROG_INSTALL_STRIP
 # ---------------------
-# One issue with vendor `install' (even GNU) is that you can't
+# One issue with vendor 'install' (even GNU) is that you can't
 # specify the program used to strip binaries.  This is especially
 # annoying in cross-compiling environments, where the build's strip
 # is unlikely to handle the host's binaries.
 # Fortunately install-sh will honor a STRIPPROG variable, so we
-# always use install-sh in `make install-strip', and initialize
+# always use install-sh in "make install-strip", and initialize
 # STRIPPROG with the value of the STRIP variable (set by the user).
 AC_DEFUN([AM_PROG_INSTALL_STRIP],
 [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'.  However `strip' might not be the right
+# Installed binaries are usually stripped using 'strip' when the user
+# run "make install-strip".  However 'strip' might not be the right
 # tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
-dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
+# will honor the 'STRIP' environment variable to overrule this program.
+dnl Don't test for $cross_compiling = yes, because it might be 'maybe'.
 if test "$cross_compiling" != no; then
   AC_CHECK_TOOL([STRIP], [strip], :)
 fi
 INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 AC_SUBST([INSTALL_STRIP_PROGRAM])])
 
-# Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc.
+# Copyright (C) 2006-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 3
-
 # _AM_SUBST_NOTMAKE(VARIABLE)
 # ---------------------------
 # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
@@ -1150,18 +1212,16 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
 
 # Check how to create a tarball.                            -*- Autoconf -*-
 
-# Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc.
+# Copyright (C) 2004-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 2
-
 # _AM_PROG_TAR(FORMAT)
 # --------------------
 # Check how to create a tarball in format FORMAT.
-# FORMAT should be one of `v7', `ustar', or `pax'.
+# FORMAT should be one of 'v7', 'ustar', or 'pax'.
 #
 # Substitute a variable $(am__tar) that is a command
 # writing to stdout a FORMAT-tarball containing the directory
@@ -1171,76 +1231,114 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
 # Substitute a variable $(am__untar) that extract such
 # a tarball read from stdin.
 #     $(am__untar) < result.tar
+#
 AC_DEFUN([_AM_PROG_TAR],
 [# Always define AMTAR for backward compatibility.  Yes, it's still used
 # in the wild :-(  We should find a proper way to deprecate it ...
 AC_SUBST([AMTAR], ['$${TAR-tar}'])
-m4_if([$1], [v7],
-     [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
-     [m4_case([$1], [ustar],, [pax],,
-              [m4_fatal([Unknown tar format])])
-AC_MSG_CHECKING([how to create a $1 tar archive])
-# Loop over all known methods to create a tar archive until one works.
+
+# We'll loop over all known methods to create a tar archive until one works.
 _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
-_am_tools=${am_cv_prog_tar_$1-$_am_tools}
-# Do not fold the above two line into one, because Tru64 sh and
-# Solaris sh will not grok spaces in the rhs of `-'.
-for _am_tool in $_am_tools
-do
-  case $_am_tool in
-  gnutar)
-    for _am_tar in tar gnutar gtar;
-    do
-      AM_RUN_LOG([$_am_tar --version]) && break
-    done
-    am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
-    am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
-    am__untar="$_am_tar -xf -"
-    ;;
-  plaintar)
-    # Must skip GNU tar: if it does not support --format= it doesn't create
-    # ustar tarball either.
-    (tar --version) >/dev/null 2>&1 && continue
-    am__tar='tar chf - "$$tardir"'
-    am__tar_='tar chf - "$tardir"'
-    am__untar='tar xf -'
-    ;;
-  pax)
-    am__tar='pax -L -x $1 -w "$$tardir"'
-    am__tar_='pax -L -x $1 -w "$tardir"'
-    am__untar='pax -r'
-    ;;
-  cpio)
-    am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
-    am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
-    am__untar='cpio -i -H $1 -d'
-    ;;
-  none)
-    am__tar=false
-    am__tar_=false
-    am__untar=false
-    ;;
-  esac
 
-  # If the value was cached, stop now.  We just wanted to have am__tar
-  # and am__untar set.
-  test -n "${am_cv_prog_tar_$1}" && break
+m4_if([$1], [v7],
+  [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
+
+  [m4_case([$1],
+    [ustar],
+     [# The POSIX 1988 'ustar' format is defined with fixed-size fields.
+      # There is notably a 21 bits limit for the UID and the GID.  In fact,
+      # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343
+      # and bug#13588).
+      am_max_uid=2097151 # 2^21 - 1
+      am_max_gid=$am_max_uid
+      # The $UID and $GID variables are not portable, so we need to resort
+      # to the POSIX-mandated id(1) utility.  Errors in the 'id' calls
+      # below are definitely unexpected, so allow the users to see them
+      # (that is, avoid stderr redirection).
+      am_uid=`id -u || echo unknown`
+      am_gid=`id -g || echo unknown`
+      AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format])
+      if test $am_uid -le $am_max_uid; then
+         AC_MSG_RESULT([yes])
+      else
+         AC_MSG_RESULT([no])
+         _am_tools=none
+      fi
+      AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format])
+      if test $am_gid -le $am_max_gid; then
+         AC_MSG_RESULT([yes])
+      else
+        AC_MSG_RESULT([no])
+        _am_tools=none
+      fi],
+
+  [pax],
+    [],
+
+  [m4_fatal([Unknown tar format])])
+
+  AC_MSG_CHECKING([how to create a $1 tar archive])
+
+  # Go ahead even if we have the value already cached.  We do so because we
+  # need to set the values for the 'am__tar' and 'am__untar' variables.
+  _am_tools=${am_cv_prog_tar_$1-$_am_tools}
+
+  for _am_tool in $_am_tools; do
+    case $_am_tool in
+    gnutar)
+      for _am_tar in tar gnutar gtar; do
+        AM_RUN_LOG([$_am_tar --version]) && break
+      done
+      am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+      am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+      am__untar="$_am_tar -xf -"
+      ;;
+    plaintar)
+      # Must skip GNU tar: if it does not support --format= it doesn't create
+      # ustar tarball either.
+      (tar --version) >/dev/null 2>&1 && continue
+      am__tar='tar chf - "$$tardir"'
+      am__tar_='tar chf - "$tardir"'
+      am__untar='tar xf -'
+      ;;
+    pax)
+      am__tar='pax -L -x $1 -w "$$tardir"'
+      am__tar_='pax -L -x $1 -w "$tardir"'
+      am__untar='pax -r'
+      ;;
+    cpio)
+      am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+      am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+      am__untar='cpio -i -H $1 -d'
+      ;;
+    none)
+      am__tar=false
+      am__tar_=false
+      am__untar=false
+      ;;
+    esac
 
-  # tar/untar a dummy directory, and stop if the command works
-  rm -rf conftest.dir
-  mkdir conftest.dir
-  echo GrepMe > conftest.dir/file
-  AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+    # If the value was cached, stop now.  We just wanted to have am__tar
+    # and am__untar set.
+    test -n "${am_cv_prog_tar_$1}" && break
+
+    # tar/untar a dummy directory, and stop if the command works.
+    rm -rf conftest.dir
+    mkdir conftest.dir
+    echo GrepMe > conftest.dir/file
+    AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+    rm -rf conftest.dir
+    if test -s conftest.tar; then
+      AM_RUN_LOG([$am__untar <conftest.tar])
+      AM_RUN_LOG([cat conftest.dir/file])
+      grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+    fi
+  done
   rm -rf conftest.dir
-  if test -s conftest.tar; then
-    AM_RUN_LOG([$am__untar <conftest.tar])
-    grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
-  fi
-done
-rm -rf conftest.dir
 
-AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
-AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+  AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+  AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+
 AC_SUBST([am__tar])
 AC_SUBST([am__untar])
 ]) # _AM_PROG_TAR
diff --git a/build-aux/compile b/build-aux/compile
new file mode 100755 (executable)
index 0000000..531136b
--- /dev/null
@@ -0,0 +1,347 @@
+#! /bin/sh
+# Wrapper for compilers which do not understand '-c -o'.
+
+scriptversion=2012-10-14.11; # UTC
+
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+# Written by Tom Tromey <tromey@cygnus.com>.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+nl='
+'
+
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent tools from complaining about whitespace usage.
+IFS=" ""       $nl"
+
+file_conv=
+
+# func_file_conv build_file lazy
+# Convert a $build file to $host form and store it in $file
+# Currently only supports Windows hosts. If the determined conversion
+# type is listed in (the comma separated) LAZY, no conversion will
+# take place.
+func_file_conv ()
+{
+  file=$1
+  case $file in
+    / | /[!/]*) # absolute file, and not a UNC file
+      if test -z "$file_conv"; then
+       # lazily determine how to convert abs files
+       case `uname -s` in
+         MINGW*)
+           file_conv=mingw
+           ;;
+         CYGWIN*)
+           file_conv=cygwin
+           ;;
+         *)
+           file_conv=wine
+           ;;
+       esac
+      fi
+      case $file_conv/,$2, in
+       *,$file_conv,*)
+         ;;
+       mingw/*)
+         file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
+         ;;
+       cygwin/*)
+         file=`cygpath -m "$file" || echo "$file"`
+         ;;
+       wine/*)
+         file=`winepath -w "$file" || echo "$file"`
+         ;;
+      esac
+      ;;
+  esac
+}
+
+# func_cl_dashL linkdir
+# Make cl look for libraries in LINKDIR
+func_cl_dashL ()
+{
+  func_file_conv "$1"
+  if test -z "$lib_path"; then
+    lib_path=$file
+  else
+    lib_path="$lib_path;$file"
+  fi
+  linker_opts="$linker_opts -LIBPATH:$file"
+}
+
+# func_cl_dashl library
+# Do a library search-path lookup for cl
+func_cl_dashl ()
+{
+  lib=$1
+  found=no
+  save_IFS=$IFS
+  IFS=';'
+  for dir in $lib_path $LIB
+  do
+    IFS=$save_IFS
+    if $shared && test -f "$dir/$lib.dll.lib"; then
+      found=yes
+      lib=$dir/$lib.dll.lib
+      break
+    fi
+    if test -f "$dir/$lib.lib"; then
+      found=yes
+      lib=$dir/$lib.lib
+      break
+    fi
+    if test -f "$dir/lib$lib.a"; then
+      found=yes
+      lib=$dir/lib$lib.a
+      break
+    fi
+  done
+  IFS=$save_IFS
+
+  if test "$found" != yes; then
+    lib=$lib.lib
+  fi
+}
+
+# func_cl_wrapper cl arg...
+# Adjust compile command to suit cl
+func_cl_wrapper ()
+{
+  # Assume a capable shell
+  lib_path=
+  shared=:
+  linker_opts=
+  for arg
+  do
+    if test -n "$eat"; then
+      eat=
+    else
+      case $1 in
+       -o)
+         # configure might choose to run compile as 'compile cc -o foo foo.c'.
+         eat=1
+         case $2 in
+           *.o | *.[oO][bB][jJ])
+             func_file_conv "$2"
+             set x "$@" -Fo"$file"
+             shift
+             ;;
+           *)
+             func_file_conv "$2"
+             set x "$@" -Fe"$file"
+             shift
+             ;;
+         esac
+         ;;
+       -I)
+         eat=1
+         func_file_conv "$2" mingw
+         set x "$@" -I"$file"
+         shift
+         ;;
+       -I*)
+         func_file_conv "${1#-I}" mingw
+         set x "$@" -I"$file"
+         shift
+         ;;
+       -l)
+         eat=1
+         func_cl_dashl "$2"
+         set x "$@" "$lib"
+         shift
+         ;;
+       -l*)
+         func_cl_dashl "${1#-l}"
+         set x "$@" "$lib"
+         shift
+         ;;
+       -L)
+         eat=1
+         func_cl_dashL "$2"
+         ;;
+       -L*)
+         func_cl_dashL "${1#-L}"
+         ;;
+       -static)
+         shared=false
+         ;;
+       -Wl,*)
+         arg=${1#-Wl,}
+         save_ifs="$IFS"; IFS=','
+         for flag in $arg; do
+           IFS="$save_ifs"
+           linker_opts="$linker_opts $flag"
+         done
+         IFS="$save_ifs"
+         ;;
+       -Xlinker)
+         eat=1
+         linker_opts="$linker_opts $2"
+         ;;
+       -*)
+         set x "$@" "$1"
+         shift
+         ;;
+       *.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
+         func_file_conv "$1"
+         set x "$@" -Tp"$file"
+         shift
+         ;;
+       *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
+         func_file_conv "$1" mingw
+         set x "$@" "$file"
+         shift
+         ;;
+       *)
+         set x "$@" "$1"
+         shift
+         ;;
+      esac
+    fi
+    shift
+  done
+  if test -n "$linker_opts"; then
+    linker_opts="-link$linker_opts"
+  fi
+  exec "$@" $linker_opts
+  exit 1
+}
+
+eat=
+
+case $1 in
+  '')
+     echo "$0: No command.  Try '$0 --help' for more information." 1>&2
+     exit 1;
+     ;;
+  -h | --h*)
+    cat <<\EOF
+Usage: compile [--help] [--version] PROGRAM [ARGS]
+
+Wrapper for compilers which do not understand '-c -o'.
+Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
+arguments, and rename the output as expected.
+
+If you are trying to build a whole package this is not the
+right script to run: please start by reading the file 'INSTALL'.
+
+Report bugs to <bug-automake@gnu.org>.
+EOF
+    exit $?
+    ;;
+  -v | --v*)
+    echo "compile $scriptversion"
+    exit $?
+    ;;
+  cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
+    func_cl_wrapper "$@"      # Doesn't return...
+    ;;
+esac
+
+ofile=
+cfile=
+
+for arg
+do
+  if test -n "$eat"; then
+    eat=
+  else
+    case $1 in
+      -o)
+       # configure might choose to run compile as 'compile cc -o foo foo.c'.
+       # So we strip '-o arg' only if arg is an object.
+       eat=1
+       case $2 in
+         *.o | *.obj)
+           ofile=$2
+           ;;
+         *)
+           set x "$@" -o "$2"
+           shift
+           ;;
+       esac
+       ;;
+      *.c)
+       cfile=$1
+       set x "$@" "$1"
+       shift
+       ;;
+      *)
+       set x "$@" "$1"
+       shift
+       ;;
+    esac
+  fi
+  shift
+done
+
+if test -z "$ofile" || test -z "$cfile"; then
+  # If no '-o' option was seen then we might have been invoked from a
+  # pattern rule where we don't need one.  That is ok -- this is a
+  # normal compilation that the losing compiler can handle.  If no
+  # '.c' file was seen then we are probably linking.  That is also
+  # ok.
+  exec "$@"
+fi
+
+# Name of file we expect compiler to create.
+cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
+
+# Create the lock directory.
+# Note: use '[/\\:.-]' here to ensure that we don't use the same name
+# that we are using for the .o file.  Also, base the name on the expected
+# object file name, since that is what matters with a parallel build.
+lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
+while true; do
+  if mkdir "$lockdir" >/dev/null 2>&1; then
+    break
+  fi
+  sleep 1
+done
+# FIXME: race condition here if user kills between mkdir and trap.
+trap "rmdir '$lockdir'; exit 1" 1 2 15
+
+# Run the compile.
+"$@"
+ret=$?
+
+if test -f "$cofile"; then
+  test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
+elif test -f "${cofile}bj"; then
+  test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
+fi
+
+rmdir "$lockdir"
+exit $ret
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
index d622a44..b79252d 100755 (executable)
@@ -1,14 +1,12 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
-#   2011, 2012 Free Software Foundation, Inc.
+#   Copyright 1992-2013 Free Software Foundation, Inc.
 
-timestamp='2012-02-10'
+timestamp='2013-06-10'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
+# the Free Software Foundation; either version 3 of the License, or
 # (at your option) any later version.
 #
 # This program is distributed in the hope that it will be useful, but
@@ -22,19 +20,17 @@ timestamp='2012-02-10'
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
 # configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-
-# Originally written by Per Bothner.  Please send patches (context
-# diff format) to <config-patches@gnu.org> and include a ChangeLog
-# entry.
+# the same distribution terms that you use for the rest of that
+# program.  This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
 #
-# This script attempts to guess a canonical system name similar to
-# config.sub.  If it succeeds, it prints the system name on stdout, and
-# exits with 0.  Otherwise, it exits with 1.
+# Originally written by Per Bothner.
 #
 # You can get the latest version of this script from:
 # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+#
+# Please send patches with a ChangeLog entry to config-patches@gnu.org.
+
 
 me=`echo "$0" | sed -e 's,.*/,,'`
 
@@ -54,9 +50,7 @@ version="\
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
-Free Software Foundation, Inc.
+Copyright 1992-2013 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -138,6 +132,27 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
 UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
 
+case "${UNAME_SYSTEM}" in
+Linux|GNU|GNU/*)
+       # If the system lacks a compiler, then just pick glibc.
+       # We could probably try harder.
+       LIBC=gnu
+
+       eval $set_cc_for_build
+       cat <<-EOF > $dummy.c
+       #include <features.h>
+       #if defined(__UCLIBC__)
+       LIBC=uclibc
+       #elif defined(__dietlibc__)
+       LIBC=dietlibc
+       #else
+       LIBC=gnu
+       #endif
+       EOF
+       eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
+       ;;
+esac
+
 # Note: order is significant - the case branches are not exclusive.
 
 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
@@ -200,6 +215,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
        # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
        echo "${machine}-${os}${release}"
        exit ;;
+    *:Bitrig:*:*)
+       UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
+       echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
+       exit ;;
     *:OpenBSD:*:*)
        UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
        echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
@@ -302,7 +321,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
     arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
        echo arm-acorn-riscix${UNAME_RELEASE}
        exit ;;
-    arm:riscos:*:*|arm:RISCOS:*:*)
+    arm*:riscos:*:*|arm*:RISCOS:*:*)
        echo arm-unknown-riscos
        exit ;;
     SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
@@ -801,6 +820,9 @@ EOF
     i*:CYGWIN*:*)
        echo ${UNAME_MACHINE}-pc-cygwin
        exit ;;
+    *:MINGW64*:*)
+       echo ${UNAME_MACHINE}-pc-mingw64
+       exit ;;
     *:MINGW*:*)
        echo ${UNAME_MACHINE}-pc-mingw32
        exit ;;
@@ -852,21 +874,21 @@ EOF
        exit ;;
     *:GNU:*:*)
        # the GNU system
-       echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+       echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
        exit ;;
     *:GNU/*:*:*)
        # other systems with GNU libc and userland
-       echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
+       echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
        exit ;;
     i*86:Minix:*:*)
        echo ${UNAME_MACHINE}-pc-minix
        exit ;;
     aarch64:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     aarch64_be:Linux:*:*)
        UNAME_MACHINE=aarch64_be
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     alpha:Linux:*:*)
        case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
@@ -879,59 +901,54 @@ EOF
          EV68*) UNAME_MACHINE=alphaev68 ;;
        esac
        objdump --private-headers /bin/sh | grep -q ld.so.1
-       if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
-       echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+       if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       exit ;;
+    arc:Linux:*:* | arceb:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     arm*:Linux:*:*)
        eval $set_cc_for_build
        if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
            | grep -q __ARM_EABI__
        then
-           echo ${UNAME_MACHINE}-unknown-linux-gnu
+           echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        else
            if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
                | grep -q __ARM_PCS_VFP
            then
-               echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+               echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
            else
-               echo ${UNAME_MACHINE}-unknown-linux-gnueabihf
+               echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
            fi
        fi
        exit ;;
     avr32*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     cris:Linux:*:*)
-       echo ${UNAME_MACHINE}-axis-linux-gnu
+       echo ${UNAME_MACHINE}-axis-linux-${LIBC}
        exit ;;
     crisv32:Linux:*:*)
-       echo ${UNAME_MACHINE}-axis-linux-gnu
+       echo ${UNAME_MACHINE}-axis-linux-${LIBC}
        exit ;;
     frv:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     hexagon:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     i*86:Linux:*:*)
-       LIBC=gnu
-       eval $set_cc_for_build
-       sed 's/^        //' << EOF >$dummy.c
-       #ifdef __dietlibc__
-       LIBC=dietlibc
-       #endif
-EOF
-       eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
-       echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
+       echo ${UNAME_MACHINE}-pc-linux-${LIBC}
        exit ;;
     ia64:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     m32r*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     m68*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     mips:Linux:*:* | mips64:Linux:*:*)
        eval $set_cc_for_build
@@ -950,54 +967,63 @@ EOF
        #endif
 EOF
        eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
-       test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+       test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
        ;;
+    or1k:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       exit ;;
     or32:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     padre:Linux:*:*)
-       echo sparc-unknown-linux-gnu
+       echo sparc-unknown-linux-${LIBC}
        exit ;;
     parisc64:Linux:*:* | hppa64:Linux:*:*)
-       echo hppa64-unknown-linux-gnu
+       echo hppa64-unknown-linux-${LIBC}
        exit ;;
     parisc:Linux:*:* | hppa:Linux:*:*)
        # Look for CPU level
        case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
-         PA7*) echo hppa1.1-unknown-linux-gnu ;;
-         PA8*) echo hppa2.0-unknown-linux-gnu ;;
-         *)    echo hppa-unknown-linux-gnu ;;
+         PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
+         PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
+         *)    echo hppa-unknown-linux-${LIBC} ;;
        esac
        exit ;;
     ppc64:Linux:*:*)
-       echo powerpc64-unknown-linux-gnu
+       echo powerpc64-unknown-linux-${LIBC}
        exit ;;
     ppc:Linux:*:*)
-       echo powerpc-unknown-linux-gnu
+       echo powerpc-unknown-linux-${LIBC}
+       exit ;;
+    ppc64le:Linux:*:*)
+       echo powerpc64le-unknown-linux-${LIBC}
+       exit ;;
+    ppcle:Linux:*:*)
+       echo powerpcle-unknown-linux-${LIBC}
        exit ;;
     s390:Linux:*:* | s390x:Linux:*:*)
-       echo ${UNAME_MACHINE}-ibm-linux
+       echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
        exit ;;
     sh64*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     sh*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     sparc:Linux:*:* | sparc64:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     tile*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     vax:Linux:*:*)
-       echo ${UNAME_MACHINE}-dec-linux-gnu
+       echo ${UNAME_MACHINE}-dec-linux-${LIBC}
        exit ;;
     x86_64:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     xtensa*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     i*86:DYNIX/ptx:4*:*)
        # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
@@ -1201,6 +1227,9 @@ EOF
     BePC:Haiku:*:*)    # Haiku running on Intel PC compatible.
        echo i586-pc-haiku
        exit ;;
+    x86_64:Haiku:*:*)
+       echo x86_64-unknown-haiku
+       exit ;;
     SX-4:SUPER-UX:*:*)
        echo sx4-nec-superux${UNAME_RELEASE}
        exit ;;
@@ -1227,19 +1256,21 @@ EOF
        exit ;;
     *:Darwin:*:*)
        UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
-       case $UNAME_PROCESSOR in
-           i386)
-               eval $set_cc_for_build
-               if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
-                 if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
-                     (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
-                     grep IS_64BIT_ARCH >/dev/null
-                 then
-                     UNAME_PROCESSOR="x86_64"
-                 fi
-               fi ;;
-           unknown) UNAME_PROCESSOR=powerpc ;;
-       esac
+       eval $set_cc_for_build
+       if test "$UNAME_PROCESSOR" = unknown ; then
+           UNAME_PROCESSOR=powerpc
+       fi
+       if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+           if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+               (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+               grep IS_64BIT_ARCH >/dev/null
+           then
+               case $UNAME_PROCESSOR in
+                   i386) UNAME_PROCESSOR=x86_64 ;;
+                   powerpc) UNAME_PROCESSOR=powerpc64 ;;
+               esac
+           fi
+       fi
        echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
        exit ;;
     *:procnto*:*:* | *:QNX:[0123456789]*:*)
@@ -1256,7 +1287,7 @@ EOF
     NEO-?:NONSTOP_KERNEL:*:*)
        echo neo-tandem-nsk${UNAME_RELEASE}
        exit ;;
-    NSE-?:NONSTOP_KERNEL:*:*)
+    NSE-*:NONSTOP_KERNEL:*:*)
        echo nse-tandem-nsk${UNAME_RELEASE}
        exit ;;
     NSR-?:NONSTOP_KERNEL:*:*)
@@ -1330,9 +1361,6 @@ EOF
        exit ;;
 esac
 
-#echo '(No uname command or uname output not recognized.)' 1>&2
-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
-
 eval $set_cc_for_build
 cat >$dummy.c <<EOF
 #ifdef _SEQUENT_
index 6205f84..9633db7 100755 (executable)
@@ -1,24 +1,18 @@
 #! /bin/sh
 # Configuration validation subroutine script.
-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
-#   2011, 2012 Free Software Foundation, Inc.
+#   Copyright 1992-2013 Free Software Foundation, Inc.
 
-timestamp='2012-04-18'
+timestamp='2013-08-10'
 
-# This file is (in principle) common to ALL GNU software.
-# The presence of a machine in this file suggests that SOME GNU software
-# can handle that machine.  It does not imply ALL GNU software can.
-#
-# This file is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
 # (at your option) any later version.
 #
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, see <http://www.gnu.org/licenses/>.
@@ -26,11 +20,12 @@ timestamp='2012-04-18'
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
 # configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
+# the same distribution terms that you use for the rest of that
+# program.  This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
 
 
-# Please send patches to <config-patches@gnu.org>.  Submit a context
-# diff and a properly formatted GNU ChangeLog entry.
+# Please send patches with a ChangeLog entry to config-patches@gnu.org.
 #
 # Configuration subroutine to validate and canonicalize a configuration type.
 # Supply the specified configuration type as an argument.
@@ -73,9 +68,7 @@ Report bugs and patches to <config-patches@gnu.org>."
 version="\
 GNU config.sub ($timestamp)
 
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
-Free Software Foundation, Inc.
+Copyright 1992-2013 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -123,7 +116,7 @@ esac
 maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
 case $maybe_os in
   nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
-  linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
+  linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
   knetbsd*-gnu* | netbsd*-gnu* | \
   kopensolaris*-gnu* | \
   storm-chaos* | os2-emx* | rtmk-nova*)
@@ -156,7 +149,7 @@ case $os in
        -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
        -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
        -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-       -apple | -axis | -knuth | -cray | -microblaze)
+       -apple | -axis | -knuth | -cray | -microblaze*)
                os=
                basic_machine=$1
                ;;
@@ -259,10 +252,12 @@ case $basic_machine in
        | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
        | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
        | am33_2.0 \
-       | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
-        | be32 | be64 \
+       | arc | arceb \
+       | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
+       | avr | avr32 \
+       | be32 | be64 \
        | bfin \
-       | c4x | clipper \
+       | c4x | c8051 | clipper \
        | d10v | d30v | dlx | dsp16xx \
        | epiphany \
        | fido | fr30 | frv \
@@ -273,7 +268,7 @@ case $basic_machine in
        | le32 | le64 \
        | lm32 \
        | m32c | m32r | m32rle | m68000 | m68k | m88k \
-       | maxq | mb | microblaze | mcore | mep | metag \
+       | maxq | mb | microblaze | microblazeel | mcore | mep | metag \
        | mips | mipsbe | mipseb | mipsel | mipsle \
        | mips16 \
        | mips64 | mips64el \
@@ -291,16 +286,17 @@ case $basic_machine in
        | mipsisa64r2 | mipsisa64r2el \
        | mipsisa64sb1 | mipsisa64sb1el \
        | mipsisa64sr71k | mipsisa64sr71kel \
+       | mipsr5900 | mipsr5900el \
        | mipstx39 | mipstx39el \
        | mn10200 | mn10300 \
        | moxie \
        | mt \
        | msp430 \
        | nds32 | nds32le | nds32be \
-       | nios | nios2 \
+       | nios | nios2 | nios2eb | nios2el \
        | ns16k | ns32k \
        | open8 \
-       | or32 \
+       | or1k | or32 \
        | pdp10 | pdp11 | pj | pjl \
        | powerpc | powerpc64 | powerpc64le | powerpcle \
        | pyramid \
@@ -370,13 +366,13 @@ case $basic_machine in
        | aarch64-* | aarch64_be-* \
        | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
        | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
-       | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+       | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
        | arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
        | avr-* | avr32-* \
        | be32-* | be64-* \
        | bfin-* | bs2000-* \
        | c[123]* | c30-* | [cjt]90-* | c4x-* \
-       | clipper-* | craynv-* | cydra-* \
+       | c8051-* | clipper-* | craynv-* | cydra-* \
        | d10v-* | d30v-* | dlx-* \
        | elxsi-* \
        | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
@@ -389,7 +385,8 @@ case $basic_machine in
        | lm32-* \
        | m32c-* | m32r-* | m32rle-* \
        | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
-       | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
+       | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
+       | microblaze-* | microblazeel-* \
        | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
        | mips16-* \
        | mips64-* | mips64el-* \
@@ -407,12 +404,13 @@ case $basic_machine in
        | mipsisa64r2-* | mipsisa64r2el-* \
        | mipsisa64sb1-* | mipsisa64sb1el-* \
        | mipsisa64sr71k-* | mipsisa64sr71kel-* \
+       | mipsr5900-* | mipsr5900el-* \
        | mipstx39-* | mipstx39el-* \
        | mmix-* \
        | mt-* \
        | msp430-* \
        | nds32-* | nds32le-* | nds32be-* \
-       | nios-* | nios2-* \
+       | nios-* | nios2-* | nios2eb-* | nios2el-* \
        | none-* | np1-* | ns16k-* | ns32k-* \
        | open8-* \
        | orion-* \
@@ -788,11 +786,15 @@ case $basic_machine in
                basic_machine=ns32k-utek
                os=-sysv
                ;;
-       microblaze)
+       microblaze*)
                basic_machine=microblaze-xilinx
                ;;
+       mingw64)
+               basic_machine=x86_64-pc
+               os=-mingw64
+               ;;
        mingw32)
-               basic_machine=i386-pc
+               basic_machine=i686-pc
                os=-mingw32
                ;;
        mingw32ce)
@@ -828,7 +830,7 @@ case $basic_machine in
                basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
                ;;
        msys)
-               basic_machine=i386-pc
+               basic_machine=i686-pc
                os=-msys
                ;;
        mvs)
@@ -1019,7 +1021,11 @@ case $basic_machine in
                basic_machine=i586-unknown
                os=-pw32
                ;;
-       rdos)
+       rdos | rdos64)
+               basic_machine=x86_64-pc
+               os=-rdos
+               ;;
+       rdos32)
                basic_machine=i386-pc
                os=-rdos
                ;;
@@ -1346,21 +1352,21 @@ case $os in
        -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
              | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
              | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
-             | -sym* | -kopensolaris* \
+             | -sym* | -kopensolaris* | -plan9* \
              | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
              | -aos* | -aros* \
              | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
              | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
              | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
-             | -openbsd* | -solidbsd* \
+             | -bitrig* | -openbsd* | -solidbsd* \
              | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
              | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
              | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
              | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
              | -chorusos* | -chorusrdb* | -cegcc* \
              | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-             | -mingw32* | -linux-gnu* | -linux-android* \
-             | -linux-newlib* | -linux-uclibc* \
+             | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
+             | -linux-newlib* | -linux-musl* | -linux-uclibc* \
              | -uxpv* | -beos* | -mpeix* | -udk* \
              | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
              | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
@@ -1492,9 +1498,6 @@ case $os in
        -aros*)
                os=-aros
                ;;
-       -kaos*)
-               os=-kaos
-               ;;
        -zvmoe)
                os=-zvmoe
                ;;
@@ -1543,6 +1546,9 @@ case $basic_machine in
        c4x-* | tic4x-*)
                os=-coff
                ;;
+       c8051-*)
+               os=-elf
+               ;;
        hexagon-*)
                os=-elf
                ;;
@@ -1586,6 +1592,9 @@ case $basic_machine in
        mips*-*)
                os=-elf
                ;;
+       or1k-*)
+               os=-elf
+               ;;
        or32-*)
                os=-coff
                ;;
index 25a39e6..4ebd5b3 100755 (executable)
@@ -1,10 +1,9 @@
 #! /bin/sh
 # depcomp - compile a program generating dependencies as side-effects
 
-scriptversion=2012-03-27.16; # UTC
+scriptversion=2013-05-30.07; # UTC
 
-# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010,
-# 2011, 2012 Free Software Foundation, Inc.
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -28,9 +27,9 @@ scriptversion=2012-03-27.16; # UTC
 
 case $1 in
   '')
-     echo "$0: No command.  Try '$0 --help' for more information." 1>&2
-     exit 1;
-     ;;
+    echo "$0: No command.  Try '$0 --help' for more information." 1>&2
+    exit 1;
+    ;;
   -h | --h*)
     cat <<\EOF
 Usage: depcomp [--help] [--version] PROGRAM [ARGS]
@@ -57,11 +56,65 @@ EOF
     ;;
 esac
 
+# Get the directory component of the given path, and save it in the
+# global variables '$dir'.  Note that this directory component will
+# be either empty or ending with a '/' character.  This is deliberate.
+set_dir_from ()
+{
+  case $1 in
+    */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;;
+      *) dir=;;
+  esac
+}
+
+# Get the suffix-stripped basename of the given path, and save it the
+# global variable '$base'.
+set_base_from ()
+{
+  base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'`
+}
+
+# If no dependency file was actually created by the compiler invocation,
+# we still have to create a dummy depfile, to avoid errors with the
+# Makefile "include basename.Plo" scheme.
+make_dummy_depfile ()
+{
+  echo "#dummy" > "$depfile"
+}
+
+# Factor out some common post-processing of the generated depfile.
+# Requires the auxiliary global variable '$tmpdepfile' to be set.
+aix_post_process_depfile ()
+{
+  # If the compiler actually managed to produce a dependency file,
+  # post-process it.
+  if test -f "$tmpdepfile"; then
+    # Each line is of the form 'foo.o: dependency.h'.
+    # Do two passes, one to just change these to
+    #   $object: dependency.h
+    # and one to simply output
+    #   dependency.h:
+    # which is needed to avoid the deleted-header problem.
+    { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile"
+      sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile"
+    } > "$depfile"
+    rm -f "$tmpdepfile"
+  else
+    make_dummy_depfile
+  fi
+}
+
 # A tabulation character.
 tab='  '
 # A newline character.
 nl='
 '
+# Character ranges might be problematic outside the C locale.
+# These definitions help.
+upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ
+lower=abcdefghijklmnopqrstuvwxyz
+digits=0123456789
+alpha=${upper}${lower}
 
 if test -z "$depmode" || test -z "$source" || test -z "$object"; then
   echo "depcomp: Variables source, object and depmode must be set" 1>&2
@@ -75,6 +128,9 @@ tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
 
 rm -f "$tmpdepfile"
 
+# Avoid interferences from the environment.
+gccflag= dashmflag=
+
 # Some modes work just like other modes, but use different flags.  We
 # parameterize here, but still list the modes in the big case below,
 # to make depend.m4 easier to write.  Note that we *cannot* use a case
@@ -86,32 +142,32 @@ if test "$depmode" = hp; then
 fi
 
 if test "$depmode" = dashXmstdout; then
-   # This is just like dashmstdout with a different argument.
-   dashmflag=-xM
-   depmode=dashmstdout
+  # This is just like dashmstdout with a different argument.
+  dashmflag=-xM
+  depmode=dashmstdout
 fi
 
 cygpath_u="cygpath -u -f -"
 if test "$depmode" = msvcmsys; then
-   # This is just like msvisualcpp but w/o cygpath translation.
-   # Just convert the backslash-escaped backslashes to single forward
-   # slashes to satisfy depend.m4
-   cygpath_u='sed s,\\\\,/,g'
-   depmode=msvisualcpp
+  # This is just like msvisualcpp but w/o cygpath translation.
+  # Just convert the backslash-escaped backslashes to single forward
+  # slashes to satisfy depend.m4
+  cygpath_u='sed s,\\\\,/,g'
+  depmode=msvisualcpp
 fi
 
 if test "$depmode" = msvc7msys; then
-   # This is just like msvc7 but w/o cygpath translation.
-   # Just convert the backslash-escaped backslashes to single forward
-   # slashes to satisfy depend.m4
-   cygpath_u='sed s,\\\\,/,g'
-   depmode=msvc7
+  # This is just like msvc7 but w/o cygpath translation.
+  # Just convert the backslash-escaped backslashes to single forward
+  # slashes to satisfy depend.m4
+  cygpath_u='sed s,\\\\,/,g'
+  depmode=msvc7
 fi
 
 if test "$depmode" = xlc; then
-   # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency informations.
-   gccflag=-qmakedep=gcc,-MF
-   depmode=gcc
+  # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information.
+  gccflag=-qmakedep=gcc,-MF
+  depmode=gcc
 fi
 
 case "$depmode" in
@@ -134,8 +190,7 @@ gcc3)
   done
   "$@"
   stat=$?
-  if test $stat -eq 0; then :
-  else
+  if test $stat -ne 0; then
     rm -f "$tmpdepfile"
     exit $stat
   fi
@@ -143,13 +198,17 @@ gcc3)
   ;;
 
 gcc)
+## Note that this doesn't just cater to obsosete pre-3.x GCC compilers.
+## but also to in-use compilers like IMB xlc/xlC and the HP C compiler.
+## (see the conditional assignment to $gccflag above).
 ## There are various ways to get dependency output from gcc.  Here's
 ## why we pick this rather obscure method:
 ## - Don't want to use -MD because we'd like the dependencies to end
 ##   up in a subdir.  Having to rename by hand is ugly.
 ##   (We might end up doing this anyway to support other compilers.)
 ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
-##   -MM, not -M (despite what the docs say).
+##   -MM, not -M (despite what the docs say).  Also, it might not be
+##   supported by the other compilers which use the 'gcc' depmode.
 ## - Using -M directly means running the compiler twice (even worse
 ##   than renaming).
   if test -z "$gccflag"; then
@@ -157,15 +216,14 @@ gcc)
   fi
   "$@" -Wp,"$gccflag$tmpdepfile"
   stat=$?
-  if test $stat -eq 0; then :
-  else
+  if test $stat -ne 0; then
     rm -f "$tmpdepfile"
     exit $stat
   fi
   rm -f "$depfile"
   echo "$object : \\" > "$depfile"
-  alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
-## The second -e expression handles DOS-style file names with drive letters.
+  # The second -e expression handles DOS-style file names with drive
+  # letters.
   sed -e 's/^[^:]*: / /' \
       -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
 ## This next piece of magic avoids the "deleted header file" problem.
@@ -174,15 +232,15 @@ gcc)
 ## typically no way to rebuild the header).  We avoid this by adding
 ## dummy dependencies for each header file.  Too bad gcc doesn't do
 ## this for us directly.
-  tr ' ' "$nl" < "$tmpdepfile" |
 ## Some versions of gcc put a space before the ':'.  On the theory
 ## that the space means something, we add a space to the output as
 ## well.  hp depmode also adds that space, but also prefixes the VPATH
 ## to the object.  Take care to not repeat it in the output.
 ## Some versions of the HPUX 10.20 sed can't process this invocation
 ## correctly.  Breaking it into two sed invocations is a workaround.
-    sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
-      | sed -e 's/$/ :/' >> "$depfile"
+  tr ' ' "$nl" < "$tmpdepfile" \
+    | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
+    | sed -e 's/$/ :/' >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
 
@@ -200,8 +258,7 @@ sgi)
     "$@" -MDupdate "$tmpdepfile"
   fi
   stat=$?
-  if test $stat -eq 0; then :
-  else
+  if test $stat -ne 0; then
     rm -f "$tmpdepfile"
     exit $stat
   fi
@@ -209,7 +266,6 @@ sgi)
 
   if test -f "$tmpdepfile"; then  # yes, the sourcefile depend on other files
     echo "$object : \\" > "$depfile"
-
     # Clip off the initial element (the dependent).  Don't try to be
     # clever and replace this with sed code, as IRIX sed won't handle
     # lines with more than a fixed number of characters (4096 in
@@ -217,19 +273,15 @@ sgi)
     # the IRIX cc adds comments like '#:fec' to the end of the
     # dependency line.
     tr ' ' "$nl" < "$tmpdepfile" \
-    | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
-    tr "$nl" ' ' >> "$depfile"
+      | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \
+      | tr "$nl" ' ' >> "$depfile"
     echo >> "$depfile"
-
     # The second pass generates a dummy entry for each header file.
     tr ' ' "$nl" < "$tmpdepfile" \
-   | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
-   >> "$depfile"
+      | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
+      >> "$depfile"
   else
-    # The sourcefile does not contain any dependencies, so just
-    # store a dummy comment line, to avoid errors with the Makefile
-    # "include basename.Plo" scheme.
-    echo "#dummy" > "$depfile"
+    make_dummy_depfile
   fi
   rm -f "$tmpdepfile"
   ;;
@@ -247,9 +299,8 @@ aix)
   # current directory.  Also, the AIX compiler puts '$object:' at the
   # start of each line; $object doesn't have directory information.
   # Version 6 uses the directory in both cases.
-  dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
-  test "x$dir" = "x$object" && dir=
-  base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+  set_dir_from "$object"
+  set_base_from "$object"
   if test "$libtool" = yes; then
     tmpdepfile1=$dir$base.u
     tmpdepfile2=$base.u
@@ -262,9 +313,7 @@ aix)
     "$@" -M
   fi
   stat=$?
-
-  if test $stat -eq 0; then :
-  else
+  if test $stat -ne 0; then
     rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
     exit $stat
   fi
@@ -273,65 +322,113 @@ aix)
   do
     test -f "$tmpdepfile" && break
   done
-  if test -f "$tmpdepfile"; then
-    # Each line is of the form 'foo.o: dependent.h'.
-    # Do two passes, one to just change these to
-    # '$object: dependent.h' and one to simply 'dependent.h:'.
-    sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
-    sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
-  else
-    # The sourcefile does not contain any dependencies, so just
-    # store a dummy comment line, to avoid errors with the Makefile
-    # "include basename.Plo" scheme.
-    echo "#dummy" > "$depfile"
+  aix_post_process_depfile
+  ;;
+
+tcc)
+  # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26
+  # FIXME: That version still under development at the moment of writing.
+  #        Make that this statement remains true also for stable, released
+  #        versions.
+  # It will wrap lines (doesn't matter whether long or short) with a
+  # trailing '\', as in:
+  #
+  #   foo.o : \
+  #    foo.c \
+  #    foo.h \
+  #
+  # It will put a trailing '\' even on the last line, and will use leading
+  # spaces rather than leading tabs (at least since its commit 0394caf7
+  # "Emit spaces for -MD").
+  "$@" -MD -MF "$tmpdepfile"
+  stat=$?
+  if test $stat -ne 0; then
+    rm -f "$tmpdepfile"
+    exit $stat
   fi
+  rm -f "$depfile"
+  # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'.
+  # We have to change lines of the first kind to '$object: \'.
+  sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile"
+  # And for each line of the second kind, we have to emit a 'dep.h:'
+  # dummy dependency, to avoid the deleted-header problem.
+  sed -n -e 's|^  *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
 
-icc)
-  # Intel's C compiler anf tcc (Tiny C Compiler) understand '-MD -MF file'.
-  # However on
-  #    $CC -MD -MF foo.d -c -o sub/foo.o sub/foo.c
-  # ICC 7.0 will fill foo.d with something like
-  #    foo.o: sub/foo.c
-  #    foo.o: sub/foo.h
-  # which is wrong.  We want
-  #    sub/foo.o: sub/foo.c
-  #    sub/foo.o: sub/foo.h
-  #    sub/foo.c:
-  #    sub/foo.h:
-  # ICC 7.1 will output
+## The order of this option in the case statement is important, since the
+## shell code in configure will try each of these formats in the order
+## listed in this file.  A plain '-MD' option would be understood by many
+## compilers, so we must ensure this comes after the gcc and icc options.
+pgcc)
+  # Portland's C compiler understands '-MD'.
+  # Will always output deps to 'file.d' where file is the root name of the
+  # source file under compilation, even if file resides in a subdirectory.
+  # The object file name does not affect the name of the '.d' file.
+  # pgcc 10.2 will output
   #    foo.o: sub/foo.c sub/foo.h
-  # and will wrap long lines using '\':
+  # and will wrap long lines using '\' :
   #    foo.o: sub/foo.c ... \
   #     sub/foo.h ... \
   #     ...
-  # tcc 0.9.26 (FIXME still under development at the moment of writing)
-  # will emit a similar output, but also prepend the continuation lines
-  # with horizontal tabulation characters.
-  "$@" -MD -MF "$tmpdepfile"
-  stat=$?
-  if test $stat -eq 0; then :
-  else
+  set_dir_from "$object"
+  # Use the source, not the object, to determine the base name, since
+  # that's sadly what pgcc will do too.
+  set_base_from "$source"
+  tmpdepfile=$base.d
+
+  # For projects that build the same source file twice into different object
+  # files, the pgcc approach of using the *source* file root name can cause
+  # problems in parallel builds.  Use a locking strategy to avoid stomping on
+  # the same $tmpdepfile.
+  lockdir=$base.d-lock
+  trap "
+    echo '$0: caught signal, cleaning up...' >&2
+    rmdir '$lockdir'
+    exit 1
+  " 1 2 13 15
+  numtries=100
+  i=$numtries
+  while test $i -gt 0; do
+    # mkdir is a portable test-and-set.
+    if mkdir "$lockdir" 2>/dev/null; then
+      # This process acquired the lock.
+      "$@" -MD
+      stat=$?
+      # Release the lock.
+      rmdir "$lockdir"
+      break
+    else
+      # If the lock is being held by a different process, wait
+      # until the winning process is done or we timeout.
+      while test -d "$lockdir" && test $i -gt 0; do
+        sleep 1
+        i=`expr $i - 1`
+      done
+    fi
+    i=`expr $i - 1`
+  done
+  trap - 1 2 13 15
+  if test $i -le 0; then
+    echo "$0: failed to acquire lock after $numtries attempts" >&2
+    echo "$0: check lockdir '$lockdir'" >&2
+    exit 1
+  fi
+
+  if test $stat -ne 0; then
     rm -f "$tmpdepfile"
     exit $stat
   fi
   rm -f "$depfile"
-  # Each line is of the form 'foo.o: dependent.h',
-  # or 'foo.o: dep1.h dep2.h \', or ' dep3.h dep4.h \'.
+  # Each line is of the form `foo.o: dependent.h',
+  # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
   # Do two passes, one to just change these to
-  # '$object: dependent.h' and one to simply 'dependent.h:'.
-  sed -e "s/^[ $tab][ $tab]*/  /" -e "s,^[^:]*:,$object :," \
-    < "$tmpdepfile" > "$depfile"
-  sed '
-    s/[ '"$tab"'][ '"$tab"']*/ /g
-    s/^ *//
-    s/ *\\*$//
-    s/^[^:]*: *//
-    /^$/d
-    /:$/d
-    s/$/ :/
-  ' < "$tmpdepfile" >> "$depfile"
+  # `$object: dependent.h' and one to simply `dependent.h:'.
+  sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
+  # Some versions of the HPUX 10.20 sed can't process this invocation
+  # correctly.  Breaking it into two sed invocations is a workaround.
+  sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \
+    | sed -e 's/$/ :/' >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
 
@@ -342,9 +439,8 @@ hp2)
   # 'foo.d', which lands next to the object file, wherever that
   # happens to be.
   # Much of this is similar to the tru64 case; see comments there.
-  dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
-  test "x$dir" = "x$object" && dir=
-  base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+  set_dir_from  "$object"
+  set_base_from "$object"
   if test "$libtool" = yes; then
     tmpdepfile1=$dir$base.d
     tmpdepfile2=$dir.libs/$base.d
@@ -355,8 +451,7 @@ hp2)
     "$@" +Maked
   fi
   stat=$?
-  if test $stat -eq 0; then :
-  else
+  if test $stat -ne 0; then
      rm -f "$tmpdepfile1" "$tmpdepfile2"
      exit $stat
   fi
@@ -366,76 +461,61 @@ hp2)
     test -f "$tmpdepfile" && break
   done
   if test -f "$tmpdepfile"; then
-    sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
+    sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile"
     # Add 'dependent.h:' lines.
     sed -ne '2,${
-              s/^ *//
-              s/ \\*$//
-              s/$/:/
-              p
-            }' "$tmpdepfile" >> "$depfile"
+               s/^ *//
+               s/ \\*$//
+               s/$/:/
+               p
+             }' "$tmpdepfile" >> "$depfile"
   else
-    echo "#dummy" > "$depfile"
+    make_dummy_depfile
   fi
   rm -f "$tmpdepfile" "$tmpdepfile2"
   ;;
 
 tru64)
-   # The Tru64 compiler uses -MD to generate dependencies as a side
-   # effect.  'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
-   # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
-   # dependencies in 'foo.d' instead, so we check for that too.
-   # Subdirectories are respected.
-   dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
-   test "x$dir" = "x$object" && dir=
-   base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
-
-   if test "$libtool" = yes; then
-      # With Tru64 cc, shared objects can also be used to make a
-      # static library.  This mechanism is used in libtool 1.4 series to
-      # handle both shared and static libraries in a single compilation.
-      # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
-      #
-      # With libtool 1.5 this exception was removed, and libtool now
-      # generates 2 separate objects for the 2 libraries.  These two
-      # compilations output dependencies in $dir.libs/$base.o.d and
-      # in $dir$base.o.d.  We have to check for both files, because
-      # one of the two compilations can be disabled.  We should prefer
-      # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
-      # automatically cleaned when .libs/ is deleted, while ignoring
-      # the former would cause a distcleancheck panic.
-      tmpdepfile1=$dir.libs/$base.lo.d   # libtool 1.4
-      tmpdepfile2=$dir$base.o.d          # libtool 1.5
-      tmpdepfile3=$dir.libs/$base.o.d    # libtool 1.5
-      tmpdepfile4=$dir.libs/$base.d      # Compaq CCC V6.2-504
-      "$@" -Wc,-MD
-   else
-      tmpdepfile1=$dir$base.o.d
-      tmpdepfile2=$dir$base.d
-      tmpdepfile3=$dir$base.d
-      tmpdepfile4=$dir$base.d
-      "$@" -MD
-   fi
-
-   stat=$?
-   if test $stat -eq 0; then :
-   else
-      rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
-      exit $stat
-   fi
-
-   for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
-   do
-     test -f "$tmpdepfile" && break
-   done
-   if test -f "$tmpdepfile"; then
-      sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
-      sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
-   else
-      echo "#dummy" > "$depfile"
-   fi
-   rm -f "$tmpdepfile"
-   ;;
+  # The Tru64 compiler uses -MD to generate dependencies as a side
+  # effect.  'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
+  # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
+  # dependencies in 'foo.d' instead, so we check for that too.
+  # Subdirectories are respected.
+  set_dir_from  "$object"
+  set_base_from "$object"
+
+  if test "$libtool" = yes; then
+    # Libtool generates 2 separate objects for the 2 libraries.  These
+    # two compilations output dependencies in $dir.libs/$base.o.d and
+    # in $dir$base.o.d.  We have to check for both files, because
+    # one of the two compilations can be disabled.  We should prefer
+    # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
+    # automatically cleaned when .libs/ is deleted, while ignoring
+    # the former would cause a distcleancheck panic.
+    tmpdepfile1=$dir$base.o.d          # libtool 1.5
+    tmpdepfile2=$dir.libs/$base.o.d    # Likewise.
+    tmpdepfile3=$dir.libs/$base.d      # Compaq CCC V6.2-504
+    "$@" -Wc,-MD
+  else
+    tmpdepfile1=$dir$base.d
+    tmpdepfile2=$dir$base.d
+    tmpdepfile3=$dir$base.d
+    "$@" -MD
+  fi
+
+  stat=$?
+  if test $stat -ne 0; then
+    rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+    exit $stat
+  fi
+
+  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+  do
+    test -f "$tmpdepfile" && break
+  done
+  # Same post-processing that is required for AIX mode.
+  aix_post_process_depfile
+  ;;
 
 msvc7)
   if test "$libtool" = yes; then
@@ -446,8 +526,7 @@ msvc7)
   "$@" $showIncludes > "$tmpdepfile"
   stat=$?
   grep -v '^Note: including file: ' "$tmpdepfile"
-  if test "$stat" = 0; then :
-  else
+  if test $stat -ne 0; then
     rm -f "$tmpdepfile"
     exit $stat
   fi
@@ -473,6 +552,7 @@ $ {
   G
   p
 }' >> "$depfile"
+  echo >> "$depfile" # make sure the fragment doesn't end with a backslash
   rm -f "$tmpdepfile"
   ;;
 
@@ -524,13 +604,14 @@ dashmstdout)
   # in the target name.  This is to cope with DOS-style filenames:
   # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
   "$@" $dashmflag |
-    sed 's:^['"$tab"' ]*[^:'"$tab"' ][^:][^:]*\:['"$tab"' ]*:'"$object"'\: :' > "$tmpdepfile"
+    sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile"
   rm -f "$depfile"
   cat < "$tmpdepfile" > "$depfile"
-  tr ' ' "$nl" < "$tmpdepfile" | \
-## Some versions of the HPUX 10.20 sed can't process this invocation
-## correctly.  Breaking it into two sed invocations is a workaround.
-    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+  # Some versions of the HPUX 10.20 sed can't process this sed invocation
+  # correctly.  Breaking it into two sed invocations is a workaround.
+  tr ' ' "$nl" < "$tmpdepfile" \
+    | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
+    | sed -e 's/$/ :/' >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
 
@@ -583,10 +664,12 @@ makedepend)
   # makedepend may prepend the VPATH from the source file name to the object.
   # No need to regex-escape $object, excess matching of '.' is harmless.
   sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
-  sed '1,2d' "$tmpdepfile" | tr ' ' "$nl" | \
-## Some versions of the HPUX 10.20 sed can't process this invocation
-## correctly.  Breaking it into two sed invocations is a workaround.
-    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+  # Some versions of the HPUX 10.20 sed can't process the last invocation
+  # correctly.  Breaking it into two sed invocations is a workaround.
+  sed '1,2d' "$tmpdepfile" \
+    | tr ' ' "$nl" \
+    | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
+    | sed -e 's/$/ :/' >> "$depfile"
   rm -f "$tmpdepfile" "$tmpdepfile".bak
   ;;
 
@@ -622,10 +705,10 @@ cpp)
     esac
   done
 
-  "$@" -E |
-    sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
-       -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
-    sed '$ s: \\$::' > "$tmpdepfile"
+  "$@" -E \
+    sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+             -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+    sed '$ s: \\$::' > "$tmpdepfile"
   rm -f "$depfile"
   echo "$object : \\" > "$depfile"
   cat < "$tmpdepfile" >> "$depfile"
@@ -657,15 +740,15 @@ msvisualcpp)
       shift
       ;;
     "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
-       set fnord "$@"
-       shift
-       shift
-       ;;
+        set fnord "$@"
+        shift
+        shift
+        ;;
     *)
-       set fnord "$@" "$arg"
-       shift
-       shift
-       ;;
+        set fnord "$@" "$arg"
+        shift
+        shift
+        ;;
     esac
   done
   "$@" -E 2>/dev/null |
index a9244eb..377bb86 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 # install - install a program, script, or datafile
 
-scriptversion=2011-01-19.21; # UTC
+scriptversion=2011-11-20.07; # UTC
 
 # This originates from X11R5 (mit/util/scripts/install.sh), which was
 # later released in X11R6 (xc/config/util/install.sh) with the
@@ -35,7 +35,7 @@ scriptversion=2011-01-19.21; # UTC
 # FSF changes to this file are in the public domain.
 #
 # Calling this script install-sh is preferred over install.sh, to prevent
-# `make' implicit rules from creating a file called install from it
+# 'make' implicit rules from creating a file called install from it
 # when there is no Makefile.
 #
 # This script is compatible with the BSD install script, but was written
@@ -156,7 +156,7 @@ while test $# -ne 0; do
     -s) stripcmd=$stripprog;;
 
     -t) dst_arg=$2
-       # Protect names problematic for `test' and other utilities.
+       # Protect names problematic for 'test' and other utilities.
        case $dst_arg in
          -* | [=\(\)!]) dst_arg=./$dst_arg;;
        esac
@@ -190,7 +190,7 @@ if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
     fi
     shift # arg
     dst_arg=$arg
-    # Protect names problematic for `test' and other utilities.
+    # Protect names problematic for 'test' and other utilities.
     case $dst_arg in
       -* | [=\(\)!]) dst_arg=./$dst_arg;;
     esac
@@ -202,7 +202,7 @@ if test $# -eq 0; then
     echo "$0: no input file specified." >&2
     exit 1
   fi
-  # It's OK to call `install-sh -d' without argument.
+  # It's OK to call 'install-sh -d' without argument.
   # This can happen when creating conditional directories.
   exit 0
 fi
@@ -240,7 +240,7 @@ fi
 
 for src
 do
-  # Protect names problematic for `test' and other utilities.
+  # Protect names problematic for 'test' and other utilities.
   case $src in
     -* | [=\(\)!]) src=./$src;;
   esac
@@ -354,7 +354,7 @@ do
              if test -z "$dir_arg" || {
                   # Check for POSIX incompatibilities with -m.
                   # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
-                  # other-writeable bit of parent directory when it shouldn't.
+                  # other-writable bit of parent directory when it shouldn't.
                   # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
                   ls_ld_tmpdir=`ls -ld "$tmpdir"`
                   case $ls_ld_tmpdir in
index b9205ee..a356aca 100644 (file)
@@ -70,7 +70,7 @@
 #         compiler:            $LTCC
 #         compiler flags:              $LTCFLAGS
 #         linker:              $LD (gnu? $with_gnu_ld)
-#         $progname:   (GNU libtool) 2.4.2 Debian-2.4.2-1.2ubuntu1
+#         $progname:   (GNU libtool) 2.4.2 Debian-2.4.2-1.7ubuntu1
 #         automake:    $automake_version
 #         autoconf:    $autoconf_version
 #
@@ -80,7 +80,7 @@
 
 PROGRAM=libtool
 PACKAGE=libtool
-VERSION="2.4.2 Debian-2.4.2-1.2ubuntu1"
+VERSION="2.4.2 Debian-2.4.2-1.7ubuntu1"
 TIMESTAMP=""
 package_revision=1.3337
 
index 86a8fc3..db98974 100755 (executable)
@@ -1,11 +1,10 @@
 #! /bin/sh
-# Common stub for a few missing GNU programs while installing.
+# Common wrapper for a few potentially missing GNU programs.
 
-scriptversion=2012-01-06.13; # UTC
+scriptversion=2013-10-28.13; # UTC
 
-# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
-# 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
-# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -26,68 +25,40 @@ scriptversion=2012-01-06.13; # UTC
 # the same distribution terms that you use for the rest of that program.
 
 if test $# -eq 0; then
-  echo 1>&2 "Try \`$0 --help' for more information"
+  echo 1>&2 "Try '$0 --help' for more information"
   exit 1
 fi
 
-run=:
-sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
-sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
-
-# In the cases where this matters, `missing' is being run in the
-# srcdir already.
-if test -f configure.ac; then
-  configure_ac=configure.ac
-else
-  configure_ac=configure.in
-fi
+case $1 in
 
-msg="missing on your system"
+  --is-lightweight)
+    # Used by our autoconf macros to check whether the available missing
+    # script is modern enough.
+    exit 0
+    ;;
 
-case $1 in
---run)
-  # Try to run requested program, and just exit if it succeeds.
-  run=
-  shift
-  "$@" && exit 0
-  # Exit code 63 means version mismatch.  This often happens
-  # when the user try to use an ancient version of a tool on
-  # a file that requires a minimum version.  In this case we
-  # we should proceed has if the program had been absent, or
-  # if --run hadn't been passed.
-  if test $? = 63; then
-    run=:
-    msg="probably too old"
-  fi
-  ;;
+  --run)
+    # Back-compat with the calling convention used by older automake.
+    shift
+    ;;
 
   -h|--h|--he|--hel|--help)
     echo "\
 $0 [OPTION]... PROGRAM [ARGUMENT]...
 
-Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
-error status if there is no known handling for PROGRAM.
+Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
+to PROGRAM being missing or too old.
 
 Options:
   -h, --help      display this help and exit
   -v, --version   output version information and exit
-  --run           try to run the given command, and emulate it if it fails
 
 Supported PROGRAM values:
-  aclocal      touch file \`aclocal.m4'
-  autoconf     touch file \`configure'
-  autoheader   touch file \`config.h.in'
-  autom4te     touch the output file, or create a stub one
-  automake     touch all \`Makefile.in' files
-  bison        create \`y.tab.[ch]', if possible, from existing .[ch]
-  flex         create \`lex.yy.c', if possible, from existing .c
-  help2man     touch the output file
-  lex          create \`lex.yy.c', if possible, from existing .c
-  makeinfo     touch the output file
-  yacc         create \`y.tab.[ch]', if possible, from existing .[ch]
+  aclocal   autoconf  autoheader   autom4te  automake  makeinfo
+  bison     yacc      flex         lex       help2man
 
-Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
-\`g' are ignored when checking the name.
+Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
+'g' are ignored when checking the name.
 
 Send bug reports to <bug-automake@gnu.org>."
     exit $?
@@ -99,228 +70,141 @@ Send bug reports to <bug-automake@gnu.org>."
     ;;
 
   -*)
-    echo 1>&2 "$0: Unknown \`$1' option"
-    echo 1>&2 "Try \`$0 --help' for more information"
+    echo 1>&2 "$0: unknown '$1' option"
+    echo 1>&2 "Try '$0 --help' for more information"
     exit 1
     ;;
 
 esac
 
-# normalize program name to check for.
-program=`echo "$1" | sed '
-  s/^gnu-//; t
-  s/^gnu//; t
-  s/^g//; t'`
-
-# Now exit if we have it, but it failed.  Also exit now if we
-# don't have it and --version was passed (most likely to detect
-# the program).  This is about non-GNU programs, so use $1 not
-# $program.
-case $1 in
-  lex*|yacc*)
-    # Not GNU programs, they don't have --version.
-    ;;
-
-  *)
-    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
-       # We have it, but it failed.
-       exit 1
-    elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
-       # Could not run --version or --help.  This is probably someone
-       # running `$TOOL --version' or `$TOOL --help' to check whether
-       # $TOOL exists and not knowing $TOOL uses missing.
-       exit 1
-    fi
-    ;;
-esac
-
-# If it does not exist, or fails to run (possibly an outdated version),
-# try to emulate it.
-case $program in
-  aclocal*)
-    echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified \`acinclude.m4' or \`${configure_ac}'.  You might want
-         to install the \`Automake' and \`Perl' packages.  Grab them from
-         any GNU archive site."
-    touch aclocal.m4
-    ;;
-
-  autoconf*)
-    echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified \`${configure_ac}'.  You might want to install the
-         \`Autoconf' and \`GNU m4' packages.  Grab them from any GNU
-         archive site."
-    touch configure
-    ;;
-
-  autoheader*)
-    echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified \`acconfig.h' or \`${configure_ac}'.  You might want
-         to install the \`Autoconf' and \`GNU m4' packages.  Grab them
-         from any GNU archive site."
-    files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
-    test -z "$files" && files="config.h"
-    touch_files=
-    for f in $files; do
-      case $f in
-      *:*) touch_files="$touch_files "`echo "$f" |
-                                      sed -e 's/^[^:]*://' -e 's/:.*//'`;;
-      *) touch_files="$touch_files $f.in";;
-      esac
-    done
-    touch $touch_files
-    ;;
-
-  automake*)
-    echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
-         You might want to install the \`Automake' and \`Perl' packages.
-         Grab them from any GNU archive site."
-    find . -type f -name Makefile.am -print |
-          sed 's/\.am$/.in/' |
-          while read f; do touch "$f"; done
-    ;;
-
-  autom4te*)
-    echo 1>&2 "\
-WARNING: \`$1' is needed, but is $msg.
-         You might have modified some files without having the
-         proper tools for further handling them.
-         You can get \`$1' as part of \`Autoconf' from any GNU
-         archive site."
-
-    file=`echo "$*" | sed -n "$sed_output"`
-    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
-    if test -f "$file"; then
-       touch $file
-    else
-       test -z "$file" || exec >$file
-       echo "#! /bin/sh"
-       echo "# Created by GNU Automake missing as a replacement of"
-       echo "#  $ $@"
-       echo "exit 0"
-       chmod +x $file
-       exit 1
-    fi
-    ;;
-
-  bison*|yacc*)
-    echo 1>&2 "\
-WARNING: \`$1' $msg.  You should only need it if
-         you modified a \`.y' file.  You may need the \`Bison' package
-         in order for those modifications to take effect.  You can get
-         \`Bison' from any GNU archive site."
-    rm -f y.tab.c y.tab.h
-    if test $# -ne 1; then
-        eval LASTARG=\${$#}
-       case $LASTARG in
-       *.y)
-           SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
-           if test -f "$SRCFILE"; then
-                cp "$SRCFILE" y.tab.c
-           fi
-           SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
-           if test -f "$SRCFILE"; then
-                cp "$SRCFILE" y.tab.h
-           fi
-         ;;
-       esac
-    fi
-    if test ! -f y.tab.h; then
-       echo >y.tab.h
-    fi
-    if test ! -f y.tab.c; then
-       echo 'main() { return 0; }' >y.tab.c
-    fi
-    ;;
-
-  lex*|flex*)
-    echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified a \`.l' file.  You may need the \`Flex' package
-         in order for those modifications to take effect.  You can get
-         \`Flex' from any GNU archive site."
-    rm -f lex.yy.c
-    if test $# -ne 1; then
-        eval LASTARG=\${$#}
-       case $LASTARG in
-       *.l)
-           SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
-           if test -f "$SRCFILE"; then
-                cp "$SRCFILE" lex.yy.c
-           fi
-         ;;
-       esac
-    fi
-    if test ! -f lex.yy.c; then
-       echo 'main() { return 0; }' >lex.yy.c
-    fi
-    ;;
-
-  help2man*)
-    echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-        you modified a dependency of a manual page.  You may need the
-        \`Help2man' package in order for those modifications to take
-        effect.  You can get \`Help2man' from any GNU archive site."
-
-    file=`echo "$*" | sed -n "$sed_output"`
-    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
-    if test -f "$file"; then
-       touch $file
-    else
-       test -z "$file" || exec >$file
-       echo ".ab help2man is required to generate this page"
-       exit $?
-    fi
-    ;;
-
-  makeinfo*)
-    echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified a \`.texi' or \`.texinfo' file, or any other file
-         indirectly affecting the aspect of the manual.  The spurious
-         call might also be the consequence of using a buggy \`make' (AIX,
-         DU, IRIX).  You might want to install the \`Texinfo' package or
-         the \`GNU make' package.  Grab either from any GNU archive site."
-    # The file to touch is that specified with -o ...
-    file=`echo "$*" | sed -n "$sed_output"`
-    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
-    if test -z "$file"; then
-      # ... or it is the one specified with @setfilename ...
-      infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
-      file=`sed -n '
-       /^@setfilename/{
-         s/.* \([^ ]*\) *$/\1/
-         p
-         q
-       }' $infile`
-      # ... or it is derived from the source name (dir/f.texi becomes f.info)
-      test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
-    fi
-    # If the file does not exist, the user really needs makeinfo;
-    # let's fail without touching anything.
-    test -f $file || exit 1
-    touch $file
-    ;;
+# Run the given program, remember its exit status.
+"$@"; st=$?
+
+# If it succeeded, we are done.
+test $st -eq 0 && exit 0
+
+# Also exit now if we it failed (or wasn't found), and '--version' was
+# passed; such an option is passed most likely to detect whether the
+# program is present and works.
+case $2 in --version|--help) exit $st;; esac
+
+# Exit code 63 means version mismatch.  This often happens when the user
+# tries to use an ancient version of a tool on a file that requires a
+# minimum version.
+if test $st -eq 63; then
+  msg="probably too old"
+elif test $st -eq 127; then
+  # Program was missing.
+  msg="missing on your system"
+else
+  # Program was found and executed, but failed.  Give up.
+  exit $st
+fi
 
-  *)
-    echo 1>&2 "\
-WARNING: \`$1' is needed, and is $msg.
-         You might have modified some files without having the
-         proper tools for further handling them.  Check the \`README' file,
-         it often tells you about the needed prerequisites for installing
-         this package.  You may also peek at any GNU archive site, in case
-         some other package would contain this missing \`$1' program."
-    exit 1
+perl_URL=http://www.perl.org/
+flex_URL=http://flex.sourceforge.net/
+gnu_software_URL=http://www.gnu.org/software
+
+program_details ()
+{
+  case $1 in
+    aclocal|automake)
+      echo "The '$1' program is part of the GNU Automake package:"
+      echo "<$gnu_software_URL/automake>"
+      echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
+      echo "<$gnu_software_URL/autoconf>"
+      echo "<$gnu_software_URL/m4/>"
+      echo "<$perl_URL>"
+      ;;
+    autoconf|autom4te|autoheader)
+      echo "The '$1' program is part of the GNU Autoconf package:"
+      echo "<$gnu_software_URL/autoconf/>"
+      echo "It also requires GNU m4 and Perl in order to run:"
+      echo "<$gnu_software_URL/m4/>"
+      echo "<$perl_URL>"
+      ;;
+  esac
+}
+
+give_advice ()
+{
+  # Normalize program name to check for.
+  normalized_program=`echo "$1" | sed '
+    s/^gnu-//; t
+    s/^gnu//; t
+    s/^g//; t'`
+
+  printf '%s\n' "'$1' is $msg."
+
+  configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
+  case $normalized_program in
+    autoconf*)
+      echo "You should only need it if you modified 'configure.ac',"
+      echo "or m4 files included by it."
+      program_details 'autoconf'
+      ;;
+    autoheader*)
+      echo "You should only need it if you modified 'acconfig.h' or"
+      echo "$configure_deps."
+      program_details 'autoheader'
+      ;;
+    automake*)
+      echo "You should only need it if you modified 'Makefile.am' or"
+      echo "$configure_deps."
+      program_details 'automake'
+      ;;
+    aclocal*)
+      echo "You should only need it if you modified 'acinclude.m4' or"
+      echo "$configure_deps."
+      program_details 'aclocal'
+      ;;
+   autom4te*)
+      echo "You might have modified some maintainer files that require"
+      echo "the 'autom4te' program to be rebuilt."
+      program_details 'autom4te'
+      ;;
+    bison*|yacc*)
+      echo "You should only need it if you modified a '.y' file."
+      echo "You may want to install the GNU Bison package:"
+      echo "<$gnu_software_URL/bison/>"
+      ;;
+    lex*|flex*)
+      echo "You should only need it if you modified a '.l' file."
+      echo "You may want to install the Fast Lexical Analyzer package:"
+      echo "<$flex_URL>"
+      ;;
+    help2man*)
+      echo "You should only need it if you modified a dependency" \
+           "of a man page."
+      echo "You may want to install the GNU Help2man package:"
+      echo "<$gnu_software_URL/help2man/>"
     ;;
-esac
-
-exit 0
+    makeinfo*)
+      echo "You should only need it if you modified a '.texi' file, or"
+      echo "any other file indirectly affecting the aspect of the manual."
+      echo "You might want to install the Texinfo package:"
+      echo "<$gnu_software_URL/texinfo/>"
+      echo "The spurious makeinfo call might also be the consequence of"
+      echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
+      echo "want to install GNU make:"
+      echo "<$gnu_software_URL/make/>"
+      ;;
+    *)
+      echo "You might have modified some files without having the proper"
+      echo "tools for further handling them.  Check the 'README' file, it"
+      echo "often tells you about the needed prerequisites for installing"
+      echo "this package.  You may also peek at any GNU archive site, in"
+      echo "case some other package contains this missing '$1' program."
+      ;;
+  esac
+}
+
+give_advice "$1" | sed -e '1s/^/WARNING: /' \
+                       -e '2,$s/^/         /' >&2
+
+# Propagate the correct exit status (expected to be 127 for a program
+# not found, 63 for a program that failed due to version mismatch).
+exit $st
 
 # Local variables:
 # eval: (add-hook 'write-file-hooks 'time-stamp)
diff --git a/build-aux/test-driver b/build-aux/test-driver
new file mode 100755 (executable)
index 0000000..d306056
--- /dev/null
@@ -0,0 +1,139 @@
+#! /bin/sh
+# test-driver - basic testsuite driver script.
+
+scriptversion=2013-07-13.22; # UTC
+
+# Copyright (C) 2011-2013 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+# Make unconditional expansion of undefined variables an error.  This
+# helps a lot in preventing typo-related bugs.
+set -u
+
+usage_error ()
+{
+  echo "$0: $*" >&2
+  print_usage >&2
+  exit 2
+}
+
+print_usage ()
+{
+  cat <<END
+Usage:
+  test-driver --test-name=NAME --log-file=PATH --trs-file=PATH
+              [--expect-failure={yes|no}] [--color-tests={yes|no}]
+              [--enable-hard-errors={yes|no}] [--]
+              TEST-SCRIPT [TEST-SCRIPT-ARGUMENTS]
+The '--test-name', '--log-file' and '--trs-file' options are mandatory.
+END
+}
+
+test_name= # Used for reporting.
+log_file=  # Where to save the output of the test script.
+trs_file=  # Where to save the metadata of the test run.
+expect_failure=no
+color_tests=no
+enable_hard_errors=yes
+while test $# -gt 0; do
+  case $1 in
+  --help) print_usage; exit $?;;
+  --version) echo "test-driver $scriptversion"; exit $?;;
+  --test-name) test_name=$2; shift;;
+  --log-file) log_file=$2; shift;;
+  --trs-file) trs_file=$2; shift;;
+  --color-tests) color_tests=$2; shift;;
+  --expect-failure) expect_failure=$2; shift;;
+  --enable-hard-errors) enable_hard_errors=$2; shift;;
+  --) shift; break;;
+  -*) usage_error "invalid option: '$1'";;
+   *) break;;
+  esac
+  shift
+done
+
+missing_opts=
+test x"$test_name" = x && missing_opts="$missing_opts --test-name"
+test x"$log_file"  = x && missing_opts="$missing_opts --log-file"
+test x"$trs_file"  = x && missing_opts="$missing_opts --trs-file"
+if test x"$missing_opts" != x; then
+  usage_error "the following mandatory options are missing:$missing_opts"
+fi
+
+if test $# -eq 0; then
+  usage_error "missing argument"
+fi
+
+if test $color_tests = yes; then
+  # Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'.
+  red='\e[0;31m' # Red.
+  grn='\e[0;32m' # Green.
+  lgn='\e[1;32m' # Light green.
+  blu='\e[1;34m' # Blue.
+  mgn='\e[0;35m' # Magenta.
+  std='\e[m'     # No color.
+else
+  red= grn= lgn= blu= mgn= std=
+fi
+
+do_exit='rm -f $log_file $trs_file; (exit $st); exit $st'
+trap "st=129; $do_exit" 1
+trap "st=130; $do_exit" 2
+trap "st=141; $do_exit" 13
+trap "st=143; $do_exit" 15
+
+# Test script is run here.
+"$@" >$log_file 2>&1
+estatus=$?
+if test $enable_hard_errors = no && test $estatus -eq 99; then
+  estatus=1
+fi
+
+case $estatus:$expect_failure in
+  0:yes) col=$red res=XPASS recheck=yes gcopy=yes;;
+  0:*)   col=$grn res=PASS  recheck=no  gcopy=no;;
+  77:*)  col=$blu res=SKIP  recheck=no  gcopy=yes;;
+  99:*)  col=$mgn res=ERROR recheck=yes gcopy=yes;;
+  *:yes) col=$lgn res=XFAIL recheck=no  gcopy=yes;;
+  *:*)   col=$red res=FAIL  recheck=yes gcopy=yes;;
+esac
+
+# Report outcome to console.
+echo "${col}${res}${std}: $test_name"
+
+# Register the test result, and other relevant metadata.
+echo ":test-result: $res" > $trs_file
+echo ":global-test-result: $res" >> $trs_file
+echo ":recheck: $recheck" >> $trs_file
+echo ":copy-in-global-log: $gcopy" >> $trs_file
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
index a7745b9..14e3391 100644 (file)
@@ -6,6 +6,9 @@
 /* Define to 1 if you have the `getpagesize' function. */
 #undef HAVE_GETPAGESIZE
 
+/* Define to 1 if you have the <ifaddrs.h> header file. */
+#undef HAVE_IFADDRS_H
+
 /* Define to 1 if you have the <inttypes.h> header file. */
 #undef HAVE_INTTYPES_H
 
index e874272..68d70d0 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for gupnp 0.20.5.
+# Generated by GNU Autoconf 2.69 for gupnp 0.20.12.
 #
 # Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=gupnp&component=gupnp>.
 #
@@ -651,8 +651,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='gupnp'
 PACKAGE_TARNAME='gupnp'
-PACKAGE_VERSION='0.20.5'
-PACKAGE_STRING='gupnp 0.20.5'
+PACKAGE_VERSION='0.20.12'
+PACKAGE_STRING='gupnp 0.20.12'
 PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=gupnp&component=gupnp'
 PACKAGE_URL='http://www.gupnp.org/'
 
@@ -708,11 +708,14 @@ GTK_DOC_BUILD_HTML_FALSE
 GTK_DOC_BUILD_HTML_TRUE
 ENABLE_GTK_DOC_FALSE
 ENABLE_GTK_DOC_TRUE
+HAVE_GTK_DOC_FALSE
+HAVE_GTK_DOC_TRUE
 GTKDOC_DEPS_LIBS
 GTKDOC_DEPS_CFLAGS
 HTML_DIR
 GTKDOC_MKPDF
 GTKDOC_REBASE
+GTKDOC_CHECK_PATH
 GTKDOC_CHECK
 HAVE_VAPIGEN_FALSE
 HAVE_VAPIGEN_TRUE
@@ -735,10 +738,11 @@ CONNMAN_LIBS
 CONNMAN_CFLAGS
 USE_CONNMAN_FALSE
 USE_CONNMAN_TRUE
-GIO_LIBS
-GIO_CFLAGS
 USE_NETWORK_MANAGER_FALSE
 USE_NETWORK_MANAGER_TRUE
+HAVE_IFADDRS_H
+HAVE_IFADDRS_H_FALSE
+HAVE_IFADDRS_H_TRUE
 HAVE_NETLINK
 HAVE_NETLINK_FALSE
 HAVE_NETLINK_TRUE
@@ -751,6 +755,7 @@ LIBGUPNP_CFLAGS
 PKG_CONFIG_LIBDIR
 PKG_CONFIG_PATH
 PKG_CONFIG
+UUID_LIBS
 OTOOL64
 OTOOL
 LIPO
@@ -790,13 +795,13 @@ CPPFLAGS
 LDFLAGS
 CFLAGS
 CC
+MAINT
+MAINTAINER_MODE_FALSE
+MAINTAINER_MODE_TRUE
 AM_BACKSLASH
 AM_DEFAULT_VERBOSITY
 AM_DEFAULT_V
 AM_V
-MAINT
-MAINTAINER_MODE_FALSE
-MAINTAINER_MODE_TRUE
 am__untar
 am__tar
 AMTAR
@@ -873,8 +878,8 @@ SHELL'
 ac_subst_files=''
 ac_user_opts='
 enable_option_checking
-enable_maintainer_mode
 enable_silent_rules
+enable_maintainer_mode
 enable_dependency_tracking
 enable_largefile
 enable_shared
@@ -908,8 +913,6 @@ LIBGUPNP_CFLAGS
 LIBGUPNP_LIBS
 GTHREAD_CFLAGS
 GTHREAD_LIBS
-GIO_CFLAGS
-GIO_LIBS
 CONNMAN_CFLAGS
 CONNMAN_LIBS
 GTKDOC_DEPS_CFLAGS
@@ -1454,7 +1457,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures gupnp 0.20.5 to adapt to many kinds of systems.
+\`configure' configures gupnp 0.20.12 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1525,7 +1528,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of gupnp 0.20.5:";;
+     short | recursive ) echo "Configuration of gupnp 0.20.12:";;
    esac
   cat <<\_ACEOF
 
@@ -1533,12 +1536,15 @@ Optional Features:
   --disable-option-checking  ignore unrecognized --enable/--with options
   --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
-  --disable-maintainer-mode  disable make rules and dependencies not useful
-                         (and sometimes confusing) to the casual installer
-  --enable-silent-rules          less verbose build output (undo: `make V=1')
-  --disable-silent-rules         verbose build output (undo: `make V=0')
-  --disable-dependency-tracking  speeds up one-time build
-  --enable-dependency-tracking   do not reject slow dependency extractors
+  --enable-silent-rules   less verbose build output (undo: "make V=1")
+  --disable-silent-rules  verbose build output (undo: "make V=0")
+  --disable-maintainer-mode
+                          disable make rules and dependencies not useful (and
+                          sometimes confusing) to the casual installer
+  --enable-dependency-tracking
+                          do not reject slow dependency extractors
+  --disable-dependency-tracking
+                          speeds up one-time build
   --disable-largefile     omit support for large files
   --enable-shared[=PKGS]  build shared libraries [default=yes]
   --enable-static[=PKGS]  build static libraries [default=yes]
@@ -1586,8 +1592,6 @@ Some influential environment variables:
               C compiler flags for GTHREAD, overriding pkg-config
   GTHREAD_LIBS
               linker flags for GTHREAD, overriding pkg-config
-  GIO_CFLAGS  C compiler flags for GIO, overriding pkg-config
-  GIO_LIBS    linker flags for GIO, overriding pkg-config
   CONNMAN_CFLAGS
               C compiler flags for CONNMAN, overriding pkg-config
   CONNMAN_LIBS
@@ -1664,7 +1668,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-gupnp configure 0.20.5
+gupnp configure 0.20.12
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1938,11 +1942,102 @@ $as_echo "$ac_res" >&6; }
   eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
 } # ac_fn_c_check_func
+
+# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists, giving a warning if it cannot be compiled using
+# the include files in INCLUDES and setting the cache variable VAR
+# accordingly.
+ac_fn_c_check_header_mongrel ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if eval \${$3+:} false; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+fi
+eval ac_res=\$$3
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
+$as_echo_n "checking $2 usability... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_header_compiler=yes
+else
+  ac_header_compiler=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
+$as_echo_n "checking $2 presence... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <$2>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+  ac_header_preproc=yes
+else
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
+  yes:no: )
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+    ;;
+  no:yes:* )
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $2:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+( $as_echo "## ------------------------------------------------------------------------------------ ##
+## Report this to http://bugzilla.gnome.org/enter_bug.cgi?product=gupnp&component=gupnp ##
+## ------------------------------------------------------------------------------------ ##"
+     ) | sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  eval "$3=\$ac_header_compiler"
+fi
+eval ac_res=\$$3
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+fi
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_header_mongrel
 cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by gupnp $as_me 0.20.5, which was
+It was created by gupnp $as_me 0.20.12, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2439,7 +2534,7 @@ test -n "$target_alias" &&
     NONENONEs,x,x, &&
   program_prefix=${target_alias}-
 
-am__api_version='1.11'
+am__api_version='1.14'
 
 # Find a good install program.  We prefer a C program (faster),
 # so one script is as good as another.  But avoid the broken or
@@ -2536,9 +2631,6 @@ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
 $as_echo_n "checking whether build environment is sane... " >&6; }
-# Just in case
-sleep 1
-echo timestamp > conftest.file
 # Reject unsafe characters in $srcdir or the absolute working directory
 # name.  Accept space and tab only in the latter.
 am_lf='
@@ -2549,32 +2641,40 @@ case `pwd` in
 esac
 case $srcdir in
   *[\\\"\#\$\&\'\`$am_lf\ \    ]*)
-    as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
+    as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;;
 esac
 
-# Do `set' in a subshell so we don't clobber the current shell's
+# Do 'set' in a subshell so we don't clobber the current shell's
 # arguments.  Must try -L first in case configure is actually a
 # symlink; some systems play weird games with the mod time of symlinks
 # (eg FreeBSD returns the mod time of the symlink's containing
 # directory).
 if (
-   set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
-   if test "$*" = "X"; then
-      # -L didn't work.
-      set X `ls -t "$srcdir/configure" conftest.file`
-   fi
-   rm -f conftest.file
-   if test "$*" != "X $srcdir/configure conftest.file" \
-      && test "$*" != "X conftest.file $srcdir/configure"; then
-
-      # If neither matched, then we have a broken ls.  This can happen
-      # if, for instance, CONFIG_SHELL is bash and it inherits a
-      # broken ls alias from the environment.  This has actually
-      # happened.  Such a system could not be considered "sane".
-      as_fn_error $? "ls -t appears to fail.  Make sure there is not a broken
-alias in your environment" "$LINENO" 5
-   fi
-
+   am_has_slept=no
+   for am_try in 1 2; do
+     echo "timestamp, slept: $am_has_slept" > conftest.file
+     set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+     if test "$*" = "X"; then
+       # -L didn't work.
+       set X `ls -t "$srcdir/configure" conftest.file`
+     fi
+     if test "$*" != "X $srcdir/configure conftest.file" \
+       && test "$*" != "X conftest.file $srcdir/configure"; then
+
+       # If neither matched, then we have a broken ls.  This can happen
+       # if, for instance, CONFIG_SHELL is bash and it inherits a
+       # broken ls alias from the environment.  This has actually
+       # happened.  Such a system could not be considered "sane".
+       as_fn_error $? "ls -t appears to fail.  Make sure there is not a broken
+  alias in your environment" "$LINENO" 5
+     fi
+     if test "$2" = conftest.file || test $am_try -eq 2; then
+       break
+     fi
+     # Just in case.
+     sleep 1
+     am_has_slept=yes
+   done
    test "$2" = conftest.file
    )
 then
@@ -2586,6 +2686,16 @@ Check your system clock" "$LINENO" 5
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+  ( sleep 1 ) &
+  am_sleep_pid=$!
+fi
+
+rm -f conftest.file
+
 test "$program_prefix" != NONE &&
   program_transform_name="s&^&$program_prefix&;$program_transform_name"
 # Use a double $ so make ignores it.
@@ -2608,12 +2718,12 @@ if test x"${MISSING+set}" != xset; then
   esac
 fi
 # Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
-  am_missing_run="$MISSING --run "
+if eval "$MISSING --is-lightweight"; then
+  am_missing_run="$MISSING "
 else
   am_missing_run=
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5
-$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
+$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
 fi
 
 if test x"${install_sh}" != xset; then
@@ -2625,10 +2735,10 @@ if test x"${install_sh}" != xset; then
   esac
 fi
 
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'.  However `strip' might not be the right
+# Installed binaries are usually stripped using 'strip' when the user
+# run "make install-strip".  However 'strip' might not be the right
 # tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
+# will honor the 'STRIP' environment variable to overrule this program.
 if test "$cross_compiling" != no; then
   if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
@@ -2767,12 +2877,6 @@ fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
 $as_echo "$MKDIR_P" >&6; }
 
-mkdir_p="$MKDIR_P"
-case $mkdir_p in
-  [\\/$]* | ?:[\\/]*) ;;
-  */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
-esac
-
 for ac_prog in gawk mawk nawk awk
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
@@ -2855,6 +2959,45 @@ else
 fi
 rmdir .tst 2>/dev/null
 
+# Check whether --enable-silent-rules was given.
+if test "${enable_silent_rules+set}" = set; then :
+  enableval=$enable_silent_rules;
+fi
+
+case $enable_silent_rules in # (((
+  yes) AM_DEFAULT_VERBOSITY=0;;
+   no) AM_DEFAULT_VERBOSITY=1;;
+    *) AM_DEFAULT_VERBOSITY=1;;
+esac
+am_make=${MAKE-make}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
+$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
+if ${am_cv_make_support_nested_variables+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if $as_echo 'TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+       @$(TRUE)
+.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
+  am_cv_make_support_nested_variables=yes
+else
+  am_cv_make_support_nested_variables=no
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
+$as_echo "$am_cv_make_support_nested_variables" >&6; }
+if test $am_cv_make_support_nested_variables = yes; then
+    AM_V='$(V)'
+  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+  AM_V=$AM_DEFAULT_VERBOSITY
+  AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AM_BACKSLASH='\'
+
 if test "`cd $srcdir && pwd`" != "`pwd`"; then
   # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
   # is not polluted with repeated "-I."
@@ -2877,7 +3020,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='gupnp'
- VERSION='0.20.5'
+ VERSION='0.20.12'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -2905,6 +3048,12 @@ AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
 
 MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
 
+# For better backward compatibility.  To be removed once Automake 1.9.x
+# dies out for good.  For more background, see:
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+mkdir_p='$(MKDIR_P)'
+
 # We need awk for the "check" target.  The system "awk" is bad on
 # some platforms.
 # Always define AMTAR for backward compatibility.  Yes, it's still used
@@ -2912,86 +3061,125 @@ MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
 AMTAR='$${TAR-tar}'
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create a ustar tar archive" >&5
-$as_echo_n "checking how to create a ustar tar archive... " >&6; }
-# Loop over all known methods to create a tar archive until one works.
+# We'll loop over all known methods to create a tar archive until one works.
 _am_tools='gnutar plaintar pax cpio none'
-_am_tools=${am_cv_prog_tar_ustar-$_am_tools}
-# Do not fold the above two line into one, because Tru64 sh and
-# Solaris sh will not grok spaces in the rhs of `-'.
-for _am_tool in $_am_tools
-do
-  case $_am_tool in
-  gnutar)
-    for _am_tar in tar gnutar gtar;
-    do
-      { echo "$as_me:$LINENO: $_am_tar --version" >&5
+
+# The POSIX 1988 'ustar' format is defined with fixed-size fields.
+      # There is notably a 21 bits limit for the UID and the GID.  In fact,
+      # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343
+      # and bug#13588).
+      am_max_uid=2097151 # 2^21 - 1
+      am_max_gid=$am_max_uid
+      # The $UID and $GID variables are not portable, so we need to resort
+      # to the POSIX-mandated id(1) utility.  Errors in the 'id' calls
+      # below are definitely unexpected, so allow the users to see them
+      # (that is, avoid stderr redirection).
+      am_uid=`id -u || echo unknown`
+      am_gid=`id -g || echo unknown`
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether UID '$am_uid' is supported by ustar format" >&5
+$as_echo_n "checking whether UID '$am_uid' is supported by ustar format... " >&6; }
+      if test $am_uid -le $am_max_uid; then
+         { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+      else
+         { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+         _am_tools=none
+      fi
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether GID '$am_gid' is supported by ustar format" >&5
+$as_echo_n "checking whether GID '$am_gid' is supported by ustar format... " >&6; }
+      if test $am_gid -le $am_max_gid; then
+         { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+      else
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+        _am_tools=none
+      fi
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create a ustar tar archive" >&5
+$as_echo_n "checking how to create a ustar tar archive... " >&6; }
+
+  # Go ahead even if we have the value already cached.  We do so because we
+  # need to set the values for the 'am__tar' and 'am__untar' variables.
+  _am_tools=${am_cv_prog_tar_ustar-$_am_tools}
+
+  for _am_tool in $_am_tools; do
+    case $_am_tool in
+    gnutar)
+      for _am_tar in tar gnutar gtar; do
+        { echo "$as_me:$LINENO: $_am_tar --version" >&5
    ($_am_tar --version) >&5 2>&5
    ac_status=$?
    echo "$as_me:$LINENO: \$? = $ac_status" >&5
    (exit $ac_status); } && break
-    done
-    am__tar="$_am_tar --format=ustar -chf - "'"$$tardir"'
-    am__tar_="$_am_tar --format=ustar -chf - "'"$tardir"'
-    am__untar="$_am_tar -xf -"
-    ;;
-  plaintar)
-    # Must skip GNU tar: if it does not support --format= it doesn't create
-    # ustar tarball either.
-    (tar --version) >/dev/null 2>&1 && continue
-    am__tar='tar chf - "$$tardir"'
-    am__tar_='tar chf - "$tardir"'
-    am__untar='tar xf -'
-    ;;
-  pax)
-    am__tar='pax -L -x ustar -w "$$tardir"'
-    am__tar_='pax -L -x ustar -w "$tardir"'
-    am__untar='pax -r'
-    ;;
-  cpio)
-    am__tar='find "$$tardir" -print | cpio -o -H ustar -L'
-    am__tar_='find "$tardir" -print | cpio -o -H ustar -L'
-    am__untar='cpio -i -H ustar -d'
-    ;;
-  none)
-    am__tar=false
-    am__tar_=false
-    am__untar=false
-    ;;
-  esac
+      done
+      am__tar="$_am_tar --format=ustar -chf - "'"$$tardir"'
+      am__tar_="$_am_tar --format=ustar -chf - "'"$tardir"'
+      am__untar="$_am_tar -xf -"
+      ;;
+    plaintar)
+      # Must skip GNU tar: if it does not support --format= it doesn't create
+      # ustar tarball either.
+      (tar --version) >/dev/null 2>&1 && continue
+      am__tar='tar chf - "$$tardir"'
+      am__tar_='tar chf - "$tardir"'
+      am__untar='tar xf -'
+      ;;
+    pax)
+      am__tar='pax -L -x ustar -w "$$tardir"'
+      am__tar_='pax -L -x ustar -w "$tardir"'
+      am__untar='pax -r'
+      ;;
+    cpio)
+      am__tar='find "$$tardir" -print | cpio -o -H ustar -L'
+      am__tar_='find "$tardir" -print | cpio -o -H ustar -L'
+      am__untar='cpio -i -H ustar -d'
+      ;;
+    none)
+      am__tar=false
+      am__tar_=false
+      am__untar=false
+      ;;
+    esac
 
-  # If the value was cached, stop now.  We just wanted to have am__tar
-  # and am__untar set.
-  test -n "${am_cv_prog_tar_ustar}" && break
+    # If the value was cached, stop now.  We just wanted to have am__tar
+    # and am__untar set.
+    test -n "${am_cv_prog_tar_ustar}" && break
 
-  # tar/untar a dummy directory, and stop if the command works
-  rm -rf conftest.dir
-  mkdir conftest.dir
-  echo GrepMe > conftest.dir/file
-  { echo "$as_me:$LINENO: tardir=conftest.dir && eval $am__tar_ >conftest.tar" >&5
+    # tar/untar a dummy directory, and stop if the command works.
+    rm -rf conftest.dir
+    mkdir conftest.dir
+    echo GrepMe > conftest.dir/file
+    { echo "$as_me:$LINENO: tardir=conftest.dir && eval $am__tar_ >conftest.tar" >&5
    (tardir=conftest.dir && eval $am__tar_ >conftest.tar) >&5 2>&5
    ac_status=$?
    echo "$as_me:$LINENO: \$? = $ac_status" >&5
    (exit $ac_status); }
-  rm -rf conftest.dir
-  if test -s conftest.tar; then
-    { echo "$as_me:$LINENO: $am__untar <conftest.tar" >&5
+    rm -rf conftest.dir
+    if test -s conftest.tar; then
+      { echo "$as_me:$LINENO: $am__untar <conftest.tar" >&5
    ($am__untar <conftest.tar) >&5 2>&5
    ac_status=$?
    echo "$as_me:$LINENO: \$? = $ac_status" >&5
    (exit $ac_status); }
-    grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
-  fi
-done
-rm -rf conftest.dir
+      { echo "$as_me:$LINENO: cat conftest.dir/file" >&5
+   (cat conftest.dir/file) >&5 2>&5
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); }
+      grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+    fi
+  done
+  rm -rf conftest.dir
 
-if ${am_cv_prog_tar_ustar+:} false; then :
+  if ${am_cv_prog_tar_ustar+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   am_cv_prog_tar_ustar=$_am_tool
 fi
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_ustar" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_ustar" >&5
 $as_echo "$am_cv_prog_tar_ustar" >&6; }
 
 
@@ -2999,6 +3187,48 @@ $as_echo "$am_cv_prog_tar_ustar" >&6; }
 
 
 
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes.  So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+  cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present.  This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell bug-automake@gnu.org about your system, including the value
+of your $PATH and any error possibly output before this message.  This
+can help us improve future automake versions.
+
+END
+  if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+    echo 'Configuration will proceed anyway, since you have set the' >&2
+    echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+    echo >&2
+  else
+    cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <http://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+    as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5
+  fi
+fi
+
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
     # Check whether --enable-maintainer-mode was given.
@@ -3027,10 +3257,10 @@ if test "${enable_silent_rules+set}" = set; then :
   enableval=$enable_silent_rules;
 fi
 
-case $enable_silent_rules in
-yes) AM_DEFAULT_VERBOSITY=0;;
-no)  AM_DEFAULT_VERBOSITY=1;;
-*)   AM_DEFAULT_VERBOSITY=0;;
+case $enable_silent_rules in # (((
+  yes) AM_DEFAULT_VERBOSITY=0;;
+   no) AM_DEFAULT_VERBOSITY=1;;
+    *) AM_DEFAULT_VERBOSITY=0;;
 esac
 am_make=${MAKE-make}
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
@@ -3851,6 +4081,65 @@ ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
+$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
+if ${am_cv_prog_cc_c_o+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+  # Make sure it works both with $CC and with simple cc.
+  # Following AC_PROG_CC_C_O, we do the test twice because some
+  # compilers refuse to overwrite an existing .o file with -o,
+  # though they will create one.
+  am_cv_prog_cc_c_o=yes
+  for am_i in 1 2; do
+    if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
+   ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } \
+         && test -f conftest2.$ac_objext; then
+      : OK
+    else
+      am_cv_prog_cc_c_o=no
+      break
+    fi
+  done
+  rm -f core conftest*
+  unset am_i
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
+$as_echo "$am_cv_prog_cc_c_o" >&6; }
+if test "$am_cv_prog_cc_c_o" != yes; then
+   # Losing compiler, so override with the script.
+   # FIXME: It is wrong to rewrite CC.
+   # But if we don't then we get into trouble of one sort or another.
+   # A longer-term fix would be to have automake use am__CC in this case,
+   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+   CC="$am_aux_dir/compile $CC"
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
 DEPDIR="${am__leading_dot}deps"
 
 ac_config_commands="$ac_config_commands depfiles"
@@ -3870,7 +4159,7 @@ am__quote=
 _am_result=none
 # First try GNU make style include.
 echo "include confinc" > confmf
-# Ignore all kinds of additional output from `make'.
+# Ignore all kinds of additional output from 'make'.
 case `$am_make -s -f confmf 2> /dev/null` in #(
 *the\ am__doit\ target*)
   am__include=include
@@ -3926,8 +4215,8 @@ else
   # We make a subdir and do the tests there.  Otherwise we can end up
   # making bogus files that we don't know about and never remove.  For
   # instance it was reported that on HP-UX the gcc test will end up
-  # making a dummy file named `D' -- because `-MD' means `put the output
-  # in D'.
+  # making a dummy file named 'D' -- because '-MD' means "put the output
+  # in D".
   rm -rf conftest.dir
   mkdir conftest.dir
   # Copy depcomp to subdir because otherwise we won't find it if we're
@@ -3962,16 +4251,16 @@ else
     : > sub/conftest.c
     for i in 1 2 3 4 5 6; do
       echo '#include "conftst'$i'.h"' >> sub/conftest.c
-      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
-      # Solaris 8's {/usr,}/bin/sh.
-      touch sub/conftst$i.h
+      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+      # Solaris 10 /bin/sh.
+      echo '/* dummy */' > sub/conftst$i.h
     done
     echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
 
-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # We check with '-c' and '-o' for the sake of the "dashmstdout"
     # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle `-M -o', and we need to detect this.  Also, some Intel
-    # versions had trouble with output in subdirs
+    # handle '-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs.
     am__obj=sub/conftest.${OBJEXT-o}
     am__minus_obj="-o $am__obj"
     case $depmode in
@@ -3980,8 +4269,8 @@ else
       test "$am__universal" = false || continue
       ;;
     nosideeffect)
-      # after this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested
+      # After this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested.
       if test "x$enable_dependency_tracking" = xyes; then
        continue
       else
@@ -3989,7 +4278,7 @@ else
       fi
       ;;
     msvc7 | msvc7msys | msvisualcpp | msvcmsys)
-      # This compiler won't grok `-c -o', but also, the minuso test has
+      # This compiler won't grok '-c -o', but also, the minuso test has
       # not run yet.  These depmodes are late enough in the game, and
       # so weak that their functioning should not be impacted.
       am__obj=conftest.${OBJEXT-o}
@@ -4667,7 +4956,7 @@ else
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
                       && LARGE_OFF_T % 2147483647 == 1)
                      ? 1 : -1];
@@ -4713,7 +5002,7 @@ else
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
                       && LARGE_OFF_T % 2147483647 == 1)
                      ? 1 : -1];
@@ -4737,7 +5026,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
                       && LARGE_OFF_T % 2147483647 == 1)
                      ? 1 : -1];
@@ -4782,7 +5071,7 @@ else
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
                       && LARGE_OFF_T % 2147483647 == 1)
                      ? 1 : -1];
@@ -4806,7 +5095,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
                       && LARGE_OFF_T % 2147483647 == 1)
                      ? 1 : -1];
@@ -7050,7 +7339,7 @@ ia64-*-hpux*)
   rm -rf conftest*
   ;;
 
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
 s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
   # Find out which ABI we are using.
   echo 'int i;' > conftest.$ac_ext
@@ -7075,7 +7364,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
                ;;
            esac
            ;;
-         ppc64-*linux*|powerpc64-*linux*)
+         powerpc64le-*)
+           LD="${LD-ld} -m elf32lppclinux"
+           ;;
+         powerpc64-*)
            LD="${LD-ld} -m elf32ppclinux"
            ;;
          s390x-*linux*)
@@ -7094,7 +7386,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
          x86_64-*linux*)
            LD="${LD-ld} -m elf_x86_64"
            ;;
-         ppc*-*linux*|powerpc*-*linux*)
+         powerpcle-*)
+           LD="${LD-ld} -m elf64lppc"
+           ;;
+         powerpc-*)
            LD="${LD-ld} -m elf64ppc"
            ;;
          s390*-*linux*|s390*-*tpf*)
@@ -11977,17 +12272,17 @@ case "$target_os" in
         os_win32=yes
         { $as_echo "$as_me:${as_lineno-$LINENO}: result: Win32" >&5
 $as_echo "Win32" >&6; }
-        UUID=
+        UUID_LIBS=
         ;;
      darwin*)
         { $as_echo "$as_me:${as_lineno-$LINENO}: result: Darwin" >&5
 $as_echo "Darwin" >&6; }
-        UUID=
+        UUID_LIBS=
         ;;
      *)
         { $as_echo "$as_me:${as_lineno-$LINENO}: result: $target_os" >&5
 $as_echo "$target_os" >&6; }
-        UUID=uuid
+        UUID_LIBS=uuid
         ;;
 esac
 
@@ -11998,6 +12293,7 @@ esac
 
 
 
+
 if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
        if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
@@ -12120,30 +12416,30 @@ if test -n "$LIBGUPNP_CFLAGS"; then
     pkg_cv_LIBGUPNP_CFLAGS="$LIBGUPNP_CFLAGS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.24.0 \\
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.28.0 \\
                             gio-2.0 \\
                             gmodule-2.0 \\
                             gssdp-1.0 >= 0.13.0 \\
                             libsoup-2.4 >= 2.28.2 \\
                             libxml-2.0 \\
-                            \$UUID\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.24.0 \
+                            \$UUID_LIBS\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.28.0 \
                             gio-2.0 \
                             gmodule-2.0 \
                             gssdp-1.0 >= 0.13.0 \
                             libsoup-2.4 >= 2.28.2 \
                             libxml-2.0 \
-                            $UUID") 2>&5
+                            $UUID_LIBS") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_LIBGUPNP_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= 2.24.0 \
+  pkg_cv_LIBGUPNP_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= 2.28.0 \
                             gio-2.0 \
                             gmodule-2.0 \
                             gssdp-1.0 >= 0.13.0 \
                             libsoup-2.4 >= 2.28.2 \
                             libxml-2.0 \
-                            $UUID" 2>/dev/null`
+                            $UUID_LIBS" 2>/dev/null`
                      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
@@ -12155,30 +12451,30 @@ if test -n "$LIBGUPNP_LIBS"; then
     pkg_cv_LIBGUPNP_LIBS="$LIBGUPNP_LIBS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.24.0 \\
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.28.0 \\
                             gio-2.0 \\
                             gmodule-2.0 \\
                             gssdp-1.0 >= 0.13.0 \\
                             libsoup-2.4 >= 2.28.2 \\
                             libxml-2.0 \\
-                            \$UUID\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.24.0 \
+                            \$UUID_LIBS\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.28.0 \
                             gio-2.0 \
                             gmodule-2.0 \
                             gssdp-1.0 >= 0.13.0 \
                             libsoup-2.4 >= 2.28.2 \
                             libxml-2.0 \
-                            $UUID") 2>&5
+                            $UUID_LIBS") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_LIBGUPNP_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= 2.24.0 \
+  pkg_cv_LIBGUPNP_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= 2.28.0 \
                             gio-2.0 \
                             gmodule-2.0 \
                             gssdp-1.0 >= 0.13.0 \
                             libsoup-2.4 >= 2.28.2 \
                             libxml-2.0 \
-                            $UUID" 2>/dev/null`
+                            $UUID_LIBS" 2>/dev/null`
                      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
@@ -12199,32 +12495,32 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-               LIBGUPNP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "glib-2.0 >= 2.24.0 \
+               LIBGUPNP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "glib-2.0 >= 2.28.0 \
                             gio-2.0 \
                             gmodule-2.0 \
                             gssdp-1.0 >= 0.13.0 \
                             libsoup-2.4 >= 2.28.2 \
                             libxml-2.0 \
-                            $UUID" 2>&1`
+                            $UUID_LIBS" 2>&1`
         else
-               LIBGUPNP_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "glib-2.0 >= 2.24.0 \
+               LIBGUPNP_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "glib-2.0 >= 2.28.0 \
                             gio-2.0 \
                             gmodule-2.0 \
                             gssdp-1.0 >= 0.13.0 \
                             libsoup-2.4 >= 2.28.2 \
                             libxml-2.0 \
-                            $UUID" 2>&1`
+                            $UUID_LIBS" 2>&1`
         fi
        # Put the nasty error message in config.log where it belongs
        echo "$LIBGUPNP_PKG_ERRORS" >&5
 
-       as_fn_error $? "Package requirements (glib-2.0 >= 2.24.0 \
+       as_fn_error $? "Package requirements (glib-2.0 >= 2.28.0 \
                             gio-2.0 \
                             gmodule-2.0 \
                             gssdp-1.0 >= 0.13.0 \
                             libsoup-2.4 >= 2.28.2 \
                             libxml-2.0 \
-                            $UUID) were not met:
+                            $UUID_LIBS) were not met:
 
 $LIBGUPNP_PKG_ERRORS
 
 
 
 
+for ac_header in ifaddrs.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "ifaddrs.h" "ac_cv_header_ifaddrs_h" "$ac_includes_default"
+if test "x$ac_cv_header_ifaddrs_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_IFADDRS_H 1
+_ACEOF
+  HAVE_IFADDRS_H=yes
+else
+   HAVE_IFADDRS_H=no
+fi
+
+done
+
+ if test "x$HAVE_IFADDRS_H" = "xyes"; then
+  HAVE_IFADDRS_H_TRUE=
+  HAVE_IFADDRS_H_FALSE='#'
+else
+  HAVE_IFADDRS_H_TRUE='#'
+  HAVE_IFADDRS_H_FALSE=
+fi
+
+
+
 for ac_header in linux/wireless.h
 do :
   ac_fn_c_check_header_compile "$LINENO" "linux/wireless.h" "ac_cv_header_linux_wireless_h" " #ifdef HAVE_SYS_SOCKET_H
@@ -12440,99 +12760,6 @@ else
   USE_NETWORK_MANAGER_FALSE=
 fi
 
-if test "x$with_context_manager" = "xnetwork-manager"; then :
-
-pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GIO" >&5
-$as_echo_n "checking for GIO... " >&6; }
-
-if test -n "$GIO_CFLAGS"; then
-    pkg_cv_GIO_CFLAGS="$GIO_CFLAGS"
- elif test -n "$PKG_CONFIG"; then
-    if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gio-2.0 >= 2.26\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "gio-2.0 >= 2.26") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  pkg_cv_GIO_CFLAGS=`$PKG_CONFIG --cflags "gio-2.0 >= 2.26" 2>/dev/null`
-                     test "x$?" != "x0" && pkg_failed=yes
-else
-  pkg_failed=yes
-fi
- else
-    pkg_failed=untried
-fi
-if test -n "$GIO_LIBS"; then
-    pkg_cv_GIO_LIBS="$GIO_LIBS"
- elif test -n "$PKG_CONFIG"; then
-    if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gio-2.0 >= 2.26\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "gio-2.0 >= 2.26") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  pkg_cv_GIO_LIBS=`$PKG_CONFIG --libs "gio-2.0 >= 2.26" 2>/dev/null`
-                     test "x$?" != "x0" && pkg_failed=yes
-else
-  pkg_failed=yes
-fi
- else
-    pkg_failed=untried
-fi
-
-
-
-if test $pkg_failed = yes; then
-       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-
-if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
-        _pkg_short_errors_supported=yes
-else
-        _pkg_short_errors_supported=no
-fi
-        if test $_pkg_short_errors_supported = yes; then
-               GIO_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gio-2.0 >= 2.26" 2>&1`
-        else
-               GIO_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gio-2.0 >= 2.26" 2>&1`
-        fi
-       # Put the nasty error message in config.log where it belongs
-       echo "$GIO_PKG_ERRORS" >&5
-
-       as_fn_error $? "Package requirements (gio-2.0 >= 2.26) were not met:
-
-$GIO_PKG_ERRORS
-
-Consider adjusting the PKG_CONFIG_PATH environment variable if you
-installed software in a non-standard prefix.
-
-Alternatively, you may set the environment variables GIO_CFLAGS
-and GIO_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details." "$LINENO" 5
-elif test $pkg_failed = untried; then
-       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-       { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "The pkg-config script could not be found or is too old.  Make sure it
-is in your PATH or set the PKG_CONFIG environment variable to the full
-path to pkg-config.
-
-Alternatively, you may set the environment variables GIO_CFLAGS
-and GIO_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-
-To get pkg-config, see <http://pkg-config.freedesktop.org/>.
-See \`config.log' for more details" "$LINENO" 5; }
-else
-       GIO_CFLAGS=$pkg_cv_GIO_CFLAGS
-       GIO_LIBS=$pkg_cv_GIO_LIBS
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-fi
-fi
 
  if test "x$with_context_manager" = "xconnman"; then
   USE_CONNMAN_TRUE=
@@ -12553,12 +12780,12 @@ if test -n "$CONNMAN_CFLAGS"; then
     pkg_cv_CONNMAN_CFLAGS="$CONNMAN_CFLAGS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.28 connman >= 0.80\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.28 connman >= 0.80") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"connman >= 0.80\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "connman >= 0.80") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_CONNMAN_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= 2.28 connman >= 0.80" 2>/dev/null`
+  pkg_cv_CONNMAN_CFLAGS=`$PKG_CONFIG --cflags "connman >= 0.80" 2>/dev/null`
                      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
@@ -12570,12 +12797,12 @@ if test -n "$CONNMAN_LIBS"; then
     pkg_cv_CONNMAN_LIBS="$CONNMAN_LIBS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.28 connman >= 0.80\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.28 connman >= 0.80") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"connman >= 0.80\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "connman >= 0.80") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_CONNMAN_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= 2.28 connman >= 0.80" 2>/dev/null`
+  pkg_cv_CONNMAN_LIBS=`$PKG_CONFIG --libs "connman >= 0.80" 2>/dev/null`
                      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
@@ -12596,14 +12823,14 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-               CONNMAN_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "glib-2.0 >= 2.28 connman >= 0.80" 2>&1`
+               CONNMAN_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "connman >= 0.80" 2>&1`
         else
-               CONNMAN_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "glib-2.0 >= 2.28 connman >= 0.80" 2>&1`
+               CONNMAN_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "connman >= 0.80" 2>&1`
         fi
        # Put the nasty error message in config.log where it belongs
        echo "$CONNMAN_PKG_ERRORS" >&5
 
-       as_fn_error $? "Package requirements (glib-2.0 >= 2.28 connman >= 0.80) were not met:
+       as_fn_error $? "Package requirements (connman >= 0.80) were not met:
 
 $CONNMAN_PKG_ERRORS
 
 USE_NETLINK=no
 if test "x$with_context_manager" = "xlinux"; then :
   if test "x$HAVE_NETLINK" = "xno"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: No rtnetlink found, falling back to static context manager" >&5
-$as_echo "$as_me: No rtnetlink found, falling back to static context manager" >&6;}
+  if test "x$HAVE_IFADDRS" = "xyes"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: No rtnetlink found
+elif falling back to static context manager" >&5
+$as_echo "$as_me: No rtnetlink found; then :
+  falling back to static context manager" >&6;}
+else
+  as_fn_error $? "No rtnetlink nor ifaddrs.h found" "$LINENO" 5
+fi
 else
   USE_NETLINK=yes
 fi
@@ -12671,7 +12904,7 @@ else
 fi
 
 if test "x$enable_debug" = "xyes"; then
-        CFLAGS="$CFLAGS -g -Wall -Werror"
+        CFLAGS="$CFLAGS -g -Wall -Wextra -Werror"
 fi
 
 
 
 
 
-    # Extract the first word of "gtkdoc-check", so it can be a program name with args.
+  gtk_doc_requires="gtk-doc >= 1.14"
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gtk-doc" >&5
+$as_echo_n "checking for gtk-doc... " >&6; }
+  if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$gtk_doc_requires\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "$gtk_doc_requires") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  have_gtk_doc=yes
+else
+  have_gtk_doc=no
+fi
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_gtk_doc" >&5
+$as_echo "$have_gtk_doc" >&6; }
+
+  if test "$have_gtk_doc" = "no"; then
+      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:
+  You will not be able to create source packages with 'make dist'
+  because $gtk_doc_requires is not found." >&5
+$as_echo "$as_me: WARNING:
+  You will not be able to create source packages with 'make dist'
+  because $gtk_doc_requires is not found." >&2;}
+  fi
+
+            # Extract the first word of "gtkdoc-check", so it can be a program name with args.
 set dummy gtkdoc-check; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_GTKDOC_CHECK+:} false; then :
+if ${ac_cv_prog_GTKDOC_CHECK+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  case $GTKDOC_CHECK in
+  if test -n "$GTKDOC_CHECK"; then
+  ac_cv_prog_GTKDOC_CHECK="$GTKDOC_CHECK" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_GTKDOC_CHECK="gtkdoc-check.test"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+GTKDOC_CHECK=$ac_cv_prog_GTKDOC_CHECK
+if test -n "$GTKDOC_CHECK"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_CHECK" >&5
+$as_echo "$GTKDOC_CHECK" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  # Extract the first word of "gtkdoc-check", so it can be a program name with args.
+set dummy gtkdoc-check; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_GTKDOC_CHECK_PATH+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $GTKDOC_CHECK_PATH in
   [\\/]* | ?:[\\/]*)
-  ac_cv_path_GTKDOC_CHECK="$GTKDOC_CHECK" # Let the user override the test with a path.
+  ac_cv_path_GTKDOC_CHECK_PATH="$GTKDOC_CHECK_PATH" # Let the user override the test with a path.
   ;;
   *)
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -12895,7 +13190,7 @@ do
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_GTKDOC_CHECK="$as_dir/$ac_word$ac_exec_ext"
+    ac_cv_path_GTKDOC_CHECK_PATH="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
@@ -12906,10 +13201,10 @@ IFS=$as_save_IFS
   ;;
 esac
 fi
-GTKDOC_CHECK=$ac_cv_path_GTKDOC_CHECK
-if test -n "$GTKDOC_CHECK"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_CHECK" >&5
-$as_echo "$GTKDOC_CHECK" >&6; }
+GTKDOC_CHECK_PATH=$ac_cv_path_GTKDOC_CHECK_PATH
+if test -n "$GTKDOC_CHECK_PATH"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_CHECK_PATH" >&5
+$as_echo "$GTKDOC_CHECK_PATH" >&6; }
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
@@ -13022,18 +13317,19 @@ else
 fi
 
 
-  if test x$enable_gtk_doc = xyes; then
-    if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk-doc >= 1.14\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "gtk-doc >= 1.14") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  :
-else
-  as_fn_error $? "You need to have gtk-doc >= 1.14 installed to build $PACKAGE_NAME" "$LINENO" 5
-fi
-        if test "x$PACKAGE_NAME" != "xglib"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build gtk-doc documentation" >&5
+$as_echo_n "checking whether to build gtk-doc documentation... " >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_gtk_doc" >&5
+$as_echo "$enable_gtk_doc" >&6; }
+
+  if test "x$enable_gtk_doc" = "xyes" && test "$have_gtk_doc" = "no"; then
+    as_fn_error $? "
+  You must have $gtk_doc_requires installed to build documentation for
+  $PACKAGE_NAME. Please install gtk-doc or disable building the
+  documentation by adding '--disable-gtk-doc' to '$0'." "$LINENO" 5
+  fi
+
+    if test "x$PACKAGE_NAME" != "xglib"; then
 
 pkg_failed=no
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTKDOC_DEPS" >&5
        # Put the nasty error message in config.log where it belongs
        echo "$GTKDOC_DEPS_PKG_ERRORS" >&5
 
-       as_fn_error $? "Package requirements (glib-2.0 >= 2.10.0 gobject-2.0  >= 2.10.0) were not met:
-
-$GTKDOC_DEPS_PKG_ERRORS
-
-Consider adjusting the PKG_CONFIG_PATH environment variable if you
-installed software in a non-standard prefix.
-
-Alternatively, you may set the environment variables GTKDOC_DEPS_CFLAGS
-and GTKDOC_DEPS_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details." "$LINENO" 5
+       :
 elif test $pkg_failed = untried; then
        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
-       { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "The pkg-config script could not be found or is too old.  Make sure it
-is in your PATH or set the PKG_CONFIG environment variable to the full
-path to pkg-config.
-
-Alternatively, you may set the environment variables GTKDOC_DEPS_CFLAGS
-and GTKDOC_DEPS_LIBS to avoid the need to call pkg-config.
-See the pkg-config man page for more details.
-
-To get pkg-config, see <http://pkg-config.freedesktop.org/>.
-See \`config.log' for more details" "$LINENO" 5; }
+       :
 else
        GTKDOC_DEPS_CFLAGS=$pkg_cv_GTKDOC_DEPS_CFLAGS
        GTKDOC_DEPS_LIBS=$pkg_cv_GTKDOC_DEPS_LIBS
@@ -13125,14 +13401,8 @@ else
 $as_echo "yes" >&6; }
 
 fi
-    fi
   fi
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build gtk-doc documentation" >&5
-$as_echo_n "checking whether to build gtk-doc documentation... " >&6; }
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_gtk_doc" >&5
-$as_echo "$enable_gtk_doc" >&6; }
-
     # Check whether --enable-gtk-doc-html was given.
 if test "${enable_gtk_doc_html+set}" = set; then :
   enableval=$enable_gtk_doc_html;
     enable_gtk_doc_pdf=no
   fi
 
+  if test -z "$AM_DEFAULT_VERBOSITY"; then
+    AM_DEFAULT_VERBOSITY=1
+  fi
+
+
+   if test x$have_gtk_doc = xyes; then
+  HAVE_GTK_DOC_TRUE=
+  HAVE_GTK_DOC_FALSE='#'
+else
+  HAVE_GTK_DOC_TRUE='#'
+  HAVE_GTK_DOC_FALSE=
+fi
 
    if test x$enable_gtk_doc = xyes; then
   ENABLE_GTK_DOC_TRUE=
@@ -13306,6 +13588,14 @@ LIBOBJS=$ac_libobjs
 LTLIBOBJS=$ac_ltlibobjs
 
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
+$as_echo_n "checking that generated files are newer than configure... " >&6; }
+   if test -n "$am_sleep_pid"; then
+     # Hide warnings about reused PIDs.
+     wait $am_sleep_pid 2>/dev/null
+   fi
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
+$as_echo "done" >&6; }
  if test -n "$EXEEXT"; then
   am__EXEEXT_TRUE=
   am__EXEEXT_FALSE='#'
@@ -13334,6 +13624,10 @@ if test -z "${HAVE_NETLINK_TRUE}" && test -z "${HAVE_NETLINK_FALSE}"; then
   as_fn_error $? "conditional \"HAVE_NETLINK\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${HAVE_IFADDRS_H_TRUE}" && test -z "${HAVE_IFADDRS_H_FALSE}"; then
+  as_fn_error $? "conditional \"HAVE_IFADDRS_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 if test -z "${USE_NETWORK_MANAGER_TRUE}" && test -z "${USE_NETWORK_MANAGER_FALSE}"; then
   as_fn_error $? "conditional \"USE_NETWORK_MANAGER\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -13354,6 +13648,10 @@ if test -z "${HAVE_VAPIGEN_TRUE}" && test -z "${HAVE_VAPIGEN_FALSE}"; then
   as_fn_error $? "conditional \"HAVE_VAPIGEN\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${HAVE_GTK_DOC_TRUE}" && test -z "${HAVE_GTK_DOC_FALSE}"; then
+  as_fn_error $? "conditional \"HAVE_GTK_DOC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 if test -z "${ENABLE_GTK_DOC_TRUE}" && test -z "${ENABLE_GTK_DOC_FALSE}"; then
   as_fn_error $? "conditional \"ENABLE_GTK_DOC\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -13771,7 +14069,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by gupnp $as_me 0.20.5, which was
+This file was extended by gupnp $as_me 0.20.12, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -13838,7 +14136,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-gupnp config.status 0.20.5
+gupnp config.status 0.20.12
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
@@ -14854,7 +15152,7 @@ $as_echo "$as_me: executing $ac_file commands" >&6;}
 
   case $ac_file$ac_mode in
     "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
-  # Autoconf 2.62 quotes --file arguments for eval, but not when files
+  # Older Autoconf quotes --file arguments for eval, but not when files
   # are listed without --file.  Let's play safe and only enable the eval
   # if we detect the quoting.
   case $CONFIG_FILES in
@@ -14867,7 +15165,7 @@ $as_echo "$as_me: executing $ac_file commands" >&6;}
     # Strip MF so we end up with the name of the file.
     mf=`echo "$mf" | sed -e 's/:.*$//'`
     # Check whether this is an Automake generated Makefile or not.
-    # We used to match only the files named `Makefile.in', but
+    # We used to match only the files named 'Makefile.in', but
     # some people rename them; so instead we look at the file content.
     # Grep'ing the first line is not enough: some people post-process
     # each Makefile.in and add a new line on top of each file to say so.
@@ -14901,21 +15199,19 @@ $as_echo X"$mf" |
       continue
     fi
     # Extract the definition of DEPDIR, am__include, and am__quote
-    # from the Makefile without running `make'.
+    # from the Makefile without running 'make'.
     DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
     test -z "$DEPDIR" && continue
     am__include=`sed -n 's/^am__include = //p' < "$mf"`
-    test -z "am__include" && continue
+    test -z "$am__include" && continue
     am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
-    # When using ansi2knr, U may be empty or an underscore; expand it
-    U=`sed -n 's/^U = //p' < "$mf"`
     # Find all dependency output files, they are included files with
     # $(DEPDIR) in their names.  We invoke sed twice because it is the
     # simplest approach to changing $(DEPDIR) to its actual value in the
     # expansion.
     for file in `sed -n "
       s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
-        sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+        sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
       # Make sure the directory exists.
       test -f "$dirpart/$file" && continue
       fdir=`$as_dirname -- "$file" ||
index 0d7e91f..5dd40fb 100644 (file)
@@ -1,6 +1,6 @@
 AC_PREREQ([2.64])
 AC_INIT([gupnp],
-        [0.20.5],
+        [0.20.12],
         [http://bugzilla.gnome.org/enter_bug.cgi?product=gupnp&component=gupnp],
         [gupnp],
         [http://www.gupnp.org/])
@@ -34,25 +34,26 @@ case "$target_os" in
      mingw*|cygwin*)
         os_win32=yes
         AC_MSG_RESULT(Win32)
-        UUID=
+        UUID_LIBS=
         ;;
      darwin*)
         AC_MSG_RESULT(Darwin)
-        UUID=
+        UUID_LIBS=
         ;;
      *)
         AC_MSG_RESULT($target_os)
-        UUID=uuid
+        UUID_LIBS=uuid
         ;;
 esac
+AC_SUBST([UUID_LIBS])
 
-PKG_CHECK_MODULES(LIBGUPNP, glib-2.0 >= 2.24.0 \
+PKG_CHECK_MODULES(LIBGUPNP, glib-2.0 >= 2.28.0 \
                             gio-2.0 \
                             gmodule-2.0 \
                             gssdp-1.0 >= 0.13.0 \
                             libsoup-2.4 >= 2.28.2 \
                             libxml-2.0 \
-                            $UUID)
+                            $UUID_LIBS)
 PKG_CHECK_MODULES(GTHREAD, gthread-2.0)
 
 AM_CONDITIONAL(OS_WIN32, test "x$os_win32" = "xyes")
@@ -88,6 +89,12 @@ AC_CHECK_HEADERS([sys/socket.h linux/rtnetlink.h],
 AM_CONDITIONAL([HAVE_NETLINK], [test "x$HAVE_NETLINK" = "xyes"])
 AC_SUBST(HAVE_NETLINK)
 
+AC_CHECK_HEADERS([ifaddrs.h],
+                 [ HAVE_IFADDRS_H=yes ],
+                 [ HAVE_IFADDRS_H=no ])
+AM_CONDITIONAL([HAVE_IFADDRS_H], [test "x$HAVE_IFADDRS_H" = "xyes"])
+AC_SUBST(HAVE_IFADDRS_H)
+
 AC_CHECK_HEADERS([linux/wireless.h], [], [],
                 [ #ifdef HAVE_SYS_SOCKET_H
                   #include <sys/socket.h>
@@ -99,20 +106,20 @@ AC_MSG_RESULT([${with_context_manager}])
 
 AM_CONDITIONAL([USE_NETWORK_MANAGER],
                [test "x$with_context_manager" = "xnetwork-manager"])
-AS_IF([test "x$with_context_manager" = "xnetwork-manager"],
-      [PKG_CHECK_MODULES(GIO, gio-2.0 >= 2.26)])
 
 AM_CONDITIONAL([USE_CONNMAN],
                [test "x$with_context_manager" = "xconnman"])
 
 if test "x$with_context_manager" = "xconnman"; then
-        PKG_CHECK_MODULES(CONNMAN, glib-2.0 >= 2.28 connman >= 0.80)
+        PKG_CHECK_MODULES(CONNMAN, connman >= 0.80)
 fi
 
 USE_NETLINK=no
 AS_IF([test "x$with_context_manager" = "xlinux"],
       [AS_IF([test "x$HAVE_NETLINK" = "xno"],
-             [AC_MSG_NOTICE([No rtnetlink found, falling back to static context manager])],
+             [AS_IF([test "x$HAVE_IFADDRS" = "xyes"],
+            AC_MSG_NOTICE([No rtnetlink found, falling back to static context manager]),
+            AC_MSG_ERROR([No rtnetlink nor ifaddrs.h found]))],
              [USE_NETLINK=yes])
       ],[])
 
@@ -128,7 +135,7 @@ AC_ARG_ENABLE(debug,
         AS_HELP_STRING([--enable-debug], [enable debugging]),,
         enable_debug=no)
 if test "x$enable_debug" = "xyes"; then
-        CFLAGS="$CFLAGS -g -Wall -Werror"
+        CFLAGS="$CFLAGS -g -Wall -Wextra -Werror"
 fi
 
 GOBJECT_INTROSPECTION_CHECK([0.6.4])
index 65cf76b..fa953ef 100644 (file)
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 # Everything below here is generic #
 ####################################
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \  ]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -57,8 +84,8 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-       $(srcdir)/version.xml.in $(top_srcdir)/gtk-doc.make
+DIST_COMMON = $(top_srcdir)/gtk-doc.make $(srcdir)/Makefile.in \
+       $(srcdir)/Makefile.am $(srcdir)/version.xml.in
 subdir = doc
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/gtk-doc.m4 \
@@ -72,12 +99,18 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES = version.xml
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 AM_V_GEN = $(am__v_GEN_@AM_V@)
 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
 am__can_run_installinfo = \
@@ -85,6 +118,7 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
@@ -113,17 +147,17 @@ ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
 FGREP = @FGREP@
-GIO_CFLAGS = @GIO_CFLAGS@
-GIO_LIBS = @GIO_LIBS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
 GREP = @GREP@
 GTHREAD_CFLAGS = @GTHREAD_CFLAGS@
 GTHREAD_LIBS = @GTHREAD_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
+HAVE_IFADDRS_H = @HAVE_IFADDRS_H@
 HAVE_NETLINK = @HAVE_NETLINK@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -176,6 +210,7 @@ SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
 USE_NETLINK = @USE_NETLINK@
+UUID_LIBS = @UUID_LIBS@
 VAPIGEN = @VAPIGEN@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
@@ -370,11 +405,42 @@ REPORT_FILES = \
        $(DOC_MODULE)-undeclared.txt \
        $(DOC_MODULE)-unused.txt
 
-CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS)
-@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_HTML_FALSE@HTML_BUILD_STAMP = 
-@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_HTML_TRUE@HTML_BUILD_STAMP = html-build.stamp
-@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_PDF_FALSE@PDF_BUILD_STAMP = 
-@ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_PDF_TRUE@PDF_BUILD_STAMP = pdf-build.stamp
+CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) gtkdoc-check.test
+@GTK_DOC_BUILD_HTML_FALSE@HTML_BUILD_STAMP = 
+@GTK_DOC_BUILD_HTML_TRUE@HTML_BUILD_STAMP = html-build.stamp
+@GTK_DOC_BUILD_PDF_FALSE@PDF_BUILD_STAMP = 
+@GTK_DOC_BUILD_PDF_TRUE@PDF_BUILD_STAMP = pdf-build.stamp
+
+#### setup ####
+GTK_DOC_V_SETUP = $(GTK_DOC_V_SETUP_$(V))
+GTK_DOC_V_SETUP_ = $(GTK_DOC_V_SETUP_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_SETUP_0 = @echo "  DOC   Preparing build";
+
+#### scan ####
+GTK_DOC_V_SCAN = $(GTK_DOC_V_SCAN_$(V))
+GTK_DOC_V_SCAN_ = $(GTK_DOC_V_SCAN_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_SCAN_0 = @echo "  DOC   Scanning header files";
+GTK_DOC_V_INTROSPECT = $(GTK_DOC_V_INTROSPECT_$(V))
+GTK_DOC_V_INTROSPECT_ = $(GTK_DOC_V_INTROSPECT_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_INTROSPECT_0 = @echo "  DOC   Introspecting gobjects";
+
+#### xml ####
+GTK_DOC_V_XML = $(GTK_DOC_V_XML_$(V))
+GTK_DOC_V_XML_ = $(GTK_DOC_V_XML_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_XML_0 = @echo "  DOC   Building XML";
+
+#### html ####
+GTK_DOC_V_HTML = $(GTK_DOC_V_HTML_$(V))
+GTK_DOC_V_HTML_ = $(GTK_DOC_V_HTML_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_HTML_0 = @echo "  DOC   Building HTML";
+GTK_DOC_V_XREF = $(GTK_DOC_V_XREF_$(V))
+GTK_DOC_V_XREF_ = $(GTK_DOC_V_XREF_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_XREF_0 = @echo "  DOC   Fixing cross-references";
+
+#### pdf ####
+GTK_DOC_V_PDF = $(GTK_DOC_V_PDF_$(V))
+GTK_DOC_V_PDF_ = $(GTK_DOC_V_PDF_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_PDF_0 = @echo "  DOC   Building PDF";
 
 # Files not to distribute
 # for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types
@@ -429,11 +495,11 @@ mostlyclean-libtool:
 
 clean-libtool:
        -rm -rf .libs _libs
-tags: TAGS
-TAGS:
+tags TAGS:
+
+ctags CTAGS:
 
-ctags: CTAGS
-CTAGS:
+cscope cscopelist:
 
 
 distdir: $(DISTFILES)
@@ -471,6 +537,7 @@ distdir: $(DISTFILES)
          dist-hook
 check-am: all-am
 check: check-am
+@ENABLE_GTK_DOC_FALSE@all-local:
 all-am: Makefile all-local
 installdirs:
 install: install-am
@@ -574,53 +641,55 @@ uninstall-am: uninstall-local
 .MAKE: install-am install-strip
 
 .PHONY: all all-am all-local check check-am clean clean-generic \
-       clean-libtool clean-local dist-hook distclean \
-       distclean-generic distclean-libtool distclean-local distdir \
-       dvi dvi-am html html-am info info-am install install-am \
-       install-data install-data-am install-data-local install-dvi \
-       install-dvi-am install-exec install-exec-am install-html \
-       install-html-am install-info install-info-am install-man \
-       install-pdf install-pdf-am install-ps install-ps-am \
-       install-strip installcheck installcheck-am installdirs \
-       maintainer-clean maintainer-clean-generic \
+       clean-libtool clean-local cscopelist-am ctags-am dist-hook \
+       distclean distclean-generic distclean-libtool distclean-local \
+       distdir dvi dvi-am html html-am info info-am install \
+       install-am install-data install-data-am install-data-local \
+       install-dvi install-dvi-am install-exec install-exec-am \
+       install-html install-html-am install-info install-info-am \
+       install-man install-pdf install-pdf-am install-ps \
+       install-ps-am install-strip installcheck installcheck-am \
+       installdirs maintainer-clean maintainer-clean-generic \
        maintainer-clean-local mostlyclean mostlyclean-generic \
-       mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
-       uninstall-local
+       mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \
+       uninstall-am uninstall-local
 
 
-@ENABLE_GTK_DOC_TRUE@all-local: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
-@ENABLE_GTK_DOC_FALSE@all-local:
+gtkdoc-check.test: Makefile
+       $(AM_V_GEN)echo "#!/bin/sh -e" > $@; \
+               echo "$(GTKDOC_CHECK_PATH) || exit 1" >> $@; \
+               chmod +x $@
+
+all-gtk-doc: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
+.PHONY: all-gtk-doc
+
+@ENABLE_GTK_DOC_TRUE@all-local: all-gtk-doc
 
 docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
 
 $(REPORT_FILES): sgml-build.stamp
 
-#### setup ####
-
 setup-build.stamp:
-       -@if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
-           echo '  DOC   Preparing build'; \
+       -$(GTK_DOC_V_SETUP)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
            files=`echo $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types`; \
            if test "x$$files" != "x" ; then \
                for file in $$files ; do \
+                   destdir=`dirname $(abs_builddir)/$$file`; \
+                   test -d "$$destdir" || mkdir -p "$$destdir"; \
                    test -f $(abs_srcdir)/$$file && \
-                       cp -pu $(abs_srcdir)/$$file $(abs_builddir)/ || true; \
+                       cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \
                done; \
            fi; \
        fi
-       @touch setup-build.stamp
-
-#### scan ####
+       $(AM_V_at)touch setup-build.stamp
 
-scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB)
-       @echo '  DOC   Scanning header files'
-       @_source_dir='' ; \
+scan-build.stamp: setup-build.stamp $(HFILE_GLOB) $(CFILE_GLOB)
+       $(GTK_DOC_V_SCAN)_source_dir='' ; \
        for i in $(DOC_SOURCE_DIR) ; do \
            _source_dir="$${_source_dir} --source-dir=$$i" ; \
        done ; \
        gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES)
-       @if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \
-           echo "  DOC   Introspecting gobjects"; \
+       $(GTK_DOC_V_INTROSPECT)if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \
            scanobj_options=""; \
            gtkdoc-scangobj 2>&1 --help | grep  >/dev/null "\-\-verbose"; \
            if test "$(?)" = "0"; then \
@@ -635,32 +704,25 @@ scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB)
                test -f $$i || touch $$i ; \
            done \
        fi
-       @touch scan-build.stamp
+       $(AM_V_at)touch scan-build.stamp
 
 $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp
        @true
 
-#### xml ####
-
 sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files)
-       @echo '  DOC   Building XML'
-       @_source_dir='' ; \
+       $(GTK_DOC_V_XML)_source_dir='' ; \
        for i in $(DOC_SOURCE_DIR) ; do \
            _source_dir="$${_source_dir} --source-dir=$$i" ; \
        done ; \
        gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS)
-       @touch sgml-build.stamp
+       $(AM_V_at)touch sgml-build.stamp
 
 sgml.stamp: sgml-build.stamp
        @true
 
-#### html ####
-
 html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
-       @echo '  DOC   Building HTML'
-       @rm -rf html
-       @mkdir html
-       @mkhtml_options=""; \
+       $(GTK_DOC_V_HTML)rm -rf html && mkdir html && \
+       mkhtml_options=""; \
        gtkdoc-mkhtml 2>&1 --help | grep  >/dev/null "\-\-verbose"; \
        if test "$(?)" = "0"; then \
          if test "x$(V)" = "x1"; then \
@@ -681,16 +743,12 @@ html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
            cp $(abs_builddir)/$$file $(abs_builddir)/html; \
          fi; \
        done;
-       @echo '  DOC   Fixing cross-references'
-       @gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
-       @touch html-build.stamp
-
-#### pdf ####
+       $(GTK_DOC_V_XREF)gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
+       $(AM_V_at)touch html-build.stamp
 
 pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
-       @echo '  DOC   Building PDF'
-       @rm -f $(DOC_MODULE).pdf
-       @mkpdf_options=""; \
+       $(GTK_DOC_V_PDF)rm -f $(DOC_MODULE).pdf && \
+       mkpdf_options=""; \
        gtkdoc-mkpdf 2>&1 --help | grep  >/dev/null "\-\-verbose"; \
        if test "$(?)" = "0"; then \
          if test "x$(V)" = "x1"; then \
@@ -707,13 +765,16 @@ pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
          done; \
        fi; \
        gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS)
-       @touch pdf-build.stamp
+       $(AM_V_at)touch pdf-build.stamp
 
 ##############
 
 clean-local:
        @rm -f *~ *.bak
        @rm -rf .libs
+       @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-types" ; then \
+         rm -f $(DOC_MODULE).types; \
+       fi
 
 distclean-local:
        @rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \
@@ -722,7 +783,7 @@ distclean-local:
            rm -f $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types; \
        fi
 
-maintainer-clean-local: clean
+maintainer-clean-local:
        @rm -rf xml html
 
 install-data-local:
@@ -758,12 +819,14 @@ uninstall-local:
 #
 # Require gtk-doc when making dist
 #
-@ENABLE_GTK_DOC_TRUE@dist-check-gtkdoc:
-@ENABLE_GTK_DOC_FALSE@dist-check-gtkdoc:
-@ENABLE_GTK_DOC_FALSE@ @echo "*** gtk-doc must be installed and enabled in order to make dist"
-@ENABLE_GTK_DOC_FALSE@ @false
-
-dist-hook: dist-check-gtkdoc dist-hook-local
+@HAVE_GTK_DOC_TRUE@dist-check-gtkdoc: docs
+@HAVE_GTK_DOC_FALSE@dist-check-gtkdoc:
+@HAVE_GTK_DOC_FALSE@   @echo "*** gtk-doc is needed to run 'make dist'.         ***"
+@HAVE_GTK_DOC_FALSE@   @echo "*** gtk-doc was not found when 'configure' ran.   ***"
+@HAVE_GTK_DOC_FALSE@   @echo "*** please install gtk-doc and rerun 'configure'. ***"
+@HAVE_GTK_DOC_FALSE@   @false
+
+dist-hook: dist-check-gtkdoc all-gtk-doc dist-hook-local
        @mkdir $(distdir)/html
        @cp ./html/* $(distdir)/html
        @-cp ./$(DOC_MODULE).pdf $(distdir)/
index d7fb919..17ce5f7 100644 (file)
       <xi:include href="xml/gupnp-root-device.xml"/>
       <xi:include href="xml/gupnp-service.xml"/>
     </chapter>
+
+    <chapter id="api-context">
+      <title>Network context handling</title>
+
+      <xi:include href="xml/gupnp-context.xml"/>
+      <xi:include href="xml/gupnp-context-manager.xml"/>
+    </chapter>
     
     <chapter id="api-utility">
       <title>Utility Functions</title>
       
-      <xi:include href="xml/gupnp-context.xml"/>
-      <xi:include href="xml/gupnp-context-manager.xml"/>
+      <xi:include href="xml/gupnp-acl.xml"/>
       <xi:include href="xml/gupnp-white-list.xml"/>
       <xi:include href="xml/gupnp-resource-factory.xml"/>
       <xi:include href="xml/gupnp-xml-doc.xml"/>
index e0cd73c..81df876 100644 (file)
@@ -85,7 +85,10 @@ gupnp_service_proxy_end_action_hash
 gupnp_service_proxy_end_action_list
 gupnp_service_proxy_cancel_action
 gupnp_service_proxy_add_notify
+gupnp_service_proxy_add_notify_full
+gupnp_service_proxy_add_raw_notify
 gupnp_service_proxy_remove_notify
+gupnp_service_proxy_remove_raw_notify
 gupnp_service_proxy_set_subscribed
 gupnp_service_proxy_get_subscribed
 <SUBSECTION Standard>
@@ -180,9 +183,12 @@ gupnp_context_set_subscription_timeout
 gupnp_context_get_subscription_timeout
 gupnp_context_get_default_language
 gupnp_context_set_default_language
+gupnp_context_add_server_handler
 gupnp_context_host_path
 gupnp_context_host_path_for_agent
 gupnp_context_unhost_path
+gupnp_context_get_acl
+gupnp_context_set_acl
 <SUBSECTION Standard>
 GUPnPContextClass
 GUPNP_CONTEXT
@@ -278,6 +284,7 @@ gupnp_service_info_get_control_url
 gupnp_service_info_get_event_subscription_url
 gupnp_service_info_get_introspection
 gupnp_service_info_get_introspection_async
+gupnp_service_info_get_introspection_async_full
 <SUBSECTION Standard>
 GUPnPServiceInfoClass
 GUPNP_SERVICE_INFO
@@ -451,6 +458,7 @@ gupnp_windows_context_manager_get_type
 <TITLE>GUPnPWhiteList</TITLE>
 GUPnPWhiteList
 gupnp_white_list_add_entry
+gupnp_white_list_add_entryv
 gupnp_white_list_check_context
 gupnp_white_list_clear
 gupnp_white_list_set_enabled
@@ -471,3 +479,20 @@ GUPnPWhiteListClass
 <SUBSECTION Private>
 GUPnPWhiteListPrivate
 </SECTION>
+
+<SECTION>
+<FILE>gupnp-acl</FILE>
+<TITLE>GUPnPAcl</TITLE>
+GUPnPAcl
+GUPnPAclInterface
+gupnp_acl_can_sync
+gupnp_acl_is_allowed
+gupnp_acl_is_allowed_async
+gupnp_acl_is_allowed_finish
+<SUBSECTION Standard>
+gupnp_acl_get_type
+GUPNP_ACL
+GUPNP_ACL_GET_INTERFACE
+GUPNP_IS_ACL
+GUPNP_TYPE_ACL
+</SECTION>
index f8f6b0d..f5b7bab 100644 (file)
@@ -1,5 +1,6 @@
 #include <libgupnp/gupnp.h>
 
+gupnp_acl_get_type
 gupnp_context_get_type
 gupnp_context_manager_get_type
 gupnp_control_point_get_type
@@ -21,3 +22,4 @@ gupnp_time_get_type
 gupnp_time_tz_get_type
 gupnp_uri_get_type
 gupnp_uuid_get_type
+gupnp_white_list_get_type
diff --git a/doc/html/GUPnPAcl.html b/doc/html/GUPnPAcl.html
new file mode 100644 (file)
index 0000000..082f1b9
--- /dev/null
@@ -0,0 +1,413 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GUPnP Reference Manual: GUPnPAcl</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="GUPnP Reference Manual">
+<link rel="up" href="api-utility.html" title="Utility Functions">
+<link rel="prev" href="api-utility.html" title="Utility Functions">
+<link rel="next" href="GUPnPWhiteList.html" title="GUPnPWhiteList">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
+                  <a href="#GUPnPAcl.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+                  <a href="#GUPnPAcl.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_prerequisites"> <span class="dim">|</span> 
+                  <a href="#GUPnPAcl.prerequisites" class="shortcut">Prerequisites</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="api-utility.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="api-utility.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="GUPnPWhiteList.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="GUPnPAcl"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="GUPnPAcl.top_of_page"></a>GUPnPAcl</span></h2>
+<p>GUPnPAcl — Object providing a simple access control list for
+GUPnP.</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="GUPnPAcl.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPAcl.html#gupnp-acl-can-sync" title="gupnp_acl_can_sync ()">gupnp_acl_can_sync</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPAcl.html#gupnp-acl-is-allowed" title="gupnp_acl_is_allowed ()">gupnp_acl_is_allowed</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPAcl.html#gupnp-acl-is-allowed-async" title="gupnp_acl_is_allowed_async ()">gupnp_acl_is_allowed_async</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPAcl.html#gupnp-acl-is-allowed-finish" title="gupnp_acl_is_allowed_finish ()">gupnp_acl_is_allowed_finish</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="GUPnPAcl.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="GUPnPAcl.html#GUPnPAcl-struct" title="GUPnPAcl">GUPnPAcl</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="GUPnPAcl.html#GUPnPAclInterface" title="struct GUPnPAclInterface">GUPnPAclInterface</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="GUPnPAcl.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    GInterface
+    <span class="lineart">╰──</span> GUPnPAcl
+</pre>
+</div>
+<div class="refsect1">
+<a name="GUPnPAcl.prerequisites"></a><h2>Prerequisites</h2>
+<p>
+GUPnPAcl requires
+ <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>.</p>
+</div>
+<div class="refsect1">
+<a name="GUPnPAcl.description"></a><h2>Description</h2>
+<p><a class="link" href="GUPnPAcl.html" title="GUPnPAcl"><span class="type">GUPnPAcl</span></a> provides either synchronous or asynchronous functions to check
+whether a peer sould be able to access a resource or not.</p>
+</div>
+<div class="refsect1">
+<a name="GUPnPAcl.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="gupnp-acl-can-sync"></a><h3>gupnp_acl_can_sync ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gupnp_acl_can_sync (<em class="parameter"><code><a class="link" href="GUPnPAcl.html" title="GUPnPAcl"><span class="type">GUPnPAcl</span></a> *self</code></em>);</pre>
+<p>Check whether <a class="link" href="GUPnPAcl.html#gupnp-acl-is-allowed-async" title="gupnp_acl_is_allowed_async ()"><code class="function">gupnp_acl_is_allowed_async()</code></a> is supported.</p>
+<div class="refsect3">
+<a name="id-1.3.6.2.8.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPAcl.html" title="GUPnPAcl"><span class="type">GUPnPAcl</span></a>
+<em class="parameter"><code>returns</code></em>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if <a class="link" href="GUPnPAcl.html#gupnp-acl-is-allowed-async" title="gupnp_acl_is_allowed_async ()"><code class="function">gupnp_acl_is_allowed_async()</code></a> is supported, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>
+otherwise.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since 0.20.11</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-acl-is-allowed"></a><h3>gupnp_acl_is_allowed ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gupnp_acl_is_allowed (<em class="parameter"><code><a class="link" href="GUPnPAcl.html" title="GUPnPAcl"><span class="type">GUPnPAcl</span></a> *self</code></em>,
+                      <em class="parameter"><code><a class="link" href="GUPnPDevice.html" title="GUPnPDevice"><span class="type">GUPnPDevice</span></a> *device</code></em>,
+                      <em class="parameter"><code><a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a> *service</code></em>,
+                      <em class="parameter"><code>const <span class="type">char</span> *path</code></em>,
+                      <em class="parameter"><code>const <span class="type">char</span> *address</code></em>,
+                      <em class="parameter"><code>const <span class="type">char</span> *agent</code></em>);</pre>
+<p>Check whether an IP address is allowed to access this resource.</p>
+<div class="refsect3">
+<a name="id-1.3.6.2.8.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>an instance of <a class="link" href="GUPnPAcl.html" title="GUPnPAcl"><span class="type">GUPnPAcl</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>device</p></td>
+<td class="parameter_description"><p> The <a class="link" href="GUPnPDevice.html" title="GUPnPDevice"><span class="type">GUPnPDevice</span></a> associated with <em class="parameter"><code>path</code></em>
+or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if
+unknown. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+</tr>
+<tr>
+<td class="parameter_name"><p>service</p></td>
+<td class="parameter_description"><p> The <a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a> associated with <em class="parameter"><code>path</code></em>
+or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if
+unknown. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+</tr>
+<tr>
+<td class="parameter_name"><p>path</p></td>
+<td class="parameter_description"><p>The path being served.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>address</p></td>
+<td class="parameter_description"><p>IP address of the peer.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>agent</p></td>
+<td class="parameter_description"><p> The User-Agent header of the peer or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if not
+unknown.
+<em class="parameter"><code>returns</code></em>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the peer is allowed, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since 0.20.11</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-acl-is-allowed-async"></a><h3>gupnp_acl_is_allowed_async ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gupnp_acl_is_allowed_async (<em class="parameter"><code><a class="link" href="GUPnPAcl.html" title="GUPnPAcl"><span class="type">GUPnPAcl</span></a> *self</code></em>,
+                            <em class="parameter"><code><a class="link" href="GUPnPDevice.html" title="GUPnPDevice"><span class="type">GUPnPDevice</span></a> *device</code></em>,
+                            <em class="parameter"><code><a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a> *service</code></em>,
+                            <em class="parameter"><code>const <span class="type">char</span> *path</code></em>,
+                            <em class="parameter"><code>const <span class="type">char</span> *address</code></em>,
+                            <em class="parameter"><code>const <span class="type">char</span> *agent</code></em>,
+                            <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+                            <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
+                            <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
+<p>Optional. Check asynchronously whether an IP address is allowed to access
+this resource. Use this function if the process of verifying the access right
+is expected to take some time, for example when using D-Bus etc.</p>
+<p>If this function is supported, <a class="link" href="GUPnPAcl.html#gupnp-acl-can-sync" title="gupnp_acl_can_sync ()"><code class="function">gupnp_acl_can_sync()</code></a> should return <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>.</p>
+<p>Use <a class="link" href="GUPnPAcl.html#gupnp-acl-is-allowed-finish" title="gupnp_acl_is_allowed_finish ()"><code class="function">gupnp_acl_is_allowed_finish()</code></a> to retrieve the result.</p>
+<div class="refsect3">
+<a name="id-1.3.6.2.8.4.7"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GUPnPAcl.html" title="GUPnPAcl"><span class="type">GUPnPAcl</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>device</p></td>
+<td class="parameter_description"><p> The <a class="link" href="GUPnPDevice.html" title="GUPnPDevice"><span class="type">GUPnPDevice</span></a> associated with <em class="parameter"><code>path</code></em>
+or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if
+unknown. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+</tr>
+<tr>
+<td class="parameter_name"><p>service</p></td>
+<td class="parameter_description"><p> The <a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a> associated with <em class="parameter"><code>path</code></em>
+or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if
+unknown. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+</tr>
+<tr>
+<td class="parameter_name"><p>path</p></td>
+<td class="parameter_description"><p>The path being served.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>address</p></td>
+<td class="parameter_description"><p>IP address of the peer</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>agent</p></td>
+<td class="parameter_description"><p> The User-Agent header of the peer or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if not
+unknown. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cancellable</p></td>
+<td class="parameter_description"><p> A <a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> which can be used to cancel the
+operation. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+</tr>
+<tr>
+<td class="parameter_name"><p>callback</p></td>
+<td class="parameter_description"><p>Callback to call after the function is done.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>Some user data.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since 0.20.11</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-acl-is-allowed-finish"></a><h3>gupnp_acl_is_allowed_finish ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gupnp_acl_is_allowed_finish (<em class="parameter"><code><a class="link" href="GUPnPAcl.html" title="GUPnPAcl"><span class="type">GUPnPAcl</span></a> *self</code></em>,
+                             <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><span class="type">GAsyncResult</span></a> *res</code></em>,
+                             <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<div class="refsect3">
+<a name="id-1.3.6.2.8.5.4"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>self</p></td>
+<td class="parameter_description"><p>An instance of <a class="link" href="GUPnPAcl.html" title="GUPnPAcl"><span class="type">GUPnPAcl</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>res</p></td>
+<td class="parameter_description"><p><a href="http://library.gnome.org/devel/gio/unstable/GAsyncResult.html"><code class="literal">GAsyncResult</code></a> obtained from the callback in <a class="link" href="GUPnPAcl.html#gupnp-acl-is-allowed-async" title="gupnp_acl_is_allowed_async ()"><code class="function">gupnp_acl_is_allowed_async()</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>error</p></td>
+<td class="parameter_description"><p> A return location for a <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> describing the failure
+<em class="parameter"><code>returns</code></em>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the authentication was successful, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise and on
+error. Check <em class="parameter"><code>error</code></em>
+for details. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since 0.20.11</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="GUPnPAcl.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GUPnPAcl-struct"></a><h3>GUPnPAcl</h3>
+<pre class="programlisting">typedef struct _GUPnPAcl GUPnPAcl;</pre>
+<p>Handle to an object implementing the <a class="link" href="GUPnPAcl.html#GUPnPAclInterface" title="struct GUPnPAclInterface"><span class="type">GUPnPAclInterface</span></a> interface.</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GUPnPAclInterface"></a><h3>struct GUPnPAclInterface</h3>
+<pre class="programlisting">struct GUPnPAclInterface {
+    GTypeInterface parent;
+
+    gboolean (*is_allowed) (GUPnPAcl     *self,
+                            GUPnPDevice  *device,
+                            GUPnPService *service,
+                            const char   *path,
+                            const char   *address,
+                            const char   *agent);
+
+    void     (*is_allowed_async) (GUPnPAcl           *self,
+                                  GUPnPDevice        *device,
+                                  GUPnPService       *service,
+                                  const char         *path,
+                                  const char         *address,
+                                  const char         *agent,
+                                  GCancellable       *cancellable,
+                                  GAsyncReadyCallback callback,
+                                  gpointer            user_data);
+
+    gboolean (*is_allowed_finish) (GUPnPAcl      *self,
+                                   GAsyncResult  *res,
+                                   GError       **error);
+
+    gboolean (*can_sync)          (GUPnPAcl *self);
+};
+</pre>
+<p>Implement a simple access control list for GUPnP.</p>
+<div class="refsect3">
+<a name="id-1.3.6.2.9.3.5"></a><h4>Members</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GTypeInterface"><span class="type">GTypeInterface</span></a> <em class="structfield"><code><a name="GUPnPAclInterface.parent"></a>parent</code></em>;</p></td>
+<td class="struct_member_description"><p>The parent interface.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><em class="structfield"><code><a name="GUPnPAclInterface.is-allowed"></a>is_allowed</code></em> ()</p></td>
+<td class="struct_member_description"><p>Check whether access to the resource is granted.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><em class="structfield"><code><a name="GUPnPAclInterface.is-allowed-async"></a>is_allowed_async</code></em> ()</p></td>
+<td class="struct_member_description"><p>Asynchronously check whether the access is granted.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><em class="structfield"><code><a name="GUPnPAclInterface.is-allowed-finish"></a>is_allowed_finish</code></em> ()</p></td>
+<td class="struct_member_description"><p>Conclude the <em class="parameter"><code>is_allowed_async</code></em>
+operation.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><em class="structfield"><code><a name="GUPnPAclInterface.can-sync"></a>can_sync</code></em> ()</p></td>
+<td class="struct_member_description"><p>Whether the ACL can do sync queries.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since 0.20.11</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.20</div>
+</body>
+</html>
\ No newline at end of file
index dd20240..4ae2597 100644 (file)
@@ -2,36 +2,29 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GUPnPContext</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>GUPnP Reference Manual: GUPnPContext</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GUPnP Reference Manual">
-<link rel="up" href="api-utility.html" title="Utility Functions">
-<link rel="prev" href="api-utility.html" title="Utility Functions">
+<link rel="up" href="api-context.html" title="Network context handling">
+<link rel="prev" href="api-context.html" title="Network context handling">
 <link rel="next" href="GUPnPContextManager.html" title="GUPnPContextManager">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="api-utility.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="api-utility.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GUPnP Reference Manual</th>
-<td><a accesskey="n" href="GUPnPContextManager.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#GUPnPContext.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#GUPnPContext.description" class="shortcut">Description</a>
-                   | 
-                  <a href="#GUPnPContext.object-hierarchy" class="shortcut">Object Hierarchy</a>
-                   | 
-                  <a href="#GUPnPContext.implemented-interfaces" class="shortcut">Implemented Interfaces</a>
-                   | 
-                  <a href="#GUPnPContext.properties" class="shortcut">Properties</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
+                  <a href="#GUPnPContext.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+                  <a href="#GUPnPContext.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces"> <span class="dim">|</span> 
+                  <a href="#GUPnPContext.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties"> <span class="dim">|</span> 
+                  <a href="#GUPnPContext.properties" class="shortcut">Properties</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="api-context.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="api-context.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="GUPnPContextManager.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="GUPnPContext"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
 <h2><span class="refentrytitle"><a name="GUPnPContext.top_of_page"></a>GUPnPContext</span></h2>
 <p>GUPnPContext — Context object wrapping shared networking bits.</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="GUPnPContext.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">struct              <a class="link" href="GUPnPContext.html#GUPnPContext-struct" title="struct GUPnPContext">GUPnPContext</a>;
-<a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="returnvalue">GUPnPContext</span></a> *      <a class="link" href="GUPnPContext.html#gupnp-context-new" title="gupnp_context_new ()">gupnp_context_new</a>                   (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#GMainContext"><span class="type">GMainContext</span></a> *main_context</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *iface</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> port</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
-const <span class="returnvalue">char</span> *        <a class="link" href="GUPnPContext.html#gupnp-context-get-host-ip" title="gupnp_context_get_host_ip ()">gupnp_context_get_host_ip</a>           (<em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="GUPnPContext.html#gupnp-context-get-port" title="gupnp_context_get_port ()">gupnp_context_get_port</a>              (<em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>);
-<a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupServer.html"><span class="returnvalue">SoupServer</span></a> *        <a class="link" href="GUPnPContext.html#gupnp-context-get-server" title="gupnp_context_get_server ()">gupnp_context_get_server</a>            (<em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>);
-<a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupSession.html"><span class="returnvalue">SoupSession</span></a> *       <a class="link" href="GUPnPContext.html#gupnp-context-get-session" title="gupnp_context_get_session ()">gupnp_context_get_session</a>           (<em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GUPnPContext.html#gupnp-context-set-subscription-timeout" title="gupnp_context_set_subscription_timeout ()">gupnp_context_set_subscription_timeout</a>
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> timeout</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="GUPnPContext.html#gupnp-context-get-subscription-timeout" title="gupnp_context_get_subscription_timeout ()">gupnp_context_get_subscription_timeout</a>
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>);
-const <span class="returnvalue">char</span> *        <a class="link" href="GUPnPContext.html#gupnp-context-get-default-language" title="gupnp_context_get_default_language ()">gupnp_context_get_default_language</a>  (<em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GUPnPContext.html#gupnp-context-set-default-language" title="gupnp_context_set_default_language ()">gupnp_context_set_default_language</a>  (<em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *language</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GUPnPContext.html#gupnp-context-host-path" title="gupnp_context_host_path ()">gupnp_context_host_path</a>             (<em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *local_path</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *server_path</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GUPnPContext.html#gupnp-context-host-path-for-agent" title="gupnp_context_host_path_for_agent ()">gupnp_context_host_path_for_agent</a>   (<em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *local_path</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *server_path</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Perl-compatible-regular-expressions.html#GRegex"><span class="type">GRegex</span></a> *user_agent</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GUPnPContext.html#gupnp-context-unhost-path" title="gupnp_context_unhost_path ()">gupnp_context_unhost_path</a>           (<em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *server_path</code></em>);
-</pre>
-</div>
-<div class="refsect1">
-<a name="GUPnPContext.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="synopsis">
-  <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-   +----<a href="../gssdp/GSSDPClient.html">GSSDPClient</a>
-         +----GUPnPContext
-</pre>
-</div>
 <div class="refsect1">
-<a name="GUPnPContext.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
-<p>
-GUPnPContext implements
- <a href="http://library.gnome.org/devel/gio/unstable/GInitable.html">GInitable</a>.</p>
-</div>
-<div class="refsect1">
-<a name="GUPnPContext.properties"></a><h2>Properties</h2>
-<pre class="synopsis">
-  "<a class="link" href="GUPnPContext.html#GUPnPContext--default-language" title='The "default-language" property'>default-language</a>"         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write / Construct
-  "<a class="link" href="GUPnPContext.html#GUPnPContext--port" title='The "port" property'>port</a>"                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write / Construct Only
-  "<a class="link" href="GUPnPContext.html#GUPnPContext--server" title='The "server" property'>server</a>"                   <a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupServer.html"><span class="type">SoupServer</span></a>*           : Read
-  "<a class="link" href="GUPnPContext.html#GUPnPContext--session" title='The "session" property'>session</a>"                  <a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupSession.html"><span class="type">SoupSession</span></a>*          : Read
-  "<a class="link" href="GUPnPContext.html#GUPnPContext--subscription-timeout" title='The "subscription-timeout" property'>subscription-timeout</a>"     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write / Construct Only
-</pre>
-</div>
-<div class="refsect1">
-<a name="GUPnPContext.description"></a><h2>Description</h2>
-<p>
-<a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> wraps the networking bits that are used by the various
-GUPnP classes. It automatically starts a web server on demand.
-</p>
-<p>
-For debugging, it is possible to see the messages being sent and received by
-exporting <code class="envar">GUPNP_DEBUG</code>.
-</p>
-</div>
-<div class="refsect1">
-<a name="GUPnPContext.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="GUPnPContext-struct"></a><h3>struct GUPnPContext</h3>
-<pre class="programlisting">struct GUPnPContext;</pre>
-<p>
-This struct contains private data only, and should be accessed using the
-functions below.
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gupnp-context-new"></a><h3>gupnp_context_new ()</h3>
-<pre class="programlisting"><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="returnvalue">GUPnPContext</span></a> *      gupnp_context_new                   (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#GMainContext"><span class="type">GMainContext</span></a> *main_context</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *iface</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> port</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
-<p>
-Create a new <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> with the specified <em class="parameter"><code>main_context</code></em>, <em class="parameter"><code>iface</code></em> and
-<em class="parameter"><code>port</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="GUPnPContext.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>main_context</code></em> :</span></p></td>
-<td>Deprecated: 0.17.2: Always set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. If you
-want to use a different context, use <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default"><code class="function">g_main_context_push_thread_default()</code></a>. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+<td class="function_type">
+<a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="returnvalue">GUPnPContext</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPContext.html#gupnp-context-new" title="gupnp_context_new ()">gupnp_context_new</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>iface</code></em> :</span></p></td>
-<td>The network interface to use, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to
-auto-detect. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+<td class="function_type">const <span class="returnvalue">char</span> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPContext.html#gupnp-context-get-host-ip" title="gupnp_context_get_host_ip ()">gupnp_context_get_host_ip</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>port</code></em> :</span></p></td>
-<td>Port to run on, or 0 if you don't care what port is used.</td>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPContext.html#gupnp-context-get-port" title="gupnp_context_get_port ()">gupnp_context_get_port</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
-<td>A location to store a <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+<td class="function_type">
+<a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupServer.html"><span class="returnvalue">SoupServer</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPContext.html#gupnp-context-get-server" title="gupnp_context_get_server ()">gupnp_context_get_server</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A new <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> object, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> on an error</td>
+<td class="function_type">
+<a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupSession.html"><span class="returnvalue">SoupSession</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPContext.html#gupnp-context-get-session" title="gupnp_context_get_session ()">gupnp_context_get_session</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gupnp-context-get-host-ip"></a><h3>gupnp_context_get_host_ip ()</h3>
-<pre class="programlisting">const <span class="returnvalue">char</span> *        gupnp_context_get_host_ip           (<em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>);</pre>
-<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
-<h3 class="title">Warning</h3>
-<p><code class="literal">gupnp_context_get_host_ip</code> has been deprecated since version 0.12.7 and should not be used in newly-written code. The "host-ip" property has moved to the base class
-<a href="../gssdp/GSSDPClient.html"><span class="type">GSSDPClient</span></a> so newer applications should use
-<a href="../gssdp/GSSDPClient.html#gssdp-client-get-host-ip"><span class="type">gssdp_client_get_host_ip</span></a> instead.</p>
-</div>
-<p>
-Get the IP address we advertise ourselves as using.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPContext.html#gupnp-context-set-subscription-timeout" title="gupnp_context_set_subscription_timeout ()">gupnp_context_set_subscription_timeout</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>The IP address. This string should not be freed.</td>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPContext.html#gupnp-context-get-subscription-timeout" title="gupnp_context_get_subscription_timeout ()">gupnp_context_get_subscription_timeout</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gupnp-context-get-port"></a><h3>gupnp_context_get_port ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               gupnp_context_get_port              (<em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>);</pre>
-<p>
-Get the port that the SOAP server is running on.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a>
+<td class="function_type">const <span class="returnvalue">char</span> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPContext.html#gupnp-context-get-default-language" title="gupnp_context_get_default_language ()">gupnp_context_get_default_language</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>The port the SOAP server is running on.</td>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPContext.html#gupnp-context-set-default-language" title="gupnp_context_set_default_language ()">gupnp_context_set_default_language</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPContext.html#gupnp-context-add-server-handler" title="gupnp_context_add_server_handler ()">gupnp_context_add_server_handler</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPContext.html#gupnp-context-host-path" title="gupnp_context_host_path ()">gupnp_context_host_path</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPContext.html#gupnp-context-host-path-for-agent" title="gupnp_context_host_path_for_agent ()">gupnp_context_host_path_for_agent</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPContext.html#gupnp-context-unhost-path" title="gupnp_context_unhost_path ()">gupnp_context_unhost_path</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gupnp-context-get-server"></a><h3>gupnp_context_get_server ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupServer.html"><span class="returnvalue">SoupServer</span></a> *        gupnp_context_get_server            (<em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>);</pre>
-<p>
-Get the <a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupServer.html"><span class="type">SoupServer</span></a> HTTP server that GUPnP is using.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a>
+<td class="function_type">
+<a class="link" href="GUPnPAcl.html" title="GUPnPAcl"><span class="returnvalue">GUPnPAcl</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPContext.html#gupnp-context-get-acl" title="gupnp_context_get_acl ()">gupnp_context_get_acl</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>The <a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupServer.html"><span class="type">SoupServer</span></a> used by GUPnP. Do not unref this when finished. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPContext.html#gupnp-context-set-acl" title="gupnp_context_set_acl ()">gupnp_context_set_acl</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 </tbody>
 </table></div>
 </div>
-<hr>
-<div class="refsect2">
-<a name="gupnp-context-get-session"></a><h3>gupnp_context_get_session ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupSession.html"><span class="returnvalue">SoupSession</span></a> *       gupnp_context_get_session           (<em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>);</pre>
-<p>
-Get the <a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupSession.html"><span class="type">SoupSession</span></a> object that GUPnP is using.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<div class="refsect1">
+<a name="GUPnPContext.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table border="0">
+<colgroup>
+<col width="150px" class="properties_type">
+<col width="300px" class="properties_name">
+<col width="200px" class="properties_flags">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a>
-</td>
+<td class="property_type">
+<a class="link" href="GUPnPAcl.html" title="GUPnPAcl"><span class="type">GUPnPAcl</span></a> *</td>
+<td class="property_name"><a class="link" href="GUPnPContext.html#GUPnPContext--acl" title="The “acl” property">acl</a></td>
+<td class="property_flags">Read / Write / Construct</td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>The <a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupSession.html"><span class="type">SoupSession</span></a> used by GUPnP. Do not unref
-this when finished. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="property_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<td class="property_name"><a class="link" href="GUPnPContext.html#GUPnPContext--default-language" title="The “default-language” property">default-language</a></td>
+<td class="property_flags">Read / Write / Construct</td>
+</tr>
+<tr>
+<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
+<td class="property_name"><a class="link" href="GUPnPContext.html#GUPnPContext--port" title="The “port” property">port</a></td>
+<td class="property_flags">Read / Write / Construct Only</td>
+</tr>
+<tr>
+<td class="property_type">
+<a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupServer.html"><span class="type">SoupServer</span></a> *</td>
+<td class="property_name"><a class="link" href="GUPnPContext.html#GUPnPContext--server" title="The “server” property">server</a></td>
+<td class="property_flags">Read</td>
+</tr>
+<tr>
+<td class="property_type">
+<a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupSession.html"><span class="type">SoupSession</span></a> *</td>
+<td class="property_name"><a class="link" href="GUPnPContext.html#GUPnPContext--session" title="The “session” property">session</a></td>
+<td class="property_flags">Read</td>
+</tr>
+<tr>
+<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
+<td class="property_name"><a class="link" href="GUPnPContext.html#GUPnPContext--subscription-timeout" title="The “subscription-timeout” property">subscription-timeout</a></td>
+<td class="property_flags">Read / Write / Construct Only</td>
 </tr>
 </tbody>
 </table></div>
 </div>
-<hr>
-<div class="refsect2">
-<a name="gupnp-context-set-subscription-timeout"></a><h3>gupnp_context_set_subscription_timeout ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gupnp_context_set_subscription_timeout
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> timeout</code></em>);</pre>
+<div class="refsect1">
+<a name="GUPnPContext.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="GUPnPContext.html#GUPnPContext-struct" title="struct GUPnPContext">GUPnPContext</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="GUPnPContext.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="http://developer.gnome.org/gssdp/unstabe/GSSDPClient.html">GSSDPClient</a>
+        <span class="lineart">╰──</span> GUPnPContext
+</pre>
+</div>
+<div class="refsect1">
+<a name="GUPnPContext.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
 <p>
-Sets the event subscription timeout to <em class="parameter"><code>timeout</code></em>. Use 0 if you don't
-want subscriptions to time out. Note that any client side subscriptions
-will automatically be renewed.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+GUPnPContext implements
+ <a href="http://library.gnome.org/devel/gio/unstable/GInitable.html">GInitable</a>.</p>
+</div>
+<div class="refsect1">
+<a name="GUPnPContext.description"></a><h2>Description</h2>
+<p><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> wraps the networking bits that are used by the various
+GUPnP classes. It automatically starts a web server on demand.</p>
+<p>For debugging, it is possible to see the messages being sent and received by
+exporting <code class="envar">GUPNP_DEBUG</code>.</p>
+</div>
+<div class="refsect1">
+<a name="GUPnPContext.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="gupnp-context-new"></a><h3>gupnp_context_new ()</h3>
+<pre class="programlisting"><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="returnvalue">GUPnPContext</span></a> *
+gupnp_context_new (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#GMainContext"><span class="type">GMainContext</span></a> *main_context</code></em>,
+                   <em class="parameter"><code>const <span class="type">char</span> *iface</code></em>,
+                   <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> port</code></em>,
+                   <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<p>Create a new <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> with the specified <em class="parameter"><code>main_context</code></em>
+, <em class="parameter"><code>iface</code></em>
+ and
+<em class="parameter"><code>port</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.3.5.2.9.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a>
-</td>
+<td class="parameter_name"><p>main_context</p></td>
+<td class="parameter_description"><p> Deprecated: 0.17.2: Always set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. If you
+want to use a different context, use <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default"><code class="function">g_main_context_push_thread_default()</code></a>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+</tr>
+<tr>
+<td class="parameter_name"><p>iface</p></td>
+<td class="parameter_description"><p> The network interface to use, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to
+auto-detect. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+</tr>
+<tr>
+<td class="parameter_name"><p>port</p></td>
+<td class="parameter_description"><p>Port to run on, or 0 if you don't care what port is used.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>timeout</code></em> :</span></p></td>
-<td>Event subscription timeout in seconds</td>
+<td class="parameter_name"><p>error</p></td>
+<td class="parameter_description"><p>A location to store a <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.5.2.9.2.6"></a><h4>Returns</h4>
+<p> A new <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> object, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> on an error</p>
+<p></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-context-get-subscription-timeout"></a><h3>gupnp_context_get_subscription_timeout ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               gupnp_context_get_subscription_timeout
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>);</pre>
-<p>
-Get the event subscription timeout (in seconds), or 0 meaning there is no
-timeout.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-context-get-host-ip"></a><h3>gupnp_context_get_host_ip ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> *
+gupnp_context_get_host_ip (<em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>);</pre>
+<div class="warning">
+<p><code class="literal">gupnp_context_get_host_ip</code> has been deprecated since version 0.12.7 and should not be used in newly-written code.</p>
+<p>The "host-ip" property has moved to the base class
+<a href="http://developer.gnome.org/gssdp/unstabe/GSSDPClient.html"><span class="type">GSSDPClient</span></a> so newer applications should use
+<a href="http://developer.gnome.org/gssdp/unstabe/GSSDPClient.html#gssdp-client-get-host-ip"><span class="type">gssdp_client_get_host_ip</span></a> instead.</p>
+</div>
+<p>Get the IP address we advertise ourselves as using.</p>
+<div class="refsect3">
+<a name="id-1.3.5.2.9.3.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>context</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.5.2.9.3.7"></a><h4>Returns</h4>
+<p> The IP address. This string should not be freed.</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-context-get-port"></a><h3>gupnp_context_get_port ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+gupnp_context_get_port (<em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>);</pre>
+<div class="warning"><p><code class="literal">gupnp_context_get_port</code> is deprecated and should not be used in newly-written code.</p></div>
+<p>Get the port that the SOAP server is running on.</p>
+<div class="refsect3">
+<a name="id-1.3.5.2.9.4.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>context</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.5.2.9.4.7"></a><h4>Returns</h4>
+<p> The port the SOAP server is running on.</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-context-get-server"></a><h3>gupnp_context_get_server ()</h3>
+<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupServer.html"><span class="returnvalue">SoupServer</span></a> *
+gupnp_context_get_server (<em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>);</pre>
+<p>Get the <a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupServer.html"><span class="type">SoupServer</span></a> HTTP server that GUPnP is using.</p>
+<div class="refsect3">
+<a name="id-1.3.5.2.9.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>context</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.5.2.9.5.6"></a><h4>Returns</h4>
+<p> The <a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupServer.html"><span class="type">SoupServer</span></a> used by GUPnP. Do not unref this when finished. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-context-get-session"></a><h3>gupnp_context_get_session ()</h3>
+<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupSession.html"><span class="returnvalue">SoupSession</span></a> *
+gupnp_context_get_session (<em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>);</pre>
+<p>Get the <a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupSession.html"><span class="type">SoupSession</span></a> object that GUPnP is using.</p>
+<div class="refsect3">
+<a name="id-1.3.5.2.9.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>context</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.5.2.9.6.6"></a><h4>Returns</h4>
+<p> The <a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupSession.html"><span class="type">SoupSession</span></a> used by GUPnP. Do not unref
+this when finished. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+<p class="since">Since 0.12.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-context-set-subscription-timeout"></a><h3>gupnp_context_set_subscription_timeout ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gupnp_context_set_subscription_timeout
+                               (<em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>,
+                                <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> timeout</code></em>);</pre>
+<p>Sets the event subscription timeout to <em class="parameter"><code>timeout</code></em>
+. Use 0 if you don't
+want subscriptions to time out. Note that any client side subscriptions
+will automatically be renewed.</p>
+<div class="refsect3">
+<a name="id-1.3.5.2.9.7.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a>
-</td>
+<td class="parameter_name"><p>context</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>The event subscription timeout in seconds.</td>
+<td class="parameter_name"><p>timeout</p></td>
+<td class="parameter_description"><p>Event subscription timeout in seconds</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-context-get-default-language"></a><h3>gupnp_context_get_default_language ()</h3>
-<pre class="programlisting">const <span class="returnvalue">char</span> *        gupnp_context_get_default_language  (<em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>);</pre>
-<p>
-Get the default Content-Language header for this context.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-context-get-subscription-timeout"></a><h3>gupnp_context_get_subscription_timeout ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+gupnp_context_get_subscription_timeout
+                               (<em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>);</pre>
+<p>Get the event subscription timeout (in seconds), or 0 meaning there is no
+timeout.</p>
+<div class="refsect3">
+<a name="id-1.3.5.2.9.8.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>context</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.5.2.9.8.6"></a><h4>Returns</h4>
+<p> The event subscription timeout in seconds.</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-context-get-default-language"></a><h3>gupnp_context_get_default_language ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> *
+gupnp_context_get_default_language (<em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>);</pre>
+<p>Get the default Content-Language header for this context.</p>
+<div class="refsect3">
+<a name="id-1.3.5.2.9.9.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>context</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.5.2.9.9.6"></a><h4>Returns</h4>
+<p> The default content of the Content-Language
+header. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+<p class="since">Since 0.17.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-context-set-default-language"></a><h3>gupnp_context_set_default_language ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gupnp_context_set_default_language (<em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>,
+                                    <em class="parameter"><code>const <span class="type">char</span> *language</code></em>);</pre>
+<p>Set the default language for the Content-Length header to <em class="parameter"><code>language</code></em>
+.</p>
+<p>If the client sends an Accept-Language header the UPnP HTTP server
+is required to send a Content-Language header in return. If there are
+no files hosted in languages which match the requested ones the
+Content-Language header is set to this value. The default value is "en".</p>
+<div class="refsect3">
+<a name="id-1.3.5.2.9.10.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a>
-</td>
+<td class="parameter_name"><p>context</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>The default content of the Content-Language
-header. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>language</p></td>
+<td class="parameter_description"><p>A language tag as defined in RFC 2616 3.10</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<p class="since">Since 0.17.0</p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-context-set-default-language"></a><h3>gupnp_context_set_default_language ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gupnp_context_set_default_language  (<em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *language</code></em>);</pre>
-<p>
-Set the default language for the Content-Length header to <em class="parameter"><code>language</code></em>.
-</p>
-<p>
-If the client sends an Accept-Language header the UPnP HTTP server
-is required to send a Content-Language header in return. If there are
-no files hosted in languages which match the requested ones the
-Content-Language header is set to this value. The default value is "en".
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-context-add-server-handler"></a><h3>gupnp_context_add_server_handler ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gupnp_context_add_server_handler (<em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>,
+                                  <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> use_acl</code></em>,
+                                  <em class="parameter"><code>const <span class="type">char</span> *path</code></em>,
+                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupServer.html#SoupServerCallback"><span class="type">SoupServerCallback</span></a> callback</code></em>,
+                                  <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                  <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> destroy</code></em>);</pre>
+<p>Add a <a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupServer.html#SoupServerCallback"><span class="type">SoupServerCallback</span></a> to the <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a>'s <a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupServer.html"><span class="type">SoupServer</span></a>.</p>
+<div class="refsect3">
+<a name="id-1.3.5.2.9.11.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a>
-</td>
+<td class="parameter_name"><p>context</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>use_acl</p></td>
+<td class="parameter_description"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, if the path should query the GUPnPContext::acl before
+serving the resource, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>path</p></td>
+<td class="parameter_description"><p>the toplevel path for the handler.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>callback</p></td>
+<td class="parameter_description"><p>callback to invoke for requests under <em class="parameter"><code>path</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>language</code></em> :</span></p></td>
-<td>A language tag as defined in RFC 2616 3.10</td>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>the user_data passed to <em class="parameter"><code>callback</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>destroy</p></td>
+<td class="parameter_description"><p> A <a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> for <em class="parameter"><code>user_data</code></em>
+or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if none. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<p class="since">Since 0.20.11</p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-context-host-path"></a><h3>gupnp_context_host_path ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gupnp_context_host_path             (<em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *local_path</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *server_path</code></em>);</pre>
-<p>
-Start hosting <em class="parameter"><code>local_path</code></em> at <em class="parameter"><code>server_path</code></em>. Files with the path
-<em class="parameter"><code>local_path.LOCALE</code></em> (if they exist) will be served up when LOCALE is
-specified in the request's Accept-Language header.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-context-host-path"></a><h3>gupnp_context_host_path ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gupnp_context_host_path (<em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>,
+                         <em class="parameter"><code>const <span class="type">char</span> *local_path</code></em>,
+                         <em class="parameter"><code>const <span class="type">char</span> *server_path</code></em>);</pre>
+<p>Start hosting <em class="parameter"><code>local_path</code></em>
+ at <em class="parameter"><code>server_path</code></em>
+. Files with the path
+<em class="parameter"><code>local_path.LOCALE</code></em>
+ (if they exist) will be served up when LOCALE is
+specified in the request's Accept-Language header.</p>
+<div class="refsect3">
+<a name="id-1.3.5.2.9.12.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a>
-</td>
+<td class="parameter_name"><p>context</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>local_path</code></em> :</span></p></td>
-<td>Path to the local file or folder to be hosted</td>
+<td class="parameter_name"><p>local_path</p></td>
+<td class="parameter_description"><p>Path to the local file or folder to be hosted</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>server_path</code></em> :</span></p></td>
-<td>Web server path where <em class="parameter"><code>local_path</code></em> should be hosted</td>
+<td class="parameter_name"><p>server_path</p></td>
+<td class="parameter_description"><p>Web server path where <em class="parameter"><code>local_path</code></em>
+should be hosted</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-context-host-path-for-agent"></a><h3>gupnp_context_host_path_for_agent ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gupnp_context_host_path_for_agent   (<em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *local_path</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *server_path</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Perl-compatible-regular-expressions.html#GRegex"><span class="type">GRegex</span></a> *user_agent</code></em>);</pre>
-<p>
-Use this method to serve different local path to specific user-agent(s). The
-path <em class="parameter"><code>server_path</code></em> must already be hosted by <em class="parameter"><code>context</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-context-host-path-for-agent"></a><h3>gupnp_context_host_path_for_agent ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gupnp_context_host_path_for_agent (<em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>,
+                                   <em class="parameter"><code>const <span class="type">char</span> *local_path</code></em>,
+                                   <em class="parameter"><code>const <span class="type">char</span> *server_path</code></em>,
+                                   <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Perl-compatible-regular-expressions.html#GRegex"><span class="type">GRegex</span></a> *user_agent</code></em>);</pre>
+<p>Use this method to serve different local path to specific user-agent(s). The
+path <em class="parameter"><code>server_path</code></em>
+ must already be hosted by <em class="parameter"><code>context</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.3.5.2.9.13.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a>
-</td>
+<td class="parameter_name"><p>context</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>local_path</p></td>
+<td class="parameter_description"><p>Path to the local file or folder to be hosted</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>local_path</code></em> :</span></p></td>
-<td>Path to the local file or folder to be hosted</td>
+<td class="parameter_name"><p>server_path</p></td>
+<td class="parameter_description"><p>Web server path already being hosted</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>server_path</code></em> :</span></p></td>
-<td>Web server path already being hosted</td>
+<td class="parameter_name"><p>user_agent</p></td>
+<td class="parameter_description"><p>The user-agent as a <a href="http://library.gnome.org/devel/glib/unstable/glib-Perl-compatible-regular-expressions.html#GRegex"><span class="type">GRegex</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.5.2.9.13.6"></a><h4>Returns</h4>
+<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
+<p></p>
+</div>
+<p class="since">Since 0.13.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-context-unhost-path"></a><h3>gupnp_context_unhost_path ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gupnp_context_unhost_path (<em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>,
+                           <em class="parameter"><code>const <span class="type">char</span> *server_path</code></em>);</pre>
+<p>Stop hosting the file or folder at <em class="parameter"><code>server_path</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.3.5.2.9.14.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>user_agent</code></em> :</span></p></td>
-<td>The user-agent as a <a href="http://library.gnome.org/devel/glib/unstable/glib-Perl-compatible-regular-expressions.html#GRegex"><span class="type">GRegex</span></a>.</td>
+<td class="parameter_name"><p>context</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</td>
+<td class="parameter_name"><p>server_path</p></td>
+<td class="parameter_description"><p>Web server path where the file or folder is hosted</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-context-unhost-path"></a><h3>gupnp_context_unhost_path ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gupnp_context_unhost_path           (<em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *server_path</code></em>);</pre>
-<p>
-Stop hosting the file or folder at <em class="parameter"><code>server_path</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-context-get-acl"></a><h3>gupnp_context_get_acl ()</h3>
+<pre class="programlisting"><a class="link" href="GUPnPAcl.html" title="GUPnPAcl"><span class="returnvalue">GUPnPAcl</span></a> *
+gupnp_context_get_acl (<em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>);</pre>
+<div class="refsect3">
+<a name="id-1.3.5.2.9.15.4"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>context</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.5.2.9.15.5"></a><h4>Returns</h4>
+<p> The access control list associated with this context or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+if no acl is set. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+<p class="since">Since 0.20.11</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-context-set-acl"></a><h3>gupnp_context_set_acl ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gupnp_context_set_acl (<em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>,
+                       <em class="parameter"><code><a class="link" href="GUPnPAcl.html" title="GUPnPAcl"><span class="type">GUPnPAcl</span></a> *acl</code></em>);</pre>
+<div class="refsect3">
+<a name="id-1.3.5.2.9.16.4"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a>
-</td>
+<td class="parameter_name"><p>context</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>server_path</code></em> :</span></p></td>
-<td>Web server path where the file or folder is hosted</td>
+<td class="parameter_name"><p>acl</p></td>
+<td class="parameter_description"><p> The new access control list or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to remove the
+current list. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<p class="since">Since 0.20.11</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="GUPnPContext.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GUPnPContext-struct"></a><h3>struct GUPnPContext</h3>
+<pre class="programlisting">struct GUPnPContext;</pre>
+<p>This struct contains private data only, and should be accessed using the
+functions below.</p>
+</div>
 </div>
 <div class="refsect1">
 <a name="GUPnPContext.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
-<a name="GUPnPContext--default-language"></a><h3>The <code class="literal">"default-language"</code> property</h3>
-<pre class="programlisting">  "default-language"         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write / Construct</pre>
-<p>
-The content of the Content-Language header id the client
+<a name="GUPnPContext--acl"></a><h3>The <code class="literal">“acl”</code> property</h3>
+<pre class="programlisting">  “acl”                      <a class="link" href="GUPnPAcl.html" title="GUPnPAcl"><span class="type">GUPnPAcl</span></a> *</pre>
+<p>An access control list.</p>
+<p>Flags: Read / Write / Construct</p>
+<p class="since">Since 0.20.11</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GUPnPContext--default-language"></a><h3>The <code class="literal">“default-language”</code> property</h3>
+<pre class="programlisting">  “default-language”         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<p>The content of the Content-Language header id the client
 sends Accept-Language and no language-specific pages to serve
-exist. The property defaults to 'en'.
-</p>
+exist. The property defaults to 'en'.</p>
+<p>Flags: Read / Write / Construct</p>
 <p>Default value: "en"</p>
+<p class="since">Since 0.17.0</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="GUPnPContext--port"></a><h3>The <code class="literal">"port"</code> property</h3>
-<pre class="programlisting">  "port"                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write / Construct Only</pre>
-<p>
-The port to run on. Set to 0 if you don't care what port to run on.
-</p>
+<a name="GUPnPContext--port"></a><h3>The <code class="literal">“port”</code> property</h3>
+<pre class="programlisting">  “port”                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
+<p>The port to run on. Set to 0 if you don't care what port to run on.</p>
+<p>Flags: Read / Write / Construct Only</p>
 <p>Default value: 0</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="GUPnPContext--server"></a><h3>The <code class="literal">"server"</code> property</h3>
-<pre class="programlisting">  "server"                   <a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupServer.html"><span class="type">SoupServer</span></a>*           : Read</pre>
-<p>
-The <a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupServer.html"><span class="type">SoupServer</span></a> HTTP server used by GUPnP.
-</p>
+<a name="GUPnPContext--server"></a><h3>The <code class="literal">“server”</code> property</h3>
+<pre class="programlisting">  “server”                   <a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupServer.html"><span class="type">SoupServer</span></a> *</pre>
+<p>The <a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupServer.html"><span class="type">SoupServer</span></a> HTTP server used by GUPnP.</p>
+<p>Flags: Read</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="GUPnPContext--session"></a><h3>The <code class="literal">"session"</code> property</h3>
-<pre class="programlisting">  "session"                  <a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupSession.html"><span class="type">SoupSession</span></a>*          : Read</pre>
-<p>
-The <a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupSession.html"><span class="type">SoupSession</span></a> object used by GUPnP.
-</p>
+<a name="GUPnPContext--session"></a><h3>The <code class="literal">“session”</code> property</h3>
+<pre class="programlisting">  “session”                  <a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupSession.html"><span class="type">SoupSession</span></a> *</pre>
+<p>The <a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupSession.html"><span class="type">SoupSession</span></a> object used by GUPnP.</p>
+<p>Flags: Read</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="GUPnPContext--subscription-timeout"></a><h3>The <code class="literal">"subscription-timeout"</code> property</h3>
-<pre class="programlisting">  "subscription-timeout"     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write / Construct Only</pre>
-<p>
-The preferred subscription timeout: the number of seconds after
+<a name="GUPnPContext--subscription-timeout"></a><h3>The <code class="literal">“subscription-timeout”</code> property</h3>
+<pre class="programlisting">  “subscription-timeout”     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
+<p>The preferred subscription timeout: the number of seconds after
 which subscriptions are renewed. Set to '0' if subscriptions
-are never to time out.
-</p>
+
+are never to time out.</p>
+<p>Flags: Read / Write / Construct Only</p>
 <p>Allowed values: &lt;= 604800</p>
 <p>Default value: 1800</p>
 </div>
@@ -504,6 +851,6 @@ are never to time out.
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 97b7da3..38ba138 100644 (file)
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GUPnPContextManager</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>GUPnP Reference Manual: GUPnPContextManager</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GUPnP Reference Manual">
-<link rel="up" href="api-utility.html" title="Utility Functions">
+<link rel="up" href="api-context.html" title="Network context handling">
 <link rel="prev" href="GUPnPContext.html" title="GUPnPContext">
-<link rel="next" href="GUPnPWhiteList.html" title="GUPnPWhiteList">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="next" href="api-utility.html" title="Utility Functions">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="GUPnPContext.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="api-utility.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GUPnP Reference Manual</th>
-<td><a accesskey="n" href="GUPnPWhiteList.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#GUPnPContextManager.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#GUPnPContextManager.description" class="shortcut">Description</a>
-                   | 
-                  <a href="#GUPnPContextManager.object-hierarchy" class="shortcut">Object Hierarchy</a>
-                   | 
-                  <a href="#GUPnPContextManager.properties" class="shortcut">Properties</a>
-                   | 
-                  <a href="#GUPnPContextManager.signals" class="shortcut">Signals</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
+                  <a href="#GUPnPContextManager.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+                  <a href="#GUPnPContextManager.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> 
+                  <a href="#GUPnPContextManager.properties" class="shortcut">Properties</a></span><span id="nav_signals"> <span class="dim">|</span> 
+                  <a href="#GUPnPContextManager.signals" class="shortcut">Signals</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="api-context.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="GUPnPContext.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="api-utility.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="GUPnPContextManager"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="GUPnPContextManager.top_of_page"></a>GUPnPContextManager</span></h2>
-<p>GUPnPContextManager — Manages <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> objects.</p>
+<p>GUPnPContextManager — Manages GUPnPContext objects.</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="GUPnPContextManager.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">struct              <a class="link" href="GUPnPContextManager.html#GUPnPContextManager-struct" title="struct GUPnPContextManager">GUPnPContextManager</a>;
-<a class="link" href="GUPnPContextManager.html" title="GUPnPContextManager"><span class="returnvalue">GUPnPContextManager</span></a> * <a class="link" href="GUPnPContextManager.html#gupnp-context-manager-new" title="gupnp_context_manager_new ()">gupnp_context_manager_new</a>         (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#GMainContext"><span class="type">GMainContext</span></a> *main_context</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> port</code></em>);
-<a class="link" href="GUPnPContextManager.html" title="GUPnPContextManager"><span class="returnvalue">GUPnPContextManager</span></a> * <a class="link" href="GUPnPContextManager.html#gupnp-context-manager-create" title="gupnp_context_manager_create ()">gupnp_context_manager_create</a>      (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> port</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GUPnPContextManager.html#gupnp-context-manager-rescan-control-points" title="gupnp_context_manager_rescan_control_points ()">gupnp_context_manager_rescan_control_points</a>
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPContextManager.html" title="GUPnPContextManager"><span class="type">GUPnPContextManager</span></a> *manager</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GUPnPContextManager.html#gupnp-context-manager-manage-control-point" title="gupnp_context_manager_manage_control_point ()">gupnp_context_manager_manage_control_point</a>
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPContextManager.html" title="GUPnPContextManager"><span class="type">GUPnPContextManager</span></a> *manager</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a> *control_point</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GUPnPContextManager.html#gupnp-context-manager-manage-root-device" title="gupnp_context_manager_manage_root_device ()">gupnp_context_manager_manage_root_device</a>
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPContextManager.html" title="GUPnPContextManager"><span class="type">GUPnPContextManager</span></a> *manager</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a> *root_device</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="GUPnPContextManager.html#gupnp-context-manager-get-port" title="gupnp_context_manager_get_port ()">gupnp_context_manager_get_port</a>      (<em class="parameter"><code><a class="link" href="GUPnPContextManager.html" title="GUPnPContextManager"><span class="type">GUPnPContextManager</span></a> *manager</code></em>);
-<a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="returnvalue">GUPnPWhiteList</span></a> *    <a class="link" href="GUPnPContextManager.html#gupnp-context-manager-get-white-list" title="gupnp_context_manager_get_white_list ()">gupnp_context_manager_get_white_list</a>
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPContextManager.html" title="GUPnPContextManager"><span class="type">GUPnPContextManager</span></a> *manager</code></em>);
-</pre>
-</div>
 <div class="refsect1">
-<a name="GUPnPContextManager.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="synopsis">
-  <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-   +----GUPnPContextManager
-</pre>
+<a name="GUPnPContextManager.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="GUPnPContextManager.html" title="GUPnPContextManager"><span class="returnvalue">GUPnPContextManager</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPContextManager.html#gupnp-context-manager-new" title="gupnp_context_manager_new ()">gupnp_context_manager_new</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="GUPnPContextManager.html" title="GUPnPContextManager"><span class="returnvalue">GUPnPContextManager</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPContextManager.html#gupnp-context-manager-create" title="gupnp_context_manager_create ()">gupnp_context_manager_create</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPContextManager.html#gupnp-context-manager-rescan-control-points" title="gupnp_context_manager_rescan_control_points ()">gupnp_context_manager_rescan_control_points</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPContextManager.html#gupnp-context-manager-manage-control-point" title="gupnp_context_manager_manage_control_point ()">gupnp_context_manager_manage_control_point</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPContextManager.html#gupnp-context-manager-manage-root-device" title="gupnp_context_manager_manage_root_device ()">gupnp_context_manager_manage_root_device</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPContextManager.html#gupnp-context-manager-get-port" title="gupnp_context_manager_get_port ()">gupnp_context_manager_get_port</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="returnvalue">GUPnPWhiteList</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPContextManager.html#gupnp-context-manager-get-white-list" title="gupnp_context_manager_get_white_list ()">gupnp_context_manager_get_white_list</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <div class="refsect1">
 <a name="GUPnPContextManager.properties"></a><h2>Properties</h2>
-<pre class="synopsis">
-  "<a class="link" href="GUPnPContextManager.html#GUPnPContextManager--main-context" title='The "main-context" property'>main-context</a>"             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>              : Read / Write / Construct Only
-  "<a class="link" href="GUPnPContextManager.html#GUPnPContextManager--port" title='The "port" property'>port</a>"                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write / Construct Only
-  "<a class="link" href="GUPnPContextManager.html#GUPnPContextManager--white-list" title='The "white-list" property'>white-list</a>"               <a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a>*       : Read
-</pre>
+<div class="informaltable"><table border="0">
+<colgroup>
+<col width="150px" class="properties_type">
+<col width="300px" class="properties_name">
+<col width="200px" class="properties_flags">
+</colgroup>
+<tbody>
+<tr>
+<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a></td>
+<td class="property_name"><a class="link" href="GUPnPContextManager.html#GUPnPContextManager--main-context" title="The “main-context” property">main-context</a></td>
+<td class="property_flags">Read / Write / Construct Only</td>
+</tr>
+<tr>
+<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
+<td class="property_name"><a class="link" href="GUPnPContextManager.html#GUPnPContextManager--port" title="The “port” property">port</a></td>
+<td class="property_flags">Read / Write / Construct Only</td>
+</tr>
+<tr>
+<td class="property_type">
+<a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a> *</td>
+<td class="property_name"><a class="link" href="GUPnPContextManager.html#GUPnPContextManager--white-list" title="The “white-list” property">white-list</a></td>
+<td class="property_flags">Read</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <div class="refsect1">
 <a name="GUPnPContextManager.signals"></a><h2>Signals</h2>
-<pre class="synopsis">
-  "<a class="link" href="GUPnPContextManager.html#GUPnPContextManager-context-available" title='The "context-available" signal'>context-available</a>"                              : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS"><code class="literal">Run First</code></a>
-  "<a class="link" href="GUPnPContextManager.html#GUPnPContextManager-context-unavailable" title='The "context-unavailable" signal'>context-unavailable</a>"                            : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS"><code class="literal">Run First</code></a>
+<div class="informaltable"><table border="0">
+<colgroup>
+<col width="150px" class="signals_return">
+<col width="300px" class="signals_name">
+<col width="200px" class="signals_flags">
+</colgroup>
+<tbody>
+<tr>
+<td class="signal_type"><span class="returnvalue">void</span></td>
+<td class="signal_name"><a class="link" href="GUPnPContextManager.html#GUPnPContextManager-context-available" title="The “context-available” signal">context-available</a></td>
+<td class="signal_flags">Run First</td>
+</tr>
+<tr>
+<td class="signal_type"><span class="returnvalue">void</span></td>
+<td class="signal_name"><a class="link" href="GUPnPContextManager.html#GUPnPContextManager-context-unavailable" title="The “context-unavailable” signal">context-unavailable</a></td>
+<td class="signal_flags">Run First</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="GUPnPContextManager.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="GUPnPContextManager.html#GUPnPContextManager-struct" title="struct GUPnPContextManager">GUPnPContextManager</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="GUPnPContextManager.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> GUPnPContextManager
 </pre>
 </div>
 <div class="refsect1">
 <a name="GUPnPContextManager.description"></a><h2>Description</h2>
-<p>
-A Utility class that takes care of creation and destruction of
+<p>A Utility class that takes care of creation and destruction of
 <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> objects for all available network interfaces as they go up
-(connect) and down (disconnect), respectively.
-</p>
+(connect) and down (disconnect), respectively.</p>
 </div>
 <div class="refsect1">
-<a name="GUPnPContextManager.details"></a><h2>Details</h2>
+<a name="GUPnPContextManager.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
-<a name="GUPnPContextManager-struct"></a><h3>struct GUPnPContextManager</h3>
-<pre class="programlisting">struct GUPnPContextManager;</pre>
-<p>
-This struct contains private data only, and should be accessed using the
-functions below.
-</p>
+<a name="gupnp-context-manager-new"></a><h3>gupnp_context_manager_new ()</h3>
+<pre class="programlisting"><a class="link" href="GUPnPContextManager.html" title="GUPnPContextManager"><span class="returnvalue">GUPnPContextManager</span></a> *
+gupnp_context_manager_new (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#GMainContext"><span class="type">GMainContext</span></a> *main_context</code></em>,
+                           <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> port</code></em>);</pre>
+<div class="warning">
+<p><code class="literal">gupnp_context_manager_new</code> has been deprecated since version 0.17.2 and should not be used in newly-written code.</p>
+<p>Use <a class="link" href="GUPnPContextManager.html#gupnp-context-manager-create" title="gupnp_context_manager_create ()"><code class="function">gupnp_context_manager_create()</code></a>.</p>
 </div>
-<hr>
-<div class="refsect2">
-<a name="gupnp-context-manager-new"></a><h3>gupnp_context_manager_new ()</h3>
-<pre class="programlisting"><a class="link" href="GUPnPContextManager.html" title="GUPnPContextManager"><span class="returnvalue">GUPnPContextManager</span></a> * gupnp_context_manager_new         (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#GMainContext"><span class="type">GMainContext</span></a> *main_context</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> port</code></em>);</pre>
-<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
-<h3 class="title">Warning</h3>
-<p><code class="literal">gupnp_context_manager_new</code> has been deprecated since version 0.17.2 and should not be used in newly-written code. Use <a class="link" href="GUPnPContextManager.html#gupnp-context-manager-create" title="gupnp_context_manager_create ()"><code class="function">gupnp_context_manager_create()</code></a>.</p>
-</div>
-<p>
-Same as <a class="link" href="GUPnPContextManager.html#gupnp-context-manager-create" title="gupnp_context_manager_create ()"><code class="function">gupnp_context_manager_create()</code></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<p>Same as <a class="link" href="GUPnPContextManager.html#gupnp-context-manager-create" title="gupnp_context_manager_create ()"><code class="function">gupnp_context_manager_create()</code></a>.</p>
+<div class="refsect3">
+<a name="id-1.3.5.3.9.2.7"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>main_context</code></em> :</span></p></td>
-<td>Deprecated: 0.17.2: <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. If you want to use
+<td class="parameter_name"><p>main_context</p></td>
+<td class="parameter_description"><p> Deprecated: 0.17.2: <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. If you want to use
 a different main context use
-<a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default"><code class="function">g_main_context_push_thread_default()</code></a> instead. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>port</code></em> :</span></p></td>
-<td>Port to create contexts for, or 0 if you don't care what port is used.</td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-context-push-thread-default"><code class="function">g_main_context_push_thread_default()</code></a> instead. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A new <a class="link" href="GUPnPContextManager.html" title="GUPnPContextManager"><span class="type">GUPnPContextManager</span></a> object. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>port</p></td>
+<td class="parameter_description"><p>Port to create contexts for, or 0 if you don't care what port is used.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.5.3.9.2.8"></a><h4>Returns</h4>
+<p> A new <a class="link" href="GUPnPContextManager.html" title="GUPnPContextManager"><span class="type">GUPnPContextManager</span></a> object. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+<p class="since">Since 0.13.0</p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-context-manager-create"></a><h3>gupnp_context_manager_create ()</h3>
-<pre class="programlisting"><a class="link" href="GUPnPContextManager.html" title="GUPnPContextManager"><span class="returnvalue">GUPnPContextManager</span></a> * gupnp_context_manager_create      (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> port</code></em>);</pre>
-<p>
-Factory-method to create a new <a class="link" href="GUPnPContextManager.html" title="GUPnPContextManager"><span class="type">GUPnPContextManager</span></a>. The final type of the
+<a name="gupnp-context-manager-create"></a><h3>gupnp_context_manager_create ()</h3>
+<pre class="programlisting"><a class="link" href="GUPnPContextManager.html" title="GUPnPContextManager"><span class="returnvalue">GUPnPContextManager</span></a> *
+gupnp_context_manager_create (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> port</code></em>);</pre>
+<p>Factory-method to create a new <a class="link" href="GUPnPContextManager.html" title="GUPnPContextManager"><span class="type">GUPnPContextManager</span></a>. The final type of the
 <a class="link" href="GUPnPContextManager.html" title="GUPnPContextManager"><span class="type">GUPnPContextManager</span></a> depends on the compile-time selection or - in case of
 NetworkManager - on its availability during runtime. If it is not available,
-the implementation falls back to the basic Unix context manager instead.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>port</code></em> :</span></p></td>
-<td>Port to create contexts for, or 0 if you don't care what port is used.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A new <a class="link" href="GUPnPContextManager.html" title="GUPnPContextManager"><span class="type">GUPnPContextManager</span></a> object. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
+the implementation falls back to the basic Unix context manager instead.</p>
+<div class="refsect3">
+<a name="id-1.3.5.3.9.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>port</p></td>
+<td class="parameter_description"><p>Port to create contexts for, or 0 if you don't care what port is used.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.5.3.9.3.6"></a><h4>Returns</h4>
+<p> A new <a class="link" href="GUPnPContextManager.html" title="GUPnPContextManager"><span class="type">GUPnPContextManager</span></a> object. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+<p class="since">Since 0.17.2</p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-context-manager-rescan-control-points"></a><h3>gupnp_context_manager_rescan_control_points ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gupnp_context_manager_rescan_control_points
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPContextManager.html" title="GUPnPContextManager"><span class="type">GUPnPContextManager</span></a> *manager</code></em>);</pre>
-<p>
-This function starts a rescan on every control point managed by <em class="parameter"><code>manager</code></em>.
+<a name="gupnp-context-manager-rescan-control-points"></a><h3>gupnp_context_manager_rescan_control_points ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gupnp_context_manager_rescan_control_points
+                               (<em class="parameter"><code><a class="link" href="GUPnPContextManager.html" title="GUPnPContextManager"><span class="type">GUPnPContextManager</span></a> *manager</code></em>);</pre>
+<p>This function starts a rescan on every control point managed by <em class="parameter"><code>manager</code></em>
+.
 Only the active control points send discovery messages.
 This function should be called when servers are suspected to have
-disappeared.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+disappeared.</p>
+<div class="refsect3">
+<a name="id-1.3.5.3.9.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>manager</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPContextManager.html" title="GUPnPContextManager"><span class="type">GUPnPContextManager</span></a>
-</td>
+<td class="parameter_name"><p>manager</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPContextManager.html" title="GUPnPContextManager"><span class="type">GUPnPContextManager</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr></tbody>
 </table></div>
 </div>
+<p class="since">Since 0.20.3</p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-context-manager-manage-control-point"></a><h3>gupnp_context_manager_manage_control_point ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gupnp_context_manager_manage_control_point
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPContextManager.html" title="GUPnPContextManager"><span class="type">GUPnPContextManager</span></a> *manager</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a> *control_point</code></em>);</pre>
-<p>
-By calling this function, you are asking <em class="parameter"><code>manager</code></em> to keep a reference to
-<em class="parameter"><code>control_point</code></em> until it's associated <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> is no longer available.
+<a name="gupnp-context-manager-manage-control-point"></a><h3>gupnp_context_manager_manage_control_point ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gupnp_context_manager_manage_control_point
+                               (<em class="parameter"><code><a class="link" href="GUPnPContextManager.html" title="GUPnPContextManager"><span class="type">GUPnPContextManager</span></a> *manager</code></em>,
+                                <em class="parameter"><code><a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a> *control_point</code></em>);</pre>
+<p>By calling this function, you are asking <em class="parameter"><code>manager</code></em>
+ to keep a reference to
+<em class="parameter"><code>control_point</code></em>
+ until it's associated <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> is no longer available.
 You usually want to call this function from
-<a class="link" href="GUPnPContextManager.html#GUPnPContextManager-context-available" title='The "context-available" signal'><span class="type">"context-available"</span></a> handler after you create a
-<a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a> object for the newly available context.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a class="link" href="GUPnPContextManager.html#GUPnPContextManager-context-available" title="The “context-available” signal"><span class="type">“context-available”</span></a> handler after you create a
+<a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a> object for the newly available context.</p>
+<div class="refsect3">
+<a name="id-1.3.5.3.9.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>manager</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPContextManager.html" title="GUPnPContextManager"><span class="type">GUPnPContextManager</span></a>
-</td>
+<td class="parameter_name"><p>manager</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPContextManager.html" title="GUPnPContextManager"><span class="type">GUPnPContextManager</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>control_point</code></em> :</span></p></td>
-<td>The <a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a> to be taken care of</td>
+<td class="parameter_name"><p>control_point</p></td>
+<td class="parameter_description"><p>The <a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a> to be taken care of</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<p class="since">Since 0.13.0</p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-context-manager-manage-root-device"></a><h3>gupnp_context_manager_manage_root_device ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gupnp_context_manager_manage_root_device
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPContextManager.html" title="GUPnPContextManager"><span class="type">GUPnPContextManager</span></a> *manager</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a> *root_device</code></em>);</pre>
-<p>
-By calling this function, you are asking <em class="parameter"><code>manager</code></em> to keep a reference to
-<em class="parameter"><code>root_device</code></em> when it's associated <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> is no longer available. You
+<a name="gupnp-context-manager-manage-root-device"></a><h3>gupnp_context_manager_manage_root_device ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gupnp_context_manager_manage_root_device
+                               (<em class="parameter"><code><a class="link" href="GUPnPContextManager.html" title="GUPnPContextManager"><span class="type">GUPnPContextManager</span></a> *manager</code></em>,
+                                <em class="parameter"><code><a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a> *root_device</code></em>);</pre>
+<p>By calling this function, you are asking <em class="parameter"><code>manager</code></em>
+ to keep a reference to
+<em class="parameter"><code>root_device</code></em>
+ when it's associated <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> is no longer available. You
 usually want to call this function from
-<a class="link" href="GUPnPContextManager.html#GUPnPContextManager-context-available" title='The "context-available" signal'><span class="type">"context-available"</span></a> handler after you create a
-<a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a> object for the newly available context.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a class="link" href="GUPnPContextManager.html#GUPnPContextManager-context-available" title="The “context-available” signal"><span class="type">“context-available”</span></a> handler after you create a
+<a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a> object for the newly available context.</p>
+<div class="refsect3">
+<a name="id-1.3.5.3.9.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>manager</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPContextManager.html" title="GUPnPContextManager"><span class="type">GUPnPContextManager</span></a>
-</td>
+<td class="parameter_name"><p>manager</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPContextManager.html" title="GUPnPContextManager"><span class="type">GUPnPContextManager</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>root_device</code></em> :</span></p></td>
-<td>The <a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a> to be taken care of</td>
+<td class="parameter_name"><p>root_device</p></td>
+<td class="parameter_description"><p>The <a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a> to be taken care of</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<p class="since">Since 0.13.0</p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-context-manager-get-port"></a><h3>gupnp_context_manager_get_port ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               gupnp_context_manager_get_port      (<em class="parameter"><code><a class="link" href="GUPnPContextManager.html" title="GUPnPContextManager"><span class="type">GUPnPContextManager</span></a> *manager</code></em>);</pre>
-<p>
-Get the network port associated with this context manager.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>manager</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPContextManager.html" title="GUPnPContextManager"><span class="type">GUPnPContextManager</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>The network port asssociated with this context manager.</td>
-</tr>
-</tbody>
+<a name="gupnp-context-manager-get-port"></a><h3>gupnp_context_manager_get_port ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+gupnp_context_manager_get_port (<em class="parameter"><code><a class="link" href="GUPnPContextManager.html" title="GUPnPContextManager"><span class="type">GUPnPContextManager</span></a> *manager</code></em>);</pre>
+<p>Get the network port associated with this context manager.</p>
+<div class="refsect3">
+<a name="id-1.3.5.3.9.7.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>manager</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPContextManager.html" title="GUPnPContextManager"><span class="type">GUPnPContextManager</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.5.3.9.7.6"></a><h4>Returns</h4>
+<p> The network port asssociated with this context manager.</p>
+<p></p>
+</div>
+<p class="since">Since 0.19.1</p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-context-manager-get-white-list"></a><h3>gupnp_context_manager_get_white_list ()</h3>
-<pre class="programlisting"><a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="returnvalue">GUPnPWhiteList</span></a> *    gupnp_context_manager_get_white_list
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPContextManager.html" title="GUPnPContextManager"><span class="type">GUPnPContextManager</span></a> *manager</code></em>);</pre>
-<p>
-Get the <a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a> associated with <em class="parameter"><code>manager</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>manager</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPContextManager.html" title="GUPnPContextManager"><span class="type">GUPnPContextManager</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>The <a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a> asssociated with this
-context manager. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
+<a name="gupnp-context-manager-get-white-list"></a><h3>gupnp_context_manager_get_white_list ()</h3>
+<pre class="programlisting"><a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="returnvalue">GUPnPWhiteList</span></a> *
+gupnp_context_manager_get_white_list (<em class="parameter"><code><a class="link" href="GUPnPContextManager.html" title="GUPnPContextManager"><span class="type">GUPnPContextManager</span></a> *manager</code></em>);</pre>
+<p>Get the <a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a> associated with <em class="parameter"><code>manager</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.3.5.3.9.8.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>manager</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPContextManager.html" title="GUPnPContextManager"><span class="type">GUPnPContextManager</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.5.3.9.8.6"></a><h4>Returns</h4>
+<p>  The <a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a> asssociated with this
+context manager. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="GUPnPContextManager.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GUPnPContextManager-struct"></a><h3>struct GUPnPContextManager</h3>
+<pre class="programlisting">struct GUPnPContextManager;</pre>
+<p>This struct contains private data only, and should be accessed using the
+functions below.</p>
+</div>
 </div>
 <div class="refsect1">
 <a name="GUPnPContextManager.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
-<a name="GUPnPContextManager--main-context"></a><h3>The <code class="literal">"main-context"</code> property</h3>
-<pre class="programlisting">  "main-context"             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>              : Read / Write / Construct Only</pre>
+<a name="GUPnPContextManager--main-context"></a><h3>The <code class="literal">“main-context”</code> property</h3>
+<pre class="programlisting">  “main-context”             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a></pre>
 <p>GMainContext to pass to created GUPnPContext objects.</p>
+<p>Flags: Read / Write / Construct Only</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="GUPnPContextManager--port"></a><h3>The <code class="literal">"port"</code> property</h3>
-<pre class="programlisting">  "port"                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write / Construct Only</pre>
-<p>
-Port the contexts listen on, or 0 if you don't care what
-port is used by <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> objects created by this object.
-</p>
+<a name="GUPnPContextManager--port"></a><h3>The <code class="literal">“port”</code> property</h3>
+<pre class="programlisting">  “port”                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
+<p>Port the contexts listen on, or 0 if you don't care what
+port is used by <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> objects created by this object.</p>
+<p>Flags: Read / Write / Construct Only</p>
 <p>Default value: 0</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="GUPnPContextManager--white-list"></a><h3>The <code class="literal">"white-list"</code> property</h3>
-<pre class="programlisting">  "white-list"               <a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a>*       : Read</pre>
-<p>
-The white list to use.
-</p>
+<a name="GUPnPContextManager--white-list"></a><h3>The <code class="literal">“white-list”</code> property</h3>
+<pre class="programlisting">  “white-list”               <a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a> *</pre>
+<p>The white list to use.</p>
+<p>Flags: Read</p>
 </div>
 </div>
 <div class="refsect1">
 <a name="GUPnPContextManager.signal-details"></a><h2>Signal Details</h2>
 <div class="refsect2">
-<a name="GUPnPContextManager-context-available"></a><h3>The <code class="literal">"context-available"</code> signal</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="GUPnPContextManager.html" title="GUPnPContextManager"><span class="type">GUPnPContextManager</span></a> *context_manager,
-                                                        <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a>        *context,
-                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>             user_data)            : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS"><code class="literal">Run First</code></a></pre>
-<p>
-Signals the availability of new <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="GUPnPContextManager-context-available"></a><h3>The <code class="literal">“context-available”</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+user_function (<a class="link" href="GUPnPContextManager.html" title="GUPnPContextManager"><span class="type">GUPnPContextManager</span></a> *context_manager,
+               <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a>        *context,
+               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>             user_data)</pre>
+<p>Signals the availability of new <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a>.</p>
+<div class="refsect3">
+<a name="id-1.3.5.3.12.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>context_manager</code></em> :</span></p></td>
-<td>The <a class="link" href="GUPnPContextManager.html" title="GUPnPContextManager"><span class="type">GUPnPContextManager</span></a> that received the signal</td>
+<td class="parameter_name"><p>context_manager</p></td>
+<td class="parameter_description"><p>The <a class="link" href="GUPnPContextManager.html" title="GUPnPContextManager"><span class="type">GUPnPContextManager</span></a> that received the signal</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
-<td>The now available <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a>
-</td>
+<td class="parameter_name"><p>context</p></td>
+<td class="parameter_description"><p>The now available <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>user data set when the signal handler was connected.</td>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<p>Flags: Run First</p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="GUPnPContextManager-context-unavailable"></a><h3>The <code class="literal">"context-unavailable"</code> signal</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="GUPnPContextManager.html" title="GUPnPContextManager"><span class="type">GUPnPContextManager</span></a> *context_manager,
-                                                        <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a>        *context,
-                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>             user_data)            : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS"><code class="literal">Run First</code></a></pre>
-<p>
-Signals the unavailability of a <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="GUPnPContextManager-context-unavailable"></a><h3>The <code class="literal">“context-unavailable”</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+user_function (<a class="link" href="GUPnPContextManager.html" title="GUPnPContextManager"><span class="type">GUPnPContextManager</span></a> *context_manager,
+               <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a>        *context,
+               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>             user_data)</pre>
+<p>Signals the unavailability of a <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a>.</p>
+<div class="refsect3">
+<a name="id-1.3.5.3.12.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>context_manager</code></em> :</span></p></td>
-<td>The <a class="link" href="GUPnPContextManager.html" title="GUPnPContextManager"><span class="type">GUPnPContextManager</span></a> that received the signal</td>
+<td class="parameter_name"><p>context_manager</p></td>
+<td class="parameter_description"><p>The <a class="link" href="GUPnPContextManager.html" title="GUPnPContextManager"><span class="type">GUPnPContextManager</span></a> that received the signal</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
-<td>The now unavailable <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a>
-</td>
+<td class="parameter_name"><p>context</p></td>
+<td class="parameter_description"><p>The now unavailable <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>user data set when the signal handler was connected.</td>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<p>Flags: Run First</p>
+</div>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index ee7e7d6..bd968d2 100644 (file)
@@ -2,36 +2,29 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GUPnPControlPoint</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>GUPnP Reference Manual: GUPnPControlPoint</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GUPnP Reference Manual">
 <link rel="up" href="api-device-control.html" title="Device Control">
 <link rel="prev" href="api-device-control.html" title="Device Control">
 <link rel="next" href="GUPnPDeviceProxy.html" title="GUPnPDeviceProxy">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="api-device-control.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="api-device-control.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GUPnP Reference Manual</th>
-<td><a accesskey="n" href="GUPnPDeviceProxy.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#GUPnPControlPoint.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#GUPnPControlPoint.description" class="shortcut">Description</a>
-                   | 
-                  <a href="#GUPnPControlPoint.object-hierarchy" class="shortcut">Object Hierarchy</a>
-                   | 
-                  <a href="#GUPnPControlPoint.properties" class="shortcut">Properties</a>
-                   | 
-                  <a href="#GUPnPControlPoint.signals" class="shortcut">Signals</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
+                  <a href="#GUPnPControlPoint.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+                  <a href="#GUPnPControlPoint.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> 
+                  <a href="#GUPnPControlPoint.properties" class="shortcut">Properties</a></span><span id="nav_signals"> <span class="dim">|</span> 
+                  <a href="#GUPnPControlPoint.signals" class="shortcut">Signals</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="api-device-control.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="api-device-control.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="GUPnPDeviceProxy.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="GUPnPControlPoint"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
 <h2><span class="refentrytitle"><a name="GUPnPControlPoint.top_of_page"></a>GUPnPControlPoint</span></h2>
 <p>GUPnPControlPoint — Class for resource discovery.</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="GUPnPControlPoint.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">struct              <a class="link" href="GUPnPControlPoint.html#GUPnPControlPoint-struct" title="struct GUPnPControlPoint">GUPnPControlPoint</a>;
-<a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="returnvalue">GUPnPControlPoint</span></a> * <a class="link" href="GUPnPControlPoint.html#gupnp-control-point-new" title="gupnp_control_point_new ()">gupnp_control_point_new</a>             (<em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *target</code></em>);
-<a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="returnvalue">GUPnPControlPoint</span></a> * <a class="link" href="GUPnPControlPoint.html#gupnp-control-point-new-full" title="gupnp_control_point_new_full ()">gupnp_control_point_new_full</a>        (<em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a> *factory</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *target</code></em>);
-<a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="returnvalue">GUPnPResourceFactory</span></a> * <a class="link" href="GUPnPControlPoint.html#gupnp-control-point-get-resource-factory" title="gupnp_control_point_get_resource_factory ()">gupnp_control_point_get_resource_factory</a>
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a> *control_point</code></em>);
-<a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="returnvalue">GUPnPContext</span></a> *      <a class="link" href="GUPnPControlPoint.html#gupnp-control-point-get-context" title="gupnp_control_point_get_context ()">gupnp_control_point_get_context</a>     (<em class="parameter"><code><a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a> *control_point</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *       <a class="link" href="GUPnPControlPoint.html#gupnp-control-point-list-device-proxies" title="gupnp_control_point_list_device_proxies ()">gupnp_control_point_list_device_proxies</a>
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a> *control_point</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *       <a class="link" href="GUPnPControlPoint.html#gupnp-control-point-list-service-proxies" title="gupnp_control_point_list_service_proxies ()">gupnp_control_point_list_service_proxies</a>
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a> *control_point</code></em>);
-</pre>
-</div>
 <div class="refsect1">
-<a name="GUPnPControlPoint.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="synopsis">
-  <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-   +----<a href="../gssdp/GSSDPResourceBrowser.html">GSSDPResourceBrowser</a>
-         +----GUPnPControlPoint
-</pre>
+<a name="GUPnPControlPoint.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="returnvalue">GUPnPControlPoint</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPControlPoint.html#gupnp-control-point-new" title="gupnp_control_point_new ()">gupnp_control_point_new</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="returnvalue">GUPnPControlPoint</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPControlPoint.html#gupnp-control-point-new-full" title="gupnp_control_point_new_full ()">gupnp_control_point_new_full</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="returnvalue">GUPnPResourceFactory</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPControlPoint.html#gupnp-control-point-get-resource-factory" title="gupnp_control_point_get_resource_factory ()">gupnp_control_point_get_resource_factory</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="returnvalue">GUPnPContext</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPControlPoint.html#gupnp-control-point-get-context" title="gupnp_control_point_get_context ()">gupnp_control_point_get_context</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPControlPoint.html#gupnp-control-point-list-device-proxies" title="gupnp_control_point_list_device_proxies ()">gupnp_control_point_list_device_proxies</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPControlPoint.html#gupnp-control-point-list-service-proxies" title="gupnp_control_point_list_service_proxies ()">gupnp_control_point_list_service_proxies</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <div class="refsect1">
 <a name="GUPnPControlPoint.properties"></a><h2>Properties</h2>
-<pre class="synopsis">
-  "<a class="link" href="GUPnPControlPoint.html#GUPnPControlPoint--resource-factory" title='The "resource-factory" property'>resource-factory</a>"         <a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a>*  : Read / Write / Construct Only
-</pre>
+<div class="informaltable"><table border="0">
+<colgroup>
+<col width="150px" class="properties_type">
+<col width="300px" class="properties_name">
+<col width="200px" class="properties_flags">
+</colgroup>
+<tbody><tr>
+<td class="property_type">
+<a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a> *</td>
+<td class="property_name"><a class="link" href="GUPnPControlPoint.html#GUPnPControlPoint--resource-factory" title="The “resource-factory” property">resource-factory</a></td>
+<td class="property_flags">Read / Write / Construct Only</td>
+</tr></tbody>
+</table></div>
 </div>
 <div class="refsect1">
 <a name="GUPnPControlPoint.signals"></a><h2>Signals</h2>
-<pre class="synopsis">
-  "<a class="link" href="GUPnPControlPoint.html#GUPnPControlPoint-device-proxy-available" title='The "device-proxy-available" signal'>device-proxy-available</a>"                         : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a>
-  "<a class="link" href="GUPnPControlPoint.html#GUPnPControlPoint-device-proxy-unavailable" title='The "device-proxy-unavailable" signal'>device-proxy-unavailable</a>"                       : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a>
-  "<a class="link" href="GUPnPControlPoint.html#GUPnPControlPoint-service-proxy-available" title='The "service-proxy-available" signal'>service-proxy-available</a>"                        : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a>
-  "<a class="link" href="GUPnPControlPoint.html#GUPnPControlPoint-service-proxy-unavailable" title='The "service-proxy-unavailable" signal'>service-proxy-unavailable</a>"                      : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a>
+<div class="informaltable"><table border="0">
+<colgroup>
+<col width="150px" class="signals_return">
+<col width="300px" class="signals_name">
+<col width="200px" class="signals_flags">
+</colgroup>
+<tbody>
+<tr>
+<td class="signal_type"><span class="returnvalue">void</span></td>
+<td class="signal_name"><a class="link" href="GUPnPControlPoint.html#GUPnPControlPoint-device-proxy-available" title="The “device-proxy-available” signal">device-proxy-available</a></td>
+<td class="signal_flags">Run Last</td>
+</tr>
+<tr>
+<td class="signal_type"><span class="returnvalue">void</span></td>
+<td class="signal_name"><a class="link" href="GUPnPControlPoint.html#GUPnPControlPoint-device-proxy-unavailable" title="The “device-proxy-unavailable” signal">device-proxy-unavailable</a></td>
+<td class="signal_flags">Run Last</td>
+</tr>
+<tr>
+<td class="signal_type"><span class="returnvalue">void</span></td>
+<td class="signal_name"><a class="link" href="GUPnPControlPoint.html#GUPnPControlPoint-service-proxy-available" title="The “service-proxy-available” signal">service-proxy-available</a></td>
+<td class="signal_flags">Run Last</td>
+</tr>
+<tr>
+<td class="signal_type"><span class="returnvalue">void</span></td>
+<td class="signal_name"><a class="link" href="GUPnPControlPoint.html#GUPnPControlPoint-service-proxy-unavailable" title="The “service-proxy-unavailable” signal">service-proxy-unavailable</a></td>
+<td class="signal_flags">Run Last</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="GUPnPControlPoint.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="GUPnPControlPoint.html#GUPnPControlPoint-struct" title="struct GUPnPControlPoint">GUPnPControlPoint</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="GUPnPControlPoint.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="http://developer.gnome.org/gssdp/unstabe/GSSDPResourceBrowser.html">GSSDPResourceBrowser</a>
+        <span class="lineart">╰──</span> GUPnPControlPoint
 </pre>
 </div>
 <div class="refsect1">
 <a name="GUPnPControlPoint.description"></a><h2>Description</h2>
-<p>
-<a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a> handles device and service discovery. After creating
-a control point and activating it using <a href="../gssdp/GSSDPResourceBrowser.html#gssdp-resource-browser-set-active"><code class="function">gssdp_resource_browser_set_active()</code></a>,
+<p><a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a> handles device and service discovery. After creating
+a control point and activating it using <a href="http://developer.gnome.org/gssdp/unstabe/GSSDPResourceBrowser.html#gssdp-resource-browser-set-active"><code class="function">gssdp_resource_browser_set_active()</code></a>,
 the ::device-proxy-available, ::service-proxy-available,
 ::device-proxy-unavailable and ::service-proxy-unavailable signals will
 be emitted whenever the availability of a device or service matching
-the specified discovery target changes.
-</p>
+the specified discovery target changes.</p>
 </div>
 <div class="refsect1">
-<a name="GUPnPControlPoint.details"></a><h2>Details</h2>
+<a name="GUPnPControlPoint.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
-<a name="GUPnPControlPoint-struct"></a><h3>struct GUPnPControlPoint</h3>
-<pre class="programlisting">struct GUPnPControlPoint;</pre>
-<p>
-This struct contains private data only, and should be accessed using the
-functions below.
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gupnp-control-point-new"></a><h3>gupnp_control_point_new ()</h3>
-<pre class="programlisting"><a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="returnvalue">GUPnPControlPoint</span></a> * gupnp_control_point_new             (<em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *target</code></em>);</pre>
-<p>
-Create a new <a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a> with the specified <em class="parameter"><code>context</code></em> and <em class="parameter"><code>target</code></em>.
-</p>
-<p>
-<em class="parameter"><code>target</code></em> should be a service or device name, such as
+<a name="gupnp-control-point-new"></a><h3>gupnp_control_point_new ()</h3>
+<pre class="programlisting"><a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="returnvalue">GUPnPControlPoint</span></a> *
+gupnp_control_point_new (<em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>,
+                         <em class="parameter"><code>const <span class="type">char</span> *target</code></em>);</pre>
+<p>Create a new <a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a> with the specified <em class="parameter"><code>context</code></em>
+ and <em class="parameter"><code>target</code></em>
+.</p>
+<p><em class="parameter"><code>target</code></em>
+ should be a service or device name, such as
 <code class="literal">urn:schemas-upnp-org:service:WANIPConnection:1</code> or
-<code class="literal">urn:schemas-upnp-org:device:MediaRenderer:1</code>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<code class="literal">urn:schemas-upnp-org:device:MediaRenderer:1</code>.</p>
+<div class="refsect3">
+<a name="id-1.3.3.2.9.2.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a>
-</td>
+<td class="parameter_name"><p>context</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>target</code></em> :</span></p></td>
-<td>The search target</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A new <a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a> object.</td>
+<td class="parameter_name"><p>target</p></td>
+<td class="parameter_description"><p>The search target</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.3.2.9.2.7"></a><h4>Returns</h4>
+<p> A new <a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a> object.</p>
+<p></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-control-point-new-full"></a><h3>gupnp_control_point_new_full ()</h3>
-<pre class="programlisting"><a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="returnvalue">GUPnPControlPoint</span></a> * gupnp_control_point_new_full        (<em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a> *factory</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *target</code></em>);</pre>
-<p>
-Create a new <a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a> with the specified <em class="parameter"><code>context</code></em>, <em class="parameter"><code>factory</code></em> and
-<em class="parameter"><code>target</code></em>.
-</p>
-<p>
-<em class="parameter"><code>target</code></em> should be a service or device name, such as
+<a name="gupnp-control-point-new-full"></a><h3>gupnp_control_point_new_full ()</h3>
+<pre class="programlisting"><a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="returnvalue">GUPnPControlPoint</span></a> *
+gupnp_control_point_new_full (<em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>,
+                              <em class="parameter"><code><a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a> *factory</code></em>,
+                              <em class="parameter"><code>const <span class="type">char</span> *target</code></em>);</pre>
+<p>Create a new <a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a> with the specified <em class="parameter"><code>context</code></em>
+, <em class="parameter"><code>factory</code></em>
+ and
+<em class="parameter"><code>target</code></em>
+.</p>
+<p><em class="parameter"><code>target</code></em>
+ should be a service or device name, such as
 <code class="literal">urn:schemas-upnp-org:service:WANIPConnection:1</code> or
-<code class="literal">urn:schemas-upnp-org:device:MediaRenderer:1</code>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<code class="literal">urn:schemas-upnp-org:device:MediaRenderer:1</code>.</p>
+<div class="refsect3">
+<a name="id-1.3.3.2.9.3.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>factory</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a>
-</td>
+<td class="parameter_name"><p>context</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>target</code></em> :</span></p></td>
-<td>The search target</td>
+<td class="parameter_name"><p>factory</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A new <a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a> object.</td>
+<td class="parameter_name"><p>target</p></td>
+<td class="parameter_description"><p>The search target</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.3.2.9.3.7"></a><h4>Returns</h4>
+<p> A new <a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a> object.</p>
+<p></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-control-point-get-resource-factory"></a><h3>gupnp_control_point_get_resource_factory ()</h3>
-<pre class="programlisting"><a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="returnvalue">GUPnPResourceFactory</span></a> * gupnp_control_point_get_resource_factory
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a> *control_point</code></em>);</pre>
-<p>
-Get the <a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a> used by the <em class="parameter"><code>control_point</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>control_point</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A <a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
+<a name="gupnp-control-point-get-resource-factory"></a><h3>gupnp_control_point_get_resource_factory ()</h3>
+<pre class="programlisting"><a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="returnvalue">GUPnPResourceFactory</span></a> *
+gupnp_control_point_get_resource_factory
+                               (<em class="parameter"><code><a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a> *control_point</code></em>);</pre>
+<p>Get the <a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a> used by the <em class="parameter"><code>control_point</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.3.3.2.9.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>control_point</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.3.2.9.4.6"></a><h4>Returns</h4>
+<p> A <a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a>. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-control-point-get-context"></a><h3>gupnp_control_point_get_context ()</h3>
-<pre class="programlisting"><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="returnvalue">GUPnPContext</span></a> *      gupnp_control_point_get_context     (<em class="parameter"><code><a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a> *control_point</code></em>);</pre>
-<p>
-Get the <a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a> associated with <em class="parameter"><code>control_point</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>control_point</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>The <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
+<a name="gupnp-control-point-get-context"></a><h3>gupnp_control_point_get_context ()</h3>
+<pre class="programlisting"><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="returnvalue">GUPnPContext</span></a> *
+gupnp_control_point_get_context (<em class="parameter"><code><a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a> *control_point</code></em>);</pre>
+<p>Get the <a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a> associated with <em class="parameter"><code>control_point</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.3.3.2.9.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>control_point</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.3.2.9.5.6"></a><h4>Returns</h4>
+<p> The <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a>. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-control-point-list-device-proxies"></a><h3>gupnp_control_point_list_device_proxies ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *       gupnp_control_point_list_device_proxies
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a> *control_point</code></em>);</pre>
-<p>
-Get the <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of discovered <a class="link" href="GUPnPDeviceProxy.html" title="GUPnPDeviceProxy"><span class="type">GUPnPDeviceProxy</span></a> objects. Do not free the list
-nor its elements.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>control_point</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of
-<a class="link" href="GUPnPDeviceProxy.html" title="GUPnPDeviceProxy"><span class="type">GUPnPDeviceProxy</span></a> objects. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GUPnP.DeviceProxy][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
+<a name="gupnp-control-point-list-device-proxies"></a><h3>gupnp_control_point_list_device_proxies ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+gupnp_control_point_list_device_proxies
+                               (<em class="parameter"><code><a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a> *control_point</code></em>);</pre>
+<p>Get the <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of discovered <a class="link" href="GUPnPDeviceProxy.html" title="GUPnPDeviceProxy"><span class="type">GUPnPDeviceProxy</span></a> objects. Do not free the list
+nor its elements.</p>
+<div class="refsect3">
+<a name="id-1.3.3.2.9.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>control_point</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.3.2.9.6.6"></a><h4>Returns</h4>
+<p>  a <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of
+<a class="link" href="GUPnPDeviceProxy.html" title="GUPnPDeviceProxy"><span class="type">GUPnPDeviceProxy</span></a> objects. </p>
+<p><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GUPnP.DeviceProxy][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-control-point-list-service-proxies"></a><h3>gupnp_control_point_list_service_proxies ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *       gupnp_control_point_list_service_proxies
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a> *control_point</code></em>);</pre>
-<p>
-Get the <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of discovered <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> objects. Do not free the
-list nor its elements.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>control_point</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a>
-of <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> objects. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GUPnP.ServiceProxy][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
+<a name="gupnp-control-point-list-service-proxies"></a><h3>gupnp_control_point_list_service_proxies ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+gupnp_control_point_list_service_proxies
+                               (<em class="parameter"><code><a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a> *control_point</code></em>);</pre>
+<p>Get the <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of discovered <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> objects. Do not free the
+list nor its elements.</p>
+<div class="refsect3">
+<a name="id-1.3.3.2.9.7.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>control_point</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.3.2.9.7.6"></a><h4>Returns</h4>
+<p> a <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a>
+of <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> objects. </p>
+<p><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GUPnP.ServiceProxy][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="GUPnPControlPoint.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GUPnPControlPoint-struct"></a><h3>struct GUPnPControlPoint</h3>
+<pre class="programlisting">struct GUPnPControlPoint;</pre>
+<p>This struct contains private data only, and should be accessed using the
+functions below.</p>
+</div>
 </div>
 <div class="refsect1">
 <a name="GUPnPControlPoint.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
-<a name="GUPnPControlPoint--resource-factory"></a><h3>The <code class="literal">"resource-factory"</code> property</h3>
-<pre class="programlisting">  "resource-factory"         <a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a>*  : Read / Write / Construct Only</pre>
-<p>
-The resource factory to use. Set to NULL for default factory.
-</p>
+<a name="GUPnPControlPoint--resource-factory"></a><h3>The <code class="literal">“resource-factory”</code> property</h3>
+<pre class="programlisting">  “resource-factory”         <a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a> *</pre>
+<p>The resource factory to use. Set to NULL for default factory.</p>
+<p>Flags: Read / Write / Construct Only</p>
 </div>
 </div>
 <div class="refsect1">
 <a name="GUPnPControlPoint.signal-details"></a><h2>Signal Details</h2>
 <div class="refsect2">
-<a name="GUPnPControlPoint-device-proxy-available"></a><h3>The <code class="literal">"device-proxy-available"</code> signal</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a> *control_point,
-                                                        <a class="link" href="GUPnPDeviceProxy.html" title="GUPnPDeviceProxy"><span class="type">GUPnPDeviceProxy</span></a>  *proxy,
-                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>           user_data)          : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
-<p>
-The ::device-proxy-available signal is emitted whenever a new
-device has become available.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="GUPnPControlPoint-device-proxy-available"></a><h3>The <code class="literal">“device-proxy-available”</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+user_function (<a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a> *control_point,
+               <a class="link" href="GUPnPDeviceProxy.html" title="GUPnPDeviceProxy"><span class="type">GUPnPDeviceProxy</span></a>  *proxy,
+               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>           user_data)</pre>
+<p>The ::device-proxy-available signal is emitted whenever a new
+device has become available.</p>
+<div class="refsect3">
+<a name="id-1.3.3.2.12.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>control_point</code></em> :</span></p></td>
-<td>The <a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a> that received the signal</td>
+<td class="parameter_name"><p>control_point</p></td>
+<td class="parameter_description"><p>The <a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a> that received the signal</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
-<td>The now available <a class="link" href="GUPnPDeviceProxy.html" title="GUPnPDeviceProxy"><span class="type">GUPnPDeviceProxy</span></a>
-</td>
+<td class="parameter_name"><p>proxy</p></td>
+<td class="parameter_description"><p>The now available <a class="link" href="GUPnPDeviceProxy.html" title="GUPnPDeviceProxy"><span class="type">GUPnPDeviceProxy</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>user data set when the signal handler was connected.</td>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<p>Flags: Run Last</p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="GUPnPControlPoint-device-proxy-unavailable"></a><h3>The <code class="literal">"device-proxy-unavailable"</code> signal</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a> *control_point,
-                                                        <a class="link" href="GUPnPDeviceProxy.html" title="GUPnPDeviceProxy"><span class="type">GUPnPDeviceProxy</span></a>  *proxy,
-                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>           user_data)          : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
-<p>
-The ::device-proxy-unavailable signal is emitted whenever a
-device is not available any more.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="GUPnPControlPoint-device-proxy-unavailable"></a><h3>The <code class="literal">“device-proxy-unavailable”</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+user_function (<a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a> *control_point,
+               <a class="link" href="GUPnPDeviceProxy.html" title="GUPnPDeviceProxy"><span class="type">GUPnPDeviceProxy</span></a>  *proxy,
+               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>           user_data)</pre>
+<p>The ::device-proxy-unavailable signal is emitted whenever a
+device is not available any more.</p>
+<div class="refsect3">
+<a name="id-1.3.3.2.12.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>control_point</code></em> :</span></p></td>
-<td>The <a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a> that received the signal</td>
+<td class="parameter_name"><p>control_point</p></td>
+<td class="parameter_description"><p>The <a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a> that received the signal</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
-<td>The now unavailable <a class="link" href="GUPnPDeviceProxy.html" title="GUPnPDeviceProxy"><span class="type">GUPnPDeviceProxy</span></a>
-</td>
+<td class="parameter_name"><p>proxy</p></td>
+<td class="parameter_description"><p>The now unavailable <a class="link" href="GUPnPDeviceProxy.html" title="GUPnPDeviceProxy"><span class="type">GUPnPDeviceProxy</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>user data set when the signal handler was connected.</td>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<p>Flags: Run Last</p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="GUPnPControlPoint-service-proxy-available"></a><h3>The <code class="literal">"service-proxy-available"</code> signal</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a> *control_point,
-                                                        <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy,
-                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>           user_data)          : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
-<p>
-The ::service-proxy-available signal is emitted whenever a new
-service has become available.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="GUPnPControlPoint-service-proxy-available"></a><h3>The <code class="literal">“service-proxy-available”</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+user_function (<a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a> *control_point,
+               <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy,
+               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>           user_data)</pre>
+<p>The ::service-proxy-available signal is emitted whenever a new
+service has become available.</p>
+<div class="refsect3">
+<a name="id-1.3.3.2.12.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>control_point</code></em> :</span></p></td>
-<td>The <a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a> that received the signal</td>
+<td class="parameter_name"><p>control_point</p></td>
+<td class="parameter_description"><p>The <a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a> that received the signal</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
-<td>The now available <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a>
-</td>
+<td class="parameter_name"><p>proxy</p></td>
+<td class="parameter_description"><p>The now available <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>user data set when the signal handler was connected.</td>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<p>Flags: Run Last</p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="GUPnPControlPoint-service-proxy-unavailable"></a><h3>The <code class="literal">"service-proxy-unavailable"</code> signal</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a> *control_point,
-                                                        <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy,
-                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>           user_data)          : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
-<p>
-The ::service-proxy-unavailable signal is emitted whenever a
-service is not available any more.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="GUPnPControlPoint-service-proxy-unavailable"></a><h3>The <code class="literal">“service-proxy-unavailable”</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+user_function (<a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a> *control_point,
+               <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy,
+               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>           user_data)</pre>
+<p>The ::service-proxy-unavailable signal is emitted whenever a
+service is not available any more.</p>
+<div class="refsect3">
+<a name="id-1.3.3.2.12.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>control_point</code></em> :</span></p></td>
-<td>The <a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a> that received the signal</td>
+<td class="parameter_name"><p>control_point</p></td>
+<td class="parameter_description"><p>The <a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a> that received the signal</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
-<td>The now unavailable <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a>
-</td>
+<td class="parameter_name"><p>proxy</p></td>
+<td class="parameter_description"><p>The now unavailable <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>user data set when the signal handler was connected.</td>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<p>Flags: Run Last</p>
+</div>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 8c7b8fc..66a57a9 100644 (file)
@@ -2,34 +2,28 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GUPnPDevice</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>GUPnP Reference Manual: GUPnPDevice</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GUPnP Reference Manual">
 <link rel="up" href="api-device-impl.html" title="Device Implementation">
 <link rel="prev" href="api-device-impl.html" title="Device Implementation">
 <link rel="next" href="GUPnPRootDevice.html" title="GUPnPRootDevice">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="api-device-impl.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="api-device-impl.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GUPnP Reference Manual</th>
-<td><a accesskey="n" href="GUPnPRootDevice.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#GUPnPDevice.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#GUPnPDevice.description" class="shortcut">Description</a>
-                   | 
-                  <a href="#GUPnPDevice.object-hierarchy" class="shortcut">Object Hierarchy</a>
-                   | 
-                  <a href="#GUPnPDevice.properties" class="shortcut">Properties</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
+                  <a href="#GUPnPDevice.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+                  <a href="#GUPnPDevice.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> 
+                  <a href="#GUPnPDevice.properties" class="shortcut">Properties</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="api-device-impl.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="api-device-impl.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="GUPnPRootDevice.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="GUPnPDevice"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
 <h2><span class="refentrytitle"><a name="GUPnPDevice.top_of_page"></a>GUPnPDevice</span></h2>
 <p>GUPnPDevice — Class for device implementations.</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="GUPnPDevice.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">struct              <a class="link" href="GUPnPDevice.html#GUPnPDevice-struct" title="struct GUPnPDevice">GUPnPDevice</a>;
-</pre>
+<div class="refsect1">
+<a name="GUPnPDevice.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table border="0">
+<colgroup>
+<col width="150px" class="properties_type">
+<col width="300px" class="properties_name">
+<col width="200px" class="properties_flags">
+</colgroup>
+<tbody><tr>
+<td class="property_type">
+<a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a> *</td>
+<td class="property_name"><a class="link" href="GUPnPDevice.html#GUPnPDevice--root-device" title="The “root-device” property">root-device</a></td>
+<td class="property_flags">Read / Write / Construct Only</td>
+</tr></tbody>
+</table></div>
 </div>
 <div class="refsect1">
-<a name="GUPnPDevice.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="synopsis">
-  <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-   +----<a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo">GUPnPDeviceInfo</a>
-         +----GUPnPDevice
-               +----<a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice">GUPnPRootDevice</a>
-</pre>
+<a name="GUPnPDevice.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="GUPnPDevice.html#GUPnPDevice-struct" title="GUPnPDevice">GUPnPDevice</a></td>
+</tr></tbody>
+</table></div>
 </div>
 <div class="refsect1">
-<a name="GUPnPDevice.properties"></a><h2>Properties</h2>
-<pre class="synopsis">
-  "<a class="link" href="GUPnPDevice.html#GUPnPDevice--root-device" title='The "root-device" property'>root-device</a>"              <a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a>*      : Read / Write / Construct Only
+<a name="GUPnPDevice.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo">GUPnPDeviceInfo</a>
+        <span class="lineart">╰──</span> GUPnPDevice
+            <span class="lineart">╰──</span> <a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice">GUPnPRootDevice</a>
 </pre>
 </div>
 <div class="refsect1">
 <a name="GUPnPDevice.description"></a><h2>Description</h2>
-<p>
-<a class="link" href="GUPnPDevice.html" title="GUPnPDevice"><span class="type">GUPnPDevice</span></a> allows for retrieving a device's subdevices
+<p><a class="link" href="GUPnPDevice.html" title="GUPnPDevice"><span class="type">GUPnPDevice</span></a> allows for retrieving a device's subdevices
 and services. <a class="link" href="GUPnPDevice.html" title="GUPnPDevice"><span class="type">GUPnPDevice</span></a> implements the <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a>
-interface.
-</p>
+interface.</p>
+</div>
+<div class="refsect1">
+<a name="GUPnPDevice.functions_details"></a><h2>Functions</h2>
 </div>
 <div class="refsect1">
-<a name="GUPnPDevice.details"></a><h2>Details</h2>
+<a name="GUPnPDevice.other_details"></a><h2>Types and Values</h2>
 <div class="refsect2">
-<a name="GUPnPDevice-struct"></a><h3>struct GUPnPDevice</h3>
-<pre class="programlisting">struct GUPnPDevice;</pre>
-<p>
-This struct contains private data only, and should be accessed using the
-functions below.
-</p>
+<a name="GUPnPDevice-struct"></a><h3>GUPnPDevice</h3>
+<pre class="programlisting">typedef struct _GUPnPDevice GUPnPDevice;</pre>
+<p>This struct contains private data only, and should be accessed using the
+functions below.</p>
 </div>
 </div>
 <div class="refsect1">
 <a name="GUPnPDevice.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
-<a name="GUPnPDevice--root-device"></a><h3>The <code class="literal">"root-device"</code> property</h3>
-<pre class="programlisting">  "root-device"              <a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a>*      : Read / Write / Construct Only</pre>
-<p>
-The containing <a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a>, or NULL if this is the root
-device.
-</p>
+<a name="GUPnPDevice--root-device"></a><h3>The <code class="literal">“root-device”</code> property</h3>
+<pre class="programlisting">  “root-device”              <a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a> *</pre>
+<p>The containing <a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a>, or NULL if this is the root
+device.</p>
+<p>Flags: Read / Write / Construct Only</p>
 </div>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 92bb465..c5b8b04 100644 (file)
@@ -2,34 +2,28 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GUPnPDeviceInfo</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>GUPnP Reference Manual: GUPnPDeviceInfo</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GUPnP Reference Manual">
 <link rel="up" href="api-device-info.html" title="Device Information">
 <link rel="prev" href="api-device-info.html" title="Device Information">
 <link rel="next" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="api-device-info.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="api-device-info.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GUPnP Reference Manual</th>
-<td><a accesskey="n" href="GUPnPServiceInfo.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#GUPnPDeviceInfo.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#GUPnPDeviceInfo.description" class="shortcut">Description</a>
-                   | 
-                  <a href="#GUPnPDeviceInfo.object-hierarchy" class="shortcut">Object Hierarchy</a>
-                   | 
-                  <a href="#GUPnPDeviceInfo.properties" class="shortcut">Properties</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
+                  <a href="#GUPnPDeviceInfo.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+                  <a href="#GUPnPDeviceInfo.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> 
+                  <a href="#GUPnPDeviceInfo.properties" class="shortcut">Properties</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="api-device-info.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="api-device-info.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="GUPnPServiceInfo.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="GUPnPDeviceInfo"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
 <h2><span class="refentrytitle"><a name="GUPnPDeviceInfo.top_of_page"></a>GUPnPDeviceInfo</span></h2>
 <p>GUPnPDeviceInfo — Base abstract class for querying device information.</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="GUPnPDeviceInfo.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">struct              <a class="link" href="GUPnPDeviceInfo.html#GUPnPDeviceInfo-struct" title="struct GUPnPDeviceInfo">GUPnPDeviceInfo</a>;
-<a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="returnvalue">GUPnPResourceFactory</span></a> * <a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-get-resource-factory" title="gupnp_device_info_get_resource_factory ()">gupnp_device_info_get_resource_factory</a>
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *device_info</code></em>);
-<a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="returnvalue">GUPnPContext</span></a> *      <a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-get-context" title="gupnp_device_info_get_context ()">gupnp_device_info_get_context</a>       (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);
-const <span class="returnvalue">char</span> *        <a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-get-location" title="gupnp_device_info_get_location ()">gupnp_device_info_get_location</a>      (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);
-const <a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupURI.html"><span class="returnvalue">SoupURI</span></a> *     <a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-get-url-base" title="gupnp_device_info_get_url_base ()">gupnp_device_info_get_url_base</a>      (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);
-const <span class="returnvalue">char</span> *        <a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-get-udn" title="gupnp_device_info_get_udn ()">gupnp_device_info_get_udn</a>           (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);
-const <span class="returnvalue">char</span> *        <a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-get-device-type" title="gupnp_device_info_get_device_type ()">gupnp_device_info_get_device_type</a>   (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);
-<span class="returnvalue">char</span> *              <a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-get-friendly-name" title="gupnp_device_info_get_friendly_name ()">gupnp_device_info_get_friendly_name</a> (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);
-<span class="returnvalue">char</span> *              <a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-get-manufacturer" title="gupnp_device_info_get_manufacturer ()">gupnp_device_info_get_manufacturer</a>  (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);
-<span class="returnvalue">char</span> *              <a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-get-manufacturer-url" title="gupnp_device_info_get_manufacturer_url ()">gupnp_device_info_get_manufacturer_url</a>
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);
-<span class="returnvalue">char</span> *              <a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-get-model-description" title="gupnp_device_info_get_model_description ()">gupnp_device_info_get_model_description</a>
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);
-<span class="returnvalue">char</span> *              <a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-get-model-name" title="gupnp_device_info_get_model_name ()">gupnp_device_info_get_model_name</a>    (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);
-<span class="returnvalue">char</span> *              <a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-get-model-number" title="gupnp_device_info_get_model_number ()">gupnp_device_info_get_model_number</a>  (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);
-<span class="returnvalue">char</span> *              <a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-get-model-url" title="gupnp_device_info_get_model_url ()">gupnp_device_info_get_model_url</a>     (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);
-<span class="returnvalue">char</span> *              <a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-get-serial-number" title="gupnp_device_info_get_serial_number ()">gupnp_device_info_get_serial_number</a> (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);
-<span class="returnvalue">char</span> *              <a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-get-presentation-url" title="gupnp_device_info_get_presentation_url ()">gupnp_device_info_get_presentation_url</a>
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);
-<span class="returnvalue">char</span> *              <a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-get-upc" title="gupnp_device_info_get_upc ()">gupnp_device_info_get_upc</a>           (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);
-<span class="returnvalue">char</span> *              <a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-get-icon-url" title="gupnp_device_info_get_icon_url ()">gupnp_device_info_get_icon_url</a>      (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *requested_mime_type</code></em>,
-                                                         <em class="parameter"><code><span class="type">int</span> requested_depth</code></em>,
-                                                         <em class="parameter"><code><span class="type">int</span> requested_width</code></em>,
-                                                         <em class="parameter"><code><span class="type">int</span> requested_height</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> prefer_bigger</code></em>,
-                                                         <em class="parameter"><code><span class="type">char</span> **mime_type</code></em>,
-                                                         <em class="parameter"><code><span class="type">int</span> *depth</code></em>,
-                                                         <em class="parameter"><code><span class="type">int</span> *width</code></em>,
-                                                         <em class="parameter"><code><span class="type">int</span> *height</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-list-dlna-capabilities" title="gupnp_device_info_list_dlna_capabilities ()">gupnp_device_info_list_dlna_capabilities</a>
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-list-dlna-device-class-identifier" title="gupnp_device_info_list_dlna_device_class_identifier ()">gupnp_device_info_list_dlna_device_class_identifier</a>
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);
-<span class="returnvalue">char</span> *              <a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-get-description-value" title="gupnp_device_info_get_description_value ()">gupnp_device_info_get_description_value</a>
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *element</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-list-devices" title="gupnp_device_info_list_devices ()">gupnp_device_info_list_devices</a>      (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-list-device-types" title="gupnp_device_info_list_device_types ()">gupnp_device_info_list_device_types</a> (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);
-<a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="returnvalue">GUPnPDeviceInfo</span></a> *   <a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-get-device" title="gupnp_device_info_get_device ()">gupnp_device_info_get_device</a>        (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *type</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-list-services" title="gupnp_device_info_list_services ()">gupnp_device_info_list_services</a>     (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-list-service-types" title="gupnp_device_info_list_service_types ()">gupnp_device_info_list_service_types</a>
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);
-<a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="returnvalue">GUPnPServiceInfo</span></a> *  <a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-get-service" title="gupnp_device_info_get_service ()">gupnp_device_info_get_service</a>       (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *type</code></em>);
-</pre>
-</div>
-<div class="refsect1">
-<a name="GUPnPDeviceInfo.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="synopsis">
-  <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-   +----GUPnPDeviceInfo
-         +----<a class="link" href="GUPnPDevice.html" title="GUPnPDevice">GUPnPDevice</a>
-         +----<a class="link" href="GUPnPDeviceProxy.html" title="GUPnPDeviceProxy">GUPnPDeviceProxy</a>
-</pre>
-</div>
 <div class="refsect1">
-<a name="GUPnPDeviceInfo.properties"></a><h2>Properties</h2>
-<pre class="synopsis">
-  "<a class="link" href="GUPnPDeviceInfo.html#GUPnPDeviceInfo--context" title='The "context" property'>context</a>"                  <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a>*         : Read / Write / Construct Only
-  "<a class="link" href="GUPnPDeviceInfo.html#GUPnPDeviceInfo--device-type" title='The "device-type" property'>device-type</a>"              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write / Construct Only
-  "<a class="link" href="GUPnPDeviceInfo.html#GUPnPDeviceInfo--document" title='The "document" property'>document</a>"                 <a class="link" href="GUPnPXMLDoc.html" title="GUPnPXMLDoc"><span class="type">GUPnPXMLDoc</span></a>*          : Write / Construct Only
-  "<a class="link" href="GUPnPDeviceInfo.html#GUPnPDeviceInfo--element" title='The "element" property'>element</a>"                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>              : Write / Construct Only
-  "<a class="link" href="GUPnPDeviceInfo.html#GUPnPDeviceInfo--location" title='The "location" property'>location</a>"                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write / Construct Only
-  "<a class="link" href="GUPnPDeviceInfo.html#GUPnPDeviceInfo--resource-factory" title='The "resource-factory" property'>resource-factory</a>"         <a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a>*  : Read / Write / Construct Only
-  "<a class="link" href="GUPnPDeviceInfo.html#GUPnPDeviceInfo--udn" title='The "udn" property'>udn</a>"                      <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write / Construct Only
-  "<a class="link" href="GUPnPDeviceInfo.html#GUPnPDeviceInfo--url-base" title='The "url-base" property'>url-base</a>"                 <a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupURI.html"><span class="type">SoupURI</span></a>*              : Read / Write / Construct Only
-</pre>
-</div>
-<div class="refsect1">
-<a name="GUPnPDeviceInfo.description"></a><h2>Description</h2>
-<p>
-The <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> base abstract class provides methods for querying
-device information.
-</p>
-</div>
-<div class="refsect1">
-<a name="GUPnPDeviceInfo.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="GUPnPDeviceInfo-struct"></a><h3>struct GUPnPDeviceInfo</h3>
-<pre class="programlisting">struct GUPnPDeviceInfo;</pre>
-<p>
-This struct contains private data only, and should be accessed using the
-functions below.
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gupnp-device-info-get-resource-factory"></a><h3>gupnp_device_info_get_resource_factory ()</h3>
-<pre class="programlisting"><a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="returnvalue">GUPnPResourceFactory</span></a> * gupnp_device_info_get_resource_factory
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *device_info</code></em>);</pre>
-<p>
-Get the <a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a> used by the <em class="parameter"><code>device_info</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="GUPnPDeviceInfo.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>device_info</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a>
+<td class="function_type">
+<a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="returnvalue">GUPnPResourceFactory</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-get-resource-factory" title="gupnp_device_info_get_resource_factory ()">gupnp_device_info_get_resource_factory</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A <a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+<td class="function_type">
+<a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="returnvalue">GUPnPContext</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-get-context" title="gupnp_device_info_get_context ()">gupnp_device_info_get_context</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gupnp-device-info-get-context"></a><h3>gupnp_device_info_get_context ()</h3>
-<pre class="programlisting"><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="returnvalue">GUPnPContext</span></a> *      gupnp_device_info_get_context       (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);</pre>
-<p>
-Get the associated <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a>
+<td class="function_type">const <span class="returnvalue">char</span> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-get-location" title="gupnp_device_info_get_location ()">gupnp_device_info_get_location</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+<td class="function_type">const <a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupURI.html"><span class="returnvalue">SoupURI</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-get-url-base" title="gupnp_device_info_get_url_base ()">gupnp_device_info_get_url_base</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gupnp-device-info-get-location"></a><h3>gupnp_device_info_get_location ()</h3>
-<pre class="programlisting">const <span class="returnvalue">char</span> *        gupnp_device_info_get_location      (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);</pre>
-<p>
-Get the location of the device description file.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a>
+<td class="function_type">const <span class="returnvalue">char</span> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-get-udn" title="gupnp_device_info_get_udn ()">gupnp_device_info_get_udn</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A constant string.</td>
+<td class="function_type">const <span class="returnvalue">char</span> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-get-device-type" title="gupnp_device_info_get_device_type ()">gupnp_device_info_get_device_type</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gupnp-device-info-get-url-base"></a><h3>gupnp_device_info_get_url_base ()</h3>
-<pre class="programlisting">const <a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupURI.html"><span class="returnvalue">SoupURI</span></a> *     gupnp_device_info_get_url_base      (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);</pre>
-<p>
-Get the URL base of this device.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a>
+<td class="function_type">
+<span class="returnvalue">char</span> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-get-friendly-name" title="gupnp_device_info_get_friendly_name ()">gupnp_device_info_get_friendly_name</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A <a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupURI.html"><span class="type">SoupURI</span></a>.</td>
+<td class="function_type">
+<span class="returnvalue">char</span> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-get-manufacturer" title="gupnp_device_info_get_manufacturer ()">gupnp_device_info_get_manufacturer</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gupnp-device-info-get-udn"></a><h3>gupnp_device_info_get_udn ()</h3>
-<pre class="programlisting">const <span class="returnvalue">char</span> *        gupnp_device_info_get_udn           (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);</pre>
-<p>
-Get the Unique Device Name of the device.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a>
+<td class="function_type">
+<span class="returnvalue">char</span> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-get-manufacturer-url" title="gupnp_device_info_get_manufacturer_url ()">gupnp_device_info_get_manufacturer_url</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A constant string.</td>
+<td class="function_type">
+<span class="returnvalue">char</span> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-get-model-description" title="gupnp_device_info_get_model_description ()">gupnp_device_info_get_model_description</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gupnp-device-info-get-device-type"></a><h3>gupnp_device_info_get_device_type ()</h3>
-<pre class="programlisting">const <span class="returnvalue">char</span> *        gupnp_device_info_get_device_type   (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);</pre>
-<p>
-Get the UPnP device type.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a>
+<td class="function_type">
+<span class="returnvalue">char</span> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-get-model-name" title="gupnp_device_info_get_model_name ()">gupnp_device_info_get_model_name</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A constant string, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
+<td class="function_type">
+<span class="returnvalue">char</span> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-get-model-number" title="gupnp_device_info_get_model_number ()">gupnp_device_info_get_model_number</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gupnp-device-info-get-friendly-name"></a><h3>gupnp_device_info_get_friendly_name ()</h3>
-<pre class="programlisting"><span class="returnvalue">char</span> *              gupnp_device_info_get_friendly_name (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);</pre>
-<p>
-Get the friendly name of the device.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a>
+<td class="function_type">
+<span class="returnvalue">char</span> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-get-model-url" title="gupnp_device_info_get_model_url ()">gupnp_device_info_get_model_url</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A string, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after use.</td>
+<td class="function_type">
+<span class="returnvalue">char</span> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-get-serial-number" title="gupnp_device_info_get_serial_number ()">gupnp_device_info_get_serial_number</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gupnp-device-info-get-manufacturer"></a><h3>gupnp_device_info_get_manufacturer ()</h3>
-<pre class="programlisting"><span class="returnvalue">char</span> *              gupnp_device_info_get_manufacturer  (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);</pre>
-<p>
-Get the manufacturer of the device.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a>
+<td class="function_type">
+<span class="returnvalue">char</span> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-get-presentation-url" title="gupnp_device_info_get_presentation_url ()">gupnp_device_info_get_presentation_url</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A string, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after use.</td>
+<td class="function_type">
+<span class="returnvalue">char</span> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-get-upc" title="gupnp_device_info_get_upc ()">gupnp_device_info_get_upc</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gupnp-device-info-get-manufacturer-url"></a><h3>gupnp_device_info_get_manufacturer_url ()</h3>
-<pre class="programlisting"><span class="returnvalue">char</span> *              gupnp_device_info_get_manufacturer_url
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);</pre>
-<p>
-Get a URL pointing to the manufacturer's website.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a>
+<td class="function_type">
+<span class="returnvalue">char</span> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-get-icon-url" title="gupnp_device_info_get_icon_url ()">gupnp_device_info_get_icon_url</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A string, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after use.</td>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-list-dlna-capabilities" title="gupnp_device_info_list_dlna_capabilities ()">gupnp_device_info_list_dlna_capabilities</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gupnp-device-info-get-model-description"></a><h3>gupnp_device_info_get_model_description ()</h3>
-<pre class="programlisting"><span class="returnvalue">char</span> *              gupnp_device_info_get_model_description
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);</pre>
-<p>
-Get the description of the device model.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-list-dlna-device-class-identifier" title="gupnp_device_info_list_dlna_device_class_identifier ()">gupnp_device_info_list_dlna_device_class_identifier</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A string, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after use.</td>
+<td class="function_type">
+<span class="returnvalue">char</span> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-get-description-value" title="gupnp_device_info_get_description_value ()">gupnp_device_info_get_description_value</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gupnp-device-info-get-model-name"></a><h3>gupnp_device_info_get_model_name ()</h3>
-<pre class="programlisting"><span class="returnvalue">char</span> *              gupnp_device_info_get_model_name    (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);</pre>
-<p>
-Get the model name of the device.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-list-devices" title="gupnp_device_info_list_devices ()">gupnp_device_info_list_devices</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A string, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after use.</td>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-list-device-types" title="gupnp_device_info_list_device_types ()">gupnp_device_info_list_device_types</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gupnp-device-info-get-model-number"></a><h3>gupnp_device_info_get_model_number ()</h3>
-<pre class="programlisting"><span class="returnvalue">char</span> *              gupnp_device_info_get_model_number  (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);</pre>
-<p>
-Get the model number of the device.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a>
+<td class="function_type">
+<a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="returnvalue">GUPnPDeviceInfo</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-get-device" title="gupnp_device_info_get_device ()">gupnp_device_info_get_device</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A string, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after use.</td>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-list-services" title="gupnp_device_info_list_services ()">gupnp_device_info_list_services</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gupnp-device-info-get-model-url"></a><h3>gupnp_device_info_get_model_url ()</h3>
-<pre class="programlisting"><span class="returnvalue">char</span> *              gupnp_device_info_get_model_url     (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);</pre>
-<p>
-Get a URL pointing to the device model's website.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-list-service-types" title="gupnp_device_info_list_service_types ()">gupnp_device_info_list_service_types</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A string, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after use.</td>
+<td class="function_type">
+<a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="returnvalue">GUPnPServiceInfo</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-get-service" title="gupnp_device_info_get_service ()">gupnp_device_info_get_service</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
 </tbody>
 </table></div>
 </div>
-<hr>
-<div class="refsect2">
-<a name="gupnp-device-info-get-serial-number"></a><h3>gupnp_device_info_get_serial_number ()</h3>
-<pre class="programlisting"><span class="returnvalue">char</span> *              gupnp_device_info_get_serial_number (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);</pre>
-<p>
-Get the serial number of the device.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<div class="refsect1">
+<a name="GUPnPDeviceInfo.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table border="0">
+<colgroup>
+<col width="150px" class="properties_type">
+<col width="300px" class="properties_name">
+<col width="200px" class="properties_flags">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a>
-</td>
+<td class="property_type">
+<a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *</td>
+<td class="property_name"><a class="link" href="GUPnPDeviceInfo.html#GUPnPDeviceInfo--context" title="The “context” property">context</a></td>
+<td class="property_flags">Read / Write / Construct Only</td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A string, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after use.</td>
+<td class="property_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<td class="property_name"><a class="link" href="GUPnPDeviceInfo.html#GUPnPDeviceInfo--device-type" title="The “device-type” property">device-type</a></td>
+<td class="property_flags">Read / Write / Construct Only</td>
 </tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gupnp-device-info-get-presentation-url"></a><h3>gupnp_device_info_get_presentation_url ()</h3>
-<pre class="programlisting"><span class="returnvalue">char</span> *              gupnp_device_info_get_presentation_url
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);</pre>
-<p>
-Get a URL pointing to the device's presentation page, for web-based
-administration.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a>
-</td>
+<td class="property_type">
+<a class="link" href="GUPnPXMLDoc.html" title="GUPnPXMLDoc"><span class="type">GUPnPXMLDoc</span></a> *</td>
+<td class="property_name"><a class="link" href="GUPnPDeviceInfo.html#GUPnPDeviceInfo--document" title="The “document” property">document</a></td>
+<td class="property_flags">Read / Write / Construct Only</td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A string, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after use.</td>
+<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a></td>
+<td class="property_name"><a class="link" href="GUPnPDeviceInfo.html#GUPnPDeviceInfo--element" title="The “element” property">element</a></td>
+<td class="property_flags">Write / Construct Only</td>
 </tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gupnp-device-info-get-upc"></a><h3>gupnp_device_info_get_upc ()</h3>
-<pre class="programlisting"><span class="returnvalue">char</span> *              gupnp_device_info_get_upc           (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);</pre>
-<p>
-Get the Universal Product Code of the device.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a>
-</td>
+<td class="property_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<td class="property_name"><a class="link" href="GUPnPDeviceInfo.html#GUPnPDeviceInfo--location" title="The “location” property">location</a></td>
+<td class="property_flags">Read / Write / Construct Only</td>
+</tr>
+<tr>
+<td class="property_type">
+<a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a> *</td>
+<td class="property_name"><a class="link" href="GUPnPDeviceInfo.html#GUPnPDeviceInfo--resource-factory" title="The “resource-factory” property">resource-factory</a></td>
+<td class="property_flags">Read / Write / Construct Only</td>
+</tr>
+<tr>
+<td class="property_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<td class="property_name"><a class="link" href="GUPnPDeviceInfo.html#GUPnPDeviceInfo--udn" title="The “udn” property">udn</a></td>
+<td class="property_flags">Read / Write / Construct Only</td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A string, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after use.</td>
+<td class="property_type">
+<a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupURI.html"><span class="type">SoupURI</span></a> *</td>
+<td class="property_name"><a class="link" href="GUPnPDeviceInfo.html#GUPnPDeviceInfo--url-base" title="The “url-base” property">url-base</a></td>
+<td class="property_flags">Read / Write / Construct Only</td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect1">
+<a name="GUPnPDeviceInfo.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="GUPnPDeviceInfo.html#GUPnPDeviceInfo-struct" title="struct GUPnPDeviceInfo">GUPnPDeviceInfo</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="GUPnPDeviceInfo.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> GUPnPDeviceInfo
+        <span class="lineart">├──</span> <a class="link" href="GUPnPDevice.html" title="GUPnPDevice">GUPnPDevice</a>
+        <span class="lineart">╰──</span> <a class="link" href="GUPnPDeviceProxy.html" title="GUPnPDeviceProxy">GUPnPDeviceProxy</a>
+</pre>
+</div>
+<div class="refsect1">
+<a name="GUPnPDeviceInfo.description"></a><h2>Description</h2>
+<p>The <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> base abstract class provides methods for querying
+device information.</p>
+</div>
+<div class="refsect1">
+<a name="GUPnPDeviceInfo.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="gupnp-device-info-get-resource-factory"></a><h3>gupnp_device_info_get_resource_factory ()</h3>
+<pre class="programlisting"><a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="returnvalue">GUPnPResourceFactory</span></a> *
+gupnp_device_info_get_resource_factory
+                               (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *device_info</code></em>);</pre>
+<p>Get the <a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a> used by the <em class="parameter"><code>device_info</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>device_info</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.2.6"></a><h4>Returns</h4>
+<p> A <a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a>. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-device-info-get-icon-url"></a><h3>gupnp_device_info_get_icon_url ()</h3>
-<pre class="programlisting"><span class="returnvalue">char</span> *              gupnp_device_info_get_icon_url      (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *requested_mime_type</code></em>,
-                                                         <em class="parameter"><code><span class="type">int</span> requested_depth</code></em>,
-                                                         <em class="parameter"><code><span class="type">int</span> requested_width</code></em>,
-                                                         <em class="parameter"><code><span class="type">int</span> requested_height</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> prefer_bigger</code></em>,
-                                                         <em class="parameter"><code><span class="type">char</span> **mime_type</code></em>,
-                                                         <em class="parameter"><code><span class="type">int</span> *depth</code></em>,
-                                                         <em class="parameter"><code><span class="type">int</span> *width</code></em>,
-                                                         <em class="parameter"><code><span class="type">int</span> *height</code></em>);</pre>
-<p>
-Get a URL pointing to the icon most closely matching the
-given criteria, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. If <em class="parameter"><code>requested_mime_type</code></em> is set, only icons with
-this mime type will be returned. If <em class="parameter"><code>requested_depth</code></em> is set, only icons with
-this or lower depth will be returned. If <em class="parameter"><code>requested_width</code></em> and/or
-<em class="parameter"><code>requested_height</code></em> are set, only icons that are this size or smaller are
-returned, unless <em class="parameter"><code>prefer_bigger</code></em> is set, in which case the next biggest icon
-will be returned. The returned strings should be freed.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-device-info-get-context"></a><h3>gupnp_device_info_get_context ()</h3>
+<pre class="programlisting"><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="returnvalue">GUPnPContext</span></a> *
+gupnp_device_info_get_context (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);</pre>
+<p>Get the associated <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a>.</p>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>info</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.3.6"></a><h4>Returns</h4>
+<p> A <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a>. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-device-info-get-location"></a><h3>gupnp_device_info_get_location ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> *
+gupnp_device_info_get_location (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);</pre>
+<p>Get the location of the device description file.</p>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>info</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.4.6"></a><h4>Returns</h4>
+<p> A constant string.</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-device-info-get-url-base"></a><h3>gupnp_device_info_get_url_base ()</h3>
+<pre class="programlisting">const <a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupURI.html"><span class="returnvalue">SoupURI</span></a> *
+gupnp_device_info_get_url_base (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);</pre>
+<p>Get the URL base of this device.</p>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>info</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.5.6"></a><h4>Returns</h4>
+<p> A <a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupURI.html"><span class="type">SoupURI</span></a>.</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-device-info-get-udn"></a><h3>gupnp_device_info_get_udn ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> *
+gupnp_device_info_get_udn (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);</pre>
+<p>Get the Unique Device Name of the device.</p>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>info</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.6.6"></a><h4>Returns</h4>
+<p> A constant string.</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-device-info-get-device-type"></a><h3>gupnp_device_info_get_device_type ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> *
+gupnp_device_info_get_device_type (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);</pre>
+<p>Get the UPnP device type.</p>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.7.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>info</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.7.6"></a><h4>Returns</h4>
+<p> A constant string, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-device-info-get-friendly-name"></a><h3>gupnp_device_info_get_friendly_name ()</h3>
+<pre class="programlisting"><span class="returnvalue">char</span> *
+gupnp_device_info_get_friendly_name (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);</pre>
+<p>Get the friendly name of the device.</p>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.8.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>info</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.8.6"></a><h4>Returns</h4>
+<p> A string, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after use.</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-device-info-get-manufacturer"></a><h3>gupnp_device_info_get_manufacturer ()</h3>
+<pre class="programlisting"><span class="returnvalue">char</span> *
+gupnp_device_info_get_manufacturer (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);</pre>
+<p>Get the manufacturer of the device.</p>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.9.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>info</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.9.6"></a><h4>Returns</h4>
+<p> A string, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after use.</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-device-info-get-manufacturer-url"></a><h3>gupnp_device_info_get_manufacturer_url ()</h3>
+<pre class="programlisting"><span class="returnvalue">char</span> *
+gupnp_device_info_get_manufacturer_url
+                               (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);</pre>
+<p>Get a URL pointing to the manufacturer's website.</p>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.10.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>info</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.10.6"></a><h4>Returns</h4>
+<p> A string, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after use.</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-device-info-get-model-description"></a><h3>gupnp_device_info_get_model_description ()</h3>
+<pre class="programlisting"><span class="returnvalue">char</span> *
+gupnp_device_info_get_model_description
+                               (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);</pre>
+<p>Get the description of the device model.</p>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.11.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>info</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.11.6"></a><h4>Returns</h4>
+<p> A string, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after use.</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-device-info-get-model-name"></a><h3>gupnp_device_info_get_model_name ()</h3>
+<pre class="programlisting"><span class="returnvalue">char</span> *
+gupnp_device_info_get_model_name (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);</pre>
+<p>Get the model name of the device.</p>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.12.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>info</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.12.6"></a><h4>Returns</h4>
+<p> A string, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after use.</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-device-info-get-model-number"></a><h3>gupnp_device_info_get_model_number ()</h3>
+<pre class="programlisting"><span class="returnvalue">char</span> *
+gupnp_device_info_get_model_number (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);</pre>
+<p>Get the model number of the device.</p>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.13.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>info</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.13.6"></a><h4>Returns</h4>
+<p> A string, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after use.</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-device-info-get-model-url"></a><h3>gupnp_device_info_get_model_url ()</h3>
+<pre class="programlisting"><span class="returnvalue">char</span> *
+gupnp_device_info_get_model_url (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);</pre>
+<p>Get a URL pointing to the device model's website.</p>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.14.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>info</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.14.6"></a><h4>Returns</h4>
+<p> A string, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after use.</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-device-info-get-serial-number"></a><h3>gupnp_device_info_get_serial_number ()</h3>
+<pre class="programlisting"><span class="returnvalue">char</span> *
+gupnp_device_info_get_serial_number (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);</pre>
+<p>Get the serial number of the device.</p>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.15.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>info</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.15.6"></a><h4>Returns</h4>
+<p> A string, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after use.</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-device-info-get-presentation-url"></a><h3>gupnp_device_info_get_presentation_url ()</h3>
+<pre class="programlisting"><span class="returnvalue">char</span> *
+gupnp_device_info_get_presentation_url
+                               (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);</pre>
+<p>Get a URL pointing to the device's presentation page, for web-based
+administration.</p>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.16.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>info</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.16.6"></a><h4>Returns</h4>
+<p> A string, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after use.</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-device-info-get-upc"></a><h3>gupnp_device_info_get_upc ()</h3>
+<pre class="programlisting"><span class="returnvalue">char</span> *
+gupnp_device_info_get_upc (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);</pre>
+<p>Get the Universal Product Code of the device.</p>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.17.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>info</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.17.6"></a><h4>Returns</h4>
+<p> A string, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after use.</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-device-info-get-icon-url"></a><h3>gupnp_device_info_get_icon_url ()</h3>
+<pre class="programlisting"><span class="returnvalue">char</span> *
+gupnp_device_info_get_icon_url (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>,
+                                <em class="parameter"><code>const <span class="type">char</span> *requested_mime_type</code></em>,
+                                <em class="parameter"><code><span class="type">int</span> requested_depth</code></em>,
+                                <em class="parameter"><code><span class="type">int</span> requested_width</code></em>,
+                                <em class="parameter"><code><span class="type">int</span> requested_height</code></em>,
+                                <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> prefer_bigger</code></em>,
+                                <em class="parameter"><code><span class="type">char</span> **mime_type</code></em>,
+                                <em class="parameter"><code><span class="type">int</span> *depth</code></em>,
+                                <em class="parameter"><code><span class="type">int</span> *width</code></em>,
+                                <em class="parameter"><code><span class="type">int</span> *height</code></em>);</pre>
+<p>Get a URL pointing to the icon most closely matching the
+given criteria, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. If <em class="parameter"><code>requested_mime_type</code></em>
+ is set, only icons with
+this mime type will be returned. If <em class="parameter"><code>requested_depth</code></em>
+ is set, only icons with
+this or lower depth will be returned. If <em class="parameter"><code>requested_width</code></em>
+ and/or
+<em class="parameter"><code>requested_height</code></em>
+ are set, only icons that are this size or smaller are
+returned, unless <em class="parameter"><code>prefer_bigger</code></em>
+ is set, in which case the next biggest icon
+will be returned. The returned strings should be freed.</p>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.18.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a>
-</td>
+<td class="parameter_name"><p>info</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>requested_mime_type</code></em> :</span></p></td>
-<td>The requested file
-format, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> for any. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>requested_mime_type</p></td>
+<td class="parameter_description"><p> The requested file
+format, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> for any. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>requested_depth</code></em> :</span></p></td>
-<td>The requested color depth, or -1 for any</td>
+<td class="parameter_name"><p>requested_depth</p></td>
+<td class="parameter_description"><p>The requested color depth, or -1 for any</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>requested_width</code></em> :</span></p></td>
-<td>The requested width, or -1 for any</td>
+<td class="parameter_name"><p>requested_width</p></td>
+<td class="parameter_description"><p>The requested width, or -1 for any</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>requested_height</code></em> :</span></p></td>
-<td>The requested height, or -1 for any</td>
+<td class="parameter_name"><p>requested_height</p></td>
+<td class="parameter_description"><p>The requested height, or -1 for any</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>prefer_bigger</code></em> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if a bigger, rather than a smaller icon should be
-returned if no exact match could be found</td>
+<td class="parameter_name"><p>prefer_bigger</p></td>
+<td class="parameter_description"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if a bigger, rather than a smaller icon should be
+returned if no exact match could be found</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>mime_type</code></em> :</span></p></td>
-<td>The location where to store the the format
+<td class="parameter_name"><p>mime_type</p></td>
+<td class="parameter_description"><p> The location where to store the the format
 of the returned icon, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. The returned string should be freed after
-use. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
-</td>
+use. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>depth</code></em> :</span></p></td>
-<td>(out) (allow-none) :  The location where to store the depth of the
-returned icon, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
-</td>
+<td class="parameter_name"><p>depth</p></td>
+<td class="parameter_description"><p>(out) (allow-none) :  The location where to store the depth of the
+returned icon, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>width</code></em> :</span></p></td>
-<td>(out) (allow-none) : The location where to store the width of the
-returned icon, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
-</td>
+<td class="parameter_name"><p>width</p></td>
+<td class="parameter_description"><p>(out) (allow-none) : The location where to store the width of the
+returned icon, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>height</code></em> :</span></p></td>
-<td>(out) (allow-none) : The location where to store the height of the
-returned icon, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a string, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.  <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after use. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>height</p></td>
+<td class="parameter_description"><p>(out) (allow-none) : The location where to store the height of the
+returned icon, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.18.6"></a><h4>Returns</h4>
+<p> a string, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.  <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after use. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-device-info-list-dlna-capabilities"></a><h3>gupnp_device_info_list_dlna_capabilities ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             gupnp_device_info_list_dlna_capabilities
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);</pre>
-<p>
-Get a <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of strings that represent the device capabilities as announced
-in the device description file using the &lt;dlna:X_DLNACAP&gt; element.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of newly allocated strings or
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the device description doesn't contain the &lt;dlna:X_DLNACAP&gt;
-element. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8]</span>
-</td>
-</tr>
-</tbody>
+<a name="gupnp-device-info-list-dlna-capabilities"></a><h3>gupnp_device_info_list_dlna_capabilities ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+gupnp_device_info_list_dlna_capabilities
+                               (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);</pre>
+<p>Get a <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of strings that represent the device capabilities as announced
+in the device description file using the &lt;dlna:X_DLNACAP&gt; element.</p>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.19.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>info</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.19.6"></a><h4>Returns</h4>
+<p> a <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of newly allocated strings or
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the device description doesn't contain the &lt;dlna:X_DLNACAP&gt;
+element. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8]</span></p>
+</div>
+<p class="since">Since 0.13.0</p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-device-info-list-dlna-device-class-identifier"></a><h3>gupnp_device_info_list_dlna_device_class_identifier ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             gupnp_device_info_list_dlna_device_class_identifier
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);</pre>
-<p>
-Get a <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of strings that represent the device class and version as
+<a name="gupnp-device-info-list-dlna-device-class-identifier"></a><h3>gupnp_device_info_list_dlna_device_class_identifier ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+gupnp_device_info_list_dlna_device_class_identifier
+                               (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);</pre>
+<p>Get a <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of strings that represent the device class and version as
 announced in the device description file using the &lt;dlna:X_DLNADOC&gt;
-element.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of newly allocated strings or
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the device description doesn't contain the &lt;dlna:X_DLNADOC&gt;
-element. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8]</span>
-</td>
-</tr>
-</tbody>
+element.</p>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.20.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>info</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.20.6"></a><h4>Returns</h4>
+<p> a <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of newly allocated strings or
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the device description doesn't contain the &lt;dlna:X_DLNADOC&gt;
+element. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8]</span></p>
+</div>
+<p class="since">Since 0.20.4</p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-device-info-get-description-value"></a><h3>gupnp_device_info_get_description_value ()</h3>
-<pre class="programlisting"><span class="returnvalue">char</span> *              gupnp_device_info_get_description_value
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *element</code></em>);</pre>
-<p>
-This function provides generic access to the contents of arbitrary elements
-in the device description file.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-device-info-get-description-value"></a><h3>gupnp_device_info_get_description_value ()</h3>
+<pre class="programlisting"><span class="returnvalue">char</span> *
+gupnp_device_info_get_description_value
+                               (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>,
+                                <em class="parameter"><code>const <span class="type">char</span> *element</code></em>);</pre>
+<p>This function provides generic access to the contents of arbitrary elements
+in the device description file.</p>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.21.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
-<td>Name of the description element to retrieve</td>
+<td class="parameter_name"><p>info</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a newly allocated string or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the device
-description doesn't contain the given <em class="parameter"><code>element</code></em>
-</td>
+<td class="parameter_name"><p>element</p></td>
+<td class="parameter_description"><p>Name of the description element to retrieve</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.21.6"></a><h4>Returns</h4>
+<p> a newly allocated string or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the device
+description doesn't contain the given <em class="parameter"><code>element</code></em>
+</p>
+<p></p>
+</div>
+<p class="since">Since 0.13.0</p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-device-info-list-devices"></a><h3>gupnp_device_info_list_devices ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             gupnp_device_info_list_devices      (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);</pre>
-<p>
-Get a <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of new objects implementing <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a>
-representing the devices directly contained in <em class="parameter"><code>info</code></em>. The returned list
-should be <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#g-list-free"><code class="function">g_list_free()</code></a>'d and the elements should be <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>'d.
-</p>
-<p>
-Note that devices are not cached internally, so that every time you
+<a name="gupnp-device-info-list-devices"></a><h3>gupnp_device_info_list_devices ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+gupnp_device_info_list_devices (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);</pre>
+<p>Get a <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of new objects implementing <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a>
+representing the devices directly contained in <em class="parameter"><code>info</code></em>
+. The returned list
+should be <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#g-list-free"><code class="function">g_list_free()</code></a>'d and the elements should be <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>'d.</p>
+<p>Note that devices are not cached internally, so that every time you
 call this function new objects are created. The application
 must cache any used devices if it wishes to keep them around and re-use
-them.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of
-new <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> objects. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GUPnP.DeviceInfo][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
+them.</p>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.22.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>info</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.22.7"></a><h4>Returns</h4>
+<p> a <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of
+new <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> objects. </p>
+<p><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GUPnP.DeviceInfo][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-device-info-list-device-types"></a><h3>gupnp_device_info_list_device_types ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             gupnp_device_info_list_device_types (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);</pre>
-<p>
-Get a <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of strings representing the types of the devices
-directly contained in <em class="parameter"><code>info</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of strings. The
-elements should be <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>'d and the list should be <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#g-list-free"><code class="function">g_list_free()</code></a>'d. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
+<a name="gupnp-device-info-list-device-types"></a><h3>gupnp_device_info_list_device_types ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+gupnp_device_info_list_device_types (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);</pre>
+<p>Get a <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of strings representing the types of the devices
+directly contained in <em class="parameter"><code>info</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.23.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>info</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.23.6"></a><h4>Returns</h4>
+<p> A <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of strings. The
+elements should be <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>'d and the list should be <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#g-list-free"><code class="function">g_list_free()</code></a>'d. </p>
+<p><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-device-info-get-device"></a><h3>gupnp_device_info_get_device ()</h3>
-<pre class="programlisting"><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="returnvalue">GUPnPDeviceInfo</span></a> *   gupnp_device_info_get_device        (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *type</code></em>);</pre>
-<p>
-Get the service with type <em class="parameter"><code>type</code></em> directly contained in <em class="parameter"><code>info</code></em> as
+<a name="gupnp-device-info-get-device"></a><h3>gupnp_device_info_get_device ()</h3>
+<pre class="programlisting"><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="returnvalue">GUPnPDeviceInfo</span></a> *
+gupnp_device_info_get_device (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>,
+                              <em class="parameter"><code>const <span class="type">char</span> *type</code></em>);</pre>
+<p>Get the service with type <em class="parameter"><code>type</code></em>
+ directly contained in <em class="parameter"><code>info</code></em>
+ as
 a new object implementing <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if no such device
-was found. The returned object should be unreffed when done.
-</p>
-<p>
-Note that devices are not cached internally, so that every time you call
+was found. The returned object should be unreffed when done.</p>
+<p>Note that devices are not cached internally, so that every time you call
 this function a new object is created. The application must cache any used
-devices if it wishes to keep them around and re-use them.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+devices if it wishes to keep them around and re-use them.</p>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.24.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a>
-</td>
+<td class="parameter_name"><p>info</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
-<td>The type of the device to be retrieved.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A new <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>type</p></td>
+<td class="parameter_description"><p>The type of the device to be retrieved.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.24.7"></a><h4>Returns</h4>
+<p> A new <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a>. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-device-info-list-services"></a><h3>gupnp_device_info_list_services ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             gupnp_device_info_list_services     (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);</pre>
-<p>
-Get a <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of new objects implementing <a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a> representing the
-services directly contained in <em class="parameter"><code>info</code></em>. The returned list should be
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#g-list-free"><code class="function">g_list_free()</code></a>'d and the elements should be <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>'d.
-</p>
-<p>
-Note that services are not cached internally, so that every time you call
+<a name="gupnp-device-info-list-services"></a><h3>gupnp_device_info_list_services ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+gupnp_device_info_list_services (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);</pre>
+<p>Get a <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of new objects implementing <a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a> representing the
+services directly contained in <em class="parameter"><code>info</code></em>
+. The returned list should be
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#g-list-free"><code class="function">g_list_free()</code></a>'d and the elements should be <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>'d.</p>
+<p>Note that services are not cached internally, so that every time you call
 function new objects are created. The application must cache any used
-services if it wishes to keep them around and re-use them.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>(element-type GUPnP.ServiceInfo) (transfer full) : A <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of
-new <a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a> objects.</td>
-</tr>
-</tbody>
+services if it wishes to keep them around and re-use them.</p>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.25.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>info</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.25.7"></a><h4>Returns</h4>
+<p> (element-type GUPnP.ServiceInfo) (transfer full) : A <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of
+new <a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a> objects.</p>
+<p></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-device-info-list-service-types"></a><h3>gupnp_device_info_list_service_types ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             gupnp_device_info_list_service_types
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);</pre>
-<p>
-Get a <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of strings representing the types of the services
-directly contained in <em class="parameter"><code>info</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of strings. The
-elements should be <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>'d and the list should be <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#g-list-free"><code class="function">g_list_free()</code></a>'d. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
+<a name="gupnp-device-info-list-service-types"></a><h3>gupnp_device_info_list_service_types ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+gupnp_device_info_list_service_types (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>);</pre>
+<p>Get a <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of strings representing the types of the services
+directly contained in <em class="parameter"><code>info</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.26.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>info</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.26.6"></a><h4>Returns</h4>
+<p> A <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of strings. The
+elements should be <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>'d and the list should be <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#g-list-free"><code class="function">g_list_free()</code></a>'d. </p>
+<p><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-device-info-get-service"></a><h3>gupnp_device_info_get_service ()</h3>
-<pre class="programlisting"><a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="returnvalue">GUPnPServiceInfo</span></a> *  gupnp_device_info_get_service       (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *type</code></em>);</pre>
-<p>
-Get the service with type <em class="parameter"><code>type</code></em> directly contained in <em class="parameter"><code>info</code></em> as a new object
+<a name="gupnp-device-info-get-service"></a><h3>gupnp_device_info_get_service ()</h3>
+<pre class="programlisting"><a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="returnvalue">GUPnPServiceInfo</span></a> *
+gupnp_device_info_get_service (<em class="parameter"><code><a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> *info</code></em>,
+                               <em class="parameter"><code>const <span class="type">char</span> *type</code></em>);</pre>
+<p>Get the service with type <em class="parameter"><code>type</code></em>
+ directly contained in <em class="parameter"><code>info</code></em>
+ as a new object
 implementing <a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if no such device was found. The
-returned object should be unreffed when done.
-</p>
-<p>
-Note that services are not cached internally, so that every time you call
+returned object should be unreffed when done.</p>
+<p>Note that services are not cached internally, so that every time you call
 this function a new object is created. The application must cache any used
-services if it wishes to keep them around and re-use them.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+services if it wishes to keep them around and re-use them.</p>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.27.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
-<td>The type of the service to be retrieved.</td>
+<td class="parameter_name"><p>info</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A <a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>type</p></td>
+<td class="parameter_description"><p>The type of the service to be retrieved.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.2.2.8.27.7"></a><h4>Returns</h4>
+<p> A <a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a>. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="GUPnPDeviceInfo.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GUPnPDeviceInfo-struct"></a><h3>struct GUPnPDeviceInfo</h3>
+<pre class="programlisting">struct GUPnPDeviceInfo;</pre>
+<p>This struct contains private data only, and should be accessed using the
+functions below.</p>
+</div>
 </div>
 <div class="refsect1">
 <a name="GUPnPDeviceInfo.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
-<a name="GUPnPDeviceInfo--context"></a><h3>The <code class="literal">"context"</code> property</h3>
-<pre class="programlisting">  "context"                  <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a>*         : Read / Write / Construct Only</pre>
-<p>
-The <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> to use.
-</p>
+<a name="GUPnPDeviceInfo--context"></a><h3>The <code class="literal">“context”</code> property</h3>
+<pre class="programlisting">  “context”                  <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *</pre>
+<p>The <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> to use.</p>
+<p>Flags: Read / Write / Construct Only</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="GUPnPDeviceInfo--device-type"></a><h3>The <code class="literal">"device-type"</code> property</h3>
-<pre class="programlisting">  "device-type"              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write / Construct Only</pre>
-<p>
-The device type.
-</p>
+<a name="GUPnPDeviceInfo--device-type"></a><h3>The <code class="literal">“device-type”</code> property</h3>
+<pre class="programlisting">  “device-type”              <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<p>The device type.</p>
+<p>Flags: Read / Write / Construct Only</p>
 <p>Default value: NULL</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="GUPnPDeviceInfo--document"></a><h3>The <code class="literal">"document"</code> property</h3>
-<pre class="programlisting">  "document"                 <a class="link" href="GUPnPXMLDoc.html" title="GUPnPXMLDoc"><span class="type">GUPnPXMLDoc</span></a>*          : Write / Construct Only</pre>
-<p>
-Private property.
-</p>
+<a name="GUPnPDeviceInfo--document"></a><h3>The <code class="literal">“document”</code> property</h3>
+<pre class="programlisting">  “document”                 <a class="link" href="GUPnPXMLDoc.html" title="GUPnPXMLDoc"><span class="type">GUPnPXMLDoc</span></a> *</pre>
+<p>Private property.</p>
+<p>Flags: Read / Write / Construct Only</p>
 <p class="stability">Stability Level: Private</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="GUPnPDeviceInfo--element"></a><h3>The <code class="literal">"element"</code> property</h3>
-<pre class="programlisting">  "element"                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>              : Write / Construct Only</pre>
-<p>
-Private property.
-</p>
+<a name="GUPnPDeviceInfo--element"></a><h3>The <code class="literal">“element”</code> property</h3>
+<pre class="programlisting">  “element”                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a></pre>
+<p>Private property.</p>
+<p>Flags: Write / Construct Only</p>
 <p class="stability">Stability Level: Private</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="GUPnPDeviceInfo--location"></a><h3>The <code class="literal">"location"</code> property</h3>
-<pre class="programlisting">  "location"                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write / Construct Only</pre>
-<p>
-The location of the device description file.
-</p>
+<a name="GUPnPDeviceInfo--location"></a><h3>The <code class="literal">“location”</code> property</h3>
+<pre class="programlisting">  “location”                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<p>The location of the device description file.</p>
+<p>Flags: Read / Write / Construct Only</p>
 <p>Default value: NULL</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="GUPnPDeviceInfo--resource-factory"></a><h3>The <code class="literal">"resource-factory"</code> property</h3>
-<pre class="programlisting">  "resource-factory"         <a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a>*  : Read / Write / Construct Only</pre>
-<p>
-The resource factory to use. Set to NULL for default factory.
-</p>
+<a name="GUPnPDeviceInfo--resource-factory"></a><h3>The <code class="literal">“resource-factory”</code> property</h3>
+<pre class="programlisting">  “resource-factory”         <a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a> *</pre>
+<p>The resource factory to use. Set to NULL for default factory.</p>
+<p>Flags: Read / Write / Construct Only</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="GUPnPDeviceInfo--udn"></a><h3>The <code class="literal">"udn"</code> property</h3>
-<pre class="programlisting">  "udn"                      <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write / Construct Only</pre>
-<p>
-The UDN of this device.
-</p>
+<a name="GUPnPDeviceInfo--udn"></a><h3>The <code class="literal">“udn”</code> property</h3>
+<pre class="programlisting">  “udn”                      <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<p>The UDN of this device.</p>
+<p>Flags: Read / Write / Construct Only</p>
 <p>Default value: NULL</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="GUPnPDeviceInfo--url-base"></a><h3>The <code class="literal">"url-base"</code> property</h3>
-<pre class="programlisting">  "url-base"                 <a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupURI.html"><span class="type">SoupURI</span></a>*              : Read / Write / Construct Only</pre>
-<p>
-The URL base (<a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupURI.html"><span class="type">SoupURI</span></a>).
-</p>
+<a name="GUPnPDeviceInfo--url-base"></a><h3>The <code class="literal">“url-base”</code> property</h3>
+<pre class="programlisting">  “url-base”                 <a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupURI.html"><span class="type">SoupURI</span></a> *</pre>
+<p>The URL base (<a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupURI.html"><span class="type">SoupURI</span></a>).</p>
+<p>Flags: Read / Write / Construct Only</p>
 </div>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index f862d98..36d6e47 100644 (file)
@@ -2,32 +2,27 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GUPnPDeviceProxy</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>GUPnP Reference Manual: GUPnPDeviceProxy</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GUPnP Reference Manual">
 <link rel="up" href="api-device-control.html" title="Device Control">
 <link rel="prev" href="GUPnPControlPoint.html" title="GUPnPControlPoint">
 <link rel="next" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="GUPnPControlPoint.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="api-device-control.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GUPnP Reference Manual</th>
-<td><a accesskey="n" href="GUPnPServiceProxy.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#GUPnPDeviceProxy.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#GUPnPDeviceProxy.description" class="shortcut">Description</a>
-                   | 
-                  <a href="#GUPnPDeviceProxy.object-hierarchy" class="shortcut">Object Hierarchy</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
+                  <a href="#GUPnPDeviceProxy.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+                  <a href="#GUPnPDeviceProxy.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="api-device-control.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="GUPnPControlPoint.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="GUPnPServiceProxy.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="GUPnPDeviceProxy"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
 <h2><span class="refentrytitle"><a name="GUPnPDeviceProxy.top_of_page"></a>GUPnPDeviceProxy</span></h2>
 <p>GUPnPDeviceProxy — Proxy class for remote devices.</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="GUPnPDeviceProxy.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">struct              <a class="link" href="GUPnPDeviceProxy.html#GUPnPDeviceProxy-struct" title="struct GUPnPDeviceProxy">GUPnPDeviceProxy</a>;
-</pre>
+<div class="refsect1">
+<a name="GUPnPDeviceProxy.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="GUPnPDeviceProxy.html#GUPnPDeviceProxy-struct" title="struct GUPnPDeviceProxy">GUPnPDeviceProxy</a></td>
+</tr></tbody>
+</table></div>
 </div>
 <div class="refsect1">
 <a name="GUPnPDeviceProxy.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="synopsis">
-  <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-   +----<a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo">GUPnPDeviceInfo</a>
-         +----GUPnPDeviceProxy
+<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo">GUPnPDeviceInfo</a>
+        <span class="lineart">╰──</span> GUPnPDeviceProxy
 </pre>
 </div>
 <div class="refsect1">
 <a name="GUPnPDeviceProxy.description"></a><h2>Description</h2>
-<p>
-<a class="link" href="GUPnPDeviceProxy.html" title="GUPnPDeviceProxy"><span class="type">GUPnPDeviceProxy</span></a> allows for retrieving proxies for a device's subdevices
-and services. <a class="link" href="GUPnPDeviceProxy.html" title="GUPnPDeviceProxy"><span class="type">GUPnPDeviceProxy</span></a> implements the <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> interface.
-</p>
+<p><a class="link" href="GUPnPDeviceProxy.html" title="GUPnPDeviceProxy"><span class="type">GUPnPDeviceProxy</span></a> allows for retrieving proxies for a device's subdevices
+and services. <a class="link" href="GUPnPDeviceProxy.html" title="GUPnPDeviceProxy"><span class="type">GUPnPDeviceProxy</span></a> implements the <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> interface.</p>
+</div>
+<div class="refsect1">
+<a name="GUPnPDeviceProxy.functions_details"></a><h2>Functions</h2>
 </div>
 <div class="refsect1">
-<a name="GUPnPDeviceProxy.details"></a><h2>Details</h2>
+<a name="GUPnPDeviceProxy.other_details"></a><h2>Types and Values</h2>
 <div class="refsect2">
 <a name="GUPnPDeviceProxy-struct"></a><h3>struct GUPnPDeviceProxy</h3>
 <pre class="programlisting">struct GUPnPDeviceProxy;</pre>
-<p>
-This struct contains private data only, and should be accessed using the
-functions below.
-</p>
+<p>This struct contains private data only, and should be accessed using the
+functions below.</p>
 </div>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 353a404..1468a58 100644 (file)
@@ -2,32 +2,27 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GUPnPResourceFactory</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>GUPnP Reference Manual: GUPnPResourceFactory</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GUPnP Reference Manual">
 <link rel="up" href="api-utility.html" title="Utility Functions">
 <link rel="prev" href="GUPnPWhiteList.html" title="GUPnPWhiteList">
 <link rel="next" href="GUPnPXMLDoc.html" title="GUPnPXMLDoc">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="GUPnPWhiteList.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="api-utility.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GUPnP Reference Manual</th>
-<td><a accesskey="n" href="GUPnPXMLDoc.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#GUPnPResourceFactory.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#GUPnPResourceFactory.description" class="shortcut">Description</a>
-                   | 
-                  <a href="#GUPnPResourceFactory.object-hierarchy" class="shortcut">Object Hierarchy</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
+                  <a href="#GUPnPResourceFactory.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+                  <a href="#GUPnPResourceFactory.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="api-utility.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="GUPnPWhiteList.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="GUPnPXMLDoc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="GUPnPResourceFactory"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
 <h2><span class="refentrytitle"><a name="GUPnPResourceFactory.top_of_page"></a>GUPnPResourceFactory</span></h2>
 <p>GUPnPResourceFactory — Class for resource and resource proxy object creation.</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="GUPnPResourceFactory.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">struct              <a class="link" href="GUPnPResourceFactory.html#GUPnPResourceFactory-struct" title="struct GUPnPResourceFactory">GUPnPResourceFactory</a>;
-<a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="returnvalue">GUPnPResourceFactory</span></a> * <a class="link" href="GUPnPResourceFactory.html#gupnp-resource-factory-new" title="gupnp_resource_factory_new ()">gupnp_resource_factory_new</a>       (<em class="parameter"><code><span class="type">void</span></code></em>);
-<a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="returnvalue">GUPnPResourceFactory</span></a> * <a class="link" href="GUPnPResourceFactory.html#gupnp-resource-factory-get-default" title="gupnp_resource_factory_get_default ()">gupnp_resource_factory_get_default</a>
-                                                        (<em class="parameter"><code><span class="type">void</span></code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GUPnPResourceFactory.html#gupnp-resource-factory-register-resource-type" title="gupnp_resource_factory_register_resource_type ()">gupnp_resource_factory_register_resource_type</a>
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a> *factory</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *upnp_type</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GUPnPResourceFactory.html#gupnp-resource-factory-unregister-resource-type" title="gupnp_resource_factory_unregister_resource_type ()">gupnp_resource_factory_unregister_resource_type</a>
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a> *factory</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *upnp_type</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GUPnPResourceFactory.html#gupnp-resource-factory-register-resource-proxy-type" title="gupnp_resource_factory_register_resource_proxy_type ()">gupnp_resource_factory_register_resource_proxy_type</a>
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a> *factory</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *upnp_type</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GUPnPResourceFactory.html#gupnp-resource-factory-unregister-resource-proxy-type" title="gupnp_resource_factory_unregister_resource_proxy_type ()">gupnp_resource_factory_unregister_resource_proxy_type</a>
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a> *factory</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *upnp_type</code></em>);
-</pre>
+<div class="refsect1">
+<a name="GUPnPResourceFactory.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="returnvalue">GUPnPResourceFactory</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPResourceFactory.html#gupnp-resource-factory-new" title="gupnp_resource_factory_new ()">gupnp_resource_factory_new</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="returnvalue">GUPnPResourceFactory</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPResourceFactory.html#gupnp-resource-factory-get-default" title="gupnp_resource_factory_get_default ()">gupnp_resource_factory_get_default</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPResourceFactory.html#gupnp-resource-factory-register-resource-type" title="gupnp_resource_factory_register_resource_type ()">gupnp_resource_factory_register_resource_type</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPResourceFactory.html#gupnp-resource-factory-unregister-resource-type" title="gupnp_resource_factory_unregister_resource_type ()">gupnp_resource_factory_unregister_resource_type</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPResourceFactory.html#gupnp-resource-factory-register-resource-proxy-type" title="gupnp_resource_factory_register_resource_proxy_type ()">gupnp_resource_factory_register_resource_proxy_type</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPResourceFactory.html#gupnp-resource-factory-unregister-resource-proxy-type" title="gupnp_resource_factory_unregister_resource_proxy_type ()">gupnp_resource_factory_unregister_resource_proxy_type</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="GUPnPResourceFactory.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="GUPnPResourceFactory.html#GUPnPResourceFactory-struct" title="struct GUPnPResourceFactory">GUPnPResourceFactory</a></td>
+</tr></tbody>
+</table></div>
 </div>
 <div class="refsect1">
 <a name="GUPnPResourceFactory.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="synopsis">
-  <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-   +----GUPnPResourceFactory
+<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> GUPnPResourceFactory
 </pre>
 </div>
 <div class="refsect1">
 <a name="GUPnPResourceFactory.description"></a><h2>Description</h2>
-<p>
-<a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a> objects are used by <a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a>,
+<p><a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a> objects are used by <a class="link" href="GUPnPControlPoint.html" title="GUPnPControlPoint"><span class="type">GUPnPControlPoint</span></a>,
 <a class="link" href="GUPnPDeviceProxy.html" title="GUPnPDeviceProxy"><span class="type">GUPnPDeviceProxy</span></a> and <a class="link" href="GUPnPDevice.html" title="GUPnPDevice"><span class="type">GUPnPDevice</span></a> to create resource proxy and resource
 objects. Register UPnP type - <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> pairs to have resource or resource proxy
 objects created with the specified <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> whenever an object for a resource
 of the specified UPnP type is requested. The <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a>s need
 to be derived from the relevant resource or resource proxy type (e.g.
-a device proxy type needs to be derived from <a class="link" href="GUPnPDeviceProxy.html" title="GUPnPDeviceProxy"><span class="type">GUPnPDeviceProxy</span></a>).
-</p>
+a device proxy type needs to be derived from <a class="link" href="GUPnPDeviceProxy.html" title="GUPnPDeviceProxy"><span class="type">GUPnPDeviceProxy</span></a>).</p>
 </div>
 <div class="refsect1">
-<a name="GUPnPResourceFactory.details"></a><h2>Details</h2>
+<a name="GUPnPResourceFactory.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
-<a name="GUPnPResourceFactory-struct"></a><h3>struct GUPnPResourceFactory</h3>
-<pre class="programlisting">struct GUPnPResourceFactory;</pre>
-<p>
-This struct contains private data only, and should be accessed using the
-functions below.
-</p>
+<a name="gupnp-resource-factory-new"></a><h3>gupnp_resource_factory_new ()</h3>
+<pre class="programlisting"><a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="returnvalue">GUPnPResourceFactory</span></a> *
+gupnp_resource_factory_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>Create a new <a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a> object.</p>
+<div class="refsect3">
+<a name="id-1.3.6.4.7.2.5"></a><h4>Returns</h4>
+<p> A <a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a> object.</p>
+<p></p>
 </div>
-<hr>
-<div class="refsect2">
-<a name="gupnp-resource-factory-new"></a><h3>gupnp_resource_factory_new ()</h3>
-<pre class="programlisting"><a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="returnvalue">GUPnPResourceFactory</span></a> * gupnp_resource_factory_new       (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>
-Create a new <a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a> object.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A <a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a> object.</td>
-</tr></tbody>
-</table></div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-resource-factory-get-default"></a><h3>gupnp_resource_factory_get_default ()</h3>
-<pre class="programlisting"><a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="returnvalue">GUPnPResourceFactory</span></a> * gupnp_resource_factory_get_default
-                                                        (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>
-Get the default singleton <a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a> object.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A <em class="parameter"><code>GUPnPResourceFactory</code></em> object. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr></tbody>
-</table></div>
+<a name="gupnp-resource-factory-get-default"></a><h3>gupnp_resource_factory_get_default ()</h3>
+<pre class="programlisting"><a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="returnvalue">GUPnPResourceFactory</span></a> *
+gupnp_resource_factory_get_default (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>Get the default singleton <a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a> object.</p>
+<div class="refsect3">
+<a name="id-1.3.6.4.7.3.5"></a><h4>Returns</h4>
+<p> A <em class="parameter"><code>GUPnPResourceFactory</code></em>
+object. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-resource-factory-register-resource-type"></a><h3>gupnp_resource_factory_register_resource_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gupnp_resource_factory_register_resource_type
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a> *factory</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *upnp_type</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type</code></em>);</pre>
-<p>
-Registers the GType <em class="parameter"><code>type</code></em> for the resource of UPnP type <em class="parameter"><code>upnp_type</code></em>. After
-this call, the factory <em class="parameter"><code>factory</code></em> will create object of GType <em class="parameter"><code>type</code></em> each time
-it is asked to create a resource object for UPnP type <em class="parameter"><code>upnp_type</code></em>.
-</p>
-<p>
-Note: GType <em class="parameter"><code>type</code></em> must be a derived type of <span class="type">GUPNP_TYPE_DEVICE</span> if resource is
-a device or <span class="type">GUPNP_TYPE_SERVICE</span> if its a service.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-resource-factory-register-resource-type"></a><h3>gupnp_resource_factory_register_resource_type ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gupnp_resource_factory_register_resource_type
+                               (<em class="parameter"><code><a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a> *factory</code></em>,
+                                <em class="parameter"><code>const <span class="type">char</span> *upnp_type</code></em>,
+                                <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type</code></em>);</pre>
+<p>Registers the GType <em class="parameter"><code>type</code></em>
+ for the resource of UPnP type <em class="parameter"><code>upnp_type</code></em>
+. After
+this call, the factory <em class="parameter"><code>factory</code></em>
+ will create object of GType <em class="parameter"><code>type</code></em>
+ each time
+it is asked to create a resource object for UPnP type <em class="parameter"><code>upnp_type</code></em>
+.</p>
+<p>Note: GType <em class="parameter"><code>type</code></em>
+ must be a derived type of <span class="type">GUPNP_TYPE_DEVICE</span> if resource is
+a device or <span class="type">GUPNP_TYPE_SERVICE</span> if its a service.</p>
+<div class="refsect3">
+<a name="id-1.3.6.4.7.4.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>factory</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a>.</td>
+<td class="parameter_name"><p>factory</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>upnp_type</code></em> :</span></p></td>
-<td>The UPnP type name of the resource.</td>
+<td class="parameter_name"><p>upnp_type</p></td>
+<td class="parameter_description"><p>The UPnP type name of the resource.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
-<td>The requested GType assignment for the resource.</td>
+<td class="parameter_name"><p>type</p></td>
+<td class="parameter_description"><p>The requested GType assignment for the resource.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-resource-factory-unregister-resource-type"></a><h3>gupnp_resource_factory_unregister_resource_type ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gupnp_resource_factory_unregister_resource_type
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a> *factory</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *upnp_type</code></em>);</pre>
-<p>
-Unregisters the GType assignment for the resource of UPnP type <em class="parameter"><code>upnp_type</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-resource-factory-unregister-resource-type"></a><h3>gupnp_resource_factory_unregister_resource_type ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gupnp_resource_factory_unregister_resource_type
+                               (<em class="parameter"><code><a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a> *factory</code></em>,
+                                <em class="parameter"><code>const <span class="type">char</span> *upnp_type</code></em>);</pre>
+<p>Unregisters the GType assignment for the resource of UPnP type <em class="parameter"><code>upnp_type</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.3.6.4.7.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>factory</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a>.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>upnp_type</code></em> :</span></p></td>
-<td>The UPnP type name of the resource.</td>
+<td class="parameter_name"><p>factory</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if GType assignment was removed successfully, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>
-otherwise.</td>
+<td class="parameter_name"><p>upnp_type</p></td>
+<td class="parameter_description"><p>The UPnP type name of the resource.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.6.4.7.5.6"></a><h4>Returns</h4>
+<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if GType assignment was removed successfully, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>
+otherwise.</p>
+<p></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-resource-factory-register-resource-proxy-type"></a><h3>gupnp_resource_factory_register_resource_proxy_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gupnp_resource_factory_register_resource_proxy_type
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a> *factory</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *upnp_type</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type</code></em>);</pre>
-<p>
-Registers the GType <em class="parameter"><code>type</code></em> for the proxy of resource of UPnP type <em class="parameter"><code>upnp_type</code></em>.
-After this call, the factory <em class="parameter"><code>factory</code></em> will create object of GType <em class="parameter"><code>type</code></em> each
-time it is asked to create a resource proxy object for UPnP type <em class="parameter"><code>upnp_type</code></em>.
-</p>
-<p>
-Note: GType <em class="parameter"><code>type</code></em> must be a derived type of <span class="type">GUPNP_TYPE_DEVICE_PROXY</span> if
-resource is a device or <span class="type">GUPNP_TYPE_SERVICE_PROXY</span> if its a service.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-resource-factory-register-resource-proxy-type"></a><h3>gupnp_resource_factory_register_resource_proxy_type ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gupnp_resource_factory_register_resource_proxy_type
+                               (<em class="parameter"><code><a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a> *factory</code></em>,
+                                <em class="parameter"><code>const <span class="type">char</span> *upnp_type</code></em>,
+                                <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type</code></em>);</pre>
+<p>Registers the GType <em class="parameter"><code>type</code></em>
+ for the proxy of resource of UPnP type <em class="parameter"><code>upnp_type</code></em>
+.
+After this call, the factory <em class="parameter"><code>factory</code></em>
+ will create object of GType <em class="parameter"><code>type</code></em>
+ each
+time it is asked to create a resource proxy object for UPnP type <em class="parameter"><code>upnp_type</code></em>
+.</p>
+<p>Note: GType <em class="parameter"><code>type</code></em>
+ must be a derived type of <span class="type">GUPNP_TYPE_DEVICE_PROXY</span> if
+resource is a device or <span class="type">GUPNP_TYPE_SERVICE_PROXY</span> if its a service.</p>
+<div class="refsect3">
+<a name="id-1.3.6.4.7.6.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>factory</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a>.</td>
+<td class="parameter_name"><p>factory</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>upnp_type</code></em> :</span></p></td>
-<td>The UPnP type name of the resource.</td>
+<td class="parameter_name"><p>upnp_type</p></td>
+<td class="parameter_description"><p>The UPnP type name of the resource.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
-<td>The requested GType assignment for the resource proxy.</td>
+<td class="parameter_name"><p>type</p></td>
+<td class="parameter_description"><p>The requested GType assignment for the resource proxy.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-resource-factory-unregister-resource-proxy-type"></a><h3>gupnp_resource_factory_unregister_resource_proxy_type ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gupnp_resource_factory_unregister_resource_proxy_type
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a> *factory</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *upnp_type</code></em>);</pre>
-<p>
-Unregisters the GType assignment for the proxy of resource of UPnP type
-<em class="parameter"><code>upnp_type</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-resource-factory-unregister-resource-proxy-type"></a><h3>gupnp_resource_factory_unregister_resource_proxy_type ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gupnp_resource_factory_unregister_resource_proxy_type
+                               (<em class="parameter"><code><a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a> *factory</code></em>,
+                                <em class="parameter"><code>const <span class="type">char</span> *upnp_type</code></em>);</pre>
+<p>Unregisters the GType assignment for the proxy of resource of UPnP type
+<em class="parameter"><code>upnp_type</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.3.6.4.7.7.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>factory</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a>.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>upnp_type</code></em> :</span></p></td>
-<td>The UPnP type name of the resource.</td>
+<td class="parameter_name"><p>factory</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if GType assignment was removed successfully, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>
-otherwise.</td>
+<td class="parameter_name"><p>upnp_type</p></td>
+<td class="parameter_description"><p>The UPnP type name of the resource.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.6.4.7.7.6"></a><h4>Returns</h4>
+<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if GType assignment was removed successfully, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>
+otherwise.</p>
+<p></p>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="GUPnPResourceFactory.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GUPnPResourceFactory-struct"></a><h3>struct GUPnPResourceFactory</h3>
+<pre class="programlisting">struct GUPnPResourceFactory;</pre>
+<p>This struct contains private data only, and should be accessed using the
+functions below.</p>
+</div>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 309ba7e..e468151 100644 (file)
@@ -2,34 +2,28 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GUPnPRootDevice</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>GUPnP Reference Manual: GUPnPRootDevice</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GUPnP Reference Manual">
 <link rel="up" href="api-device-impl.html" title="Device Implementation">
 <link rel="prev" href="GUPnPDevice.html" title="GUPnPDevice">
 <link rel="next" href="GUPnPService.html" title="GUPnPService">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="GUPnPDevice.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="api-device-impl.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GUPnP Reference Manual</th>
-<td><a accesskey="n" href="GUPnPService.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#GUPnPRootDevice.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#GUPnPRootDevice.description" class="shortcut">Description</a>
-                   | 
-                  <a href="#GUPnPRootDevice.object-hierarchy" class="shortcut">Object Hierarchy</a>
-                   | 
-                  <a href="#GUPnPRootDevice.properties" class="shortcut">Properties</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
+                  <a href="#GUPnPRootDevice.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+                  <a href="#GUPnPRootDevice.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> 
+                  <a href="#GUPnPRootDevice.properties" class="shortcut">Properties</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="api-device-impl.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="GUPnPDevice.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="GUPnPService.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="GUPnPRootDevice"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
 <h2><span class="refentrytitle"><a name="GUPnPRootDevice.top_of_page"></a>GUPnPRootDevice</span></h2>
 <p>GUPnPRootDevice — Class for root device implementations.</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="GUPnPRootDevice.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">struct              <a class="link" href="GUPnPRootDevice.html#GUPnPRootDevice-struct" title="struct GUPnPRootDevice">GUPnPRootDevice</a>;
-<a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="returnvalue">GUPnPRootDevice</span></a> *   <a class="link" href="GUPnPRootDevice.html#gupnp-root-device-new" title="gupnp_root_device_new ()">gupnp_root_device_new</a>               (<em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *description_path</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *description_dir</code></em>);
-<a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="returnvalue">GUPnPRootDevice</span></a> *   <a class="link" href="GUPnPRootDevice.html#gupnp-root-device-new-full" title="gupnp_root_device_new_full ()">gupnp_root_device_new_full</a>          (<em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a> *factory</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GUPnPXMLDoc.html" title="GUPnPXMLDoc"><span class="type">GUPnPXMLDoc</span></a> *description_doc</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *description_path</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *description_dir</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GUPnPRootDevice.html#gupnp-root-device-set-available" title="gupnp_root_device_set_available ()">gupnp_root_device_set_available</a>     (<em class="parameter"><code><a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a> *root_device</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> available</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GUPnPRootDevice.html#gupnp-root-device-get-available" title="gupnp_root_device_get_available ()">gupnp_root_device_get_available</a>     (<em class="parameter"><code><a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a> *root_device</code></em>);
-const <span class="returnvalue">char</span> *        <a class="link" href="GUPnPRootDevice.html#gupnp-root-device-get-relative-location" title="gupnp_root_device_get_relative_location ()">gupnp_root_device_get_relative_location</a>
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a> *root_device</code></em>);
-const <span class="returnvalue">char</span> *        <a class="link" href="GUPnPRootDevice.html#gupnp-root-device-get-description-dir" title="gupnp_root_device_get_description_dir ()">gupnp_root_device_get_description_dir</a>
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a> *root_device</code></em>);
-const <span class="returnvalue">char</span> *        <a class="link" href="GUPnPRootDevice.html#gupnp-root-device-get-description-path" title="gupnp_root_device_get_description_path ()">gupnp_root_device_get_description_path</a>
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a> *root_device</code></em>);
-<a href="../gssdp/GSSDPResourceGroup.html"><span class="returnvalue">GSSDPResourceGroup</span></a> * <a class="link" href="GUPnPRootDevice.html#gupnp-root-device-get-ssdp-resource-group" title="gupnp_root_device_get_ssdp_resource_group ()">gupnp_root_device_get_ssdp_resource_group</a>
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a> *root_device</code></em>);
-</pre>
-</div>
-<div class="refsect1">
-<a name="GUPnPRootDevice.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="synopsis">
-  <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-   +----<a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo">GUPnPDeviceInfo</a>
-         +----<a class="link" href="GUPnPDevice.html" title="GUPnPDevice">GUPnPDevice</a>
-               +----GUPnPRootDevice
-</pre>
-</div>
 <div class="refsect1">
-<a name="GUPnPRootDevice.properties"></a><h2>Properties</h2>
-<pre class="synopsis">
-  "<a class="link" href="GUPnPRootDevice.html#GUPnPRootDevice--available" title='The "available" property'>available</a>"                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
-  "<a class="link" href="GUPnPRootDevice.html#GUPnPRootDevice--description-dir" title='The "description-dir" property'>description-dir</a>"          <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write / Construct Only
-  "<a class="link" href="GUPnPRootDevice.html#GUPnPRootDevice--description-doc" title='The "description-doc" property'>description-doc</a>"          <a class="link" href="GUPnPXMLDoc.html" title="GUPnPXMLDoc"><span class="type">GUPnPXMLDoc</span></a>*          : Write / Construct Only
-  "<a class="link" href="GUPnPRootDevice.html#GUPnPRootDevice--description-path" title='The "description-path" property'>description-path</a>"         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write / Construct Only
-</pre>
-</div>
-<div class="refsect1">
-<a name="GUPnPRootDevice.description"></a><h2>Description</h2>
-<p>
-<a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a> allows for implementing root devices.
-</p>
-</div>
-<div class="refsect1">
-<a name="GUPnPRootDevice.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="GUPnPRootDevice-struct"></a><h3>struct GUPnPRootDevice</h3>
-<pre class="programlisting">struct GUPnPRootDevice;</pre>
-<p>
-This struct contains private data only, and should be accessed using the
-functions below.
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gupnp-root-device-new"></a><h3>gupnp_root_device_new ()</h3>
-<pre class="programlisting"><a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="returnvalue">GUPnPRootDevice</span></a> *   gupnp_root_device_new               (<em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *description_path</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *description_dir</code></em>);</pre>
-<p>
-Create a new <a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a> object, automatically loading and parsing
-device description document from <em class="parameter"><code>description_path</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="GUPnPRootDevice.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
-<td>The <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a>
+<td class="function_type">
+<a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="returnvalue">GUPnPRootDevice</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPRootDevice.html#gupnp-root-device-new" title="gupnp_root_device_new ()">gupnp_root_device_new</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>description_path</code></em> :</span></p></td>
-<td>Path to device description document. This could either
-be an absolute path or path relative to <em class="parameter"><code>description_dir</code></em>.</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>description_dir</code></em> :</span></p></td>
-<td>Path to directory where description documents are provided.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A new <em class="parameter"><code>GUPnPRootDevice</code></em> object.</td>
+<td class="function_type">
+<a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="returnvalue">GUPnPRootDevice</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPRootDevice.html#gupnp-root-device-new-full" title="gupnp_root_device_new_full ()">gupnp_root_device_new_full</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gupnp-root-device-new-full"></a><h3>gupnp_root_device_new_full ()</h3>
-<pre class="programlisting"><a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="returnvalue">GUPnPRootDevice</span></a> *   gupnp_root_device_new_full          (<em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a> *factory</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GUPnPXMLDoc.html" title="GUPnPXMLDoc"><span class="type">GUPnPXMLDoc</span></a> *description_doc</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *description_path</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *description_dir</code></em>);</pre>
-<p>
-Create a new <a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a>, automatically loading and parsing
-device description document from <em class="parameter"><code>description_path</code></em> if <em class="parameter"><code>description_doc</code></em> is
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPRootDevice.html#gupnp-root-device-set-available" title="gupnp_root_device_set_available ()">gupnp_root_device_set_available</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>factory</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPRootDevice.html#gupnp-root-device-get-available" title="gupnp_root_device_get_available ()">gupnp_root_device_get_available</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>description_doc</code></em> :</span></p></td>
-<td>Device description document, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+<td class="function_type">const <span class="returnvalue">char</span> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPRootDevice.html#gupnp-root-device-get-relative-location" title="gupnp_root_device_get_relative_location ()">gupnp_root_device_get_relative_location</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>description_path</code></em> :</span></p></td>
-<td>Path to device description document. This could either
-be an absolute path or path relative to <em class="parameter"><code>description_dir</code></em>.</td>
+<td class="function_type">const <span class="returnvalue">char</span> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPRootDevice.html#gupnp-root-device-get-description-dir" title="gupnp_root_device_get_description_dir ()">gupnp_root_device_get_description_dir</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>description_dir</code></em> :</span></p></td>
-<td>Path to directory where description documents are provided.</td>
+<td class="function_type">const <span class="returnvalue">char</span> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPRootDevice.html#gupnp-root-device-get-description-path" title="gupnp_root_device_get_description_path ()">gupnp_root_device_get_description_path</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A new <a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a> object.</td>
+<td class="function_type">
+<a href="http://developer.gnome.org/gssdp/unstabe/GSSDPResourceGroup.html"><span class="returnvalue">GSSDPResourceGroup</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPRootDevice.html#gupnp-root-device-get-ssdp-resource-group" title="gupnp_root_device_get_ssdp_resource_group ()">gupnp_root_device_get_ssdp_resource_group</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
 </tbody>
 </table></div>
 </div>
-<hr>
-<div class="refsect2">
-<a name="gupnp-root-device-set-available"></a><h3>gupnp_root_device_set_available ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gupnp_root_device_set_available     (<em class="parameter"><code><a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a> *root_device</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> available</code></em>);</pre>
-<p>
-Controls whether or not <em class="parameter"><code>root_device</code></em> is available (announcing
-its presence).
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<div class="refsect1">
+<a name="GUPnPRootDevice.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table border="0">
+<colgroup>
+<col width="150px" class="properties_type">
+<col width="300px" class="properties_name">
+<col width="200px" class="properties_flags">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>root_device</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a>
-</td>
+<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_name"><a class="link" href="GUPnPRootDevice.html#GUPnPRootDevice--available" title="The “available” property">available</a></td>
+<td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>available</code></em> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>root_device</code></em> should be available</td>
+<td class="property_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<td class="property_name"><a class="link" href="GUPnPRootDevice.html#GUPnPRootDevice--description-dir" title="The “description-dir” property">description-dir</a></td>
+<td class="property_flags">Read / Write / Construct Only</td>
 </tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gupnp-root-device-get-available"></a><h3>gupnp_root_device_get_available ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gupnp_root_device_get_available     (<em class="parameter"><code><a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a> *root_device</code></em>);</pre>
-<p>
-Get whether or not <em class="parameter"><code>root_device</code></em> is available (announcing its presence).
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>root_device</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a>
-</td>
+<td class="property_type">
+<a class="link" href="GUPnPXMLDoc.html" title="GUPnPXMLDoc"><span class="type">GUPnPXMLDoc</span></a> *</td>
+<td class="property_name"><a class="link" href="GUPnPRootDevice.html#GUPnPRootDevice--description-doc" title="The “description-doc” property">description-doc</a></td>
+<td class="property_flags">Write / Construct Only</td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>root_device</code></em> is available, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</td>
+<td class="property_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<td class="property_name"><a class="link" href="GUPnPRootDevice.html#GUPnPRootDevice--description-path" title="The “description-path” property">description-path</a></td>
+<td class="property_flags">Read / Write / Construct Only</td>
 </tr>
 </tbody>
 </table></div>
 </div>
-<hr>
+<div class="refsect1">
+<a name="GUPnPRootDevice.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="GUPnPRootDevice.html#GUPnPRootDevice-struct" title="struct GUPnPRootDevice">GUPnPRootDevice</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="GUPnPRootDevice.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo">GUPnPDeviceInfo</a>
+        <span class="lineart">╰──</span> <a class="link" href="GUPnPDevice.html" title="GUPnPDevice">GUPnPDevice</a>
+            <span class="lineart">╰──</span> GUPnPRootDevice
+</pre>
+</div>
+<div class="refsect1">
+<a name="GUPnPRootDevice.description"></a><h2>Description</h2>
+<p><a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a> allows for implementing root devices.</p>
+</div>
+<div class="refsect1">
+<a name="GUPnPRootDevice.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
-<a name="gupnp-root-device-get-relative-location"></a><h3>gupnp_root_device_get_relative_location ()</h3>
-<pre class="programlisting">const <span class="returnvalue">char</span> *        gupnp_root_device_get_relative_location
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a> *root_device</code></em>);</pre>
-<p>
-Get the relative location of <em class="parameter"><code>root_device</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-root-device-new"></a><h3>gupnp_root_device_new ()</h3>
+<pre class="programlisting"><a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="returnvalue">GUPnPRootDevice</span></a> *
+gupnp_root_device_new (<em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>,
+                       <em class="parameter"><code>const <span class="type">char</span> *description_path</code></em>,
+                       <em class="parameter"><code>const <span class="type">char</span> *description_dir</code></em>);</pre>
+<p>Create a new <a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a> object, automatically loading and parsing
+device description document from <em class="parameter"><code>description_path</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.3.4.3.8.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>root_device</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a>
-</td>
+<td class="parameter_name"><p>context</p></td>
+<td class="parameter_description"><p>The <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>description_path</p></td>
+<td class="parameter_description"><p>Path to device description document. This could either
+be an absolute path or path relative to <em class="parameter"><code>description_dir</code></em>
+.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>The relative location of <em class="parameter"><code>root_device</code></em>.</td>
+<td class="parameter_name"><p>description_dir</p></td>
+<td class="parameter_description"><p>Path to directory where description documents are provided.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.4.3.8.2.6"></a><h4>Returns</h4>
+<p> A new <em class="parameter"><code>GUPnPRootDevice</code></em>
+object.</p>
+<p></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-root-device-get-description-dir"></a><h3>gupnp_root_device_get_description_dir ()</h3>
-<pre class="programlisting">const <span class="returnvalue">char</span> *        gupnp_root_device_get_description_dir
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a> *root_device</code></em>);</pre>
-<p>
-Get the path to the directory containing description documents related to
-<em class="parameter"><code>root_device</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-root-device-new-full"></a><h3>gupnp_root_device_new_full ()</h3>
+<pre class="programlisting"><a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="returnvalue">GUPnPRootDevice</span></a> *
+gupnp_root_device_new_full (<em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>,
+                            <em class="parameter"><code><a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a> *factory</code></em>,
+                            <em class="parameter"><code><a class="link" href="GUPnPXMLDoc.html" title="GUPnPXMLDoc"><span class="type">GUPnPXMLDoc</span></a> *description_doc</code></em>,
+                            <em class="parameter"><code>const <span class="type">char</span> *description_path</code></em>,
+                            <em class="parameter"><code>const <span class="type">char</span> *description_dir</code></em>);</pre>
+<p>Create a new <a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a>, automatically loading and parsing
+device description document from <em class="parameter"><code>description_path</code></em>
+ if <em class="parameter"><code>description_doc</code></em>
+ is
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
+<div class="refsect3">
+<a name="id-1.3.4.3.8.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>root_device</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a>
-</td>
+<td class="parameter_name"><p>context</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>The path to description document directory of <em class="parameter"><code>root_device</code></em>.</td>
+<td class="parameter_name"><p>factory</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory"><span class="type">GUPnPResourceFactory</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gupnp-root-device-get-description-path"></a><h3>gupnp_root_device_get_description_path ()</h3>
-<pre class="programlisting">const <span class="returnvalue">char</span> *        gupnp_root_device_get_description_path
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a> *root_device</code></em>);</pre>
-<p>
-Get the path to the device description document of <em class="parameter"><code>root_device</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>root_device</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a>
-</td>
+<td class="parameter_name"><p>description_doc</p></td>
+<td class="parameter_description"><p>Device description document, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>description_path</p></td>
+<td class="parameter_description"><p>Path to device description document. This could either
+be an absolute path or path relative to <em class="parameter"><code>description_dir</code></em>
+.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>The path to device description document of <em class="parameter"><code>root_device</code></em>.</td>
+<td class="parameter_name"><p>description_dir</p></td>
+<td class="parameter_description"><p>Path to directory where description documents are provided.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.4.3.8.3.6"></a><h4>Returns</h4>
+<p> A new <a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a> object.</p>
+<p></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-root-device-get-ssdp-resource-group"></a><h3>gupnp_root_device_get_ssdp_resource_group ()</h3>
-<pre class="programlisting"><a href="../gssdp/GSSDPResourceGroup.html"><span class="returnvalue">GSSDPResourceGroup</span></a> * gupnp_root_device_get_ssdp_resource_group
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a> *root_device</code></em>);</pre>
-<p>
-Get the <a href="../gssdp/GSSDPResourceGroup.html"><span class="type">GSSDPResourceGroup</span></a> used by <em class="parameter"><code>root_device</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-root-device-set-available"></a><h3>gupnp_root_device_set_available ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gupnp_root_device_set_available (<em class="parameter"><code><a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a> *root_device</code></em>,
+                                 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> available</code></em>);</pre>
+<p>Controls whether or not <em class="parameter"><code>root_device</code></em>
+ is available (announcing
+its presence).</p>
+<div class="refsect3">
+<a name="id-1.3.4.3.8.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>root_device</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a>
-</td>
+<td class="parameter_name"><p>root_device</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>The <a href="../gssdp/GSSDPResourceGroup.html"><span class="type">GSSDPResourceGroup</span></a> of <em class="parameter"><code>root_device</code></em>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>available</p></td>
+<td class="parameter_description"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>root_device</code></em>
+should be available</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
 </div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-root-device-get-available"></a><h3>gupnp_root_device_get_available ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gupnp_root_device_get_available (<em class="parameter"><code><a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a> *root_device</code></em>);</pre>
+<p>Get whether or not <em class="parameter"><code>root_device</code></em>
+ is available (announcing its presence).</p>
+<div class="refsect3">
+<a name="id-1.3.4.3.8.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>root_device</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.4.3.8.5.6"></a><h4>Returns</h4>
+<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>root_device</code></em>
+is available, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-root-device-get-relative-location"></a><h3>gupnp_root_device_get_relative_location ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> *
+gupnp_root_device_get_relative_location
+                               (<em class="parameter"><code><a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a> *root_device</code></em>);</pre>
+<p>Get the relative location of <em class="parameter"><code>root_device</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.3.4.3.8.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>root_device</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.4.3.8.6.6"></a><h4>Returns</h4>
+<p> The relative location of <em class="parameter"><code>root_device</code></em>
+.</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-root-device-get-description-dir"></a><h3>gupnp_root_device_get_description_dir ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> *
+gupnp_root_device_get_description_dir (<em class="parameter"><code><a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a> *root_device</code></em>);</pre>
+<p>Get the path to the directory containing description documents related to
+<em class="parameter"><code>root_device</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.3.4.3.8.7.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>root_device</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.4.3.8.7.6"></a><h4>Returns</h4>
+<p> The path to description document directory of <em class="parameter"><code>root_device</code></em>
+.</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-root-device-get-description-path"></a><h3>gupnp_root_device_get_description_path ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> *
+gupnp_root_device_get_description_path
+                               (<em class="parameter"><code><a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a> *root_device</code></em>);</pre>
+<p>Get the path to the device description document of <em class="parameter"><code>root_device</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.3.4.3.8.8.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>root_device</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.4.3.8.8.6"></a><h4>Returns</h4>
+<p> The path to device description document of <em class="parameter"><code>root_device</code></em>
+.</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-root-device-get-ssdp-resource-group"></a><h3>gupnp_root_device_get_ssdp_resource_group ()</h3>
+<pre class="programlisting"><a href="http://developer.gnome.org/gssdp/unstabe/GSSDPResourceGroup.html"><span class="returnvalue">GSSDPResourceGroup</span></a> *
+gupnp_root_device_get_ssdp_resource_group
+                               (<em class="parameter"><code><a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a> *root_device</code></em>);</pre>
+<p>Get the <a href="http://developer.gnome.org/gssdp/unstabe/GSSDPResourceGroup.html"><span class="type">GSSDPResourceGroup</span></a> used by <em class="parameter"><code>root_device</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.3.4.3.8.9.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>root_device</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.4.3.8.9.6"></a><h4>Returns</h4>
+<p> The <a href="http://developer.gnome.org/gssdp/unstabe/GSSDPResourceGroup.html"><span class="type">GSSDPResourceGroup</span></a> of <em class="parameter"><code>root_device</code></em>
+. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+<p class="since">Since 0.19.2</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="GUPnPRootDevice.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GUPnPRootDevice-struct"></a><h3>struct GUPnPRootDevice</h3>
+<pre class="programlisting">struct GUPnPRootDevice;</pre>
+<p>This struct contains private data only, and should be accessed using the
+functions below.</p>
+</div>
+</div>
 <div class="refsect1">
 <a name="GUPnPRootDevice.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
-<a name="GUPnPRootDevice--available"></a><h3>The <code class="literal">"available"</code> property</h3>
-<pre class="programlisting">  "available"                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
-<p>
-TRUE if this device is available.
-</p>
+<a name="GUPnPRootDevice--available"></a><h3>The <code class="literal">“available”</code> property</h3>
+<pre class="programlisting">  “available”                <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<p>TRUE if this device is available.</p>
+<p>Flags: Read / Write</p>
 <p>Default value: FALSE</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="GUPnPRootDevice--description-dir"></a><h3>The <code class="literal">"description-dir"</code> property</h3>
-<pre class="programlisting">  "description-dir"          <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write / Construct Only</pre>
-<p>
-The path to directory where description documents are provided.
-</p>
+<a name="GUPnPRootDevice--description-dir"></a><h3>The <code class="literal">“description-dir”</code> property</h3>
+<pre class="programlisting">  “description-dir”          <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<p>The path to directory where description documents are provided.</p>
+<p>Flags: Read / Write / Construct Only</p>
 <p>Default value: NULL</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="GUPnPRootDevice--description-doc"></a><h3>The <code class="literal">"description-doc"</code> property</h3>
-<pre class="programlisting">  "description-doc"          <a class="link" href="GUPnPXMLDoc.html" title="GUPnPXMLDoc"><span class="type">GUPnPXMLDoc</span></a>*          : Write / Construct Only</pre>
-<p>
-Device description document. Constructor property.
-</p>
+<a name="GUPnPRootDevice--description-doc"></a><h3>The <code class="literal">“description-doc”</code> property</h3>
+<pre class="programlisting">  “description-doc”          <a class="link" href="GUPnPXMLDoc.html" title="GUPnPXMLDoc"><span class="type">GUPnPXMLDoc</span></a> *</pre>
+<p>Device description document. Constructor property.</p>
+<p>Flags: Write / Construct Only</p>
+<p class="since">Since 0.13.0</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="GUPnPRootDevice--description-path"></a><h3>The <code class="literal">"description-path"</code> property</h3>
-<pre class="programlisting">  "description-path"         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write / Construct Only</pre>
-<p>
-The path to device description document. This could either be an
-absolute path or path relative to GUPnPRootDevice:description-dir.
-</p>
+<a name="GUPnPRootDevice--description-path"></a><h3>The <code class="literal">“description-path”</code> property</h3>
+<pre class="programlisting">  “description-path”         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<p>The path to device description document. This could either be an
+absolute path or path relative to GUPnPRootDevice:description-dir.</p>
+<p>Flags: Read / Write / Construct Only</p>
 <p>Default value: NULL</p>
+<p class="since">Since 0.13.0</p>
 </div>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 922db9d..96550c6 100644 (file)
@@ -2,36 +2,29 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GUPnPService</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>GUPnP Reference Manual: GUPnPService</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GUPnP Reference Manual">
 <link rel="up" href="api-device-impl.html" title="Device Implementation">
 <link rel="prev" href="GUPnPRootDevice.html" title="GUPnPRootDevice">
-<link rel="next" href="api-utility.html" title="Utility Functions">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="next" href="api-context.html" title="Network context handling">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="GUPnPRootDevice.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="api-device-impl.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GUPnP Reference Manual</th>
-<td><a accesskey="n" href="api-utility.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#GUPnPService.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#GUPnPService.description" class="shortcut">Description</a>
-                   | 
-                  <a href="#GUPnPService.object-hierarchy" class="shortcut">Object Hierarchy</a>
-                   | 
-                  <a href="#GUPnPService.properties" class="shortcut">Properties</a>
-                   | 
-                  <a href="#GUPnPService.signals" class="shortcut">Signals</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
+                  <a href="#GUPnPService.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+                  <a href="#GUPnPService.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> 
+                  <a href="#GUPnPService.properties" class="shortcut">Properties</a></span><span id="nav_signals"> <span class="dim">|</span> 
+                  <a href="#GUPnPService.signals" class="shortcut">Signals</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="api-device-impl.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="GUPnPRootDevice.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="api-context.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="GUPnPService"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
 <h2><span class="refentrytitle"><a name="GUPnPService.top_of_page"></a>GUPnPService</span></h2>
 <p>GUPnPService — Class for service implementations.</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="GUPnPService.synopsis"></a><h2>Synopsis</h2>
-<a name="GUPnPServiceAction"></a><pre class="synopsis">struct              <a class="link" href="GUPnPService.html#GUPnPService-struct" title="struct GUPnPService">GUPnPService</a>;
-                    <a class="link" href="GUPnPService.html#GUPnPServiceAction-struct" title="GUPnPServiceAction">GUPnPServiceAction</a>;
-const <span class="returnvalue">char</span> *        <a class="link" href="GUPnPService.html#gupnp-service-action-get-name" title="gupnp_service_action_get_name ()">gupnp_service_action_get_name</a>       (<em class="parameter"><code><a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a> *action</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="GUPnPService.html#gupnp-service-action-get-locales" title="gupnp_service_action_get_locales ()">gupnp_service_action_get_locales</a>    (<em class="parameter"><code><a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a> *action</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GUPnPService.html#gupnp-service-action-get" title="gupnp_service_action_get ()">gupnp_service_action_get</a>            (<em class="parameter"><code><a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a> *action</code></em>,
-                                                         <em class="parameter"><code>...</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GUPnPService.html#gupnp-service-action-get-valist" title="gupnp_service_action_get_valist ()">gupnp_service_action_get_valist</a>     (<em class="parameter"><code><a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a> *action</code></em>,
-                                                         <em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GUPnPService.html#gupnp-service-action-get-value" title="gupnp_service_action_get_value ()">gupnp_service_action_get_value</a>      (<em class="parameter"><code><a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a> *action</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *argument</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);
-<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="returnvalue">GValue</span></a> *            <a class="link" href="GUPnPService.html#gupnp-service-action-get-gvalue" title="gupnp_service_action_get_gvalue ()">gupnp_service_action_get_gvalue</a>     (<em class="parameter"><code><a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a> *action</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *argument</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="GUPnPService.html#gupnp-service-action-get-values" title="gupnp_service_action_get_values ()">gupnp_service_action_get_values</a>     (<em class="parameter"><code><a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a> *action</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *arg_names</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *arg_types</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GUPnPService.html#gupnp-service-action-set" title="gupnp_service_action_set ()">gupnp_service_action_set</a>            (<em class="parameter"><code><a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a> *action</code></em>,
-                                                         <em class="parameter"><code>...</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GUPnPService.html#gupnp-service-action-set-valist" title="gupnp_service_action_set_valist ()">gupnp_service_action_set_valist</a>     (<em class="parameter"><code><a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a> *action</code></em>,
-                                                         <em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GUPnPService.html#gupnp-service-action-set-value" title="gupnp_service_action_set_value ()">gupnp_service_action_set_value</a>      (<em class="parameter"><code><a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a> *action</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *argument</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GUPnPService.html#gupnp-service-action-set-values" title="gupnp_service_action_set_values ()">gupnp_service_action_set_values</a>     (<em class="parameter"><code><a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a> *action</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *arg_names</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *arg_values</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GUPnPService.html#gupnp-service-action-return" title="gupnp_service_action_return ()">gupnp_service_action_return</a>         (<em class="parameter"><code><a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a> *action</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GUPnPService.html#gupnp-service-action-return-error" title="gupnp_service_action_return_error ()">gupnp_service_action_return_error</a>   (<em class="parameter"><code><a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a> *action</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> error_code</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *error_description</code></em>);
-<a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupMessage.html"><span class="returnvalue">SoupMessage</span></a> *       <a class="link" href="GUPnPService.html#gupnp-service-action-get-message" title="gupnp_service_action_get_message ()">gupnp_service_action_get_message</a>    (<em class="parameter"><code><a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a> *action</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="GUPnPService.html#gupnp-service-action-get-argument-count" title="gupnp_service_action_get_argument_count ()">gupnp_service_action_get_argument_count</a>
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a> *action</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GUPnPService.html#gupnp-service-notify" title="gupnp_service_notify ()">gupnp_service_notify</a>                (<em class="parameter"><code><a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a> *service</code></em>,
-                                                         <em class="parameter"><code>...</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GUPnPService.html#gupnp-service-notify-valist" title="gupnp_service_notify_valist ()">gupnp_service_notify_valist</a>         (<em class="parameter"><code><a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a> *service</code></em>,
-                                                         <em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GUPnPService.html#gupnp-service-notify-value" title="gupnp_service_notify_value ()">gupnp_service_notify_value</a>          (<em class="parameter"><code><a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a> *service</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *variable</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GUPnPService.html#gupnp-service-freeze-notify" title="gupnp_service_freeze_notify ()">gupnp_service_freeze_notify</a>         (<em class="parameter"><code><a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a> *service</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GUPnPService.html#gupnp-service-thaw-notify" title="gupnp_service_thaw_notify ()">gupnp_service_thaw_notify</a>           (<em class="parameter"><code><a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a> *service</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GUPnPService.html#gupnp-service-signals-autoconnect" title="gupnp_service_signals_autoconnect ()">gupnp_service_signals_autoconnect</a>   (<em class="parameter"><code><a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a> *service</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
-</pre>
-</div>
 <div class="refsect1">
-<a name="GUPnPService.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="synopsis">
-  <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-   +----<a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo">GUPnPServiceInfo</a>
-         +----GUPnPService
-</pre>
-<pre class="synopsis">
-  GBoxed
-   +----GUPnPServiceAction
-</pre>
+<a name="GUPnPService.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">const <span class="returnvalue">char</span> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPService.html#gupnp-service-action-get-name" title="gupnp_service_action_get_name ()">gupnp_service_action_get_name</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPService.html#gupnp-service-action-get-locales" title="gupnp_service_action_get_locales ()">gupnp_service_action_get_locales</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPService.html#gupnp-service-action-get" title="gupnp_service_action_get ()">gupnp_service_action_get</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPService.html#gupnp-service-action-get-valist" title="gupnp_service_action_get_valist ()">gupnp_service_action_get_valist</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPService.html#gupnp-service-action-get-value" title="gupnp_service_action_get_value ()">gupnp_service_action_get_value</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="returnvalue">GValue</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPService.html#gupnp-service-action-get-gvalue" title="gupnp_service_action_get_gvalue ()">gupnp_service_action_get_gvalue</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPService.html#gupnp-service-action-get-values" title="gupnp_service_action_get_values ()">gupnp_service_action_get_values</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPService.html#gupnp-service-action-set" title="gupnp_service_action_set ()">gupnp_service_action_set</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPService.html#gupnp-service-action-set-valist" title="gupnp_service_action_set_valist ()">gupnp_service_action_set_valist</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPService.html#gupnp-service-action-set-value" title="gupnp_service_action_set_value ()">gupnp_service_action_set_value</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPService.html#gupnp-service-action-set-values" title="gupnp_service_action_set_values ()">gupnp_service_action_set_values</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPService.html#gupnp-service-action-return" title="gupnp_service_action_return ()">gupnp_service_action_return</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPService.html#gupnp-service-action-return-error" title="gupnp_service_action_return_error ()">gupnp_service_action_return_error</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupMessage.html"><span class="returnvalue">SoupMessage</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPService.html#gupnp-service-action-get-message" title="gupnp_service_action_get_message ()">gupnp_service_action_get_message</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPService.html#gupnp-service-action-get-argument-count" title="gupnp_service_action_get_argument_count ()">gupnp_service_action_get_argument_count</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPService.html#gupnp-service-notify" title="gupnp_service_notify ()">gupnp_service_notify</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPService.html#gupnp-service-notify-valist" title="gupnp_service_notify_valist ()">gupnp_service_notify_valist</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPService.html#gupnp-service-notify-value" title="gupnp_service_notify_value ()">gupnp_service_notify_value</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPService.html#gupnp-service-freeze-notify" title="gupnp_service_freeze_notify ()">gupnp_service_freeze_notify</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPService.html#gupnp-service-thaw-notify" title="gupnp_service_thaw_notify ()">gupnp_service_thaw_notify</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPService.html#gupnp-service-signals-autoconnect" title="gupnp_service_signals_autoconnect ()">gupnp_service_signals_autoconnect</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <div class="refsect1">
 <a name="GUPnPService.properties"></a><h2>Properties</h2>
-<pre class="synopsis">
-  "<a class="link" href="GUPnPService.html#GUPnPService--root-device" title='The "root-device" property'>root-device</a>"              <a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a>*      : Read / Write / Construct Only
-</pre>
+<div class="informaltable"><table border="0">
+<colgroup>
+<col width="150px" class="properties_type">
+<col width="300px" class="properties_name">
+<col width="200px" class="properties_flags">
+</colgroup>
+<tbody><tr>
+<td class="property_type">
+<a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a> *</td>
+<td class="property_name"><a class="link" href="GUPnPService.html#GUPnPService--root-device" title="The “root-device” property">root-device</a></td>
+<td class="property_flags">Read / Write / Construct Only</td>
+</tr></tbody>
+</table></div>
 </div>
 <div class="refsect1">
 <a name="GUPnPService.signals"></a><h2>Signals</h2>
-<pre class="synopsis">
-  "<a class="link" href="GUPnPService.html#GUPnPService-action-invoked" title='The "action-invoked" signal'>action-invoked</a>"                                 : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-DETAILED:CAPS"><code class="literal">Has Details</code></a>
-  "<a class="link" href="GUPnPService.html#GUPnPService-notify-failed" title='The "notify-failed" signal'>notify-failed</a>"                                  : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a>
-  "<a class="link" href="GUPnPService.html#GUPnPService-query-variable" title='The "query-variable" signal'>query-variable</a>"                                 : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-DETAILED:CAPS"><code class="literal">Has Details</code></a>
-</pre>
-</div>
-<div class="refsect1">
-<a name="GUPnPService.description"></a><h2>Description</h2>
-<p>
-<a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a> allows for handling incoming actions and state variable
-notification. <a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a> implements the <a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a> interface.
-</p>
-</div>
-<div class="refsect1">
-<a name="GUPnPService.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="GUPnPService-struct"></a><h3>struct GUPnPService</h3>
-<pre class="programlisting">struct GUPnPService;</pre>
-<p>
-This struct contains private data only, and should be accessed using the
-functions below.
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GUPnPServiceAction-struct"></a><h3>GUPnPServiceAction</h3>
-<pre class="programlisting">typedef struct _GUPnPServiceAction GUPnPServiceAction;</pre>
-<p>
-Opaque structure for holding in-progress action data.
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gupnp-service-action-get-name"></a><h3>gupnp_service_action_get_name ()</h3>
-<pre class="programlisting">const <span class="returnvalue">char</span> *        gupnp_service_action_get_name       (<em class="parameter"><code><a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a> *action</code></em>);</pre>
-<p>
-Get the name of <em class="parameter"><code>action</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<div class="informaltable"><table border="0">
+<colgroup>
+<col width="150px" class="signals_return">
+<col width="300px" class="signals_name">
+<col width="200px" class="signals_flags">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>action</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a>
-</td>
+<td class="signal_type"><span class="returnvalue">void</span></td>
+<td class="signal_name"><a class="link" href="GUPnPService.html#GUPnPService-action-invoked" title="The “action-invoked” signal">action-invoked</a></td>
+<td class="signal_flags">Has Details</td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>The name of <em class="parameter"><code>action</code></em>
-</td>
+<td class="signal_type"><span class="returnvalue">void</span></td>
+<td class="signal_name"><a class="link" href="GUPnPService.html#GUPnPService-notify-failed" title="The “notify-failed” signal">notify-failed</a></td>
+<td class="signal_flags">Run Last</td>
+</tr>
+<tr>
+<td class="signal_type"><span class="returnvalue">void</span></td>
+<td class="signal_name"><a class="link" href="GUPnPService.html#GUPnPService-query-variable" title="The “query-variable” signal">query-variable</a></td>
+<td class="signal_flags">Has Details</td>
 </tr>
 </tbody>
 </table></div>
 </div>
-<hr>
-<div class="refsect2">
-<a name="gupnp-service-action-get-locales"></a><h3>gupnp_service_action_get_locales ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             gupnp_service_action_get_locales    (<em class="parameter"><code><a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a> *action</code></em>);</pre>
-<p>
-Get an ordered (preferred first) <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of locales preferred by
-the client. Free list and elements after use.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="GUPnPServiceAction"></a><div class="refsect1">
+<a name="GUPnPService.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>action</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a>
-</td>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="GUPnPService.html#GUPnPService-struct" title="GUPnPService">GUPnPService</a></td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of <span class="type">char</span>*
-locale names. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="GUPnPService.html#GUPnPServiceAction-struct" title="GUPnPServiceAction">GUPnPServiceAction</a></td>
 </tr>
 </tbody>
 </table></div>
 </div>
-<hr>
+<div class="refsect1">
+<a name="GUPnPService.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    GBoxed
+    <span class="lineart">╰──</span> GUPnPServiceAction
+    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo">GUPnPServiceInfo</a>
+        <span class="lineart">╰──</span> GUPnPService
+</pre>
+</div>
+<div class="refsect1">
+<a name="GUPnPService.description"></a><h2>Description</h2>
+<p><a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a> allows for handling incoming actions and state variable
+notification. <a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a> implements the <a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a> interface.</p>
+</div>
+<div class="refsect1">
+<a name="GUPnPService.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
-<a name="gupnp-service-action-get"></a><h3>gupnp_service_action_get ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gupnp_service_action_get            (<em class="parameter"><code><a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a> *action</code></em>,
-                                                         <em class="parameter"><code>...</code></em>);</pre>
-<p>
-Retrieves the specified action arguments.
+<a name="gupnp-service-action-get-name"></a><h3>gupnp_service_action_get_name ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> *
+gupnp_service_action_get_name (<em class="parameter"><code><a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a> *action</code></em>);</pre>
+<p>Get the name of <em class="parameter"><code>action</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.3.4.4.10.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>action</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.4.4.10.2.6"></a><h4>Returns</h4>
+<p> The name of <em class="parameter"><code>action</code></em>
 </p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-service-action-get-locales"></a><h3>gupnp_service_action_get_locales ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+gupnp_service_action_get_locales (<em class="parameter"><code><a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a> *action</code></em>);</pre>
+<p>Get an ordered (preferred first) <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of locales preferred by
+the client. Free list and elements after use.</p>
+<div class="refsect3">
+<a name="id-1.3.4.4.10.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>action</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.4.4.10.3.6"></a><h4>Returns</h4>
+<p> A <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of <span class="type">char</span>*
+locale names. </p>
+<p><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-service-action-get"></a><h3>gupnp_service_action_get ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gupnp_service_action_get (<em class="parameter"><code><a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a> *action</code></em>,
+                          <em class="parameter"><code>...</code></em>);</pre>
+<p>Retrieves the specified action arguments.</p>
+<div class="refsect3">
+<a name="id-1.3.4.4.10.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>action</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a>
-</td>
+<td class="parameter_name"><p>action</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td>
-<td>tuples of argument name, argument type, and argument value
-location, terminated with <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
+<td class="parameter_name"><p>...</p></td>
+<td class="parameter_description"><p>tuples of argument name, argument type, and argument value
+location, terminated with <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-service-action-get-valist"></a><h3>gupnp_service_action_get_valist ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gupnp_service_action_get_valist     (<em class="parameter"><code><a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a> *action</code></em>,
-                                                         <em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);</pre>
-<p>
-See <a class="link" href="GUPnPService.html#gupnp-service-action-get" title="gupnp_service_action_get ()"><code class="function">gupnp_service_action_get()</code></a>; this version takes a va_list for
-use by language bindings.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-service-action-get-valist"></a><h3>gupnp_service_action_get_valist ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gupnp_service_action_get_valist (<em class="parameter"><code><a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a> *action</code></em>,
+                                 <em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);</pre>
+<p>See <a class="link" href="GUPnPService.html#gupnp-service-action-get" title="gupnp_service_action_get ()"><code class="function">gupnp_service_action_get()</code></a>; this version takes a va_list for
+use by language bindings.</p>
+<div class="refsect3">
+<a name="id-1.3.4.4.10.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>action</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a>
-</td>
+<td class="parameter_name"><p>action</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>var_args</code></em> :</span></p></td>
-<td>va_list of tuples of argument name, argument type, and argument
-value location.</td>
+<td class="parameter_name"><p>var_args</p></td>
+<td class="parameter_description"><p>va_list of tuples of argument name, argument type, and argument
+value location.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-service-action-get-value"></a><h3>gupnp_service_action_get_value ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gupnp_service_action_get_value      (<em class="parameter"><code><a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a> *action</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *argument</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);</pre>
-<p>
-Retrieves the value of <em class="parameter"><code>argument</code></em> into <em class="parameter"><code>value</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-service-action-get-value"></a><h3>gupnp_service_action_get_value ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gupnp_service_action_get_value (<em class="parameter"><code><a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a> *action</code></em>,
+                                <em class="parameter"><code>const <span class="type">char</span> *argument</code></em>,
+                                <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);</pre>
+<p>Retrieves the value of <em class="parameter"><code>argument</code></em>
+ into <em class="parameter"><code>value</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.3.4.4.10.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>action</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a>
-</td>
+<td class="parameter_name"><p>action</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>argument</code></em> :</span></p></td>
-<td>The name of the argument to retrieve</td>
+<td class="parameter_name"><p>argument</p></td>
+<td class="parameter_description"><p>The name of the argument to retrieve</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>The <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> to store the value of the argument, initialized
-to the correct type. <span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p>The <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> to store the value of the argument, initialized
+to the correct type. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-service-action-get-gvalue"></a><h3>gupnp_service_action_get_gvalue ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="returnvalue">GValue</span></a> *            gupnp_service_action_get_gvalue     (<em class="parameter"><code><a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a> *action</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *argument</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type</code></em>);</pre>
-<p>
-Retrieves the value of <em class="parameter"><code>argument</code></em> into a GValue of type <em class="parameter"><code>type</code></em> and returns it.
+<a name="gupnp-service-action-get-gvalue"></a><h3>gupnp_service_action_get_gvalue ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="returnvalue">GValue</span></a> *
+gupnp_service_action_get_gvalue (<em class="parameter"><code><a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a> *action</code></em>,
+                                 <em class="parameter"><code>const <span class="type">char</span> *argument</code></em>,
+                                 <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type</code></em>);</pre>
+<p>Retrieves the value of <em class="parameter"><code>argument</code></em>
+ into a GValue of type <em class="parameter"><code>type</code></em>
+ and returns it.
 The method exists only and only to satify PyGI, please use
-<a class="link" href="GUPnPService.html#gupnp-service-action-get-value" title="gupnp_service_action_get_value ()"><span class="type">gupnp_service_action_get_value</span></a> and ignore this if possible.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a class="link" href="GUPnPService.html#gupnp-service-action-get-value" title="gupnp_service_action_get_value ()"><code class="function">gupnp_service_action_get_value()</code></a> and ignore this if possible.</p>
+<div class="refsect3">
+<a name="id-1.3.4.4.10.7.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>action</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>argument</code></em> :</span></p></td>
-<td>The name of the argument to retrieve</td>
+<td class="parameter_name"><p>action</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
-<td>The type of argument to retrieve</td>
+<td class="parameter_name"><p>argument</p></td>
+<td class="parameter_description"><p>The name of the argument to retrieve</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>Value as <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> associated with <em class="parameter"><code>action</code></em>.
-<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#g-value-unset"><span class="type">g_value_unset</span></a> and <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Slices.html#g-slice-free"><span class="type">g_slice_free</span></a> it after usage.
-Rename To: gupnp_service_action_get_value. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>type</p></td>
+<td class="parameter_description"><p>The type of argument to retrieve</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.4.4.10.7.6"></a><h4>Returns</h4>
+<p> Value as <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> associated with <em class="parameter"><code>action</code></em>
+.
+<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#g-value-unset"><code class="function">g_value_unset()</code></a> and <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Slices.html#g-slice-free"><code class="function">g_slice_free()</code></a> it after usage. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+<p class="since">Since 0.13.3</p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-service-action-get-values"></a><h3>gupnp_service_action_get_values ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             gupnp_service_action_get_values     (<em class="parameter"><code><a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a> *action</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *arg_names</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *arg_types</code></em>);</pre>
-<p>
-A variant of <a class="link" href="GUPnPService.html#gupnp-service-action-get" title="gupnp_service_action_get ()"><span class="type">gupnp_service_action_get</span></a> that uses <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> instead of varargs.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-service-action-get-values"></a><h3>gupnp_service_action_get_values ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+gupnp_service_action_get_values (<em class="parameter"><code><a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a> *action</code></em>,
+                                 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *arg_names</code></em>,
+                                 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *arg_types</code></em>);</pre>
+<p>A variant of <a class="link" href="GUPnPService.html#gupnp-service-action-get" title="gupnp_service_action_get ()"><span class="type">gupnp_service_action_get</span></a> that uses <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> instead of varargs.</p>
+<div class="refsect3">
+<a name="id-1.3.4.4.10.8.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>action</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a>
-</td>
+<td class="parameter_name"><p>action</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>arg_names</code></em> :</span></p></td>
-<td>(element-type utf8) : A <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of argument names as string</td>
+<td class="parameter_name"><p>arg_names</p></td>
+<td class="parameter_description"><p>(element-type utf8) : A <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of argument names as string</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>arg_types</code></em> :</span></p></td>
-<td>A <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of argument types as <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a>. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GType]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>The values as <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of
-<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>. <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#g-list-free"><span class="type">g_list_free</span></a> the returned list and <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#g-value-unset"><span class="type">g_value_unset</span></a> and <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Slices.html#g-slice-free"><span class="type">g_slice_free</span></a>
-each element. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GValue][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>arg_types</p></td>
+<td class="parameter_description"><p> A <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of argument types as <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GType]</span></td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.4.4.10.8.6"></a><h4>Returns</h4>
+<p> The values as <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of
+<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>. <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#g-list-free"><code class="function">g_list_free()</code></a> the returned list and <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#g-value-unset"><code class="function">g_value_unset()</code></a> and <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Slices.html#g-slice-free"><code class="function">g_slice_free()</code></a>
+each element. </p>
+<p><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GValue][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+<p class="since">Since 0.13.3</p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-service-action-set"></a><h3>gupnp_service_action_set ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gupnp_service_action_set            (<em class="parameter"><code><a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a> *action</code></em>,
-                                                         <em class="parameter"><code>...</code></em>);</pre>
-<p>
-Sets the specified action return values.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-service-action-set"></a><h3>gupnp_service_action_set ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gupnp_service_action_set (<em class="parameter"><code><a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a> *action</code></em>,
+                          <em class="parameter"><code>...</code></em>);</pre>
+<p>Sets the specified action return values.</p>
+<div class="refsect3">
+<a name="id-1.3.4.4.10.9.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>action</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a>
-</td>
+<td class="parameter_name"><p>action</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td>
-<td>tuples of return value name, return value type, and
-actual return value, terminated with <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
+<td class="parameter_name"><p>...</p></td>
+<td class="parameter_description"><p>tuples of return value name, return value type, and
+actual return value, terminated with <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-service-action-set-valist"></a><h3>gupnp_service_action_set_valist ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gupnp_service_action_set_valist     (<em class="parameter"><code><a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a> *action</code></em>,
-                                                         <em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);</pre>
-<p>
-See <a class="link" href="GUPnPService.html#gupnp-service-action-set" title="gupnp_service_action_set ()"><code class="function">gupnp_service_action_set()</code></a>; this version takes a va_list for
-use by language bindings.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-service-action-set-valist"></a><h3>gupnp_service_action_set_valist ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gupnp_service_action_set_valist (<em class="parameter"><code><a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a> *action</code></em>,
+                                 <em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);</pre>
+<p>See <a class="link" href="GUPnPService.html#gupnp-service-action-set" title="gupnp_service_action_set ()"><code class="function">gupnp_service_action_set()</code></a>; this version takes a va_list for
+use by language bindings.</p>
+<div class="refsect3">
+<a name="id-1.3.4.4.10.10.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>action</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a>
-</td>
+<td class="parameter_name"><p>action</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>var_args</code></em> :</span></p></td>
-<td>va_list of tuples of return value name, return value type, and
-actual return value.</td>
+<td class="parameter_name"><p>var_args</p></td>
+<td class="parameter_description"><p>va_list of tuples of return value name, return value type, and
+actual return value.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-service-action-set-value"></a><h3>gupnp_service_action_set_value ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gupnp_service_action_set_value      (<em class="parameter"><code><a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a> *action</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *argument</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);</pre>
-<p>
-Sets the value of <em class="parameter"><code>argument</code></em> to <em class="parameter"><code>value</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-service-action-set-value"></a><h3>gupnp_service_action_set_value ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gupnp_service_action_set_value (<em class="parameter"><code><a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a> *action</code></em>,
+                                <em class="parameter"><code>const <span class="type">char</span> *argument</code></em>,
+                                <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);</pre>
+<p>Sets the value of <em class="parameter"><code>argument</code></em>
+ to <em class="parameter"><code>value</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.3.4.4.10.11.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>action</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a>
-</td>
+<td class="parameter_name"><p>action</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>argument</code></em> :</span></p></td>
-<td>The name of the return value to retrieve</td>
+<td class="parameter_name"><p>argument</p></td>
+<td class="parameter_description"><p>The name of the return value to retrieve</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>The <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> to store the return value</td>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p>The <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> to store the return value</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-service-action-set-values"></a><h3>gupnp_service_action_set_values ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gupnp_service_action_set_values     (<em class="parameter"><code><a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a> *action</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *arg_names</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *arg_values</code></em>);</pre>
-<p>
-Sets the specified action return values.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-service-action-set-values"></a><h3>gupnp_service_action_set_values ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gupnp_service_action_set_values (<em class="parameter"><code><a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a> *action</code></em>,
+                                 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *arg_names</code></em>,
+                                 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *arg_values</code></em>);</pre>
+<p>Sets the specified action return values.</p>
+<div class="refsect3">
+<a name="id-1.3.4.4.10.12.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>action</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a>
-</td>
+<td class="parameter_name"><p>action</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>arg_names</code></em> :</span></p></td>
-<td>A <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of argument names. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>arg_names</p></td>
+<td class="parameter_description"><p> A <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of argument names. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>arg_values</code></em> :</span></p></td>
-<td>The <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of values (as
-<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValues</span></a>) that line up with <em class="parameter"><code>arg_names</code></em>. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GValue][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>arg_values</p></td>
+<td class="parameter_description"><p> The <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of values (as
+<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValues</span></a>) that line up with <em class="parameter"><code>arg_names</code></em>
+. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GValue][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<p class="since">Since 0.13.3</p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-service-action-return"></a><h3>gupnp_service_action_return ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gupnp_service_action_return         (<em class="parameter"><code><a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a> *action</code></em>);</pre>
-<p>
-Return succesfully.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-service-action-return"></a><h3>gupnp_service_action_return ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gupnp_service_action_return (<em class="parameter"><code><a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a> *action</code></em>);</pre>
+<p>Return succesfully.</p>
+<div class="refsect3">
+<a name="id-1.3.4.4.10.13.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>action</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a>
-</td>
+<td class="parameter_name"><p>action</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr></tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-service-action-return-error"></a><h3>gupnp_service_action_return_error ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gupnp_service_action_return_error   (<em class="parameter"><code><a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a> *action</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> error_code</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *error_description</code></em>);</pre>
-<p>
-Return <em class="parameter"><code>error_code</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-service-action-return-error"></a><h3>gupnp_service_action_return_error ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gupnp_service_action_return_error (<em class="parameter"><code><a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a> *action</code></em>,
+                                   <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> error_code</code></em>,
+                                   <em class="parameter"><code>const <span class="type">char</span> *error_description</code></em>);</pre>
+<p>Return <em class="parameter"><code>error_code</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.3.4.4.10.14.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>action</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a>
-</td>
+<td class="parameter_name"><p>action</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>error_code</code></em> :</span></p></td>
-<td>The error code</td>
+<td class="parameter_name"><p>error_code</p></td>
+<td class="parameter_description"><p>The error code</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>error_description</code></em> :</span></p></td>
-<td>The error description, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>error_code</code></em> is
+<td class="parameter_name"><p>error_description</p></td>
+<td class="parameter_description"><p>The error description, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>error_code</code></em>
+is
 one of <a class="link" href="gupnp-Error-codes.html#GUPNP-CONTROL-ERROR-INVALID-ACTION:CAPS"><span class="type">GUPNP_CONTROL_ERROR_INVALID_ACTION</span></a>,
 <a class="link" href="gupnp-Error-codes.html#GUPNP-CONTROL-ERROR-INVALID-ARGS:CAPS"><span class="type">GUPNP_CONTROL_ERROR_INVALID_ARGS</span></a>, <a class="link" href="gupnp-Error-codes.html#GUPNP-CONTROL-ERROR-OUT-OF-SYNC:CAPS"><span class="type">GUPNP_CONTROL_ERROR_OUT_OF_SYNC</span></a> or
 <a class="link" href="gupnp-Error-codes.html#GUPNP-CONTROL-ERROR-ACTION-FAILED:CAPS"><span class="type">GUPNP_CONTROL_ERROR_ACTION_FAILED</span></a>, in which case a description is
-provided automatically.</td>
+provided automatically.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-service-action-get-message"></a><h3>gupnp_service_action_get_message ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupMessage.html"><span class="returnvalue">SoupMessage</span></a> *       gupnp_service_action_get_message    (<em class="parameter"><code><a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a> *action</code></em>);</pre>
-<p>
-Get the <a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupMessage.html"><span class="type">SoupMessage</span></a> associated with <em class="parameter"><code>action</code></em>. Mainly intended for
-applications to be able to read HTTP headers received from clients.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>action</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupMessage.html"><span class="type">SoupMessage</span></a> associated with <em class="parameter"><code>action</code></em>. Unref
-after using it. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
+<a name="gupnp-service-action-get-message"></a><h3>gupnp_service_action_get_message ()</h3>
+<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupMessage.html"><span class="returnvalue">SoupMessage</span></a> *
+gupnp_service_action_get_message (<em class="parameter"><code><a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a> *action</code></em>);</pre>
+<p>Get the <a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupMessage.html"><span class="type">SoupMessage</span></a> associated with <em class="parameter"><code>action</code></em>
+. Mainly intended for
+applications to be able to read HTTP headers received from clients.</p>
+<div class="refsect3">
+<a name="id-1.3.4.4.10.15.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>action</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.4.4.10.15.6"></a><h4>Returns</h4>
+<p> <a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupMessage.html"><span class="type">SoupMessage</span></a> associated with <em class="parameter"><code>action</code></em>
+. Unref
+after using it. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+<p class="since">Since 0.13.0</p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-service-action-get-argument-count"></a><h3>gupnp_service_action_get_argument_count ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               gupnp_service_action_get_argument_count
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a> *action</code></em>);</pre>
-<p>
-Get the number of IN arguments from the <em class="parameter"><code>action</code></em> and return it.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>action</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>The number of IN arguments from the <em class="parameter"><code>action</code></em>.</td>
-</tr>
-</tbody>
+<a name="gupnp-service-action-get-argument-count"></a><h3>gupnp_service_action_get_argument_count ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+gupnp_service_action_get_argument_count
+                               (<em class="parameter"><code><a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a> *action</code></em>);</pre>
+<p>Get the number of IN arguments from the <em class="parameter"><code>action</code></em>
+ and return it.</p>
+<div class="refsect3">
+<a name="id-1.3.4.4.10.16.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>action</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.4.4.10.16.6"></a><h4>Returns</h4>
+<p> The number of IN arguments from the <em class="parameter"><code>action</code></em>
+.</p>
+<p></p>
+</div>
+<p class="since">Since 0.17.0</p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-service-notify"></a><h3>gupnp_service_notify ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gupnp_service_notify                (<em class="parameter"><code><a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a> *service</code></em>,
-                                                         <em class="parameter"><code>...</code></em>);</pre>
-<p>
-Notifies listening clients that the properties listed in <em class="parameter"><code>Varargs</code></em>
-have changed to the specified values.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-service-notify"></a><h3>gupnp_service_notify ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gupnp_service_notify (<em class="parameter"><code><a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a> *service</code></em>,
+                      <em class="parameter"><code>...</code></em>);</pre>
+<p>Notifies listening clients that the properties listed in <em class="parameter"><code>Varargs</code></em>
+
+have changed to the specified values.</p>
+<div class="refsect3">
+<a name="id-1.3.4.4.10.17.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>service</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a>
-</td>
+<td class="parameter_name"><p>service</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td>
-<td>Tuples of variable name, variable type, and variable value,
-terminated with <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
+<td class="parameter_name"><p>...</p></td>
+<td class="parameter_description"><p>Tuples of variable name, variable type, and variable value,
+terminated with <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-service-notify-valist"></a><h3>gupnp_service_notify_valist ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gupnp_service_notify_valist         (<em class="parameter"><code><a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a> *service</code></em>,
-                                                         <em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);</pre>
-<p>
-See <a class="link" href="GUPnPService.html#gupnp-service-notify" title="gupnp_service_notify ()"><code class="function">gupnp_service_notify()</code></a>; this version takes a va_list for
-use by language bindings.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-service-notify-valist"></a><h3>gupnp_service_notify_valist ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gupnp_service_notify_valist (<em class="parameter"><code><a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a> *service</code></em>,
+                             <em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);</pre>
+<p>See <a class="link" href="GUPnPService.html#gupnp-service-notify" title="gupnp_service_notify ()"><code class="function">gupnp_service_notify()</code></a>; this version takes a va_list for
+use by language bindings.</p>
+<div class="refsect3">
+<a name="id-1.3.4.4.10.18.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>service</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a>
-</td>
+<td class="parameter_name"><p>service</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>var_args</code></em> :</span></p></td>
-<td>A va_list of tuples of variable name, variable type, and variable
-value, terminated with <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
+<td class="parameter_name"><p>var_args</p></td>
+<td class="parameter_description"><p>A va_list of tuples of variable name, variable type, and variable
+value, terminated with <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-service-notify-value"></a><h3>gupnp_service_notify_value ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gupnp_service_notify_value          (<em class="parameter"><code><a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a> *service</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *variable</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);</pre>
-<p>
-Notifies listening clients that <em class="parameter"><code>variable</code></em> has changed to <em class="parameter"><code>value</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-service-notify-value"></a><h3>gupnp_service_notify_value ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gupnp_service_notify_value (<em class="parameter"><code><a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a> *service</code></em>,
+                            <em class="parameter"><code>const <span class="type">char</span> *variable</code></em>,
+                            <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);</pre>
+<p>Notifies listening clients that <em class="parameter"><code>variable</code></em>
+ has changed to <em class="parameter"><code>value</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.3.4.4.10.19.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>service</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a>
-</td>
+<td class="parameter_name"><p>service</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>variable</code></em> :</span></p></td>
-<td>The name of the variable to notify</td>
+<td class="parameter_name"><p>variable</p></td>
+<td class="parameter_description"><p>The name of the variable to notify</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>The value of the variable</td>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p>The value of the variable</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-service-freeze-notify"></a><h3>gupnp_service_freeze_notify ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gupnp_service_freeze_notify         (<em class="parameter"><code><a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a> *service</code></em>);</pre>
-<p>
-Causes new notifications to be queued up until <a class="link" href="GUPnPService.html#gupnp-service-thaw-notify" title="gupnp_service_thaw_notify ()"><code class="function">gupnp_service_thaw_notify()</code></a>
-is called.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-service-freeze-notify"></a><h3>gupnp_service_freeze_notify ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gupnp_service_freeze_notify (<em class="parameter"><code><a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a> *service</code></em>);</pre>
+<p>Causes new notifications to be queued up until <a class="link" href="GUPnPService.html#gupnp-service-thaw-notify" title="gupnp_service_thaw_notify ()"><code class="function">gupnp_service_thaw_notify()</code></a>
+is called.</p>
+<div class="refsect3">
+<a name="id-1.3.4.4.10.20.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>service</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a>
-</td>
+<td class="parameter_name"><p>service</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr></tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-service-thaw-notify"></a><h3>gupnp_service_thaw_notify ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gupnp_service_thaw_notify           (<em class="parameter"><code><a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a> *service</code></em>);</pre>
-<p>
-Sends out any pending notifications, and stops queuing of new ones.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-service-thaw-notify"></a><h3>gupnp_service_thaw_notify ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gupnp_service_thaw_notify (<em class="parameter"><code><a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a> *service</code></em>);</pre>
+<p>Sends out any pending notifications, and stops queuing of new ones.</p>
+<div class="refsect3">
+<a name="id-1.3.4.4.10.21.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>service</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a>
-</td>
+<td class="parameter_name"><p>service</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr></tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-service-signals-autoconnect"></a><h3>gupnp_service_signals_autoconnect ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gupnp_service_signals_autoconnect   (<em class="parameter"><code><a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a> *service</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
-<p>
-A convenience function that attempts to connect all possible
-<a class="link" href="GUPnPService.html#GUPnPService-action-invoked" title='The "action-invoked" signal'><span class="type">"action-invoked"</span></a> and <a class="link" href="GUPnPService.html#GUPnPService-query-variable" title='The "query-variable" signal'><span class="type">"query-variable"</span></a> signals to
-appropriate callbacks for the service <em class="parameter"><code>service</code></em>. It uses service introspection
+<a name="gupnp-service-signals-autoconnect"></a><h3>gupnp_service_signals_autoconnect ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gupnp_service_signals_autoconnect (<em class="parameter"><code><a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a> *service</code></em>,
+                                   <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                   <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<p>A convenience function that attempts to connect all possible
+<a class="link" href="GUPnPService.html#GUPnPService-action-invoked" title="The “action-invoked” signal"><span class="type">“action-invoked”</span></a> and <a class="link" href="GUPnPService.html#GUPnPService-query-variable" title="The “query-variable” signal"><span class="type">“query-variable”</span></a> signals to
+appropriate callbacks for the service <em class="parameter"><code>service</code></em>
+. It uses service introspection
 and <a href="http://library.gnome.org/devel/glib/unstable/glib-Dynamic-Loading-of-Modules.html#GModule"><span class="type">GModule</span></a>'s introspective features. It is very simillar to
-<a href="http://developer.gnome.org/gtk2/GtkBuilder.html#gtk-builder-connect-signals"><code class="function">gtk_builder_connect_signals()</code></a> except that it attempts to guess the names of
-the signal handlers on its own.
-</p>
-<p>
-For this function to do its magic, the application must name the callback
-functions for <a class="link" href="GUPnPService.html#GUPnPService-action-invoked" title='The "action-invoked" signal'><span class="type">"action-invoked"</span></a> signals by striping the CamelCase
+<a href="http://library.gnome.org/devel/gtk3/GtkBuilder.html#gtk-builder-connect-signals"><code class="function">gtk_builder_connect_signals()</code></a> except that it attempts to guess the names of
+the signal handlers on its own.</p>
+<p>For this function to do its magic, the application must name the callback
+functions for <a class="link" href="GUPnPService.html#GUPnPService-action-invoked" title="The “action-invoked” signal"><span class="type">“action-invoked”</span></a> signals by striping the CamelCase
 off the action names and either prepend "on_" or append "_cb" to them. Same
-goes for <a class="link" href="GUPnPService.html#GUPnPService-query-variable" title='The "query-variable" signal'><span class="type">"query-variable"</span></a> signals, except that "query_" should
+goes for <a class="link" href="GUPnPService.html#GUPnPService-query-variable" title="The “query-variable” signal"><span class="type">“query-variable”</span></a> signals, except that "query_" should
 be prepended to the variable name. For example, callback function for
 <code class="varname">GetSystemUpdateID</code> action should be either named as
 "get_system_update_id_cb" or "on_get_system_update_id" and callback function
 for the query of "SystemUpdateID" state variable should be named
 <code class="function">query_system_update_id_cb</code> or
-<code class="function">on_query_system_update_id</code>.
-</p>
-<p>
-</p>
-<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
-<h3 class="title">Note</h3>This function will not work correctly if <a href="http://library.gnome.org/devel/glib/unstable/glib-Dynamic-Loading-of-Modules.html#GModule"><span class="type">GModule</span></a> is not supported
+<code class="function">on_query_system_update_id</code>.</p>
+<div class="note">This function will not work correctly if <a href="http://library.gnome.org/devel/glib/unstable/glib-Dynamic-Loading-of-Modules.html#GModule"><span class="type">GModule</span></a> is not supported
 on the platform or introspection is not available for <em class="parameter"><code>service</code></em>.</div>
-<p>
-</p>
-<p>
-</p>
-<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
-<h3 class="title">Warning</h3>This function can not and therefore does not guarantee that the
+<div class="warning">This function can not and therefore does not guarantee that the
 resulting signal connections will be correct as it depends heavily on a
 particular naming schemes described above.</div>
-<p>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<div class="refsect3">
+<a name="id-1.3.4.4.10.22.8"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>service</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a>
-</td>
+<td class="parameter_name"><p>service</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>the data to pass to each of the callbacks</td>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>the data to pass to each of the callbacks</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
-<td>return location for a <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
-</td>
+<td class="parameter_name"><p>error</p></td>
+<td class="parameter_description"><p>return location for a <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
 </div>
+</div>
+<div class="refsect1">
+<a name="GUPnPService.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GUPnPService-struct"></a><h3>GUPnPService</h3>
+<pre class="programlisting">typedef struct _GUPnPService GUPnPService;</pre>
+<p>This struct contains private data only, and should be accessed using the
+functions below.</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GUPnPServiceAction-struct"></a><h3>GUPnPServiceAction</h3>
+<pre class="programlisting">typedef struct _GUPnPServiceAction GUPnPServiceAction;</pre>
+<p>Opaque structure for holding in-progress action data.</p>
+</div>
+</div>
 <div class="refsect1">
 <a name="GUPnPService.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
-<a name="GUPnPService--root-device"></a><h3>The <code class="literal">"root-device"</code> property</h3>
-<pre class="programlisting">  "root-device"              <a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a>*      : Read / Write / Construct Only</pre>
-<p>
-The containing <a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a>.
-</p>
+<a name="GUPnPService--root-device"></a><h3>The <code class="literal">“root-device”</code> property</h3>
+<pre class="programlisting">  “root-device”              <a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a> *</pre>
+<p>The containing <a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a>.</p>
+<p>Flags: Read / Write / Construct Only</p>
 </div>
 </div>
 <div class="refsect1">
 <a name="GUPnPService.signal-details"></a><h2>Signal Details</h2>
 <div class="refsect2">
-<a name="GUPnPService-action-invoked"></a><h3>The <code class="literal">"action-invoked"</code> signal</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a>       *service,
-                                                        <a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a> *action,
-                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>            user_data)      : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-DETAILED:CAPS"><code class="literal">Has Details</code></a></pre>
-<p>
-Emitted whenever an action is invoked. Handler should process
-<em class="parameter"><code>action</code></em> and must call either <a class="link" href="GUPnPService.html#gupnp-service-action-return" title="gupnp_service_action_return ()"><code class="function">gupnp_service_action_return()</code></a> or
-<a class="link" href="GUPnPService.html#gupnp-service-action-return-error" title="gupnp_service_action_return_error ()"><code class="function">gupnp_service_action_return_error()</code></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="GUPnPService-action-invoked"></a><h3>The <code class="literal">“action-invoked”</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+user_function (<a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a>       *service,
+               <a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a> *action,
+               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>            user_data)</pre>
+<p>Emitted whenever an action is invoked. Handler should process
+<em class="parameter"><code>action</code></em>
+ and must call either <a class="link" href="GUPnPService.html#gupnp-service-action-return" title="gupnp_service_action_return ()"><code class="function">gupnp_service_action_return()</code></a> or
+<a class="link" href="GUPnPService.html#gupnp-service-action-return-error" title="gupnp_service_action_return_error ()"><code class="function">gupnp_service_action_return_error()</code></a>.</p>
+<div class="refsect3">
+<a name="id-1.3.4.4.13.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>service</code></em> :</span></p></td>
-<td>The <a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a> that received the signal</td>
+<td class="parameter_name"><p>service</p></td>
+<td class="parameter_description"><p>The <a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a> that received the signal</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>action</code></em> :</span></p></td>
-<td>The invoked <a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a>
-</td>
+<td class="parameter_name"><p>action</p></td>
+<td class="parameter_description"><p>The invoked <a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>user data set when the signal handler was connected.</td>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<p>Flags: Has Details</p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="GUPnPService-notify-failed"></a><h3>The <code class="literal">"notify-failed"</code> signal</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a> *service,
-                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>      callback_url,
-                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>      reason,
-                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>      user_data)         : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
-<p>
-Emitted whenever notification of a client fails.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="GUPnPService-notify-failed"></a><h3>The <code class="literal">“notify-failed”</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+user_function (<a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a> *service,
+               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>      callback_url,
+               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>      reason,
+               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>      user_data)</pre>
+<p>Emitted whenever notification of a client fails.</p>
+<div class="refsect3">
+<a name="id-1.3.4.4.13.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>service</code></em> :</span></p></td>
-<td>The <a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a> that received the signal</td>
+<td class="parameter_name"><p>service</p></td>
+<td class="parameter_description"><p>The <a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a> that received the signal</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>callback_url</code></em> :</span></p></td>
-<td>A <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of callback URLs. <span class="annotation">[<acronym title="Override the parsed C type with given type"><span class="acronym">type</span></acronym> GList][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> SoupURI]</span>
-</td>
+<td class="parameter_name"><p>callback_url</p></td>
+<td class="parameter_description"><p>A <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of callback URLs. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> GList][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> SoupURI]</span></td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>reason</code></em> :</span></p></td>
-<td>A pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> describing why the notify failed. <span class="annotation">[<acronym title="Override the parsed C type with given type"><span class="acronym">type</span></acronym> GError]</span>
-</td>
+<td class="parameter_name"><p>reason</p></td>
+<td class="parameter_description"><p> A pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> describing why the notify failed. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> GError]</span></td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>user data set when the signal handler was connected.</td>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<p>Flags: Run Last</p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="GUPnPService-query-variable"></a><h3>The <code class="literal">"query-variable"</code> signal</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a> *service,
-                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>        *variable,
-                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>      value,
-                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>      user_data)      : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-DETAILED:CAPS"><code class="literal">Has Details</code></a></pre>
-<p>
-Emitted whenever <em class="parameter"><code>service</code></em> needs to know the value of <em class="parameter"><code>variable</code></em>.
-Handler should fill <em class="parameter"><code>value</code></em> with the value of <em class="parameter"><code>variable</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="GUPnPService-query-variable"></a><h3>The <code class="literal">“query-variable”</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+user_function (<a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a> *service,
+               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>        *variable,
+               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>      value,
+               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>      user_data)</pre>
+<p>Emitted whenever <em class="parameter"><code>service</code></em>
+ needs to know the value of <em class="parameter"><code>variable</code></em>
+.
+Handler should fill <em class="parameter"><code>value</code></em>
+ with the value of <em class="parameter"><code>variable</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.3.4.4.13.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>service</code></em> :</span></p></td>
-<td>The <a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a> that received the signal</td>
+<td class="parameter_name"><p>service</p></td>
+<td class="parameter_description"><p>The <a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a> that received the signal</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>variable</code></em> :</span></p></td>
-<td>The variable that is being queried</td>
+<td class="parameter_name"><p>variable</p></td>
+<td class="parameter_description"><p>The variable that is being queried</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>The location of the <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> of the variable. <span class="annotation">[<acronym title="Override the parsed C type with given type"><span class="acronym">type</span></acronym> GValue][<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p>The location of the <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> of the variable. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> GValue][<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>]</span></td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>user data set when the signal handler was connected.</td>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<p>Flags: Has Details</p>
+</div>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index c58f52a..2a5d20a 100644 (file)
@@ -2,34 +2,28 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GUPnPServiceInfo</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>GUPnP Reference Manual: GUPnPServiceInfo</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GUPnP Reference Manual">
 <link rel="up" href="api-device-info.html" title="Device Information">
 <link rel="prev" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo">
 <link rel="next" href="gupnp-gupnp-service-introspection.html" title="GUPnPServiceIntrospection">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="GUPnPDeviceInfo.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="api-device-info.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GUPnP Reference Manual</th>
-<td><a accesskey="n" href="gupnp-gupnp-service-introspection.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#GUPnPServiceInfo.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#GUPnPServiceInfo.description" class="shortcut">Description</a>
-                   | 
-                  <a href="#GUPnPServiceInfo.object-hierarchy" class="shortcut">Object Hierarchy</a>
-                   | 
-                  <a href="#GUPnPServiceInfo.properties" class="shortcut">Properties</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
+                  <a href="#GUPnPServiceInfo.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+                  <a href="#GUPnPServiceInfo.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> 
+                  <a href="#GUPnPServiceInfo.properties" class="shortcut">Properties</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="api-device-info.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="GUPnPDeviceInfo.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gupnp-gupnp-service-introspection.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="GUPnPServiceInfo"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
 <h2><span class="refentrytitle"><a name="GUPnPServiceInfo.top_of_page"></a>GUPnPServiceInfo</span></h2>
 <p>GUPnPServiceInfo — Base abstract class for querying service information.</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="GUPnPServiceInfo.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">struct              <a class="link" href="GUPnPServiceInfo.html#GUPnPServiceInfo-struct" title="struct GUPnPServiceInfo">GUPnPServiceInfo</a>;
-<span class="returnvalue">void</span>                (<a class="link" href="GUPnPServiceInfo.html#GUPnPServiceIntrospectionCallback" title="GUPnPServiceIntrospectionCallback ()">*GUPnPServiceIntrospectionCallback</a>)
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a> *info</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection"><span class="type">GUPnPServiceIntrospection</span></a> *introspection</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> *error</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
-<a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="returnvalue">GUPnPContext</span></a> *      <a class="link" href="GUPnPServiceInfo.html#gupnp-service-info-get-context" title="gupnp_service_info_get_context ()">gupnp_service_info_get_context</a>      (<em class="parameter"><code><a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a> *info</code></em>);
-const <span class="returnvalue">char</span> *        <a class="link" href="GUPnPServiceInfo.html#gupnp-service-info-get-location" title="gupnp_service_info_get_location ()">gupnp_service_info_get_location</a>     (<em class="parameter"><code><a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a> *info</code></em>);
-const <a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupURI.html"><span class="returnvalue">SoupURI</span></a> *     <a class="link" href="GUPnPServiceInfo.html#gupnp-service-info-get-url-base" title="gupnp_service_info_get_url_base ()">gupnp_service_info_get_url_base</a>     (<em class="parameter"><code><a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a> *info</code></em>);
-const <span class="returnvalue">char</span> *        <a class="link" href="GUPnPServiceInfo.html#gupnp-service-info-get-udn" title="gupnp_service_info_get_udn ()">gupnp_service_info_get_udn</a>          (<em class="parameter"><code><a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a> *info</code></em>);
-const <span class="returnvalue">char</span> *        <a class="link" href="GUPnPServiceInfo.html#gupnp-service-info-get-service-type" title="gupnp_service_info_get_service_type ()">gupnp_service_info_get_service_type</a> (<em class="parameter"><code><a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a> *info</code></em>);
-<span class="returnvalue">char</span> *              <a class="link" href="GUPnPServiceInfo.html#gupnp-service-info-get-id" title="gupnp_service_info_get_id ()">gupnp_service_info_get_id</a>           (<em class="parameter"><code><a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a> *info</code></em>);
-<span class="returnvalue">char</span> *              <a class="link" href="GUPnPServiceInfo.html#gupnp-service-info-get-scpd-url" title="gupnp_service_info_get_scpd_url ()">gupnp_service_info_get_scpd_url</a>     (<em class="parameter"><code><a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a> *info</code></em>);
-<span class="returnvalue">char</span> *              <a class="link" href="GUPnPServiceInfo.html#gupnp-service-info-get-control-url" title="gupnp_service_info_get_control_url ()">gupnp_service_info_get_control_url</a>  (<em class="parameter"><code><a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a> *info</code></em>);
-<span class="returnvalue">char</span> *              <a class="link" href="GUPnPServiceInfo.html#gupnp-service-info-get-event-subscription-url" title="gupnp_service_info_get_event_subscription_url ()">gupnp_service_info_get_event_subscription_url</a>
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a> *info</code></em>);
-<a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection"><span class="returnvalue">GUPnPServiceIntrospection</span></a> * <a class="link" href="GUPnPServiceInfo.html#gupnp-service-info-get-introspection" title="gupnp_service_info_get_introspection ()">gupnp_service_info_get_introspection</a>
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a> *info</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GUPnPServiceInfo.html#gupnp-service-info-get-introspection-async" title="gupnp_service_info_get_introspection_async ()">gupnp_service_info_get_introspection_async</a>
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a> *info</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GUPnPServiceInfo.html#GUPnPServiceIntrospectionCallback" title="GUPnPServiceIntrospectionCallback ()"><span class="type">GUPnPServiceIntrospectionCallback</span></a> callback</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
-</pre>
-</div>
-<div class="refsect1">
-<a name="GUPnPServiceInfo.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="synopsis">
-  <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-   +----GUPnPServiceInfo
-         +----<a class="link" href="GUPnPService.html" title="GUPnPService">GUPnPService</a>
-         +----<a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy">GUPnPServiceProxy</a>
-</pre>
-</div>
-<div class="refsect1">
-<a name="GUPnPServiceInfo.properties"></a><h2>Properties</h2>
-<pre class="synopsis">
-  "<a class="link" href="GUPnPServiceInfo.html#GUPnPServiceInfo--context" title='The "context" property'>context</a>"                  <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a>*         : Read / Write / Construct Only
-  "<a class="link" href="GUPnPServiceInfo.html#GUPnPServiceInfo--document" title='The "document" property'>document</a>"                 <a class="link" href="GUPnPXMLDoc.html" title="GUPnPXMLDoc"><span class="type">GUPnPXMLDoc</span></a>*          : Write / Construct Only
-  "<a class="link" href="GUPnPServiceInfo.html#GUPnPServiceInfo--element" title='The "element" property'>element</a>"                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>              : Write / Construct Only
-  "<a class="link" href="GUPnPServiceInfo.html#GUPnPServiceInfo--location" title='The "location" property'>location</a>"                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write / Construct Only
-  "<a class="link" href="GUPnPServiceInfo.html#GUPnPServiceInfo--service-type" title='The "service-type" property'>service-type</a>"             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write / Construct Only
-  "<a class="link" href="GUPnPServiceInfo.html#GUPnPServiceInfo--udn" title='The "udn" property'>udn</a>"                      <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write / Construct Only
-  "<a class="link" href="GUPnPServiceInfo.html#GUPnPServiceInfo--url-base" title='The "url-base" property'>url-base</a>"                 <a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupURI.html"><span class="type">SoupURI</span></a>*              : Read / Write / Construct Only
-</pre>
-</div>
 <div class="refsect1">
-<a name="GUPnPServiceInfo.description"></a><h2>Description</h2>
-<p>
-The <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> base abstract class provides methods for querying
-service information.
-</p>
-</div>
-<div class="refsect1">
-<a name="GUPnPServiceInfo.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="GUPnPServiceInfo-struct"></a><h3>struct GUPnPServiceInfo</h3>
-<pre class="programlisting">struct GUPnPServiceInfo;</pre>
-<p>
-This struct contains private data only, and should be accessed using the
-functions below.
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GUPnPServiceIntrospectionCallback"></a><h3>GUPnPServiceIntrospectionCallback ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                (*GUPnPServiceIntrospectionCallback)
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a> *info</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection"><span class="type">GUPnPServiceIntrospection</span></a> *introspection</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> *error</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
-<p>
-Callback notifying that <em class="parameter"><code>introspection</code></em> for <em class="parameter"><code>info</code></em> has been obtained.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="GUPnPServiceInfo.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
-<td>The <a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a> introspection was requested for</td>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<span class="c_punctuation">(</span><a class="link" href="GUPnPServiceInfo.html#GUPnPServiceIntrospectionCallback" title="GUPnPServiceIntrospectionCallback ()">*GUPnPServiceIntrospectionCallback</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
+</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>introspection</code></em> :</span></p></td>
-<td>The new <a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection"><span class="type">GUPnPServiceIntrospection</span></a> object, or NULL</td>
+<td class="function_type">
+<a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="returnvalue">GUPnPContext</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPServiceInfo.html#gupnp-service-info-get-context" title="gupnp_service_info_get_context ()">gupnp_service_info_get_context</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
-<td>The <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> that occurred, or NULL</td>
+<td class="function_type">const <span class="returnvalue">char</span> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPServiceInfo.html#gupnp-service-info-get-location" title="gupnp_service_info_get_location ()">gupnp_service_info_get_location</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>User data</td>
+<td class="function_type">const <a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupURI.html"><span class="returnvalue">SoupURI</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPServiceInfo.html#gupnp-service-info-get-url-base" title="gupnp_service_info_get_url_base ()">gupnp_service_info_get_url_base</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gupnp-service-info-get-context"></a><h3>gupnp_service_info_get_context ()</h3>
-<pre class="programlisting"><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="returnvalue">GUPnPContext</span></a> *      gupnp_service_info_get_context      (<em class="parameter"><code><a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a> *info</code></em>);</pre>
-<p>
-Get the <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> associated with <em class="parameter"><code>info</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a>
+<td class="function_type">const <span class="returnvalue">char</span> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPServiceInfo.html#gupnp-service-info-get-udn" title="gupnp_service_info_get_udn ()">gupnp_service_info_get_udn</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+<td class="function_type">const <span class="returnvalue">char</span> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPServiceInfo.html#gupnp-service-info-get-service-type" title="gupnp_service_info_get_service_type ()">gupnp_service_info_get_service_type</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gupnp-service-info-get-location"></a><h3>gupnp_service_info_get_location ()</h3>
-<pre class="programlisting">const <span class="returnvalue">char</span> *        gupnp_service_info_get_location     (<em class="parameter"><code><a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a> *info</code></em>);</pre>
-<p>
-Get the location of the device description file.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a>
+<td class="function_type">
+<span class="returnvalue">char</span> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPServiceInfo.html#gupnp-service-info-get-id" title="gupnp_service_info_get_id ()">gupnp_service_info_get_id</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A constant string.</td>
+<td class="function_type">
+<span class="returnvalue">char</span> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPServiceInfo.html#gupnp-service-info-get-scpd-url" title="gupnp_service_info_get_scpd_url ()">gupnp_service_info_get_scpd_url</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gupnp-service-info-get-url-base"></a><h3>gupnp_service_info_get_url_base ()</h3>
-<pre class="programlisting">const <a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupURI.html"><span class="returnvalue">SoupURI</span></a> *     gupnp_service_info_get_url_base     (<em class="parameter"><code><a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a> *info</code></em>);</pre>
-<p>
-Get the URL base of this service.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a>
+<td class="function_type">
+<span class="returnvalue">char</span> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPServiceInfo.html#gupnp-service-info-get-control-url" title="gupnp_service_info_get_control_url ()">gupnp_service_info_get_control_url</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A constant <a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupURI.html"><span class="type">SoupURI</span></a>.</td>
+<td class="function_type">
+<span class="returnvalue">char</span> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPServiceInfo.html#gupnp-service-info-get-event-subscription-url" title="gupnp_service_info_get_event_subscription_url ()">gupnp_service_info_get_event_subscription_url</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gupnp-service-info-get-udn"></a><h3>gupnp_service_info_get_udn ()</h3>
-<pre class="programlisting">const <span class="returnvalue">char</span> *        gupnp_service_info_get_udn          (<em class="parameter"><code><a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a> *info</code></em>);</pre>
-<p>
-Get the Unique Device Name of the containing device.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a>
+<td class="function_type">
+<a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection"><span class="returnvalue">GUPnPServiceIntrospection</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPServiceInfo.html#gupnp-service-info-get-introspection" title="gupnp_service_info_get_introspection ()">gupnp_service_info_get_introspection</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A constant string.</td>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPServiceInfo.html#gupnp-service-info-get-introspection-async" title="gupnp_service_info_get_introspection_async ()">gupnp_service_info_get_introspection_async</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPServiceInfo.html#gupnp-service-info-get-introspection-async-full" title="gupnp_service_info_get_introspection_async_full ()">gupnp_service_info_get_introspection_async_full</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
 </tbody>
 </table></div>
 </div>
-<hr>
-<div class="refsect2">
-<a name="gupnp-service-info-get-service-type"></a><h3>gupnp_service_info_get_service_type ()</h3>
-<pre class="programlisting">const <span class="returnvalue">char</span> *        gupnp_service_info_get_service_type (<em class="parameter"><code><a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a> *info</code></em>);</pre>
-<p>
-Get the UPnP service type, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<div class="refsect1">
+<a name="GUPnPServiceInfo.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table border="0">
+<colgroup>
+<col width="150px" class="properties_type">
+<col width="300px" class="properties_name">
+<col width="200px" class="properties_flags">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a>
-</td>
+<td class="property_type">
+<a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *</td>
+<td class="property_name"><a class="link" href="GUPnPServiceInfo.html#GUPnPServiceInfo--context" title="The “context” property">context</a></td>
+<td class="property_flags">Read / Write / Construct Only</td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A constant string.</td>
+<td class="property_type">
+<a class="link" href="GUPnPXMLDoc.html" title="GUPnPXMLDoc"><span class="type">GUPnPXMLDoc</span></a> *</td>
+<td class="property_name"><a class="link" href="GUPnPServiceInfo.html#GUPnPServiceInfo--document" title="The “document” property">document</a></td>
+<td class="property_flags">Write / Construct Only</td>
 </tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gupnp-service-info-get-id"></a><h3>gupnp_service_info_get_id ()</h3>
-<pre class="programlisting"><span class="returnvalue">char</span> *              gupnp_service_info_get_id           (<em class="parameter"><code><a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a> *info</code></em>);</pre>
-<p>
-Get the ID of this service, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if there is no ID.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a>
-</td>
+<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a></td>
+<td class="property_name"><a class="link" href="GUPnPServiceInfo.html#GUPnPServiceInfo--element" title="The “element” property">element</a></td>
+<td class="property_flags">Write / Construct Only</td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A string. This string should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after use.</td>
+<td class="property_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<td class="property_name"><a class="link" href="GUPnPServiceInfo.html#GUPnPServiceInfo--location" title="The “location” property">location</a></td>
+<td class="property_flags">Read / Write / Construct Only</td>
 </tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gupnp-service-info-get-scpd-url"></a><h3>gupnp_service_info_get_scpd_url ()</h3>
-<pre class="programlisting"><span class="returnvalue">char</span> *              gupnp_service_info_get_scpd_url     (<em class="parameter"><code><a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a> *info</code></em>);</pre>
-<p>
-Get the SCPD URL for this service, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if there is no SCPD.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a>
-</td>
+<td class="property_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<td class="property_name"><a class="link" href="GUPnPServiceInfo.html#GUPnPServiceInfo--service-type" title="The “service-type” property">service-type</a></td>
+<td class="property_flags">Read / Write / Construct Only</td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A string. This string should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after use.</td>
+<td class="property_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<td class="property_name"><a class="link" href="GUPnPServiceInfo.html#GUPnPServiceInfo--udn" title="The “udn” property">udn</a></td>
+<td class="property_flags">Read / Write / Construct Only</td>
+</tr>
+<tr>
+<td class="property_type">
+<a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupURI.html"><span class="type">SoupURI</span></a> *</td>
+<td class="property_name"><a class="link" href="GUPnPServiceInfo.html#GUPnPServiceInfo--url-base" title="The “url-base” property">url-base</a></td>
+<td class="property_flags">Read / Write / Construct Only</td>
 </tr>
 </tbody>
 </table></div>
 </div>
-<hr>
+<div class="refsect1">
+<a name="GUPnPServiceInfo.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="GUPnPServiceInfo.html#GUPnPServiceInfo-struct" title="struct GUPnPServiceInfo">GUPnPServiceInfo</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="GUPnPServiceInfo.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> GUPnPServiceInfo
+        <span class="lineart">├──</span> <a class="link" href="GUPnPService.html" title="GUPnPService">GUPnPService</a>
+        <span class="lineart">╰──</span> <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy">GUPnPServiceProxy</a>
+</pre>
+</div>
+<div class="refsect1">
+<a name="GUPnPServiceInfo.description"></a><h2>Description</h2>
+<p>The <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a> base abstract class provides methods for querying
+service information.</p>
+</div>
+<div class="refsect1">
+<a name="GUPnPServiceInfo.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
-<a name="gupnp-service-info-get-control-url"></a><h3>gupnp_service_info_get_control_url ()</h3>
-<pre class="programlisting"><span class="returnvalue">char</span> *              gupnp_service_info_get_control_url  (<em class="parameter"><code><a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a> *info</code></em>);</pre>
-<p>
-Get the control URL for this service, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>..
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="GUPnPServiceIntrospectionCallback"></a><h3>GUPnPServiceIntrospectionCallback ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+<span class="c_punctuation">(</span>*GUPnPServiceIntrospectionCallback<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a> *info</code></em>,
+                                      <em class="parameter"><code><a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection"><span class="type">GUPnPServiceIntrospection</span></a> *introspection</code></em>,
+                                      <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> *error</code></em>,
+                                      <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
+<p>Callback notifying that <em class="parameter"><code>introspection</code></em>
+ for <em class="parameter"><code>info</code></em>
+ has been obtained.</p>
+<div class="refsect3">
+<a name="id-1.3.2.3.8.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a>
-</td>
+<td class="parameter_name"><p>info</p></td>
+<td class="parameter_description"><p>The <a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a> introspection was requested for</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A string. This string should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after use.</td>
+<td class="parameter_name"><p>introspection</p></td>
+<td class="parameter_description"><p>The new <a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection"><span class="type">GUPnPServiceIntrospection</span></a> object, or NULL</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>error</p></td>
+<td class="parameter_description"><p>The <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> that occurred, or NULL</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>User data</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-service-info-get-context"></a><h3>gupnp_service_info_get_context ()</h3>
+<pre class="programlisting"><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="returnvalue">GUPnPContext</span></a> *
+gupnp_service_info_get_context (<em class="parameter"><code><a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a> *info</code></em>);</pre>
+<p>Get the <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> associated with <em class="parameter"><code>info</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.3.2.3.8.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>info</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.2.3.8.3.6"></a><h4>Returns</h4>
+<p> A <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a>. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-service-info-get-event-subscription-url"></a><h3>gupnp_service_info_get_event_subscription_url ()</h3>
-<pre class="programlisting"><span class="returnvalue">char</span> *              gupnp_service_info_get_event_subscription_url
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a> *info</code></em>);</pre>
-<p>
-Get the event subscription URL for this service, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-service-info-get-location"></a><h3>gupnp_service_info_get_location ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> *
+gupnp_service_info_get_location (<em class="parameter"><code><a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a> *info</code></em>);</pre>
+<p>Get the location of the device description file.</p>
+<div class="refsect3">
+<a name="id-1.3.2.3.8.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>info</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.2.3.8.4.6"></a><h4>Returns</h4>
+<p> A constant string.</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-service-info-get-url-base"></a><h3>gupnp_service_info_get_url_base ()</h3>
+<pre class="programlisting">const <a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupURI.html"><span class="returnvalue">SoupURI</span></a> *
+gupnp_service_info_get_url_base (<em class="parameter"><code><a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a> *info</code></em>);</pre>
+<p>Get the URL base of this service.</p>
+<div class="refsect3">
+<a name="id-1.3.2.3.8.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>info</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.2.3.8.5.6"></a><h4>Returns</h4>
+<p> A constant <a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupURI.html"><span class="type">SoupURI</span></a>.</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-service-info-get-udn"></a><h3>gupnp_service_info_get_udn ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> *
+gupnp_service_info_get_udn (<em class="parameter"><code><a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a> *info</code></em>);</pre>
+<p>Get the Unique Device Name of the containing device.</p>
+<div class="refsect3">
+<a name="id-1.3.2.3.8.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>info</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.2.3.8.6.6"></a><h4>Returns</h4>
+<p> A constant string.</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-service-info-get-service-type"></a><h3>gupnp_service_info_get_service_type ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> *
+gupnp_service_info_get_service_type (<em class="parameter"><code><a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a> *info</code></em>);</pre>
+<p>Get the UPnP service type, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
+<div class="refsect3">
+<a name="id-1.3.2.3.8.7.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>info</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.2.3.8.7.6"></a><h4>Returns</h4>
+<p> A constant string.</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-service-info-get-id"></a><h3>gupnp_service_info_get_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">char</span> *
+gupnp_service_info_get_id (<em class="parameter"><code><a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a> *info</code></em>);</pre>
+<p>Get the ID of this service, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if there is no ID.</p>
+<div class="refsect3">
+<a name="id-1.3.2.3.8.8.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>info</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.2.3.8.8.6"></a><h4>Returns</h4>
+<p> A string. This string should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after use.</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-service-info-get-scpd-url"></a><h3>gupnp_service_info_get_scpd_url ()</h3>
+<pre class="programlisting"><span class="returnvalue">char</span> *
+gupnp_service_info_get_scpd_url (<em class="parameter"><code><a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a> *info</code></em>);</pre>
+<p>Get the SCPD URL for this service, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if there is no SCPD.</p>
+<div class="refsect3">
+<a name="id-1.3.2.3.8.9.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>info</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.2.3.8.9.6"></a><h4>Returns</h4>
+<p> A string. This string should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after use.</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-service-info-get-control-url"></a><h3>gupnp_service_info_get_control_url ()</h3>
+<pre class="programlisting"><span class="returnvalue">char</span> *
+gupnp_service_info_get_control_url (<em class="parameter"><code><a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a> *info</code></em>);</pre>
+<p>Get the control URL for this service, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>..</p>
+<div class="refsect3">
+<a name="id-1.3.2.3.8.10.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>info</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.2.3.8.10.6"></a><h4>Returns</h4>
+<p> A string. This string should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after use.</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-service-info-get-event-subscription-url"></a><h3>gupnp_service_info_get_event_subscription_url ()</h3>
+<pre class="programlisting"><span class="returnvalue">char</span> *
+gupnp_service_info_get_event_subscription_url
+                               (<em class="parameter"><code><a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a> *info</code></em>);</pre>
+<p>Get the event subscription URL for this service, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
+<div class="refsect3">
+<a name="id-1.3.2.3.8.11.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>info</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.2.3.8.11.6"></a><h4>Returns</h4>
+<p> A string. This string should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after use.</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-service-info-get-introspection"></a><h3>gupnp_service_info_get_introspection ()</h3>
+<pre class="programlisting"><a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection"><span class="returnvalue">GUPnPServiceIntrospection</span></a> *
+gupnp_service_info_get_introspection (<em class="parameter"><code><a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a> *info</code></em>,
+                                      <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<p>Note that introspection object is created from the information in service
+description document (SCPD) provided by the service so it can not be created
+if the service does not provide an SCPD.</p>
+<p>Warning: You  should use <a class="link" href="GUPnPServiceInfo.html#gupnp-service-info-get-introspection-async" title="gupnp_service_info_get_introspection_async ()"><code class="function">gupnp_service_info_get_introspection_async()</code></a>
+instead, this function re-enter the GMainloop before returning.</p>
+<div class="refsect3">
+<a name="id-1.3.2.3.8.12.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a>
-</td>
+<td class="parameter_name"><p>info</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A string. This string should be freed with <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after use.</td>
+<td class="parameter_name"><p>error</p></td>
+<td class="parameter_description"><p>return location for a <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.2.3.8.12.7"></a><h4>Returns</h4>
+<p>  A new <a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection"><span class="type">GUPnPServiceIntrospection</span></a> for this
+service or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Unref after use. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-service-info-get-introspection"></a><h3>gupnp_service_info_get_introspection ()</h3>
-<pre class="programlisting"><a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection"><span class="returnvalue">GUPnPServiceIntrospection</span></a> * gupnp_service_info_get_introspection
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a> *info</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
-<p>
-Note that introspection object is created from the information in service
+<a name="gupnp-service-info-get-introspection-async"></a><h3>gupnp_service_info_get_introspection_async ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gupnp_service_info_get_introspection_async
+                               (<em class="parameter"><code><a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a> *info</code></em>,
+                                <em class="parameter"><code><a class="link" href="GUPnPServiceInfo.html#GUPnPServiceIntrospectionCallback" title="GUPnPServiceIntrospectionCallback ()"><span class="type">GUPnPServiceIntrospectionCallback</span></a> callback</code></em>,
+                                <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
+<p>Note that introspection object is created from the information in service
 description document (SCPD) provided by the service so it can not be created
-if the service does not provide an SCPD.
-</p>
-<p>
-Warning: You  should use <a class="link" href="GUPnPServiceInfo.html#gupnp-service-info-get-introspection-async" title="gupnp_service_info_get_introspection_async ()"><code class="function">gupnp_service_info_get_introspection_async()</code></a>
-instead, this function re-enter the GMainloop before returning.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+if the service does not provide an SCPD.</p>
+<div class="refsect3">
+<a name="id-1.3.2.3.8.13.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a>
-</td>
+<td class="parameter_name"><p>info</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
-<td>return location for a <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
-</td>
+<td class="parameter_name"><p>callback</p></td>
+<td class="parameter_description"><p>(scope async) : callback to be called when introspection object is ready.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A new <a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection"><span class="type">GUPnPServiceIntrospection</span></a> for this
-service or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Unref after use. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>user_data to be passed to the callback.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-service-info-get-introspection-async"></a><h3>gupnp_service_info_get_introspection_async ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gupnp_service_info_get_introspection_async
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a> *info</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GUPnPServiceInfo.html#GUPnPServiceIntrospectionCallback" title="GUPnPServiceIntrospectionCallback ()"><span class="type">GUPnPServiceIntrospectionCallback</span></a> callback</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
-<p>
-Note that introspection object is created from the information in service
+<a name="gupnp-service-info-get-introspection-async-full"></a><h3>gupnp_service_info_get_introspection_async_full ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gupnp_service_info_get_introspection_async_full
+                               (<em class="parameter"><code><a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a> *info</code></em>,
+                                <em class="parameter"><code><a class="link" href="GUPnPServiceInfo.html#GUPnPServiceIntrospectionCallback" title="GUPnPServiceIntrospectionCallback ()"><span class="type">GUPnPServiceIntrospectionCallback</span></a> callback</code></em>,
+                                <em class="parameter"><code><a href="http://library.gnome.org/devel/gio/unstable/GCancellable.html"><span class="type">GCancellable</span></a> *cancellable</code></em>,
+                                <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
+<p>Note that introspection object is created from the information in service
 description document (SCPD) provided by the service so it can not be created
-if the service does not provide an SCPD.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+if the service does not provide an SCPD.</p>
+<p>If <em class="parameter"><code>cancellable</code></em>
+ is used to cancel the call, <em class="parameter"><code>callback</code></em>
+ will be called with
+error code <code class="literal">G_IO_ERROR_CANCELLED</code>.</p>
+<div class="refsect3">
+<a name="id-1.3.2.3.8.14.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a>
-</td>
+<td class="parameter_name"><p>info</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>callback</p></td>
+<td class="parameter_description"><p>(scope async) : callback to be called when introspection object is ready.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
-<td>(scope async) : callback to be called when introspection object is ready.</td>
+<td class="parameter_name"><p>cancellable</p></td>
+<td class="parameter_description"><p>GCancellable that can be used to cancel the call, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>user_data to be passed to the callback.</td>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>user_data to be passed to the callback.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<p class="since">Since 0.20.9.</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="GUPnPServiceInfo.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GUPnPServiceInfo-struct"></a><h3>struct GUPnPServiceInfo</h3>
+<pre class="programlisting">struct GUPnPServiceInfo;</pre>
+<p>This struct contains private data only, and should be accessed using the
+functions below.</p>
+</div>
 </div>
 <div class="refsect1">
 <a name="GUPnPServiceInfo.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
-<a name="GUPnPServiceInfo--context"></a><h3>The <code class="literal">"context"</code> property</h3>
-<pre class="programlisting">  "context"                  <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a>*         : Read / Write / Construct Only</pre>
-<p>
-The <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> to use.
-</p>
+<a name="GUPnPServiceInfo--context"></a><h3>The <code class="literal">“context”</code> property</h3>
+<pre class="programlisting">  “context”                  <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *</pre>
+<p>The <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> to use.</p>
+<p>Flags: Read / Write / Construct Only</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="GUPnPServiceInfo--document"></a><h3>The <code class="literal">"document"</code> property</h3>
-<pre class="programlisting">  "document"                 <a class="link" href="GUPnPXMLDoc.html" title="GUPnPXMLDoc"><span class="type">GUPnPXMLDoc</span></a>*          : Write / Construct Only</pre>
-<p>
-Private property.
-</p>
+<a name="GUPnPServiceInfo--document"></a><h3>The <code class="literal">“document”</code> property</h3>
+<pre class="programlisting">  “document”                 <a class="link" href="GUPnPXMLDoc.html" title="GUPnPXMLDoc"><span class="type">GUPnPXMLDoc</span></a> *</pre>
+<p>Private property.</p>
+<p>Flags: Write / Construct Only</p>
 <p class="stability">Stability Level: Private</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="GUPnPServiceInfo--element"></a><h3>The <code class="literal">"element"</code> property</h3>
-<pre class="programlisting">  "element"                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>              : Write / Construct Only</pre>
-<p>
-Private property.
-</p>
+<a name="GUPnPServiceInfo--element"></a><h3>The <code class="literal">“element”</code> property</h3>
+<pre class="programlisting">  “element”                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a></pre>
+<p>Private property.</p>
+<p>Flags: Write / Construct Only</p>
 <p class="stability">Stability Level: Private</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="GUPnPServiceInfo--location"></a><h3>The <code class="literal">"location"</code> property</h3>
-<pre class="programlisting">  "location"                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write / Construct Only</pre>
-<p>
-The location of the device description file.
-</p>
+<a name="GUPnPServiceInfo--location"></a><h3>The <code class="literal">“location”</code> property</h3>
+<pre class="programlisting">  “location”                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<p>The location of the device description file.</p>
+<p>Flags: Read / Write / Construct Only</p>
 <p>Default value: NULL</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="GUPnPServiceInfo--service-type"></a><h3>The <code class="literal">"service-type"</code> property</h3>
-<pre class="programlisting">  "service-type"             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write / Construct Only</pre>
-<p>
-The service type.
-</p>
+<a name="GUPnPServiceInfo--service-type"></a><h3>The <code class="literal">“service-type”</code> property</h3>
+<pre class="programlisting">  “service-type”             <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<p>The service type.</p>
+<p>Flags: Read / Write / Construct Only</p>
 <p>Default value: NULL</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="GUPnPServiceInfo--udn"></a><h3>The <code class="literal">"udn"</code> property</h3>
-<pre class="programlisting">  "udn"                      <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write / Construct Only</pre>
-<p>
-The UDN of the containing device.
-</p>
+<a name="GUPnPServiceInfo--udn"></a><h3>The <code class="literal">“udn”</code> property</h3>
+<pre class="programlisting">  “udn”                      <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<p>The UDN of the containing device.</p>
+<p>Flags: Read / Write / Construct Only</p>
 <p>Default value: NULL</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="GUPnPServiceInfo--url-base"></a><h3>The <code class="literal">"url-base"</code> property</h3>
-<pre class="programlisting">  "url-base"                 <a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupURI.html"><span class="type">SoupURI</span></a>*              : Read / Write / Construct Only</pre>
-<p>
-The URL base (<a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupURI.html"><span class="type">SoupURI</span></a>).
-</p>
+<a name="GUPnPServiceInfo--url-base"></a><h3>The <code class="literal">“url-base”</code> property</h3>
+<pre class="programlisting">  “url-base”                 <a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupURI.html"><span class="type">SoupURI</span></a> *</pre>
+<p>The URL base (<a href="/usr/share/gtk-doc/html/libsoup-2.4/SoupURI.html"><span class="type">SoupURI</span></a>).</p>
+<p>Flags: Read / Write / Construct Only</p>
 </div>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 9faf882..d928fcb 100644 (file)
@@ -2,36 +2,29 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GUPnPServiceProxy</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>GUPnP Reference Manual: GUPnPServiceProxy</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GUPnP Reference Manual">
 <link rel="up" href="api-device-control.html" title="Device Control">
 <link rel="prev" href="GUPnPDeviceProxy.html" title="GUPnPDeviceProxy">
 <link rel="next" href="api-device-impl.html" title="Device Implementation">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="GUPnPDeviceProxy.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="api-device-control.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GUPnP Reference Manual</th>
-<td><a accesskey="n" href="api-device-impl.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#GUPnPServiceProxy.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#GUPnPServiceProxy.description" class="shortcut">Description</a>
-                   | 
-                  <a href="#GUPnPServiceProxy.object-hierarchy" class="shortcut">Object Hierarchy</a>
-                   | 
-                  <a href="#GUPnPServiceProxy.properties" class="shortcut">Properties</a>
-                   | 
-                  <a href="#GUPnPServiceProxy.signals" class="shortcut">Signals</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
+                  <a href="#GUPnPServiceProxy.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+                  <a href="#GUPnPServiceProxy.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> 
+                  <a href="#GUPnPServiceProxy.properties" class="shortcut">Properties</a></span><span id="nav_signals"> <span class="dim">|</span> 
+                  <a href="#GUPnPServiceProxy.signals" class="shortcut">Signals</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="api-device-control.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="GUPnPDeviceProxy.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="api-device-impl.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="GUPnPServiceProxy"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
 <h2><span class="refentrytitle"><a name="GUPnPServiceProxy.top_of_page"></a>GUPnPServiceProxy</span></h2>
 <p>GUPnPServiceProxy — Proxy class for remote services.</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="GUPnPServiceProxy.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">struct              <a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxy-struct" title="struct GUPnPServiceProxy">GUPnPServiceProxy</a>;
-                    <a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction">GUPnPServiceProxyAction</a>;
-<span class="returnvalue">void</span>                (<a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyActionCallback" title="GUPnPServiceProxyActionCallback ()">*GUPnPServiceProxyActionCallback</a>)  (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="type">GUPnPServiceProxyAction</span></a> *action</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
-<span class="returnvalue">void</span>                (<a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyNotifyCallback" title="GUPnPServiceProxyNotifyCallback ()">*GUPnPServiceProxyNotifyCallback</a>)  (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *variable</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-send-action" title="gupnp_service_proxy_send_action ()">gupnp_service_proxy_send_action</a>     (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *action</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>,
-                                                         <em class="parameter"><code>...</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-send-action-valist" title="gupnp_service_proxy_send_action_valist ()">gupnp_service_proxy_send_action_valist</a>
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *action</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>,
-                                                         <em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-send-action-hash" title="gupnp_service_proxy_send_action_hash ()">gupnp_service_proxy_send_action_hash</a>
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *action</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> *in_hash</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> *out_hash</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-send-action-list" title="gupnp_service_proxy_send_action_list ()">gupnp_service_proxy_send_action_list</a>
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *action</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *in_names</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *in_values</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *out_names</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *out_types</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> **out_values</code></em>);
-<a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="returnvalue">GUPnPServiceProxyAction</span></a> * <a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-begin-action" title="gupnp_service_proxy_begin_action ()">gupnp_service_proxy_begin_action</a>
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *action</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyActionCallback" title="GUPnPServiceProxyActionCallback ()"><span class="type">GUPnPServiceProxyActionCallback</span></a> callback</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
-                                                         <em class="parameter"><code>...</code></em>);
-<a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="returnvalue">GUPnPServiceProxyAction</span></a> * <a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-begin-action-valist" title="gupnp_service_proxy_begin_action_valist ()">gupnp_service_proxy_begin_action_valist</a>
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *action</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyActionCallback" title="GUPnPServiceProxyActionCallback ()"><span class="type">GUPnPServiceProxyActionCallback</span></a> callback</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
-                                                         <em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);
-<a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="returnvalue">GUPnPServiceProxyAction</span></a> * <a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-begin-action-hash" title="gupnp_service_proxy_begin_action_hash ()">gupnp_service_proxy_begin_action_hash</a>
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *action</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyActionCallback" title="GUPnPServiceProxyActionCallback ()"><span class="type">GUPnPServiceProxyActionCallback</span></a> callback</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> *hash</code></em>);
-<a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="returnvalue">GUPnPServiceProxyAction</span></a> * <a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-begin-action-list" title="gupnp_service_proxy_begin_action_list ()">gupnp_service_proxy_begin_action_list</a>
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *action</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *in_names</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *in_values</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyActionCallback" title="GUPnPServiceProxyActionCallback ()"><span class="type">GUPnPServiceProxyActionCallback</span></a> callback</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-end-action" title="gupnp_service_proxy_end_action ()">gupnp_service_proxy_end_action</a>      (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="type">GUPnPServiceProxyAction</span></a> *action</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>,
-                                                         <em class="parameter"><code>...</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-end-action-valist" title="gupnp_service_proxy_end_action_valist ()">gupnp_service_proxy_end_action_valist</a>
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="type">GUPnPServiceProxyAction</span></a> *action</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>,
-                                                         <em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-end-action-hash" title="gupnp_service_proxy_end_action_hash ()">gupnp_service_proxy_end_action_hash</a> (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="type">GUPnPServiceProxyAction</span></a> *action</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> *hash</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-end-action-list" title="gupnp_service_proxy_end_action_list ()">gupnp_service_proxy_end_action_list</a> (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="type">GUPnPServiceProxyAction</span></a> *action</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *out_names</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *out_types</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> **out_values</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-cancel-action" title="gupnp_service_proxy_cancel_action ()">gupnp_service_proxy_cancel_action</a>   (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="type">GUPnPServiceProxyAction</span></a> *action</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-add-notify" title="gupnp_service_proxy_add_notify ()">gupnp_service_proxy_add_notify</a>      (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *variable</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyNotifyCallback" title="GUPnPServiceProxyNotifyCallback ()"><span class="type">GUPnPServiceProxyNotifyCallback</span></a> callback</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-remove-notify" title="gupnp_service_proxy_remove_notify ()">gupnp_service_proxy_remove_notify</a>   (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *variable</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyNotifyCallback" title="GUPnPServiceProxyNotifyCallback ()"><span class="type">GUPnPServiceProxyNotifyCallback</span></a> callback</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-set-subscribed" title="gupnp_service_proxy_set_subscribed ()">gupnp_service_proxy_set_subscribed</a>  (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> subscribed</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-get-subscribed" title="gupnp_service_proxy_get_subscribed ()">gupnp_service_proxy_get_subscribed</a>  (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>);
-</pre>
-</div>
 <div class="refsect1">
-<a name="GUPnPServiceProxy.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="synopsis">
-  <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-   +----<a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo">GUPnPServiceInfo</a>
-         +----GUPnPServiceProxy
-</pre>
+<a name="GUPnPServiceProxy.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<span class="c_punctuation">(</span><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyActionCallback" title="GUPnPServiceProxyActionCallback ()">*GUPnPServiceProxyActionCallback</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<span class="c_punctuation">(</span><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyNotifyCallback" title="GUPnPServiceProxyNotifyCallback ()">*GUPnPServiceProxyNotifyCallback</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-send-action" title="gupnp_service_proxy_send_action ()">gupnp_service_proxy_send_action</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-send-action-valist" title="gupnp_service_proxy_send_action_valist ()">gupnp_service_proxy_send_action_valist</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-send-action-hash" title="gupnp_service_proxy_send_action_hash ()">gupnp_service_proxy_send_action_hash</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-send-action-list" title="gupnp_service_proxy_send_action_list ()">gupnp_service_proxy_send_action_list</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="returnvalue">GUPnPServiceProxyAction</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-begin-action" title="gupnp_service_proxy_begin_action ()">gupnp_service_proxy_begin_action</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="returnvalue">GUPnPServiceProxyAction</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-begin-action-valist" title="gupnp_service_proxy_begin_action_valist ()">gupnp_service_proxy_begin_action_valist</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="returnvalue">GUPnPServiceProxyAction</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-begin-action-hash" title="gupnp_service_proxy_begin_action_hash ()">gupnp_service_proxy_begin_action_hash</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="returnvalue">GUPnPServiceProxyAction</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-begin-action-list" title="gupnp_service_proxy_begin_action_list ()">gupnp_service_proxy_begin_action_list</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-end-action" title="gupnp_service_proxy_end_action ()">gupnp_service_proxy_end_action</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-end-action-valist" title="gupnp_service_proxy_end_action_valist ()">gupnp_service_proxy_end_action_valist</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-end-action-hash" title="gupnp_service_proxy_end_action_hash ()">gupnp_service_proxy_end_action_hash</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-end-action-list" title="gupnp_service_proxy_end_action_list ()">gupnp_service_proxy_end_action_list</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-cancel-action" title="gupnp_service_proxy_cancel_action ()">gupnp_service_proxy_cancel_action</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-add-notify" title="gupnp_service_proxy_add_notify ()">gupnp_service_proxy_add_notify</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-add-notify-full" title="gupnp_service_proxy_add_notify_full ()">gupnp_service_proxy_add_notify_full</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-add-raw-notify" title="gupnp_service_proxy_add_raw_notify ()">gupnp_service_proxy_add_raw_notify</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-remove-notify" title="gupnp_service_proxy_remove_notify ()">gupnp_service_proxy_remove_notify</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-remove-raw-notify" title="gupnp_service_proxy_remove_raw_notify ()">gupnp_service_proxy_remove_raw_notify</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-set-subscribed" title="gupnp_service_proxy_set_subscribed ()">gupnp_service_proxy_set_subscribed</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-get-subscribed" title="gupnp_service_proxy_get_subscribed ()">gupnp_service_proxy_get_subscribed</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <div class="refsect1">
 <a name="GUPnPServiceProxy.properties"></a><h2>Properties</h2>
-<pre class="synopsis">
-  "<a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxy--subscribed" title='The "subscribed" property'>subscribed</a>"               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
-</pre>
+<div class="informaltable"><table border="0">
+<colgroup>
+<col width="150px" class="properties_type">
+<col width="300px" class="properties_name">
+<col width="200px" class="properties_flags">
+</colgroup>
+<tbody><tr>
+<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_name"><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxy--subscribed" title="The “subscribed” property">subscribed</a></td>
+<td class="property_flags">Read / Write</td>
+</tr></tbody>
+</table></div>
 </div>
 <div class="refsect1">
 <a name="GUPnPServiceProxy.signals"></a><h2>Signals</h2>
-<pre class="synopsis">
-  "<a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxy-subscription-lost" title='The "subscription-lost" signal'>subscription-lost</a>"                              : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a>
+<div class="informaltable"><table border="0">
+<colgroup>
+<col width="150px" class="signals_return">
+<col width="300px" class="signals_name">
+<col width="200px" class="signals_flags">
+</colgroup>
+<tbody><tr>
+<td class="signal_type"><span class="returnvalue">void</span></td>
+<td class="signal_name"><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxy-subscription-lost" title="The “subscription-lost” signal">subscription-lost</a></td>
+<td class="signal_flags">Run Last</td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="GUPnPServiceProxy.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxy-struct" title="struct GUPnPServiceProxy">GUPnPServiceProxy</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction">GUPnPServiceProxyAction</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="GUPnPServiceProxy.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo">GUPnPServiceInfo</a>
+        <span class="lineart">╰──</span> GUPnPServiceProxy
 </pre>
 </div>
 <div class="refsect1">
 <a name="GUPnPServiceProxy.description"></a><h2>Description</h2>
-<p>
-<a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> sends commands to a remote UPnP service and handles
+<p><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> sends commands to a remote UPnP service and handles
 incoming event notifications. <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> implements the
-<a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a> interface.
-</p>
+<a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a> interface.</p>
 </div>
 <div class="refsect1">
-<a name="GUPnPServiceProxy.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="GUPnPServiceProxy-struct"></a><h3>struct GUPnPServiceProxy</h3>
-<pre class="programlisting">struct GUPnPServiceProxy;</pre>
-<p>
-This struct contains private data only, and should be accessed using the
-functions below.
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GUPnPServiceProxyAction"></a><h3>GUPnPServiceProxyAction</h3>
-<pre class="programlisting">typedef struct _GUPnPServiceProxyAction GUPnPServiceProxyAction;</pre>
-<p>
-Opaque structure for holding in-progress action data.
-</p>
-</div>
-<hr>
+<a name="GUPnPServiceProxy.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
-<a name="GUPnPServiceProxyActionCallback"></a><h3>GUPnPServiceProxyActionCallback ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                (*GUPnPServiceProxyActionCallback)  (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="type">GUPnPServiceProxyAction</span></a> *action</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
-<p>
-Callback notifying that <em class="parameter"><code>action</code></em> on <em class="parameter"><code>proxy</code></em> has returned and
-<a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-end-action" title="gupnp_service_proxy_end_action ()"><code class="function">gupnp_service_proxy_end_action()</code></a> etc can be called.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="GUPnPServiceProxyActionCallback"></a><h3>GUPnPServiceProxyActionCallback ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+<span class="c_punctuation">(</span>*GUPnPServiceProxyActionCallback<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
+                                    <em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="type">GUPnPServiceProxyAction</span></a> *action</code></em>,
+                                    <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
+<p>Callback notifying that <em class="parameter"><code>action</code></em>
+ on <em class="parameter"><code>proxy</code></em>
+ has returned and
+<a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-end-action" title="gupnp_service_proxy_end_action ()"><code class="function">gupnp_service_proxy_end_action()</code></a> etc can be called.</p>
+<div class="refsect3">
+<a name="id-1.3.3.4.9.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
-<td>The <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> <em class="parameter"><code>action</code></em> is called from</td>
+<td class="parameter_name"><p>proxy</p></td>
+<td class="parameter_description"><p>The <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> <em class="parameter"><code>action</code></em>
+is called from</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>action</code></em> :</span></p></td>
-<td>The <a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="type">GUPnPServiceProxyAction</span></a> in progress</td>
+<td class="parameter_name"><p>action</p></td>
+<td class="parameter_description"><p>The <a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="type">GUPnPServiceProxyAction</span></a> in progress</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>User data</td>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>User data</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="GUPnPServiceProxyNotifyCallback"></a><h3>GUPnPServiceProxyNotifyCallback ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                (*GUPnPServiceProxyNotifyCallback)  (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *variable</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
-<p>
-Callback notifying that the state variable <em class="parameter"><code>variable</code></em> on <em class="parameter"><code>proxy</code></em> has changed to
-<em class="parameter"><code>value</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="GUPnPServiceProxyNotifyCallback"></a><h3>GUPnPServiceProxyNotifyCallback ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+<span class="c_punctuation">(</span>*GUPnPServiceProxyNotifyCallback<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
+                                    <em class="parameter"><code>const <span class="type">char</span> *variable</code></em>,
+                                    <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>,
+                                    <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
+<p>Callback notifying that the state variable <em class="parameter"><code>variable</code></em>
+ on <em class="parameter"><code>proxy</code></em>
+ has changed to
+<em class="parameter"><code>value</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.3.3.4.9.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
-<td>The <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> the notification originates from</td>
+<td class="parameter_name"><p>proxy</p></td>
+<td class="parameter_description"><p>The <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> the notification originates from</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>variable</code></em> :</span></p></td>
-<td>The name of the variable being notified</td>
+<td class="parameter_name"><p>variable</p></td>
+<td class="parameter_description"><p>The name of the variable being notified</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
-<td>The <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> of the variable being notified</td>
+<td class="parameter_name"><p>value</p></td>
+<td class="parameter_description"><p>The <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> of the variable being notified</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>User data</td>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>User data</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-service-proxy-send-action"></a><h3>gupnp_service_proxy_send_action ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gupnp_service_proxy_send_action     (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *action</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>,
-                                                         <em class="parameter"><code>...</code></em>);</pre>
-<p>
-Sends action <em class="parameter"><code>action</code></em> with parameters <em class="parameter"><code>Varargs</code></em> to the service exposed by
-<em class="parameter"><code>proxy</code></em> synchronously. If an error occurred, <em class="parameter"><code>error</code></em> will be set. In case of
-a UPnPError the error code will be the same in <em class="parameter"><code>error</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-service-proxy-send-action"></a><h3>gupnp_service_proxy_send_action ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gupnp_service_proxy_send_action (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
+                                 <em class="parameter"><code>const <span class="type">char</span> *action</code></em>,
+                                 <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>,
+                                 <em class="parameter"><code>...</code></em>);</pre>
+<p>Sends action <em class="parameter"><code>action</code></em>
+ with parameters <em class="parameter"><code>Varargs</code></em>
+ to the service exposed by
+<em class="parameter"><code>proxy</code></em>
+ synchronously. If an error occurred, <em class="parameter"><code>error</code></em>
+ will be set. In case of
+a UPnPError the error code will be the same in <em class="parameter"><code>error</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.3.3.4.9.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a>
-</td>
+<td class="parameter_name"><p>proxy</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>action</code></em> :</span></p></td>
-<td>An action</td>
+<td class="parameter_name"><p>action</p></td>
+<td class="parameter_description"><p>An action</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
-<td>The location where to store any error, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
-</td>
+<td class="parameter_name"><p>error</p></td>
+<td class="parameter_description"><p> The location where to store any error, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td>
-<td>tuples of in parameter name, in parameter type, and in parameter
+<td class="parameter_name"><p>...</p></td>
+<td class="parameter_description"><p>tuples of in parameter name, in parameter type, and in parameter
 value, followed by <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, and then tuples of out parameter name,
-out parameter type, and out parameter value location, terminated with <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if sending the action was succesful.</td>
+out parameter type, and out parameter value location, terminated with <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.3.4.9.4.6"></a><h4>Returns</h4>
+<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if sending the action was succesful.</p>
+<p></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-service-proxy-send-action-valist"></a><h3>gupnp_service_proxy_send_action_valist ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gupnp_service_proxy_send_action_valist
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *action</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>,
-                                                         <em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);</pre>
-<p>
-See <a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-send-action" title="gupnp_service_proxy_send_action ()"><code class="function">gupnp_service_proxy_send_action()</code></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-service-proxy-send-action-valist"></a><h3>gupnp_service_proxy_send_action_valist ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gupnp_service_proxy_send_action_valist
+                               (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
+                                <em class="parameter"><code>const <span class="type">char</span> *action</code></em>,
+                                <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>,
+                                <em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);</pre>
+<p>See <a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-send-action" title="gupnp_service_proxy_send_action ()"><code class="function">gupnp_service_proxy_send_action()</code></a>.</p>
+<div class="refsect3">
+<a name="id-1.3.3.4.9.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a>
-</td>
+<td class="parameter_name"><p>proxy</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>action</code></em> :</span></p></td>
-<td>An action</td>
+<td class="parameter_name"><p>action</p></td>
+<td class="parameter_description"><p>An action</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
-<td>The location where to store any error, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
-</td>
+<td class="parameter_name"><p>error</p></td>
+<td class="parameter_description"><p> The location where to store any error, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>var_args</code></em> :</span></p></td>
-<td>va_list of tuples of in parameter name, in parameter type, and in
+<td class="parameter_name"><p>var_args</p></td>
+<td class="parameter_description"><p>va_list of tuples of in parameter name, in parameter type, and in
 parameter value, followed by <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, and then tuples of out parameter name,
-out parameter type, and out parameter value location</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if sending the action was succesful.</td>
+out parameter type, and out parameter value location</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.3.4.9.5.6"></a><h4>Returns</h4>
+<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if sending the action was succesful.</p>
+<p></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-service-proxy-send-action-hash"></a><h3>gupnp_service_proxy_send_action_hash ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gupnp_service_proxy_send_action_hash
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *action</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> *in_hash</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> *out_hash</code></em>);</pre>
-<p>
-See <a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-send-action" title="gupnp_service_proxy_send_action ()"><code class="function">gupnp_service_proxy_send_action()</code></a>; this version takes a pair of
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a>s for runtime determined parameter lists.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-service-proxy-send-action-hash"></a><h3>gupnp_service_proxy_send_action_hash ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gupnp_service_proxy_send_action_hash (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
+                                      <em class="parameter"><code>const <span class="type">char</span> *action</code></em>,
+                                      <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>,
+                                      <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> *in_hash</code></em>,
+                                      <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> *out_hash</code></em>);</pre>
+<div class="warning">
+<p><code class="literal">gupnp_service_proxy_send_action_hash</code> has been deprecated since version 0.20.9 and should not be used in newly-written code.</p>
+<p>Use <a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-send-action" title="gupnp_service_proxy_send_action ()"><code class="function">gupnp_service_proxy_send_action()</code></a> or
+<a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-send-action-list" title="gupnp_service_proxy_send_action_list ()"><code class="function">gupnp_service_proxy_send_action_list()</code></a></p>
+</div>
+<p>See <a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-send-action" title="gupnp_service_proxy_send_action ()"><code class="function">gupnp_service_proxy_send_action()</code></a>; this version takes a pair of
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a>s for runtime determined parameter lists.</p>
+<p>Do not use this function in newly written code; it cannot guarantee the
+order of arguments and thus breaks interaction with many devices.</p>
+<div class="refsect3">
+<a name="id-1.3.3.4.9.6.7"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a>
-</td>
+<td class="parameter_name"><p>proxy</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>action</code></em> :</span></p></td>
-<td>An action</td>
+<td class="parameter_name"><p>action</p></td>
+<td class="parameter_description"><p>An action</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
-<td>The location where to store any error, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
-</td>
+<td class="parameter_name"><p>error</p></td>
+<td class="parameter_description"><p> The location where to store any error, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>in_hash</code></em> :</span></p></td>
-<td>A <a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> of in
-parameter name and <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> pairs. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8 GValue][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>in_hash</p></td>
+<td class="parameter_description"><p> A <a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> of in
+parameter name and <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> pairs. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8 GValue][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>out_hash</code></em> :</span></p></td>
-<td>A <a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a>
-of out parameter name and initialized <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> pairs. <span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8 GValue][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if sending the action was succesful.</td>
+<td class="parameter_name"><p>out_hash</p></td>
+<td class="parameter_description"><p> A <a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a>
+of out parameter name and initialized <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> pairs. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8 GValue][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.3.4.9.6.8"></a><h4>Returns</h4>
+<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if sending the action was succesful.</p>
+<p></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-service-proxy-send-action-list"></a><h3>gupnp_service_proxy_send_action_list ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gupnp_service_proxy_send_action_list
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *action</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *in_names</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *in_values</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *out_names</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *out_types</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> **out_values</code></em>);</pre>
-<p>
-The synchronous variant of <a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-begin-action-list" title="gupnp_service_proxy_begin_action_list ()"><span class="type">gupnp_service_proxy_begin_action_list</span></a> and
-<a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-end-action-list" title="gupnp_service_proxy_end_action_list ()"><span class="type">gupnp_service_proxy_end_action_list</span></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-service-proxy-send-action-list"></a><h3>gupnp_service_proxy_send_action_list ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gupnp_service_proxy_send_action_list (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
+                                      <em class="parameter"><code>const <span class="type">char</span> *action</code></em>,
+                                      <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>,
+                                      <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *in_names</code></em>,
+                                      <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *in_values</code></em>,
+                                      <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *out_names</code></em>,
+                                      <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *out_types</code></em>,
+                                      <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> **out_values</code></em>);</pre>
+<p>The synchronous variant of <a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-begin-action-list" title="gupnp_service_proxy_begin_action_list ()"><span class="type">gupnp_service_proxy_begin_action_list</span></a> and
+<a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-end-action-list" title="gupnp_service_proxy_end_action_list ()"><span class="type">gupnp_service_proxy_end_action_list</span></a>.</p>
+<div class="refsect3">
+<a name="id-1.3.3.4.9.7.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
-<td>(transfer none) : A <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a>
-</td>
+<td class="parameter_name"><p>proxy</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>action</code></em> :</span></p></td>
-<td>An action</td>
+<td class="parameter_name"><p>action</p></td>
+<td class="parameter_description"><p>An action</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
-<td>The location where to store any error, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
-</td>
+<td class="parameter_name"><p>error</p></td>
+<td class="parameter_description"><p> The location where to store any error, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>in_names</code></em> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of 'in' parameter
-names (as strings). <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>in_names</p></td>
+<td class="parameter_description"><p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of 'in' parameter
+names (as strings). </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>in_values</code></em> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of values (as
-<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>) that line up with <em class="parameter"><code>in_names</code></em>. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GValue][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>in_values</p></td>
+<td class="parameter_description"><p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of values (as
+<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>) that line up with <em class="parameter"><code>in_names</code></em>
+. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GValue][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>out_names</code></em> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of 'out' parameter
-names (as strings). <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>out_names</p></td>
+<td class="parameter_description"><p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of 'out' parameter
+names (as strings). </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>out_types</code></em> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of types (as <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a>)
-that line up with <em class="parameter"><code>out_names</code></em>. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GType][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>out_values</code></em> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of values
-(as <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>) that line up with <em class="parameter"><code>out_names</code></em> and <em class="parameter"><code>out_types</code></em>. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GValue][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>out_types</p></td>
+<td class="parameter_description"><p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of types (as <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a>)
+that line up with <em class="parameter"><code>out_names</code></em>
+. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GType][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if sending the action was succesful.</td>
+<td class="parameter_name"><p>out_values</p></td>
+<td class="parameter_description"><p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of values
+(as <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>) that line up with <em class="parameter"><code>out_names</code></em>
+and <em class="parameter"><code>out_types</code></em>
+. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GValue][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.3.4.9.7.6"></a><h4>Returns</h4>
+<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if sending the action was succesful.</p>
+<p></p>
+</div>
+<p class="since">Since 0.13.3</p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-service-proxy-begin-action"></a><h3>gupnp_service_proxy_begin_action ()</h3>
-<pre class="programlisting"><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="returnvalue">GUPnPServiceProxyAction</span></a> * gupnp_service_proxy_begin_action
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *action</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyActionCallback" title="GUPnPServiceProxyActionCallback ()"><span class="type">GUPnPServiceProxyActionCallback</span></a> callback</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
-                                                         <em class="parameter"><code>...</code></em>);</pre>
-<p>
-Sends action <em class="parameter"><code>action</code></em> with parameters <em class="parameter"><code>Varargs</code></em> to the service exposed by
-<em class="parameter"><code>proxy</code></em> asynchronously, calling <em class="parameter"><code>callback</code></em> on completion. From <em class="parameter"><code>callback</code></em>, call
-<a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-end-action" title="gupnp_service_proxy_end_action ()"><code class="function">gupnp_service_proxy_end_action()</code></a> to check for errors, to retrieve return
-values, and to free the <a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="type">GUPnPServiceProxyAction</span></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-service-proxy-begin-action"></a><h3>gupnp_service_proxy_begin_action ()</h3>
+<pre class="programlisting"><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="returnvalue">GUPnPServiceProxyAction</span></a> *
+gupnp_service_proxy_begin_action (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
+                                  <em class="parameter"><code>const <span class="type">char</span> *action</code></em>,
+                                  <em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyActionCallback" title="GUPnPServiceProxyActionCallback ()"><span class="type">GUPnPServiceProxyActionCallback</span></a> callback</code></em>,
+                                  <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                  <em class="parameter"><code>...</code></em>);</pre>
+<p>Sends action <em class="parameter"><code>action</code></em>
+ with parameters <em class="parameter"><code>Varargs</code></em>
+ to the service exposed by
+<em class="parameter"><code>proxy</code></em>
+ asynchronously, calling <em class="parameter"><code>callback</code></em>
+ on completion. From <em class="parameter"><code>callback</code></em>
+, call
+<a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-end-action" title="gupnp_service_proxy_end_action ()"><code class="function">gupnp_service_proxy_end_action()</code></a> to check for errors, to retrieve return
+values, and to free the <a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="type">GUPnPServiceProxyAction</span></a>.</p>
+<div class="refsect3">
+<a name="id-1.3.3.4.9.8.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a>
-</td>
+<td class="parameter_name"><p>proxy</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>action</code></em> :</span></p></td>
-<td>An action</td>
+<td class="parameter_name"><p>action</p></td>
+<td class="parameter_description"><p>An action</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
-<td>The callback to call when sending the action has succeeded
-or failed. <span class="annotation">[<acronym title="The callback is valid until first called."><span class="acronym">scope async</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>callback</p></td>
+<td class="parameter_description"><p> The callback to call when sending the action has succeeded
+or failed. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="The callback is valid until first called."><span class="acronym">scope async</span></acronym>]</span></td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>User data for <em class="parameter"><code>callback</code></em>
-</td>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>User data for <em class="parameter"><code>callback</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td>
-<td>tuples of in parameter name, in parameter type, and in parameter
-value, terminated with <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A <a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="type">GUPnPServiceProxyAction</span></a> handle. This will be freed when
-<a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-cancel-action" title="gupnp_service_proxy_cancel_action ()"><code class="function">gupnp_service_proxy_cancel_action()</code></a> or
-<a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-end-action-valist" title="gupnp_service_proxy_end_action_valist ()"><code class="function">gupnp_service_proxy_end_action_valist()</code></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>...</p></td>
+<td class="parameter_description"><p>tuples of in parameter name, in parameter type, and in parameter
+value, terminated with <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.3.4.9.8.6"></a><h4>Returns</h4>
+<p> A <a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="type">GUPnPServiceProxyAction</span></a> handle. This will be freed when
+<a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-cancel-action" title="gupnp_service_proxy_cancel_action ()"><code class="function">gupnp_service_proxy_cancel_action()</code></a> or
+<a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-end-action-valist" title="gupnp_service_proxy_end_action_valist ()"><code class="function">gupnp_service_proxy_end_action_valist()</code></a>. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-service-proxy-begin-action-valist"></a><h3>gupnp_service_proxy_begin_action_valist ()</h3>
-<pre class="programlisting"><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="returnvalue">GUPnPServiceProxyAction</span></a> * gupnp_service_proxy_begin_action_valist
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *action</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyActionCallback" title="GUPnPServiceProxyActionCallback ()"><span class="type">GUPnPServiceProxyActionCallback</span></a> callback</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
-                                                         <em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);</pre>
-<p>
-See <a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-begin-action" title="gupnp_service_proxy_begin_action ()"><code class="function">gupnp_service_proxy_begin_action()</code></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-service-proxy-begin-action-valist"></a><h3>gupnp_service_proxy_begin_action_valist ()</h3>
+<pre class="programlisting"><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="returnvalue">GUPnPServiceProxyAction</span></a> *
+gupnp_service_proxy_begin_action_valist
+                               (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
+                                <em class="parameter"><code>const <span class="type">char</span> *action</code></em>,
+                                <em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyActionCallback" title="GUPnPServiceProxyActionCallback ()"><span class="type">GUPnPServiceProxyActionCallback</span></a> callback</code></em>,
+                                <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                <em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);</pre>
+<p>See <a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-begin-action" title="gupnp_service_proxy_begin_action ()"><code class="function">gupnp_service_proxy_begin_action()</code></a>.</p>
+<div class="refsect3">
+<a name="id-1.3.3.4.9.9.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a>
-</td>
+<td class="parameter_name"><p>proxy</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>action</code></em> :</span></p></td>
-<td>An action</td>
+<td class="parameter_name"><p>action</p></td>
+<td class="parameter_description"><p>An action</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
-<td>(scope async) : The callback to call when sending the action has succeeded
-or failed</td>
+<td class="parameter_name"><p>callback</p></td>
+<td class="parameter_description"><p>(scope async) : The callback to call when sending the action has succeeded
+or failed</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>User data for <em class="parameter"><code>callback</code></em>
-</td>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>User data for <em class="parameter"><code>callback</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>var_args</code></em> :</span></p></td>
-<td>A va_list of tuples of in parameter name, in parameter type, and
-in parameter value</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A <a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="type">GUPnPServiceProxyAction</span></a> handle. This will
-be freed when calling <a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-cancel-action" title="gupnp_service_proxy_cancel_action ()"><code class="function">gupnp_service_proxy_cancel_action()</code></a> or
-<a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-end-action-valist" title="gupnp_service_proxy_end_action_valist ()"><code class="function">gupnp_service_proxy_end_action_valist()</code></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>var_args</p></td>
+<td class="parameter_description"><p>A va_list of tuples of in parameter name, in parameter type, and
+in parameter value</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.3.4.9.9.6"></a><h4>Returns</h4>
+<p> A <a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="type">GUPnPServiceProxyAction</span></a> handle. This will
+be freed when calling <a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-cancel-action" title="gupnp_service_proxy_cancel_action ()"><code class="function">gupnp_service_proxy_cancel_action()</code></a> or
+<a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-end-action-valist" title="gupnp_service_proxy_end_action_valist ()"><code class="function">gupnp_service_proxy_end_action_valist()</code></a>. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-service-proxy-begin-action-hash"></a><h3>gupnp_service_proxy_begin_action_hash ()</h3>
-<pre class="programlisting"><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="returnvalue">GUPnPServiceProxyAction</span></a> * gupnp_service_proxy_begin_action_hash
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *action</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyActionCallback" title="GUPnPServiceProxyActionCallback ()"><span class="type">GUPnPServiceProxyActionCallback</span></a> callback</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> *hash</code></em>);</pre>
-<p>
-See <a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-begin-action" title="gupnp_service_proxy_begin_action ()"><code class="function">gupnp_service_proxy_begin_action()</code></a>; this version takes a <a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a>
-for runtime generated parameter lists.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-service-proxy-begin-action-hash"></a><h3>gupnp_service_proxy_begin_action_hash ()</h3>
+<pre class="programlisting"><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="returnvalue">GUPnPServiceProxyAction</span></a> *
+gupnp_service_proxy_begin_action_hash (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
+                                       <em class="parameter"><code>const <span class="type">char</span> *action</code></em>,
+                                       <em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyActionCallback" title="GUPnPServiceProxyActionCallback ()"><span class="type">GUPnPServiceProxyActionCallback</span></a> callback</code></em>,
+                                       <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                       <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> *hash</code></em>);</pre>
+<div class="warning">
+<p><code class="literal">gupnp_service_proxy_begin_action_hash</code> has been deprecated since version 0.20.9 and should not be used in newly-written code.</p>
+<p>Use <a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-send-action" title="gupnp_service_proxy_send_action ()"><code class="function">gupnp_service_proxy_send_action()</code></a> or
+<a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-send-action-list" title="gupnp_service_proxy_send_action_list ()"><code class="function">gupnp_service_proxy_send_action_list()</code></a></p>
+</div>
+<p>See <a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-begin-action" title="gupnp_service_proxy_begin_action ()"><code class="function">gupnp_service_proxy_begin_action()</code></a>; this version takes a <a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a>
+for runtime generated parameter lists.</p>
+<p>Do not use this function in newly written code; it cannot guarantee the
+order of arguments and thus breaks interaction with many devices.</p>
+<div class="refsect3">
+<a name="id-1.3.3.4.9.10.7"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a>
-</td>
+<td class="parameter_name"><p>proxy</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>action</code></em> :</span></p></td>
-<td>An action</td>
+<td class="parameter_name"><p>action</p></td>
+<td class="parameter_description"><p>An action</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
-<td>The callback to call when sending the action has succeeded
-or failed. <span class="annotation">[<acronym title="The callback is valid until first called."><span class="acronym">scope async</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>callback</p></td>
+<td class="parameter_description"><p> The callback to call when sending the action has succeeded
+or failed. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="The callback is valid until first called."><span class="acronym">scope async</span></acronym>]</span></td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>User data for <em class="parameter"><code>callback</code></em>
-</td>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>User data for <em class="parameter"><code>callback</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>hash</code></em> :</span></p></td>
-<td>A <a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> of in parameter name and <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> pairs. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8 GValue]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A <a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="type">GUPnPServiceProxyAction</span></a> handle. This will
-be freed when calling <a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-cancel-action" title="gupnp_service_proxy_cancel_action ()"><code class="function">gupnp_service_proxy_cancel_action()</code></a> or
-<a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-end-action-hash" title="gupnp_service_proxy_end_action_hash ()"><code class="function">gupnp_service_proxy_end_action_hash()</code></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>hash</p></td>
+<td class="parameter_description"><p> A <a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> of in parameter name and <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> pairs. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8 GValue]</span></td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.3.4.9.10.8"></a><h4>Returns</h4>
+<p> A <a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="type">GUPnPServiceProxyAction</span></a> handle. This will
+be freed when calling <a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-cancel-action" title="gupnp_service_proxy_cancel_action ()"><code class="function">gupnp_service_proxy_cancel_action()</code></a> or
+<a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-end-action-hash" title="gupnp_service_proxy_end_action_hash ()"><code class="function">gupnp_service_proxy_end_action_hash()</code></a>. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-service-proxy-begin-action-list"></a><h3>gupnp_service_proxy_begin_action_list ()</h3>
-<pre class="programlisting"><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="returnvalue">GUPnPServiceProxyAction</span></a> * gupnp_service_proxy_begin_action_list
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *action</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *in_names</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *in_values</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyActionCallback" title="GUPnPServiceProxyActionCallback ()"><span class="type">GUPnPServiceProxyActionCallback</span></a> callback</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
-<p>
-A variant of <a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-begin-action" title="gupnp_service_proxy_begin_action ()"><span class="type">gupnp_service_proxy_begin_action</span></a> that takes lists of
-in-parameter names, types and values.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-service-proxy-begin-action-list"></a><h3>gupnp_service_proxy_begin_action_list ()</h3>
+<pre class="programlisting"><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="returnvalue">GUPnPServiceProxyAction</span></a> *
+gupnp_service_proxy_begin_action_list (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
+                                       <em class="parameter"><code>const <span class="type">char</span> *action</code></em>,
+                                       <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *in_names</code></em>,
+                                       <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *in_values</code></em>,
+                                       <em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyActionCallback" title="GUPnPServiceProxyActionCallback ()"><span class="type">GUPnPServiceProxyActionCallback</span></a> callback</code></em>,
+                                       <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
+<p>A variant of <a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-begin-action" title="gupnp_service_proxy_begin_action ()"><span class="type">gupnp_service_proxy_begin_action</span></a> that takes lists of
+in-parameter names, types and values.</p>
+<div class="refsect3">
+<a name="id-1.3.3.4.9.11.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>proxy</p></td>
+<td class="parameter_description"><p> A <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>action</code></em> :</span></p></td>
-<td>An action</td>
+<td class="parameter_name"><p>action</p></td>
+<td class="parameter_description"><p>An action</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>in_names</code></em> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of 'in' parameter
-names (as strings). <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>in_names</p></td>
+<td class="parameter_description"><p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of 'in' parameter
+names (as strings). </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>in_values</code></em> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of values (as
-<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>) that line up with <em class="parameter"><code>in_names</code></em>. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GValue][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>in_values</p></td>
+<td class="parameter_description"><p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of values (as
+<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>) that line up with <em class="parameter"><code>in_names</code></em>
+. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GValue][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
-<td>(scope async) : The callback to call when sending the action has succeeded or
-failed</td>
+<td class="parameter_name"><p>callback</p></td>
+<td class="parameter_description"><p>(scope async) : The callback to call when sending the action has succeeded or
+failed</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>User data for <em class="parameter"><code>callback</code></em>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A <a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="type">GUPnPServiceProxyAction</span></a> handle. This will
-be freed when calling <a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-cancel-action" title="gupnp_service_proxy_cancel_action ()"><span class="type">gupnp_service_proxy_cancel_action</span></a> or
-<a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-end-action-list" title="gupnp_service_proxy_end_action_list ()"><span class="type">gupnp_service_proxy_end_action_list</span></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>User data for <em class="parameter"><code>callback</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.3.4.9.11.6"></a><h4>Returns</h4>
+<p> A <a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="type">GUPnPServiceProxyAction</span></a> handle. This will
+be freed when calling <a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-cancel-action" title="gupnp_service_proxy_cancel_action ()"><code class="function">gupnp_service_proxy_cancel_action()</code></a> or
+<a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-end-action-list" title="gupnp_service_proxy_end_action_list ()"><code class="function">gupnp_service_proxy_end_action_list()</code></a>. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+<p class="since">Since 0.13.3</p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-service-proxy-end-action"></a><h3>gupnp_service_proxy_end_action ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gupnp_service_proxy_end_action      (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="type">GUPnPServiceProxyAction</span></a> *action</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>,
-                                                         <em class="parameter"><code>...</code></em>);</pre>
-<p>
-Retrieves the result of <em class="parameter"><code>action</code></em>. The out parameters in <em class="parameter"><code>Varargs</code></em> will be
-filled in, and if an error occurred, <em class="parameter"><code>error</code></em> will be set. In case of
-a UPnPError the error code will be the same in <em class="parameter"><code>error</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-service-proxy-end-action"></a><h3>gupnp_service_proxy_end_action ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gupnp_service_proxy_end_action (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
+                                <em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="type">GUPnPServiceProxyAction</span></a> *action</code></em>,
+                                <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>,
+                                <em class="parameter"><code>...</code></em>);</pre>
+<p>Retrieves the result of <em class="parameter"><code>action</code></em>
+. The out parameters in <em class="parameter"><code>Varargs</code></em>
+ will be
+filled in, and if an error occurred, <em class="parameter"><code>error</code></em>
+ will be set. In case of
+an UPnP error the error code will be the same in <em class="parameter"><code>error</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.3.3.4.9.12.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a>
-</td>
+<td class="parameter_name"><p>proxy</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>action</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="type">GUPnPServiceProxyAction</span></a> handle</td>
+<td class="parameter_name"><p>action</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="type">GUPnPServiceProxyAction</span></a> handle</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
-<td>The location where to store any error, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
-</td>
+<td class="parameter_name"><p>error</p></td>
+<td class="parameter_description"><p> The location where to store any error, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td>
-<td>tuples of out parameter name, out parameter type, and out parameter
+<td class="parameter_name"><p>...</p></td>
+<td class="parameter_description"><p>tuples of out parameter name, out parameter type, and out parameter
 value location, terminated with <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. The out parameter values should be
-freed after use</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</td>
+freed after use</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.3.4.9.12.6"></a><h4>Returns</h4>
+<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</p>
+<p></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-service-proxy-end-action-valist"></a><h3>gupnp_service_proxy_end_action_valist ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gupnp_service_proxy_end_action_valist
-                                                        (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="type">GUPnPServiceProxyAction</span></a> *action</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>,
-                                                         <em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);</pre>
-<p>
-See <a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-end-action" title="gupnp_service_proxy_end_action ()"><code class="function">gupnp_service_proxy_end_action()</code></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-service-proxy-end-action-valist"></a><h3>gupnp_service_proxy_end_action_valist ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gupnp_service_proxy_end_action_valist (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
+                                       <em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="type">GUPnPServiceProxyAction</span></a> *action</code></em>,
+                                       <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>,
+                                       <em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);</pre>
+<p>See <a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-end-action" title="gupnp_service_proxy_end_action ()"><code class="function">gupnp_service_proxy_end_action()</code></a>.</p>
+<div class="refsect3">
+<a name="id-1.3.3.4.9.13.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a>
-</td>
+<td class="parameter_name"><p>proxy</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>action</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="type">GUPnPServiceProxyAction</span></a> handle</td>
+<td class="parameter_name"><p>action</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="type">GUPnPServiceProxyAction</span></a> handle</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
-<td>The location where to store any error, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
-</td>
+<td class="parameter_name"><p>error</p></td>
+<td class="parameter_description"><p> The location where to store any error, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>var_args</code></em> :</span></p></td>
-<td>A va_list of tuples of out parameter name, out parameter type,
+<td class="parameter_name"><p>var_args</p></td>
+<td class="parameter_description"><p>A va_list of tuples of out parameter name, out parameter type,
 and out parameter value location. The out parameter values should be
-freed after use</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</td>
+freed after use</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.3.4.9.13.6"></a><h4>Returns</h4>
+<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</p>
+<p></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-service-proxy-end-action-hash"></a><h3>gupnp_service_proxy_end_action_hash ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gupnp_service_proxy_end_action_hash (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="type">GUPnPServiceProxyAction</span></a> *action</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> *hash</code></em>);</pre>
-<p>
-See <a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-end-action" title="gupnp_service_proxy_end_action ()"><code class="function">gupnp_service_proxy_end_action()</code></a>; this version takes a <a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> for
-runtime generated parameter lists.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-service-proxy-end-action-hash"></a><h3>gupnp_service_proxy_end_action_hash ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gupnp_service_proxy_end_action_hash (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
+                                     <em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="type">GUPnPServiceProxyAction</span></a> *action</code></em>,
+                                     <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>,
+                                     <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> *hash</code></em>);</pre>
+<p>See <a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-end-action" title="gupnp_service_proxy_end_action ()"><code class="function">gupnp_service_proxy_end_action()</code></a>; this version takes a <a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> for
+runtime generated parameter lists.</p>
+<div class="refsect3">
+<a name="id-1.3.3.4.9.14.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a>
-</td>
+<td class="parameter_name"><p>proxy</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>action</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="type">GUPnPServiceProxyAction</span></a> handle</td>
+<td class="parameter_name"><p>action</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="type">GUPnPServiceProxyAction</span></a> handle</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
-<td>The location where to store any error, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>hash</code></em> :</span></p></td>
-<td>A <a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> of
-out parameter name and initialised <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> pairs. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8 GValue][<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>error</p></td>
+<td class="parameter_description"><p>The location where to store any error, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</td>
+<td class="parameter_name"><p>hash</p></td>
+<td class="parameter_description"><p> A <a href="http://library.gnome.org/devel/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> of
+out parameter name and initialised <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> pairs. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8 GValue][<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.3.4.9.14.6"></a><h4>Returns</h4>
+<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</p>
+<p></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-service-proxy-end-action-list"></a><h3>gupnp_service_proxy_end_action_list ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gupnp_service_proxy_end_action_list (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="type">GUPnPServiceProxyAction</span></a> *action</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *out_names</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *out_types</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> **out_values</code></em>);</pre>
-<p>
-A variant of <a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-end-action" title="gupnp_service_proxy_end_action ()"><span class="type">gupnp_service_proxy_end_action</span></a> that takes lists of
+<a name="gupnp-service-proxy-end-action-list"></a><h3>gupnp_service_proxy_end_action_list ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gupnp_service_proxy_end_action_list (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
+                                     <em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="type">GUPnPServiceProxyAction</span></a> *action</code></em>,
+                                     <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>,
+                                     <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *out_names</code></em>,
+                                     <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *out_types</code></em>,
+                                     <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> **out_values</code></em>);</pre>
+<p>A variant of <a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-end-action" title="gupnp_service_proxy_end_action ()"><span class="type">gupnp_service_proxy_end_action</span></a> that takes lists of
 out-parameter names, types and place-holders for values. The returned list
-in <em class="parameter"><code>out_values</code></em> must be freed using <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#g-list-free"><span class="type">g_list_free</span></a> and each element in it using
-<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#g-value-unset"><span class="type">g_value_unset</span></a> and <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Slices.html#g-slice-free"><span class="type">g_slice_free</span></a>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+in <em class="parameter"><code>out_values</code></em>
+ must be freed using <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#g-list-free"><span class="type">g_list_free</span></a> and each element in it using
+<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#g-value-unset"><span class="type">g_value_unset</span></a> and <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Slices.html#g-slice-free"><span class="type">g_slice_free</span></a>.</p>
+<div class="refsect3">
+<a name="id-1.3.3.4.9.15.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a>
-</td>
+<td class="parameter_name"><p>proxy</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>action</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="type">GUPnPServiceProxyAction</span></a> handle</td>
+<td class="parameter_name"><p>action</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="type">GUPnPServiceProxyAction</span></a> handle</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
-<td>The location where to store any error, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
-</td>
+<td class="parameter_name"><p>error</p></td>
+<td class="parameter_description"><p> The location where to store any error, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>out_names</code></em> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of 'out' parameter
-names (as strings). <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>out_names</p></td>
+<td class="parameter_description"><p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of 'out' parameter
+names (as strings). </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>out_types</code></em> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of types (as <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a>)
-that line up with <em class="parameter"><code>out_names</code></em>. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GType][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>out_types</p></td>
+<td class="parameter_description"><p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of types (as <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a>)
+that line up with <em class="parameter"><code>out_names</code></em>
+. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GType][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>out_values</code></em> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of values
-(as <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>) that line up with <em class="parameter"><code>out_names</code></em> and <em class="parameter"><code>out_types</code></em>. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GValue][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>out_values</p></td>
+<td class="parameter_description"><p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of values
+(as <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>) that line up with <em class="parameter"><code>out_names</code></em>
+and <em class="parameter"><code>out_types</code></em>
+. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GValue][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.3.4.9.15.6"></a><h4>Returns</h4>
+<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-service-proxy-cancel-action"></a><h3>gupnp_service_proxy_cancel_action ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gupnp_service_proxy_cancel_action (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
+                                   <em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="type">GUPnPServiceProxyAction</span></a> *action</code></em>);</pre>
+<p>Cancels <em class="parameter"><code>action</code></em>
+, freeing the <em class="parameter"><code>action</code></em>
+ handle.</p>
+<div class="refsect3">
+<a name="id-1.3.3.4.9.16.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>proxy</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</td>
+<td class="parameter_name"><p>action</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="type">GUPnPServiceProxyAction</span></a> handle</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-service-proxy-cancel-action"></a><h3>gupnp_service_proxy_cancel_action ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gupnp_service_proxy_cancel_action   (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="type">GUPnPServiceProxyAction</span></a> *action</code></em>);</pre>
-<p>
-Cancels <em class="parameter"><code>action</code></em>, freeing the <em class="parameter"><code>action</code></em> handle.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-service-proxy-add-notify"></a><h3>gupnp_service_proxy_add_notify ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gupnp_service_proxy_add_notify (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
+                                <em class="parameter"><code>const <span class="type">char</span> *variable</code></em>,
+                                <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type</code></em>,
+                                <em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyNotifyCallback" title="GUPnPServiceProxyNotifyCallback ()"><span class="type">GUPnPServiceProxyNotifyCallback</span></a> callback</code></em>,
+                                <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
+<p>Sets up <em class="parameter"><code>callback</code></em>
+ to be called whenever a change notification for
+<em class="parameter"><code>variable</code></em>
+ is recieved.</p>
+<div class="refsect3">
+<a name="id-1.3.3.4.9.17.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a>
-</td>
+<td class="parameter_name"><p>proxy</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>variable</p></td>
+<td class="parameter_description"><p>The variable to add notification for</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>type</p></td>
+<td class="parameter_description"><p>The type of the variable</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>action</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction" title="GUPnPServiceProxyAction"><span class="type">GUPnPServiceProxyAction</span></a> handle</td>
+<td class="parameter_name"><p>callback</p></td>
+<td class="parameter_description"><p> The callback to call when <em class="parameter"><code>variable</code></em>
+changes. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="The callback is valid until first called."><span class="acronym">scope async</span></acronym>]</span></td>
+</tr>
+<tr>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>User data for <em class="parameter"><code>callback</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.3.4.9.17.6"></a><h4>Returns</h4>
+<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</p>
+<p></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-service-proxy-add-notify"></a><h3>gupnp_service_proxy_add_notify ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gupnp_service_proxy_add_notify      (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *variable</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyNotifyCallback" title="GUPnPServiceProxyNotifyCallback ()"><span class="type">GUPnPServiceProxyNotifyCallback</span></a> callback</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
-<p>
-Sets up <em class="parameter"><code>callback</code></em> to be called whenever a change notification for
-<em class="parameter"><code>variable</code></em> is recieved.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-service-proxy-add-notify-full"></a><h3>gupnp_service_proxy_add_notify_full ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gupnp_service_proxy_add_notify_full (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
+                                     <em class="parameter"><code>const <span class="type">char</span> *variable</code></em>,
+                                     <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> type</code></em>,
+                                     <em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyNotifyCallback" title="GUPnPServiceProxyNotifyCallback ()"><span class="type">GUPnPServiceProxyNotifyCallback</span></a> callback</code></em>,
+                                     <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                     <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);</pre>
+<p>Sets up <em class="parameter"><code>callback</code></em>
+ to be called whenever a change notification for
+<em class="parameter"><code>variable</code></em>
+ is recieved.</p>
+<div class="refsect3">
+<a name="id-1.3.3.4.9.18.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a>
-</td>
+<td class="parameter_name"><p>proxy</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>variable</code></em> :</span></p></td>
-<td>The variable to add notification for</td>
+<td class="parameter_name"><p>variable</p></td>
+<td class="parameter_description"><p>The variable to add notification for</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
-<td>The type of the variable</td>
+<td class="parameter_name"><p>type</p></td>
+<td class="parameter_description"><p>The type of the variable</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
-<td>The callback to call when <em class="parameter"><code>variable</code></em> changes. <span class="annotation">[<acronym title="The callback is valid until first called."><span class="acronym">scope async</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>callback</p></td>
+<td class="parameter_description"><p> The callback to call when <em class="parameter"><code>variable</code></em>
+changes. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="The callback is valid until the GDestroyNotify argument is called."><span class="acronym">scope notified</span></acronym>]</span></td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>User data for <em class="parameter"><code>callback</code></em>
-</td>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>User data for <em class="parameter"><code>callback</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</td>
+<td class="parameter_name"><p>notify</p></td>
+<td class="parameter_description"><p> Function to call when the notification is removed, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.3.4.9.18.6"></a><h4>Returns</h4>
+<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</p>
+<p></p>
+</div>
+<p class="since">Since 0.20.12</p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-service-proxy-remove-notify"></a><h3>gupnp_service_proxy_remove_notify ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gupnp_service_proxy_remove_notify   (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
-                                                         <em class="parameter"><code>const <span class="type">char</span> *variable</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyNotifyCallback" title="GUPnPServiceProxyNotifyCallback ()"><span class="type">GUPnPServiceProxyNotifyCallback</span></a> callback</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
-<p>
-Cancels the variable change notification for <em class="parameter"><code>callback</code></em> and <em class="parameter"><code>user_data</code></em>.
-</p>
-<p>
-This function must not be called directly or indirectly from a
-<a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyNotifyCallback" title="GUPnPServiceProxyNotifyCallback ()"><span class="type">GUPnPServiceProxyNotifyCallback</span></a> associated with this service proxy, even
-if it is for another variable.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-service-proxy-add-raw-notify"></a><h3>gupnp_service_proxy_add_raw_notify ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gupnp_service_proxy_add_raw_notify (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
+                                    <em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyNotifyCallback" title="GUPnPServiceProxyNotifyCallback ()"><span class="type">GUPnPServiceProxyNotifyCallback</span></a> callback</code></em>,
+                                    <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
+                                    <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);</pre>
+<p>Get a notification for anything that happens on the peer. <em class="parameter"><code>value</code></em>
+ in
+<em class="parameter"><code>callback</code></em>
+ will be of type <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-POINTER:CAPS"><span class="type">G_TYPE_POINTER</span></a> and contain the pre-parsed
+<span class="type">xmlDoc</span>. Do NOT free or modify this document.</p>
+<div class="refsect3">
+<a name="id-1.3.3.4.9.19.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a>
-</td>
+<td class="parameter_name"><p>proxy</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>variable</code></em> :</span></p></td>
-<td>The variable to add notification for</td>
+<td class="parameter_name"><p>callback</p></td>
+<td class="parameter_description"><p> The callback to call when the peer issues any
+variable notification. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="The callback is valid until the GDestroyNotify argument is called."><span class="acronym">scope notified</span></acronym>]</span></td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>callback</code></em> :</span></p></td>
-<td>The callback to call when <em class="parameter"><code>variable</code></em> changes. <span class="annotation">[<acronym title="The callback is valid only during the call to the method."><span class="acronym">scope call</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>User data for <em class="parameter"><code>callback</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>User data for <em class="parameter"><code>callback</code></em>
-</td>
+<td class="parameter_name"><p>notify</p></td>
+<td class="parameter_description"><p> A <a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> for <em class="parameter"><code>user_data</code></em>
+. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.3.4.9.19.6"></a><h4>Returns</h4>
+<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</p>
+<p></p>
+</div>
+<p class="since">Since 0.20.12</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-service-proxy-remove-notify"></a><h3>gupnp_service_proxy_remove_notify ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gupnp_service_proxy_remove_notify (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
+                                   <em class="parameter"><code>const <span class="type">char</span> *variable</code></em>,
+                                   <em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyNotifyCallback" title="GUPnPServiceProxyNotifyCallback ()"><span class="type">GUPnPServiceProxyNotifyCallback</span></a> callback</code></em>,
+                                   <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
+<p>Cancels the variable change notification for <em class="parameter"><code>callback</code></em>
+ and <em class="parameter"><code>user_data</code></em>
+.</p>
+<p>Up to version 0.20.9 this function must not be called directlya or
+indirectly from a <a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyNotifyCallback" title="GUPnPServiceProxyNotifyCallback ()"><span class="type">GUPnPServiceProxyNotifyCallback</span></a> associated with this
+service proxy, even if it is for another variable. In later versions such
+calls are allowed.</p>
+<div class="refsect3">
+<a name="id-1.3.3.4.9.20.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>proxy</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</td>
+<td class="parameter_name"><p>variable</p></td>
+<td class="parameter_description"><p>The variable to add notification for</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>callback</p></td>
+<td class="parameter_description"><p> The callback to call when <em class="parameter"><code>variable</code></em>
+changes. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="The callback is valid only during the call to the method."><span class="acronym">scope call</span></acronym>]</span></td>
+</tr>
+<tr>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>User data for <em class="parameter"><code>callback</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.3.4.9.20.7"></a><h4>Returns</h4>
+<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</p>
+<p></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-service-proxy-set-subscribed"></a><h3>gupnp_service_proxy_set_subscribed ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gupnp_service_proxy_set_subscribed  (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> subscribed</code></em>);</pre>
-<p>
-(Un)subscribes to this service.
-</p>
-<p>
-Note that the relevant messages are not immediately sent but queued.
-If you want to unsubcribe from this service because the application
-is quitting, rely on automatic synchronised unsubscription on object
-destruction instead.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-service-proxy-remove-raw-notify"></a><h3>gupnp_service_proxy_remove_raw_notify ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gupnp_service_proxy_remove_raw_notify (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
+                                       <em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyNotifyCallback" title="GUPnPServiceProxyNotifyCallback ()"><span class="type">GUPnPServiceProxyNotifyCallback</span></a> callback</code></em>,
+                                       <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
+<p>Cancels the variable change notification for <em class="parameter"><code>callback</code></em>
+ and <em class="parameter"><code>user_data</code></em>
+.</p>
+<p>This function must not be called directly or indirectly from a
+<a class="link" href="GUPnPServiceProxy.html#GUPnPServiceProxyNotifyCallback" title="GUPnPServiceProxyNotifyCallback ()"><span class="type">GUPnPServiceProxyNotifyCallback</span></a> associated with this service proxy, even
+if it is for another variable.</p>
+<div class="refsect3">
+<a name="id-1.3.3.4.9.21.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a>
-</td>
+<td class="parameter_name"><p>proxy</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>subscribed</code></em> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> to subscribe to this service</td>
+<td class="parameter_name"><p>callback</p></td>
+<td class="parameter_description"><p> The callback to call when <em class="parameter"><code>variable</code></em>
+changes. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="The callback is valid only during the call to the method."><span class="acronym">scope call</span></acronym>]</span></td>
+</tr>
+<tr>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>User data for <em class="parameter"><code>callback</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.3.4.9.21.7"></a><h4>Returns</h4>
+<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</p>
+<p></p>
+</div>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-service-proxy-get-subscribed"></a><h3>gupnp_service_proxy_get_subscribed ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gupnp_service_proxy_get_subscribed  (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>);</pre>
-<p>
-Returns if we are subscribed to this service.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-service-proxy-set-subscribed"></a><h3>gupnp_service_proxy_set_subscribed ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gupnp_service_proxy_set_subscribed (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>,
+                                    <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> subscribed</code></em>);</pre>
+<p>(Un)subscribes to this service.</p>
+<p>Note that the relevant messages are not immediately sent but queued.
+If you want to unsubcribe from this service because the application
+is quitting, rely on automatic synchronised unsubscription on object
+destruction instead.</p>
+<div class="refsect3">
+<a name="id-1.3.3.4.9.22.6"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a>
-</td>
+<td class="parameter_name"><p>proxy</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if we are subscribed to this service, otherwise <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</td>
+<td class="parameter_name"><p>subscribed</p></td>
+<td class="parameter_description"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> to subscribe to this service</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
 </div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-service-proxy-get-subscribed"></a><h3>gupnp_service_proxy_get_subscribed ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gupnp_service_proxy_get_subscribed (<em class="parameter"><code><a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy</code></em>);</pre>
+<p>Returns if we are subscribed to this service.</p>
+<div class="refsect3">
+<a name="id-1.3.3.4.9.23.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>proxy</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.3.4.9.23.6"></a><h4>Returns</h4>
+<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if we are subscribed to this service, otherwise <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
+<p></p>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="GUPnPServiceProxy.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GUPnPServiceProxy-struct"></a><h3>struct GUPnPServiceProxy</h3>
+<pre class="programlisting">struct GUPnPServiceProxy;</pre>
+<p>This struct contains private data only, and should be accessed using the
+functions below.</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GUPnPServiceProxyAction"></a><h3>GUPnPServiceProxyAction</h3>
+<pre class="programlisting">typedef struct _GUPnPServiceProxyAction GUPnPServiceProxyAction;</pre>
+<p>Opaque structure for holding in-progress action data.</p>
+</div>
+</div>
 <div class="refsect1">
 <a name="GUPnPServiceProxy.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
-<a name="GUPnPServiceProxy--subscribed"></a><h3>The <code class="literal">"subscribed"</code> property</h3>
-<pre class="programlisting">  "subscribed"               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
-<p>
-Whether we are subscribed to this service.
-</p>
+<a name="GUPnPServiceProxy--subscribed"></a><h3>The <code class="literal">“subscribed”</code> property</h3>
+<pre class="programlisting">  “subscribed”               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<p>Whether we are subscribed to this service.</p>
+<p>Flags: Read / Write</p>
 <p>Default value: FALSE</p>
 </div>
 </div>
 <div class="refsect1">
 <a name="GUPnPServiceProxy.signal-details"></a><h2>Signal Details</h2>
 <div class="refsect2">
-<a name="GUPnPServiceProxy-subscription-lost"></a><h3>The <code class="literal">"subscription-lost"</code> signal</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy,
-                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>           error,
-                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>           user_data)      : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
-<p>
-Emitted whenever the subscription to this service has been lost due
-to an error condition.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="GUPnPServiceProxy-subscription-lost"></a><h3>The <code class="literal">“subscription-lost”</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+user_function (<a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> *proxy,
+               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>           error,
+               <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>           user_data)</pre>
+<p>Emitted whenever the subscription to this service has been lost due
+to an error condition.</p>
+<div class="refsect3">
+<a name="id-1.3.3.4.12.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>proxy</code></em> :</span></p></td>
-<td>The <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> that received the signal</td>
+<td class="parameter_name"><p>proxy</p></td>
+<td class="parameter_description"><p>The <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> that received the signal</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
-<td>A pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> describing why the subscription has
-been lost. <span class="annotation">[<acronym title="Override the parsed C type with given type"><span class="acronym">type</span></acronym> GError]</span>
-</td>
+<td class="parameter_name"><p>error</p></td>
+<td class="parameter_description"><p>A pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> describing why the subscription has
+been lost. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> GError]</span></td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
-<td>user data set when the signal handler was connected.</td>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<p>Flags: Run Last</p>
+</div>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 9b9bd67..6dc023b 100644 (file)
@@ -2,32 +2,28 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GUPnPWhiteList</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>GUPnP Reference Manual: GUPnPWhiteList</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GUPnP Reference Manual">
 <link rel="up" href="api-utility.html" title="Utility Functions">
-<link rel="prev" href="GUPnPContextManager.html" title="GUPnPContextManager">
+<link rel="prev" href="GUPnPAcl.html" title="GUPnPAcl">
 <link rel="next" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="GUPnPContextManager.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="api-utility.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GUPnP Reference Manual</th>
-<td><a accesskey="n" href="GUPnPResourceFactory.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#GUPnPWhiteList.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#GUPnPWhiteList.description" class="shortcut">Description</a>
-                   | 
-                  <a href="#GUPnPWhiteList.object-hierarchy" class="shortcut">Object Hierarchy</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
+                  <a href="#GUPnPWhiteList.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+                  <a href="#GUPnPWhiteList.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> 
+                  <a href="#GUPnPWhiteList.properties" class="shortcut">Properties</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="api-utility.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="GUPnPAcl.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="GUPnPResourceFactory.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="GUPnPWhiteList"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
 <h2><span class="refentrytitle"><a name="GUPnPWhiteList.top_of_page"></a>GUPnPWhiteList</span></h2>
 <p>GUPnPWhiteList — Class for network filtering.</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="GUPnPWhiteList.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">struct              <a class="link" href="GUPnPWhiteList.html#GUPnPWhiteList-struct" title="struct GUPnPWhiteList">GUPnPWhiteList</a>;
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GUPnPWhiteList.html#gupnp-white-list-add-entry" title="gupnp_white_list_add_entry ()">gupnp_white_list_add_entry</a>          (<em class="parameter"><code><a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a> *white_list</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *entry</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GUPnPWhiteList.html#gupnp-white-list-check-context" title="gupnp_white_list_check_context ()">gupnp_white_list_check_context</a>      (<em class="parameter"><code><a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a> *white_list</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GUPnPWhiteList.html#gupnp-white-list-clear" title="gupnp_white_list_clear ()">gupnp_white_list_clear</a>              (<em class="parameter"><code><a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a> *white_list</code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="GUPnPWhiteList.html#gupnp-white-list-set-enabled" title="gupnp_white_list_set_enabled ()">gupnp_white_list_set_enabled</a>        (<em class="parameter"><code><a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a> *white_list</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enable</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="GUPnPWhiteList.html#gupnp-white-list-get-entries" title="gupnp_white_list_get_entries ()">gupnp_white_list_get_entries</a>        (<em class="parameter"><code><a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a> *white_list</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GUPnPWhiteList.html#gupnp-white-list-is-empty" title="gupnp_white_list_is_empty ()">gupnp_white_list_is_empty</a>           (<em class="parameter"><code><a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a> *white_list</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GUPnPWhiteList.html#gupnp-white-list-get-enabled" title="gupnp_white_list_get_enabled ()">gupnp_white_list_get_enabled</a>        (<em class="parameter"><code><a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a> *white_list</code></em>);
-<a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="returnvalue">GUPnPWhiteList</span></a> *    <a class="link" href="GUPnPWhiteList.html#gupnp-white-list-new" title="gupnp_white_list_new ()">gupnp_white_list_new</a>                (<em class="parameter"><code><span class="type">void</span></code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GUPnPWhiteList.html#gupnp-white-list-remove-entry" title="gupnp_white_list_remove_entry ()">gupnp_white_list_remove_entry</a>       (<em class="parameter"><code><a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a> *white_list</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *entry</code></em>);
-</pre>
-</div>
-<div class="refsect1">
-<a name="GUPnPWhiteList.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="synopsis">
-  <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-   +----GUPnPWhiteList
-</pre>
-</div>
-<div class="refsect1">
-<a name="GUPnPWhiteList.description"></a><h2>Description</h2>
-<p>
-<a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a> handles network filtering. It provides API to manage a list
-of entries that will be used to filter networks.
-The <a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a> could be enabled or not. If it's enabled but the entries
-list is empty, it behaves as disabled.
-</p>
-</div>
 <div class="refsect1">
-<a name="GUPnPWhiteList.details"></a><h2>Details</h2>
-<div class="refsect2">
-<a name="GUPnPWhiteList-struct"></a><h3>struct GUPnPWhiteList</h3>
-<pre class="programlisting">struct GUPnPWhiteList;</pre>
-<p>
-This struct contains private data only, and should be accessed using the
-functions below.
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gupnp-white-list-add-entry"></a><h3>gupnp_white_list_add_entry ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gupnp_white_list_add_entry          (<em class="parameter"><code><a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a> *white_list</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *entry</code></em>);</pre>
-<p>
-Add <em class="parameter"><code>entry</code></em> in the list of valid criteria used by <em class="parameter"><code>white_list</code></em> to
-filter networks.
-if <em class="parameter"><code>entry</code></em> already exists, it won't be added a second time.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="GUPnPWhiteList.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>white_list</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPWhiteList.html#gupnp-white-list-add-entry" title="gupnp_white_list_add_entry ()">gupnp_white_list_add_entry</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPWhiteList.html#gupnp-white-list-add-entryv" title="gupnp_white_list_add_entryv ()">gupnp_white_list_add_entryv</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPWhiteList.html#gupnp-white-list-check-context" title="gupnp_white_list_check_context ()">gupnp_white_list_check_context</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
-<td>A value used to filter network</td>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPWhiteList.html#gupnp-white-list-clear" title="gupnp_white_list_clear ()">gupnp_white_list_clear</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>entry</code></em> is added, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</td>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPWhiteList.html#gupnp-white-list-set-enabled" title="gupnp_white_list_set_enabled ()">gupnp_white_list_set_enabled</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPWhiteList.html#gupnp-white-list-get-entries" title="gupnp_white_list_get_entries ()">gupnp_white_list_get_entries</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPWhiteList.html#gupnp-white-list-is-empty" title="gupnp_white_list_is_empty ()">gupnp_white_list_is_empty</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPWhiteList.html#gupnp-white-list-get-enabled" title="gupnp_white_list_get_enabled ()">gupnp_white_list_get_enabled</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="returnvalue">GUPnPWhiteList</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPWhiteList.html#gupnp-white-list-new" title="gupnp_white_list_new ()">gupnp_white_list_new</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPWhiteList.html#gupnp-white-list-remove-entry" title="gupnp_white_list_remove_entry ()">gupnp_white_list_remove_entry</a> <span class="c_punctuation">()</span>
+</td>
 </tr>
 </tbody>
 </table></div>
 </div>
-<hr>
-<div class="refsect2">
-<a name="gupnp-white-list-check-context"></a><h3>gupnp_white_list_check_context ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gupnp_white_list_check_context      (<em class="parameter"><code><a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a> *white_list</code></em>,
-                                                         <em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>);</pre>
-<p>
-It will check if the <em class="parameter"><code>context</code></em> is allowed or not. The <em class="parameter"><code>white_list</code></em> will check
-all its entries againt <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> interface, host ip and network fields
-information. This function doesn't take into account the <em class="parameter"><code>white_list</code></em> status
-(enabled or not).
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<div class="refsect1">
+<a name="GUPnPWhiteList.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table border="0">
+<colgroup>
+<col width="150px" class="properties_type">
+<col width="300px" class="properties_name">
+<col width="200px" class="properties_flags">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>white_list</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a>
-</td>
+<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_name"><a class="link" href="GUPnPWhiteList.html#GUPnPWhiteList--enabled" title="The “enabled” property">enabled</a></td>
+<td class="property_flags">Read / Write / Construct</td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> to test.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>context</code></em> is matching the <em class="parameter"><code>white_list</code></em> criterias,
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</td>
+<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a></td>
+<td class="property_name"><a class="link" href="GUPnPWhiteList.html#GUPnPWhiteList--entries" title="The “entries” property">entries</a></td>
+<td class="property_flags">Read / Write / Construct Only</td>
 </tr>
 </tbody>
 </table></div>
 </div>
-<hr>
-<div class="refsect2">
-<a name="gupnp-white-list-clear"></a><h3>gupnp_white_list_clear ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gupnp_white_list_clear              (<em class="parameter"><code><a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a> *white_list</code></em>);</pre>
-<p>
-Remove all entries from <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> that compose the white list.
-The list is now empty. Even if <a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a> is enabled, it will have the
-same behavior as if it was disabled.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<div class="refsect1">
+<a name="GUPnPWhiteList.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
 <tbody><tr>
-<td><p><span class="term"><em class="parameter"><code>white_list</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a>
-</td>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="GUPnPWhiteList.html#GUPnPWhiteList-struct" title="struct GUPnPWhiteList">GUPnPWhiteList</a></td>
 </tr></tbody>
 </table></div>
 </div>
-<hr>
+<div class="refsect1">
+<a name="GUPnPWhiteList.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> GUPnPWhiteList
+</pre>
+</div>
+<div class="refsect1">
+<a name="GUPnPWhiteList.description"></a><h2>Description</h2>
+<p><a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a> handles network filtering. It provides API to manage a list
+of entries that will be used to filter networks.
+The <a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a> could be enabled or not. If it's enabled but the entries
+list is empty, it behaves as disabled.</p>
+</div>
+<div class="refsect1">
+<a name="GUPnPWhiteList.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
-<a name="gupnp-white-list-set-enabled"></a><h3>gupnp_white_list_set_enabled ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                gupnp_white_list_set_enabled        (<em class="parameter"><code><a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a> *white_list</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enable</code></em>);</pre>
-<p>
-Enable or disable the <a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a> to perform the network filtering.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-white-list-add-entry"></a><h3>gupnp_white_list_add_entry ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gupnp_white_list_add_entry (<em class="parameter"><code><a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a> *white_list</code></em>,
+                            <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *entry</code></em>);</pre>
+<p>Add <em class="parameter"><code>entry</code></em>
+ in the list of valid criteria used by <em class="parameter"><code>white_list</code></em>
+ to
+filter networks.
+if <em class="parameter"><code>entry</code></em>
+ already exists, it won't be added a second time.</p>
+<div class="refsect3">
+<a name="id-1.3.6.3.8.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>white_list</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a>
-</td>
+<td class="parameter_name"><p>white_list</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>enable</code></em> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> to enable <em class="parameter"><code>white_list</code></em>, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise</td>
+<td class="parameter_name"><p>entry</p></td>
+<td class="parameter_description"><p>A value used to filter network</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.6.3.8.2.6"></a><h4>Returns</h4>
+<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>entry</code></em>
+is added, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
+<p></p>
+</div>
+<p class="since">Since 0.20.5</p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-white-list-get-entries"></a><h3>gupnp_white_list_get_entries ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             gupnp_white_list_get_entries        (<em class="parameter"><code><a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a> *white_list</code></em>);</pre>
-<p>
-Get the <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of entries that compose the white list. Do not free
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-white-list-add-entryv"></a><h3>gupnp_white_list_add_entryv ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gupnp_white_list_add_entryv (<em class="parameter"><code><a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a> *white_list</code></em>,
+                             <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **entries</code></em>);</pre>
+<p>Add a list of entries to a <a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a>. This is a helper function to
+directly add a <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>-terminated array of string usually aquired from
+commandline args.</p>
+<div class="refsect3">
+<a name="id-1.3.6.3.8.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>white_list</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a>
-</td>
+<td class="parameter_name"><p>white_list</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of entries
-used to filter networks, interfaces,... or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
-Do not modify or free the list nor its elements. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>entries</p></td>
+<td class="parameter_description"><p> A <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>-terminated list of strings. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1]</span></td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<p class="since">Since 0.20.8</p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-white-list-is-empty"></a><h3>gupnp_white_list_is_empty ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gupnp_white_list_is_empty           (<em class="parameter"><code><a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a> *white_list</code></em>);</pre>
-<p>
-Return the state of the entries list of <a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-white-list-check-context"></a><h3>gupnp_white_list_check_context ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gupnp_white_list_check_context (<em class="parameter"><code><a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a> *white_list</code></em>,
+                                <em class="parameter"><code><a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> *context</code></em>);</pre>
+<p>It will check if the <em class="parameter"><code>context</code></em>
+ is allowed or not. The <em class="parameter"><code>white_list</code></em>
+ will check
+all its entries againt <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> interface, host ip and network fields
+information. This function doesn't take into account the <em class="parameter"><code>white_list</code></em>
+ status
+(enabled or not).</p>
+<div class="refsect3">
+<a name="id-1.3.6.3.8.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>white_list</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a>
-</td>
+<td class="parameter_name"><p>white_list</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>white_list</code></em> is empty, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</td>
+<td class="parameter_name"><p>context</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> to test.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.6.3.8.4.6"></a><h4>Returns</h4>
+<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>context</code></em>
+is matching the <em class="parameter"><code>white_list</code></em>
+criterias,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
+<p></p>
+</div>
+<p class="since">Since 0.20.5</p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-white-list-get-enabled"></a><h3>gupnp_white_list_get_enabled ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gupnp_white_list_get_enabled        (<em class="parameter"><code><a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a> *white_list</code></em>);</pre>
-<p>
-Return the status of the <a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-white-list-clear"></a><h3>gupnp_white_list_clear ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gupnp_white_list_clear (<em class="parameter"><code><a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a> *white_list</code></em>);</pre>
+<p>Remove all entries from <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> that compose the white list.
+The list is now empty. Even if <a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a> is enabled, it will have the
+same behavior as if it was disabled.</p>
+<div class="refsect3">
+<a name="id-1.3.6.3.8.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>white_list</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since 0.20.5</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-white-list-set-enabled"></a><h3>gupnp_white_list_set_enabled ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gupnp_white_list_set_enabled (<em class="parameter"><code><a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a> *white_list</code></em>,
+                              <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enable</code></em>);</pre>
+<p>Enable or disable the <a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a> to perform the network filtering.</p>
+<div class="refsect3">
+<a name="id-1.3.6.3.8.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>white_list</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a>
-</td>
+<td class="parameter_name"><p>white_list</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>white_list</code></em> is enabled, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</td>
+<td class="parameter_name"><p>enable</p></td>
+<td class="parameter_description"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> to enable <em class="parameter"><code>white_list</code></em>
+, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<p class="since">Since 0.20.5</p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-white-list-new"></a><h3>gupnp_white_list_new ()</h3>
-<pre class="programlisting"><a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="returnvalue">GUPnPWhiteList</span></a> *    gupnp_white_list_new                (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>
-Create a new <a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a>.
-The white list is disabled by default.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-white-list-get-entries"></a><h3>gupnp_white_list_get_entries ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+gupnp_white_list_get_entries (<em class="parameter"><code><a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a> *white_list</code></em>);</pre>
+<p>Get the <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of entries that compose the white list. Do not free</p>
+<div class="refsect3">
+<a name="id-1.3.6.3.8.7.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody><tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A new <a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a> object. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
+<td class="parameter_name"><p>white_list</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr></tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.6.3.8.7.6"></a><h4>Returns</h4>
+<p>  a <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of entries
+used to filter networks, interfaces,... or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
+Do not modify or free the list nor its elements. </p>
+<p><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+<p class="since">Since 0.20.5</p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-white-list-remove-entry"></a><h3>gupnp_white_list_remove_entry ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gupnp_white_list_remove_entry       (<em class="parameter"><code><a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a> *white_list</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *entry</code></em>);</pre>
-<p>
-Remove <em class="parameter"><code>entry</code></em> in the list of valid criteria used by <em class="parameter"><code>white_list</code></em> to
-filter networks.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-white-list-is-empty"></a><h3>gupnp_white_list_is_empty ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gupnp_white_list_is_empty (<em class="parameter"><code><a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a> *white_list</code></em>);</pre>
+<p>Return the state of the entries list of <a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a></p>
+<div class="refsect3">
+<a name="id-1.3.6.3.8.8.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>white_list</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.6.3.8.8.6"></a><h4>Returns</h4>
+<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>white_list</code></em>
+is empty, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
+<p></p>
+</div>
+<p class="since">Since 0.20.5</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-white-list-get-enabled"></a><h3>gupnp_white_list_get_enabled ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gupnp_white_list_get_enabled (<em class="parameter"><code><a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a> *white_list</code></em>);</pre>
+<p>Return the status of the <a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a></p>
+<div class="refsect3">
+<a name="id-1.3.6.3.8.9.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>white_list</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.6.3.8.9.6"></a><h4>Returns</h4>
+<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>white_list</code></em>
+is enabled, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
+<p></p>
+</div>
+<p class="since">Since 0.20.5</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-white-list-new"></a><h3>gupnp_white_list_new ()</h3>
+<pre class="programlisting"><a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="returnvalue">GUPnPWhiteList</span></a> *
+gupnp_white_list_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>Create a new <a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a>.
+The white list is disabled by default.</p>
+<div class="refsect3">
+<a name="id-1.3.6.3.8.10.5"></a><h4>Returns</h4>
+<p> A new <a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a> object. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+</div>
+<p class="since">Since 0.20.5</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-white-list-remove-entry"></a><h3>gupnp_white_list_remove_entry ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gupnp_white_list_remove_entry (<em class="parameter"><code><a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a> *white_list</code></em>,
+                               <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *entry</code></em>);</pre>
+<p>Remove <em class="parameter"><code>entry</code></em>
+ in the list of valid criteria used by <em class="parameter"><code>white_list</code></em>
+ to
+filter networks.</p>
+<div class="refsect3">
+<a name="id-1.3.6.3.8.11.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>white_list</code></em> :</span></p></td>
-<td>A <a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a>
-</td>
+<td class="parameter_name"><p>white_list</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GUPnPWhiteList.html" title="GUPnPWhiteList"><span class="type">GUPnPWhiteList</span></a></p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>entry</code></em> :</span></p></td>
-<td>A value to remove from the filter list.</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>entry</code></em> is removed, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</td>
+<td class="parameter_name"><p>entry</p></td>
+<td class="parameter_description"><p>A value to remove from the filter list.</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.6.3.8.11.6"></a><h4>Returns</h4>
+<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>entry</code></em>
+is removed, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
+<p></p>
+</div>
+<p class="since">Since 0.20.5</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="GUPnPWhiteList.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GUPnPWhiteList-struct"></a><h3>struct GUPnPWhiteList</h3>
+<pre class="programlisting">struct GUPnPWhiteList;</pre>
+<p>This struct contains private data only, and should be accessed using the
+functions below.</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="GUPnPWhiteList.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GUPnPWhiteList--enabled"></a><h3>The <code class="literal">“enabled”</code> property</h3>
+<pre class="programlisting">  “enabled”                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<p>Whether this white list is active or not.</p>
+<p>Flags: Read / Write / Construct</p>
+<p>Default value: FALSE</p>
+<p class="since">Since 0.20.5</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GUPnPWhiteList--entries"></a><h3>The <code class="literal">“entries”</code> property</h3>
+<pre class="programlisting">  “entries”                  <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a></pre>
+<p>GList of strings that compose the white list.</p>
+<p>Flags: Read / Write / Construct Only</p>
+</div>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index dc011ab..5c14088 100644 (file)
@@ -2,32 +2,27 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GUPnPXMLDoc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>GUPnP Reference Manual: GUPnPXMLDoc</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GUPnP Reference Manual">
 <link rel="up" href="api-utility.html" title="Utility Functions">
 <link rel="prev" href="GUPnPResourceFactory.html" title="GUPnPResourceFactory">
 <link rel="next" href="gupnp-Error-codes.html" title="Error codes">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="GUPnPResourceFactory.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="api-utility.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GUPnP Reference Manual</th>
-<td><a accesskey="n" href="gupnp-Error-codes.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#GUPnPXMLDoc.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#GUPnPXMLDoc.description" class="shortcut">Description</a>
-                   | 
-                  <a href="#GUPnPXMLDoc.object-hierarchy" class="shortcut">Object Hierarchy</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
+                  <a href="#GUPnPXMLDoc.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+                  <a href="#GUPnPXMLDoc.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="api-utility.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="GUPnPResourceFactory.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gupnp-Error-codes.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="GUPnPXMLDoc"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
 <h2><span class="refentrytitle"><a name="GUPnPXMLDoc.top_of_page"></a>GUPnPXMLDoc</span></h2>
 <p>GUPnPXMLDoc — GObject wrapper for xmlDoc.</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="GUPnPXMLDoc.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">struct              <a class="link" href="GUPnPXMLDoc.html#GUPnPXMLDoc-struct" title="struct GUPnPXMLDoc">GUPnPXMLDoc</a>;
-<a class="link" href="GUPnPXMLDoc.html" title="GUPnPXMLDoc"><span class="returnvalue">GUPnPXMLDoc</span></a> *       <a class="link" href="GUPnPXMLDoc.html#gupnp-xml-doc-new" title="gupnp_xml_doc_new ()">gupnp_xml_doc_new</a>                   (<em class="parameter"><code><span class="type">xmlDoc</span> *xml_doc</code></em>);
-<a class="link" href="GUPnPXMLDoc.html" title="GUPnPXMLDoc"><span class="returnvalue">GUPnPXMLDoc</span></a> *       <a class="link" href="GUPnPXMLDoc.html#gupnp-xml-doc-new-from-path" title="gupnp_xml_doc_new_from_path ()">gupnp_xml_doc_new_from_path</a>         (<em class="parameter"><code>const <span class="type">char</span> *path</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);
-</pre>
+<div class="refsect1">
+<a name="GUPnPXMLDoc.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<a class="link" href="GUPnPXMLDoc.html" title="GUPnPXMLDoc"><span class="returnvalue">GUPnPXMLDoc</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPXMLDoc.html#gupnp-xml-doc-new" title="gupnp_xml_doc_new ()">gupnp_xml_doc_new</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="GUPnPXMLDoc.html" title="GUPnPXMLDoc"><span class="returnvalue">GUPnPXMLDoc</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="GUPnPXMLDoc.html#gupnp-xml-doc-new-from-path" title="gupnp_xml_doc_new_from_path ()">gupnp_xml_doc_new_from_path</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="GUPnPXMLDoc.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="GUPnPXMLDoc.html#GUPnPXMLDoc-struct" title="struct GUPnPXMLDoc">GUPnPXMLDoc</a></td>
+</tr></tbody>
+</table></div>
 </div>
 <div class="refsect1">
 <a name="GUPnPXMLDoc.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="synopsis">
-  <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-   +----GUPnPXMLDoc
+<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> GUPnPXMLDoc
 </pre>
 </div>
 <div class="refsect1">
 <a name="GUPnPXMLDoc.description"></a><h2>Description</h2>
-<p>
-GObject wrapper for xmlDoc, so that we can use refcounting and weak
-references.
-</p>
+<p>GObject wrapper for xmlDoc, so that we can use refcounting and weak
+references.</p>
 </div>
 <div class="refsect1">
-<a name="GUPnPXMLDoc.details"></a><h2>Details</h2>
+<a name="GUPnPXMLDoc.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
-<a name="GUPnPXMLDoc-struct"></a><h3>struct GUPnPXMLDoc</h3>
-<pre class="programlisting">struct GUPnPXMLDoc {
-        xmlDoc *doc;
-};
-</pre>
-<p>
-Reference-counting wrapper for libxml's <span class="type">xmlDoc</span>
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-xml-doc-new"></a><h3>gupnp_xml_doc_new ()</h3>
+<pre class="programlisting"><a class="link" href="GUPnPXMLDoc.html" title="GUPnPXMLDoc"><span class="returnvalue">GUPnPXMLDoc</span></a> *
+gupnp_xml_doc_new (<em class="parameter"><code><span class="type">xmlDoc</span> *xml_doc</code></em>);</pre>
+<p>Create a new <a class="link" href="GUPnPXMLDoc.html" title="GUPnPXMLDoc"><span class="type">GUPnPXMLDoc</span></a> for <em class="parameter"><code>xml_doc</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.3.6.5.7.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody><tr>
-<td><p><span class="term"><span class="type">xmlDoc</span> *<em class="structfield"><code><a name="GUPnPXMLDoc-struct.doc"></a>doc</code></em>;</span></p></td>
-<td>Pointer to the document.</td>
+<td class="parameter_name"><p>xml_doc</p></td>
+<td class="parameter_description"><p>Pointer to <span class="type">xmlDoc</span> to wrap under this object</p></td>
+<td class="parameter_annotations"> </td>
 </tr></tbody>
 </table></div>
 </div>
+<div class="refsect3">
+<a name="id-1.3.6.5.7.2.6"></a><h4>Returns</h4>
+<p> A new <a class="link" href="GUPnPXMLDoc.html" title="GUPnPXMLDoc"><span class="type">GUPnPXMLDoc</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> on an error</p>
+<p></p>
+</div>
+<p class="since">Since 0.13.0</p>
+</div>
 <hr>
 <div class="refsect2">
-<a name="gupnp-xml-doc-new"></a><h3>gupnp_xml_doc_new ()</h3>
-<pre class="programlisting"><a class="link" href="GUPnPXMLDoc.html" title="GUPnPXMLDoc"><span class="returnvalue">GUPnPXMLDoc</span></a> *       gupnp_xml_doc_new                   (<em class="parameter"><code><span class="type">xmlDoc</span> *xml_doc</code></em>);</pre>
-<p>
-Create a new <a class="link" href="GUPnPXMLDoc.html" title="GUPnPXMLDoc"><span class="type">GUPnPXMLDoc</span></a> for <em class="parameter"><code>xml_doc</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<a name="gupnp-xml-doc-new-from-path"></a><h3>gupnp_xml_doc_new_from_path ()</h3>
+<pre class="programlisting"><a class="link" href="GUPnPXMLDoc.html" title="GUPnPXMLDoc"><span class="returnvalue">GUPnPXMLDoc</span></a> *
+gupnp_xml_doc_new_from_path (<em class="parameter"><code>const <span class="type">char</span> *path</code></em>,
+                             <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
+<p>Create a new <a class="link" href="GUPnPXMLDoc.html" title="GUPnPXMLDoc"><span class="type">GUPnPXMLDoc</span></a> for the XML document at <em class="parameter"><code>path</code></em>
+.</p>
+<div class="refsect3">
+<a name="id-1.3.6.5.7.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><em class="parameter"><code>xml_doc</code></em> :</span></p></td>
-<td>Pointer to <span class="type">xmlDoc</span> to wrap under this object</td>
+<td class="parameter_name"><p>path</p></td>
+<td class="parameter_description"><p>Path to xml document</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A new <a class="link" href="GUPnPXMLDoc.html" title="GUPnPXMLDoc"><span class="type">GUPnPXMLDoc</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> on an error</td>
+<td class="parameter_name"><p>error</p></td>
+<td class="parameter_description"><p>Location to put the error into</p></td>
+<td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
-<hr>
+<div class="refsect3">
+<a name="id-1.3.6.5.7.3.6"></a><h4>Returns</h4>
+<p> A new <a class="link" href="GUPnPXMLDoc.html" title="GUPnPXMLDoc"><span class="type">GUPnPXMLDoc</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> on an error</p>
+<p></p>
+</div>
+<p class="since">Since 0.13.0</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="GUPnPXMLDoc.other_details"></a><h2>Types and Values</h2>
 <div class="refsect2">
-<a name="gupnp-xml-doc-new-from-path"></a><h3>gupnp_xml_doc_new_from_path ()</h3>
-<pre class="programlisting"><a class="link" href="GUPnPXMLDoc.html" title="GUPnPXMLDoc"><span class="returnvalue">GUPnPXMLDoc</span></a> *       gupnp_xml_doc_new_from_path         (<em class="parameter"><code>const <span class="type">char</span> *path</code></em>,
-                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
-<p>
-Create a new <a class="link" href="GUPnPXMLDoc.html" title="GUPnPXMLDoc"><span class="type">GUPnPXMLDoc</span></a> for the XML document at <em class="parameter"><code>path</code></em>.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>path</code></em> :</span></p></td>
-<td>Path to xml document</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
-<td>Location to put the error into</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A new <a class="link" href="GUPnPXMLDoc.html" title="GUPnPXMLDoc"><span class="type">GUPnPXMLDoc</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> on an error</td>
-</tr>
-</tbody>
+<a name="GUPnPXMLDoc-struct"></a><h3>struct GUPnPXMLDoc</h3>
+<pre class="programlisting">struct GUPnPXMLDoc {
+        xmlDoc *doc;
+};
+</pre>
+<p>Reference-counting wrapper for libxml's <span class="type">xmlDoc</span></p>
+<div class="refsect3">
+<a name="id-1.3.6.5.8.2.5"></a><h4>Members</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody><tr>
+<td class="struct_member_name"><p><span class="type">xmlDoc</span> *<em class="structfield"><code><a name="GUPnPXMLDoc-struct.doc"></a>doc</code></em>;</p></td>
+<td class="struct_member_description"><p>Pointer to the document.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr></tbody>
 </table></div>
 </div>
 </div>
 </div>
+</div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index e128a1a..36ec0fd 100644 (file)
@@ -2,83 +2,67 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Annotation Glossary</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>GUPnP Reference Manual: Annotation Glossary</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GUPnP Reference Manual">
 <link rel="up" href="index.html" title="GUPnP Reference Manual">
 <link rel="prev" href="glossary.html" title="Glossary">
 <link rel="next" href="ix01.html" title="Index">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="glossary.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td> </td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GUPnP Reference Manual</th>
-<td><a accesskey="n" href="ix01.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a class="shortcut" href="#glsO">O</a>
-                      | 
-                   <a class="shortcut" href="#glsS">S</a>
-                      | 
-                   <a class="shortcut" href="#glsA">A</a>
-                      | 
-                   <a class="shortcut" href="#glsI">I</a>
-                      | 
-                   <a class="shortcut" href="#glsT">T</a>
-                      | 
-                   <a class="shortcut" href="#glsE">E</a>
-                      | 
-                   <a class="shortcut" href="#glsS">S</a>
-                      | 
-                   <a class="shortcut" href="#glsT">T</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"><span id="nav_glossary"><a class="shortcut" href="#glsA">A</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#glsE">E</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#glsI">I</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#glsO">O</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#glsS">S</a>
+                     <span class="dim">|</span> 
+                  <a class="shortcut" href="#glsT">T</a></span></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="glossary.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="ix01.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="glossary">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="annotation-glossary"></a>Annotation Glossary</h2></div></div></div>
-<a name="glsO"></a><h3 class="title">O</h3>
-<dt>
-<a name="annotation-glossterm-out"></a>out</dt>
-<dd><p>Parameter for returning results. Default is <acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>.</p></dd>
-<a name="glsS"></a><h3 class="title">S</h3>
-<dt>
-<a name="annotation-glossterm-scope%20async"></a>scope async</dt>
-<dd><p>The callback is valid until first called.</p></dd>
+<div class="titlepage"><div><div><h1 class="title">
+<a name="annotation-glossary"></a>Annotation Glossary</h1></div></div></div>
 <a name="glsA"></a><h3 class="title">A</h3>
-<dt>
-<a name="annotation-glossterm-allow-none"></a>allow-none</dt>
-<dd><p>NULL is ok, both for passing and for returning.</p></dd>
-<a name="glsI"></a><h3 class="title">I</h3>
-<dt>
-<a name="annotation-glossterm-inout"></a>inout</dt>
-<dd><p>Parameter for input and for returning results. Default is <acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>.</p></dd>
-<a name="glsT"></a><h3 class="title">T</h3>
-<dt>
-<a name="annotation-glossterm-transfer%20none"></a>transfer none</dt>
-<dd><p>Don't free data after the code is done.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-allow-none"></a>allow-none</span></dt>
+<dd class="glossdef"><p>NULL is ok, both for passing and for returning.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-array"></a>array</span></dt>
+<dd class="glossdef"><p>Parameter points to an array of items.</p></dd>
 <a name="glsE"></a><h3 class="title">E</h3>
-<dt>
-<a name="annotation-glossterm-element-type"></a>element-type</dt>
-<dd><p>Generics and defining elements of containers and arrays.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-element-type"></a>element-type</span></dt>
+<dd class="glossdef"><p>Generics and defining elements of containers and arrays.</p></dd>
+<a name="glsI"></a><h3 class="title">I</h3>
+<dt><span class="glossterm"><a name="annotation-glossterm-inout"></a>inout</span></dt>
+<dd class="glossdef"><p>Parameter for input and for returning results. Default is <acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>.</p></dd>
+<a name="glsO"></a><h3 class="title">O</h3>
+<dt><span class="glossterm"><a name="annotation-glossterm-out"></a>out</span></dt>
+<dd class="glossdef"><p>Parameter for returning results. Default is <acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>.</p></dd>
 <a name="glsS"></a><h3 class="title">S</h3>
-<dt>
-<a name="annotation-glossterm-scope%20call"></a>scope call</dt>
-<dd><p>The callback is valid only during the call to the method.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-scope%20async"></a>scope async</span></dt>
+<dd class="glossdef"><p>The callback is valid until first called.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-scope%20call"></a>scope call</span></dt>
+<dd class="glossdef"><p>The callback is valid only during the call to the method.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-scope%20notified"></a>scope notified</span></dt>
+<dd class="glossdef"><p>The callback is valid until the GDestroyNotify argument is called.</p></dd>
 <a name="glsT"></a><h3 class="title">T</h3>
-<dt>
-<a name="annotation-glossterm-transfer%20full"></a>transfer full</dt>
-<dd><p>Free data after the code is done.</p></dd>
-<dt>
-<a name="annotation-glossterm-type"></a>type</dt>
-<dd><p>Override the parsed C type with given type</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-transfer%20full"></a>transfer full</span></dt>
+<dd class="glossdef"><p>Free data after the code is done.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-transfer%20none"></a>transfer none</span></dt>
+<dd class="glossdef"><p>Don't free data after the code is done.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-type"></a>type</span></dt>
+<dd class="glossdef"><p>Override the parsed C type with given type.</p></dd>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/doc/html/api-context.html b/doc/html/api-context.html
new file mode 100644 (file)
index 0000000..ea896aa
--- /dev/null
@@ -0,0 +1,38 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GUPnP Reference Manual: Network context handling</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="GUPnP Reference Manual">
+<link rel="up" href="api.html" title="Part II. Reference">
+<link rel="prev" href="GUPnPService.html" title="GUPnPService">
+<link rel="next" href="GUPnPContext.html" title="GUPnPContext">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="api.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="GUPnPService.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="GUPnPContext.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="chapter">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="api-context"></a>Network context handling</h2></div></div></div>
+<div class="toc"><dl class="toc">
+<dt>
+<span class="refentrytitle"><a href="GUPnPContext.html">GUPnPContext</a></span><span class="refpurpose"> — Context object wrapping shared networking bits.</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="GUPnPContextManager.html">GUPnPContextManager</a></span><span class="refpurpose"> — Manages GUPnPContext objects.</span>
+</dt>
+</dl></div>
+</div>
+<div class="footer">
+<hr>
+          Generated by GTK-Doc V1.20</div>
+</body>
+</html>
\ No newline at end of file
index 029ded6..802e791 100644 (file)
@@ -2,27 +2,27 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Device Control</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>GUPnP Reference Manual: Device Control</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GUPnP Reference Manual">
 <link rel="up" href="api.html" title="Part II. Reference">
 <link rel="prev" href="gupnp-gupnp-service-introspection.html" title="GUPnPServiceIntrospection">
 <link rel="next" href="GUPnPControlPoint.html" title="GUPnPControlPoint">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="gupnp-gupnp-service-introspection.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="api.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GUPnP Reference Manual</th>
-<td><a accesskey="n" href="GUPnPControlPoint.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="api.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="gupnp-gupnp-service-introspection.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="GUPnPControlPoint.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="chapter">
 <div class="titlepage"><div><div><h2 class="title">
 <a name="api-device-control"></a>Device Control</h2></div></div></div>
-<div class="toc"><dl>
+<div class="toc"><dl class="toc">
 <dt>
 <span class="refentrytitle"><a href="GUPnPControlPoint.html">GUPnPControlPoint</a></span><span class="refpurpose"> — Class for resource discovery.</span>
 </dt>
@@ -36,6 +36,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index ba34c56..34d935c 100644 (file)
@@ -2,27 +2,27 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Device Implementation</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>GUPnP Reference Manual: Device Implementation</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GUPnP Reference Manual">
 <link rel="up" href="api.html" title="Part II. Reference">
 <link rel="prev" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy">
 <link rel="next" href="GUPnPDevice.html" title="GUPnPDevice">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="GUPnPServiceProxy.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="api.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GUPnP Reference Manual</th>
-<td><a accesskey="n" href="GUPnPDevice.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="api.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="GUPnPServiceProxy.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="GUPnPDevice.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="chapter">
 <div class="titlepage"><div><div><h2 class="title">
 <a name="api-device-impl"></a>Device Implementation</h2></div></div></div>
-<div class="toc"><dl>
+<div class="toc"><dl class="toc">
 <dt>
 <span class="refentrytitle"><a href="GUPnPDevice.html">GUPnPDevice</a></span><span class="refpurpose"> — Class for device implementations.</span>
 </dt>
@@ -36,6 +36,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index f85ec54..af02f39 100644 (file)
@@ -2,27 +2,27 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Device Information</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>GUPnP Reference Manual: Device Information</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GUPnP Reference Manual">
 <link rel="up" href="api.html" title="Part II. Reference">
 <link rel="prev" href="api.html" title="Part II. Reference">
 <link rel="next" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="api.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="api.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GUPnP Reference Manual</th>
-<td><a accesskey="n" href="GUPnPDeviceInfo.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="api.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="api.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="GUPnPDeviceInfo.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="chapter">
 <div class="titlepage"><div><div><h2 class="title">
 <a name="api-device-info"></a>Device Information</h2></div></div></div>
-<div class="toc"><dl>
+<div class="toc"><dl class="toc">
 <dt>
 <span class="refentrytitle"><a href="GUPnPDeviceInfo.html">GUPnPDeviceInfo</a></span><span class="refpurpose"> — Base abstract class for querying device information.</span>
 </dt>
@@ -36,6 +36,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index ab0b716..c7772d4 100644 (file)
@@ -2,32 +2,32 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Tools</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>GUPnP Reference Manual: Tools</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GUPnP Reference Manual">
 <link rel="up" href="api.html" title="Part II. Reference">
 <link rel="prev" href="gupnp-Special-UPnP-types.html" title="Special UPnP types">
 <link rel="next" href="gupnp-binding-tool.html" title="gupnp-binding-tool">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="gupnp-Special-UPnP-types.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="api.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GUPnP Reference Manual</th>
-<td><a accesskey="n" href="gupnp-binding-tool.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="api.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="gupnp-Special-UPnP-types.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gupnp-binding-tool.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="chapter">
 <div class="titlepage"><div><div><h2 class="title">
 <a name="api-tools"></a>Tools</h2></div></div></div>
-<div class="toc"><dl><dt>
+<div class="toc"><dl class="toc"><dt>
 <span class="refentrytitle"><a href="gupnp-binding-tool.html">gupnp-binding-tool</a></span><span class="refpurpose"> — creates C convenience wrappers for UPnP services</span>
 </dt></dl></div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 8c6af5a..b6ab543 100644 (file)
@@ -2,32 +2,30 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Utility Functions</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>GUPnP Reference Manual: Utility Functions</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GUPnP Reference Manual">
 <link rel="up" href="api.html" title="Part II. Reference">
-<link rel="prev" href="GUPnPService.html" title="GUPnPService">
-<link rel="next" href="GUPnPContext.html" title="GUPnPContext">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="prev" href="GUPnPContextManager.html" title="GUPnPContextManager">
+<link rel="next" href="GUPnPAcl.html" title="GUPnPAcl">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="GUPnPService.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="api.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GUPnP Reference Manual</th>
-<td><a accesskey="n" href="GUPnPContext.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="api.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="GUPnPContextManager.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="GUPnPAcl.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="chapter">
 <div class="titlepage"><div><div><h2 class="title">
 <a name="api-utility"></a>Utility Functions</h2></div></div></div>
-<div class="toc"><dl>
+<div class="toc"><dl class="toc">
 <dt>
-<span class="refentrytitle"><a href="GUPnPContext.html">GUPnPContext</a></span><span class="refpurpose"> — Context object wrapping shared networking bits.</span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="GUPnPContextManager.html">GUPnPContextManager</a></span><span class="refpurpose"> — Manages <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> objects.</span>
+<span class="refentrytitle"><a href="GUPnPAcl.html">GUPnPAcl</a></span><span class="refpurpose"> — Object providing a simple access control list for
+GUPnP.</span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="GUPnPWhiteList.html">GUPnPWhiteList</a></span><span class="refpurpose"> — Class for network filtering.</span>
@@ -48,6 +46,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 2222802..54aa52c 100644 (file)
@@ -2,29 +2,29 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Part II. Reference</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>GUPnP Reference Manual: Part II. Reference</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GUPnP Reference Manual">
 <link rel="up" href="index.html" title="GUPnP Reference Manual">
 <link rel="prev" href="server-tutorial.html" title="Writing a UPnP Service">
 <link rel="next" href="api-device-info.html" title="Device Information">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="server-tutorial.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td> </td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GUPnP Reference Manual</th>
-<td><a accesskey="n" href="api-device-info.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="server-tutorial.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="api-device-info.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="part">
 <div class="titlepage"><div><div><h1 class="title">
 <a name="api"></a>Part II. Reference</h1></div></div></div>
 <div class="toc">
 <p><b>Table of Contents</b></p>
-<dl>
+<dl class="toc">
 <dt><span class="chapter"><a href="api-device-info.html">Device Information</a></span></dt>
 <dd><dl>
 <dt>
 <span class="refentrytitle"><a href="GUPnPService.html">GUPnPService</a></span><span class="refpurpose"> — Class for service implementations.</span>
 </dt>
 </dl></dd>
-<dt><span class="chapter"><a href="api-utility.html">Utility Functions</a></span></dt>
+<dt><span class="chapter"><a href="api-context.html">Network context handling</a></span></dt>
 <dd><dl>
 <dt>
 <span class="refentrytitle"><a href="GUPnPContext.html">GUPnPContext</a></span><span class="refpurpose"> — Context object wrapping shared networking bits.</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="GUPnPContextManager.html">GUPnPContextManager</a></span><span class="refpurpose"> — Manages <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> objects.</span>
+<span class="refentrytitle"><a href="GUPnPContextManager.html">GUPnPContextManager</a></span><span class="refpurpose"> — Manages GUPnPContext objects.</span>
+</dt>
+</dl></dd>
+<dt><span class="chapter"><a href="api-utility.html">Utility Functions</a></span></dt>
+<dd><dl>
+<dt>
+<span class="refentrytitle"><a href="GUPnPAcl.html">GUPnPAcl</a></span><span class="refpurpose"> — Object providing a simple access control list for
+GUPnP.</span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="GUPnPWhiteList.html">GUPnPWhiteList</a></span><span class="refpurpose"> — Class for network filtering.</span>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 395ddcd..b83abe7 100644 (file)
@@ -2,29 +2,29 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Writing a UPnP Client</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>GUPnP Reference Manual: Writing a UPnP Client</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GUPnP Reference Manual">
 <link rel="up" href="tutorial.html" title="Part I. Tutorial">
 <link rel="prev" href="overview.html" title="Overview">
 <link rel="next" href="server-tutorial.html" title="Writing a UPnP Service">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="overview.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="tutorial.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GUPnP Reference Manual</th>
-<td><a accesskey="n" href="server-tutorial.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="tutorial.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="overview.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="server-tutorial.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="chapter">
 <div class="titlepage"><div><div><h2 class="title">
 <a name="client-tutorial"></a>Writing a UPnP Client</h2></div></div></div>
 <div class="simplesect">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="idp6270480"></a>Introduction</h2></div></div></div>
+<a name="id-1.2.3.2"></a>Introduction</h2></div></div></div>
 <p>
       This chapter explains how to write an application which fetches the
       external IP address from an UPnP-compliant modem.  To do this a
@@ -41,7 +41,7 @@
 </div>
 <div class="simplesect">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="idp8317008"></a>Finding Services</h2></div></div></div>
+<a name="id-1.2.3.3"></a>Finding Services</h2></div></div></div>
 <p>
       First, we initialize GUPnP and create a control point targeting the
       service type.  Then we connect a signal handler so that we are notified
@@ -104,7 +104,7 @@ main (int argc, char **argv)
 </div>
 <div class="simplesect">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="idp9039984"></a>Invoking Actions</h2></div></div></div>
+<a name="id-1.2.3.4"></a>Invoking Actions</h2></div></div></div>
 <p>
       Now we have an application which searches for the service we specified and
       calls <code class="function">service_proxy_available_cb</code> for each one it
@@ -146,20 +146,20 @@ service_proxy_available_cb (GUPnPControlPoint *cp,
   g_main_loop_quit (main_loop);
 }</pre>
 <p>
-      Note that gupnp_service_proxy_send_action() blocks until the service has
+      Note that <a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-send-action" title="gupnp_service_proxy_send_action ()"><code class="function">gupnp_service_proxy_send_action()</code></a> blocks until the service has
       replied.  If you need to make non-blocking calls then use
-      gupnp_service_proxy_begin_action(), which takes a callback that will be
+      <a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-begin-action" title="gupnp_service_proxy_begin_action ()"><code class="function">gupnp_service_proxy_begin_action()</code></a>, which takes a callback that will be
       called from the mainloop when the reply is received.
     </p>
 </div>
 <div class="simplesect">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="idp9827344"></a>Subscribing to state variable change notifications</h2></div></div></div>
+<a name="id-1.2.3.5"></a>Subscribing to state variable change notifications</h2></div></div></div>
 <p>
       It is possible to get change notifications for the service state variables 
       that have attribute <code class="literal">sendEvents="yes"</code>. We'll demonstrate
       this by modifying <code class="function">service_proxy_available_cb</code> and using
-      gupnp_service_proxy_add_notify() to setup a notification callback:
+      <a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-add-notify" title="gupnp_service_proxy_add_notify ()"><code class="function">gupnp_service_proxy_add_notify()</code></a> to setup a notification callback:
     </p>
 <pre class="programlisting">static void
 external_ip_address_changed (GUPnPServiceProxy *proxy,
@@ -189,15 +189,15 @@ service_proxy_available_cb (GUPnPControlPoint *cp,
 </div>
 <div class="simplesect">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="idp9597728"></a>Generating Wrappers</h2></div></div></div>
+<a name="id-1.2.3.6"></a>Generating Wrappers</h2></div></div></div>
 <p>
-      Using gupnp_service_proxy_send_action() and gupnp_service_proxy_add_notify ()
+      Using <a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-send-action" title="gupnp_service_proxy_send_action ()"><code class="function">gupnp_service_proxy_send_action()</code></a> and <a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-add-notify" title="gupnp_service_proxy_add_notify ()"><code class="function">gupnp_service_proxy_add_notify()</code></a>
       can become tedious, because of the requirement to specify the types and deal
       with GValues.  An
       alternative is to use <a class="xref" href="gupnp-binding-tool.html" title="gupnp-binding-tool"><span class="refentrytitle">gupnp-binding-tool</span>(1)</a>, which
       generates wrappers that hide the boilerplate code from you.  Using a 
       wrapper generated with prefix 'ipconn' would replace 
-      gupnp_service_proxy_send_action() with this code:
+      <a class="link" href="GUPnPServiceProxy.html#gupnp-service-proxy-send-action" title="gupnp_service_proxy_send_action ()"><code class="function">gupnp_service_proxy_send_action()</code></a> with this code:
     </p>
 <pre class="programlisting">ipconn_get_external_ip_address (proxy, &amp;ip, &amp;error);</pre>
 <p>
@@ -229,6 +229,6 @@ service_proxy_available_cb (GUPnPControlPoint *cp,
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index bea7da0..f615e5e 100644 (file)
@@ -2,30 +2,31 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Glossary</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>GUPnP Reference Manual: Glossary</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GUPnP Reference Manual">
 <link rel="up" href="index.html" title="GUPnP Reference Manual">
 <link rel="prev" href="schemas-service.html" title="Service Description">
 <link rel="next" href="annotation-glossary.html" title="Annotation Glossary">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="schemas-service.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td> </td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GUPnP Reference Manual</th>
-<td><a accesskey="n" href="annotation-glossary.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="schemas-service.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="annotation-glossary.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="glossary">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="glossary"></a>Glossary</h2></div></div></div>
+<div class="titlepage"><div><div><h1 class="title">
+<a name="glossary"></a>Glossary</h1></div></div></div>
 <dl>
 <dt>
-<a name="action"></a>Action</dt>
-<dd>
+<a name="action"></a><span class="glossterm">Action</span>
+</dt>
+<dd class="glossdef">
 <p>
       An <em class="firstterm">Action</em> is a method call on a
       <em class="glossterm">Service</em>, which encapsulated a single piece of
@@ -42,8 +43,9 @@
     </p>
 </dd>
 <dt>
-<a name="controlpoint"></a>Control Point</dt>
-<dd><p>
+<a name="controlpoint"></a><span class="glossterm">Control Point</span>
+</dt>
+<dd class="glossdef"><p>
       A <em class="firstterm">Control Point</em> is an entity on the network which
       communicates with other <em class="glossterm">Devices</em> and
       <em class="glossterm">Services</em>.  In the client/server model the control
@@ -53,8 +55,9 @@
       UPnP network as whole is peer-to-peer.
     </p></dd>
 <dt>
-<a name="device"></a>Device</dt>
-<dd>
+<a name="device"></a><span class="glossterm">Device</span>
+</dt>
+<dd class="glossdef">
 <p>
       A <em class="firstterm">Device</em> is an entity on the network which
       communicates using the UPnP standards.  This can be a dedicated physical
     </p>
 <p>See Also <a class="glossseealso" href="glossary.html#service">Service</a>.</p>
 </dd>
-<dt>DIDL-Lite</dt>
+<dt><span class="glossterm">DIDL-Lite</span></dt>
 <dd><p>See <a class="glosssee" href="glossary.html#didllite">Digital Item Declaration Language - Lite</a>.</p></dd>
 <dt>
-<a name="didllite"></a>Digital Item Declaration Language - Lite</dt>
-<dd><p>
+<a name="didllite"></a><span class="glossterm">Digital Item Declaration Language - Lite</span>
+</dt>
+<dd class="glossdef"><p>
       An XML schema used to represent digital content metadata. Defined by
       the UPnP Forum.
     </p></dd>
-<dt>SCPD</dt>
+<dt><span class="glossterm">SCPD</span></dt>
 <dd><p>See <a class="glosssee" href="glossary.html#scpd">Service Control Protocol Document</a>.</p></dd>
 <dt>
-<a name="service"></a>Service</dt>
-<dd>
+<a name="service"></a><span class="glossterm">Service</span>
+</dt>
+<dd class="glossdef">
 <p>
       A <em class="firstterm">Service</em> is a collection of related methods
       (called <em class="glossterm">Actions</em>) and public variables (called
 <p>See Also <a class="glossseealso" href="glossary.html#action">Action</a>, <a class="glossseealso" href="glossary.html#device">Device</a>, <a class="glossseealso" href="glossary.html#state-variable">State Variable</a>.</p>
 </dd>
 <dt>
-<a name="scpd"></a>Service Control Protocol Document</dt>
-<dd>
+<a name="scpd"></a><span class="glossterm">Service Control Protocol Document</span>
+</dt>
+<dd class="glossdef">
 <p>
         An XML document which defines the set of <em class="glossterm">Actions</em>
         and <em class="glossterm">State Variables</em> that a
 <p>See Also <a class="glossseealso" href="glossary.html#service">Service</a>, <a class="glossseealso" href="glossary.html#action">Action</a>, <a class="glossseealso" href="glossary.html#state-variable">State Variable</a>.</p>
 </dd>
 <dt>
-<a name="ssdp"></a>Simple Service Discovery Protocol</dt>
-<dd>
+<a name="ssdp"></a><span class="glossterm">Simple Service Discovery Protocol</span>
+</dt>
+<dd class="glossdef">
 <p>
         UPnP device discovery protocol. Specifies how <em class="glossterm">Devices</em> 
         advertise their <em class="glossterm">Services</em> in the network and also how 
       </p>
 <p>See Also <a class="glossseealso" href="glossary.html#device">Device</a>, <a class="glossseealso" href="glossary.html#controlpoint">Control Point</a>, <a class="glossseealso" href="glossary.html#service">Service</a>.</p>
 </dd>
-<dt>SSDP</dt>
+<dt><span class="glossterm">SSDP</span></dt>
 <dd><p>See <a class="glosssee" href="glossary.html#ssdp">Simple Service Discovery Protocol</a>.</p></dd>
 <dt>
-<a name="state-variable"></a>State Variable</dt>
-<dd><p>
+<a name="state-variable"></a><span class="glossterm">State Variable</span>
+</dt>
+<dd class="glossdef"><p>
       A <em class="firstterm">State Variable</em> is a public variable exposing some
       aspect of the service's state.  State variables are typed and optionally
       are <em class="firstterm">evented</em>, which means that any changes will be
       notified.  Control points are said to <em class="firstterm">subscribe</em> to
       a state variable to receive change notifications.
     </p></dd>
-<dt>UDN</dt>
+<dt><span class="glossterm">UDN</span></dt>
 <dd><p>See <a class="glosssee" href="glossary.html#udn">Unique Device Name</a>.</p></dd>
 <dt>
-<a name="udn"></a>Unique Device Name</dt>
-<dd>
+<a name="udn"></a><span class="glossterm">Unique Device Name</span>
+</dt>
+<dd class="glossdef">
 <p>
         A a unique identifier which is <span class="emphasis"><em>unique</em></span> for every
         device but <span class="emphasis"><em>never changes</em></span> for each particular
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index e03eb82..44c879f 100644 (file)
@@ -2,30 +2,27 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Error codes</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>GUPnP Reference Manual: Error codes</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GUPnP Reference Manual">
 <link rel="up" href="api-utility.html" title="Utility Functions">
 <link rel="prev" href="GUPnPXMLDoc.html" title="GUPnPXMLDoc">
 <link rel="next" href="gupnp-Special-UPnP-types.html" title="Special UPnP types">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="GUPnPXMLDoc.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="api-utility.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GUPnP Reference Manual</th>
-<td><a accesskey="n" href="gupnp-Special-UPnP-types.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#gupnp-Error-codes.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#gupnp-Error-codes.description" class="shortcut">Description</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
+                  <a href="#gupnp-Error-codes.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+                  <a href="#gupnp-Error-codes.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="api-utility.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="GUPnPXMLDoc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gupnp-Special-UPnP-types.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="gupnp-Error-codes"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
 <h2><span class="refentrytitle"><a name="gupnp-Error-codes.top_of_page"></a>Error codes</span></h2>
 <p>Error codes — Error domains and codes.</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="gupnp-Error-codes.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">#define             <a class="link" href="gupnp-Error-codes.html#GUPNP-SERVER-ERROR:CAPS" title="GUPNP_SERVER_ERROR">GUPNP_SERVER_ERROR</a>
-enum                <a class="link" href="gupnp-Error-codes.html#GUPnPServerError" title="enum GUPnPServerError">GUPnPServerError</a>;
-#define             <a class="link" href="gupnp-Error-codes.html#GUPNP-EVENTING-ERROR:CAPS" title="GUPNP_EVENTING_ERROR">GUPNP_EVENTING_ERROR</a>
-enum                <a class="link" href="gupnp-Error-codes.html#GUPnPEventingError" title="enum GUPnPEventingError">GUPnPEventingError</a>;
-#define             <a class="link" href="gupnp-Error-codes.html#GUPNP-CONTROL-ERROR:CAPS" title="GUPNP_CONTROL_ERROR">GUPNP_CONTROL_ERROR</a>
-enum                <a class="link" href="gupnp-Error-codes.html#GUPnPControlError" title="enum GUPnPControlError">GUPnPControlError</a>;
-#define             <a class="link" href="gupnp-Error-codes.html#GUPNP-XML-ERROR:CAPS" title="GUPNP_XML_ERROR">GUPNP_XML_ERROR</a>
-enum                <a class="link" href="gupnp-Error-codes.html#GUPnPXMLError" title="enum GUPnPXMLError">GUPnPXMLError</a>;
+<div class="refsect1">
+<a name="gupnp-Error-codes.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gupnp-Error-codes.html#GUPNP-SERVER-ERROR:CAPS" title="GUPNP_SERVER_ERROR">GUPNP_SERVER_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gupnp-Error-codes.html#GUPNP-EVENTING-ERROR:CAPS" title="GUPNP_EVENTING_ERROR">GUPNP_EVENTING_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gupnp-Error-codes.html#GUPNP-CONTROL-ERROR:CAPS" title="GUPNP_CONTROL_ERROR">GUPNP_CONTROL_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gupnp-Error-codes.html#GUPNP-XML-ERROR:CAPS" title="GUPNP_XML_ERROR">GUPNP_XML_ERROR</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gupnp-Error-codes.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gupnp-Error-codes.html#GUPnPServerError" title="enum GUPnPServerError">GUPnPServerError</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gupnp-Error-codes.html#GUPnPEventingError" title="enum GUPnPEventingError">GUPnPEventingError</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gupnp-Error-codes.html#GUPnPControlError" title="enum GUPnPControlError">GUPnPControlError</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gupnp-Error-codes.html#GUPnPXMLError" title="enum GUPnPXMLError">GUPnPXMLError</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gupnp-Error-codes.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">
 </pre>
 </div>
 <div class="refsect1">
 <a name="gupnp-Error-codes.description"></a><h2>Description</h2>
 </div>
 <div class="refsect1">
-<a name="gupnp-Error-codes.details"></a><h2>Details</h2>
+<a name="gupnp-Error-codes.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
 <a name="GUPNP-SERVER-ERROR:CAPS"></a><h3>GUPNP_SERVER_ERROR</h3>
 <pre class="programlisting">#define GUPNP_SERVER_ERROR (gupnp_server_error_quark ())
 </pre>
-<p>
-The <a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> uniquely used by GUPnP's server errors.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> uniquely used by GUPnP's server errors.</td>
-</tr></tbody>
-</table></div>
+<p>The <a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> uniquely used by GUPnP's server errors.</p>
+<div class="refsect3">
+<a name="id-1.3.6.6.7.2.5"></a><h4>Returns</h4>
+<p> a <a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> uniquely used by GUPnP's server errors.</p>
+<p></p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
-<a name="GUPnPServerError"></a><h3>enum GUPnPServerError</h3>
-<pre class="programlisting">typedef enum {
-        GUPNP_SERVER_ERROR_INTERNAL_SERVER_ERROR,
-        GUPNP_SERVER_ERROR_NOT_FOUND,
-        GUPNP_SERVER_ERROR_NOT_IMPLEMENTED,
-        GUPNP_SERVER_ERROR_INVALID_RESPONSE,
-        GUPNP_SERVER_ERROR_INVALID_URL,
-        GUPNP_SERVER_ERROR_OTHER
-} GUPnPServerError;
+<a name="GUPNP-EVENTING-ERROR:CAPS"></a><h3>GUPNP_EVENTING_ERROR</h3>
+<pre class="programlisting">#define GUPNP_EVENTING_ERROR (gupnp_eventing_error_quark ())
+</pre>
+<p>The <a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> uniquely used by GUPnP's eventing errors.</p>
+<div class="refsect3">
+<a name="id-1.3.6.6.7.3.5"></a><h4>Returns</h4>
+<p> a <a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> uniquely used by GUPnP's eventing errors.</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GUPNP-CONTROL-ERROR:CAPS"></a><h3>GUPNP_CONTROL_ERROR</h3>
+<pre class="programlisting">#define GUPNP_CONTROL_ERROR (gupnp_control_error_quark ())
+</pre>
+<p>The <a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> uniquely used by GUPnP's control errors.</p>
+<div class="refsect3">
+<a name="id-1.3.6.6.7.4.5"></a><h4>Returns</h4>
+<p> a <a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> uniquely used by GUPnP's control errors.</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GUPNP-XML-ERROR:CAPS"></a><h3>GUPNP_XML_ERROR</h3>
+<pre class="programlisting">#define GUPNP_XML_ERROR (gupnp_xml_error_quark ())
 </pre>
-<p>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> codes used for errors in the <a class="link" href="gupnp-Error-codes.html#GUPNP-SERVER-ERROR:CAPS" title="GUPNP_SERVER_ERROR"><span class="type">GUPNP_SERVER_ERROR</span></a> domain, when there
-is communication with another server.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<p>The <a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> uniquely used by GUPnP XML processing errors.</p>
+<div class="refsect3">
+<a name="id-1.3.6.6.7.5.5"></a><h4>Returns</h4>
+<p> a <a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> uniquely used by GUPnP XML processing errors.</p>
+<p></p>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gupnp-Error-codes.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GUPnPServerError"></a><h3>enum GUPnPServerError</h3>
+<p><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> codes used for errors in the <a class="link" href="gupnp-Error-codes.html#GUPNP-SERVER-ERROR:CAPS" title="GUPNP_SERVER_ERROR"><span class="type">GUPNP_SERVER_ERROR</span></a> domain, when there
+is communication with another server.</p>
+<div class="refsect3">
+<a name="id-1.3.6.6.8.2.4"></a><h4>Members</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><a name="GUPNP-SERVER-ERROR-INTERNAL-SERVER-ERROR:CAPS"></a><span class="term"><code class="literal">GUPNP_SERVER_ERROR_INTERNAL_SERVER_ERROR</code></span></p></td>
-<td>Internal server error.
+<td class="enum_member_name"><p><a name="GUPNP-SERVER-ERROR-INTERNAL-SERVER-ERROR:CAPS"></a>GUPNP_SERVER_ERROR_INTERNAL_SERVER_ERROR</p></td>
+<td class="enum_member_description">
+<p>Internal server error.</p>
 </td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
-<td><p><a name="GUPNP-SERVER-ERROR-NOT-FOUND:CAPS"></a><span class="term"><code class="literal">GUPNP_SERVER_ERROR_NOT_FOUND</code></span></p></td>
-<td>The resource was not found.
+<td class="enum_member_name"><p><a name="GUPNP-SERVER-ERROR-NOT-FOUND:CAPS"></a>GUPNP_SERVER_ERROR_NOT_FOUND</p></td>
+<td class="enum_member_description">
+<p>The resource was not found.</p>
 </td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
-<td><p><a name="GUPNP-SERVER-ERROR-NOT-IMPLEMENTED:CAPS"></a><span class="term"><code class="literal">GUPNP_SERVER_ERROR_NOT_IMPLEMENTED</code></span></p></td>
-<td>This method is not implemented.
+<td class="enum_member_name"><p><a name="GUPNP-SERVER-ERROR-NOT-IMPLEMENTED:CAPS"></a>GUPNP_SERVER_ERROR_NOT_IMPLEMENTED</p></td>
+<td class="enum_member_description">
+<p>This method is not implemented.</p>
 </td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
-<td><p><a name="GUPNP-SERVER-ERROR-INVALID-RESPONSE:CAPS"></a><span class="term"><code class="literal">GUPNP_SERVER_ERROR_INVALID_RESPONSE</code></span></p></td>
-<td>Invalid response.
+<td class="enum_member_name"><p><a name="GUPNP-SERVER-ERROR-INVALID-RESPONSE:CAPS"></a>GUPNP_SERVER_ERROR_INVALID_RESPONSE</p></td>
+<td class="enum_member_description">
+<p>Invalid response.</p>
 </td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
-<td><p><a name="GUPNP-SERVER-ERROR-INVALID-URL:CAPS"></a><span class="term"><code class="literal">GUPNP_SERVER_ERROR_INVALID_URL</code></span></p></td>
-<td>Invalid URL.
+<td class="enum_member_name"><p><a name="GUPNP-SERVER-ERROR-INVALID-URL:CAPS"></a>GUPNP_SERVER_ERROR_INVALID_URL</p></td>
+<td class="enum_member_description">
+<p>Invalid URL.</p>
 </td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
-<td><p><a name="GUPNP-SERVER-ERROR-OTHER:CAPS"></a><span class="term"><code class="literal">GUPNP_SERVER_ERROR_OTHER</code></span></p></td>
-<td>Unknown/unhandled error.
+<td class="enum_member_name"><p><a name="GUPNP-SERVER-ERROR-OTHER:CAPS"></a>GUPNP_SERVER_ERROR_OTHER</p></td>
+<td class="enum_member_description">
+<p>Unknown/unhandled error.</p>
 </td>
+<td class="enum_member_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
-<hr>
-<div class="refsect2">
-<a name="GUPNP-EVENTING-ERROR:CAPS"></a><h3>GUPNP_EVENTING_ERROR</h3>
-<pre class="programlisting">#define GUPNP_EVENTING_ERROR (gupnp_eventing_error_quark ())
-</pre>
-<p>
-The <a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> uniquely used by GUPnP's eventing errors.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> uniquely used by GUPnP's eventing errors.</td>
-</tr></tbody>
-</table></div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GUPnPEventingError"></a><h3>enum GUPnPEventingError</h3>
-<pre class="programlisting">typedef enum {
-        GUPNP_EVENTING_ERROR_SUBSCRIPTION_FAILED,
-        GUPNP_EVENTING_ERROR_SUBSCRIPTION_LOST,
-        GUPNP_EVENTING_ERROR_NOTIFY_FAILED
-} GUPnPEventingError;
-</pre>
-<p>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> codes used for errors in the <a class="link" href="gupnp-Error-codes.html#GUPNP-EVENTING-ERROR:CAPS" title="GUPNP_EVENTING_ERROR"><span class="type">GUPNP_EVENTING_ERROR</span></a> domain, during
-eventing of state variables.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<p><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> codes used for errors in the <a class="link" href="gupnp-Error-codes.html#GUPNP-EVENTING-ERROR:CAPS" title="GUPNP_EVENTING_ERROR"><span class="type">GUPNP_EVENTING_ERROR</span></a> domain, during
+eventing of state variables.</p>
+<div class="refsect3">
+<a name="id-1.3.6.6.8.3.4"></a><h4>Members</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><a name="GUPNP-EVENTING-ERROR-SUBSCRIPTION-FAILED:CAPS"></a><span class="term"><code class="literal">GUPNP_EVENTING_ERROR_SUBSCRIPTION_FAILED</code></span></p></td>
-<td>The subscription attempt failed.
+<td class="enum_member_name"><p><a name="GUPNP-EVENTING-ERROR-SUBSCRIPTION-FAILED:CAPS"></a>GUPNP_EVENTING_ERROR_SUBSCRIPTION_FAILED</p></td>
+<td class="enum_member_description">
+<p>The subscription attempt failed.</p>
 </td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
-<td><p><a name="GUPNP-EVENTING-ERROR-SUBSCRIPTION-LOST:CAPS"></a><span class="term"><code class="literal">GUPNP_EVENTING_ERROR_SUBSCRIPTION_LOST</code></span></p></td>
-<td>The subscription was lost.
+<td class="enum_member_name"><p><a name="GUPNP-EVENTING-ERROR-SUBSCRIPTION-LOST:CAPS"></a>GUPNP_EVENTING_ERROR_SUBSCRIPTION_LOST</p></td>
+<td class="enum_member_description">
+<p>The subscription was lost.</p>
 </td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
-<td><p><a name="GUPNP-EVENTING-ERROR-NOTIFY-FAILED:CAPS"></a><span class="term"><code class="literal">GUPNP_EVENTING_ERROR_NOTIFY_FAILED</code></span></p></td>
-<td>The notification failed.
+<td class="enum_member_name"><p><a name="GUPNP-EVENTING-ERROR-NOTIFY-FAILED:CAPS"></a>GUPNP_EVENTING_ERROR_NOTIFY_FAILED</p></td>
+<td class="enum_member_description">
+<p>The notification failed.</p>
 </td>
+<td class="enum_member_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
-<hr>
-<div class="refsect2">
-<a name="GUPNP-CONTROL-ERROR:CAPS"></a><h3>GUPNP_CONTROL_ERROR</h3>
-<pre class="programlisting">#define GUPNP_CONTROL_ERROR (gupnp_control_error_quark ())
-</pre>
-<p>
-The <a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> uniquely used by GUPnP's control errors.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> uniquely used by GUPnP's control errors.</td>
-</tr></tbody>
-</table></div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GUPnPControlError"></a><h3>enum GUPnPControlError</h3>
-<pre class="programlisting">typedef enum {
-        GUPNP_CONTROL_ERROR_INVALID_ACTION = 401,
-        GUPNP_CONTROL_ERROR_INVALID_ARGS   = 402,
-        GUPNP_CONTROL_ERROR_OUT_OF_SYNC    = 403,
-        GUPNP_CONTROL_ERROR_ACTION_FAILED  = 501
-} GUPnPControlError;
-</pre>
-<p>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> codes used for errors in the <a class="link" href="gupnp-Error-codes.html#GUPNP-CONTROL-ERROR:CAPS" title="GUPNP_CONTROL_ERROR"><span class="type">GUPNP_CONTROL_ERROR</span></a> domain, during
-invocation of service actions.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<p><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> codes used for errors in the <a class="link" href="gupnp-Error-codes.html#GUPNP-CONTROL-ERROR:CAPS" title="GUPNP_CONTROL_ERROR"><span class="type">GUPNP_CONTROL_ERROR</span></a> domain, during
+invocation of service actions.</p>
+<div class="refsect3">
+<a name="id-1.3.6.6.8.4.4"></a><h4>Members</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><a name="GUPNP-CONTROL-ERROR-INVALID-ACTION:CAPS"></a><span class="term"><code class="literal">GUPNP_CONTROL_ERROR_INVALID_ACTION</code></span></p></td>
-<td>The action name was invalid.
+<td class="enum_member_name"><p><a name="GUPNP-CONTROL-ERROR-INVALID-ACTION:CAPS"></a>GUPNP_CONTROL_ERROR_INVALID_ACTION</p></td>
+<td class="enum_member_description">
+<p>The action name was invalid.</p>
 </td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
-<td><p><a name="GUPNP-CONTROL-ERROR-INVALID-ARGS:CAPS"></a><span class="term"><code class="literal">GUPNP_CONTROL_ERROR_INVALID_ARGS</code></span></p></td>
-<td>The action arguments were invalid.
+<td class="enum_member_name"><p><a name="GUPNP-CONTROL-ERROR-INVALID-ARGS:CAPS"></a>GUPNP_CONTROL_ERROR_INVALID_ARGS</p></td>
+<td class="enum_member_description">
+<p>The action arguments were invalid.</p>
 </td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
-<td><p><a name="GUPNP-CONTROL-ERROR-OUT-OF-SYNC:CAPS"></a><span class="term"><code class="literal">GUPNP_CONTROL_ERROR_OUT_OF_SYNC</code></span></p></td>
-<td>Out of sync (deprecated).
+<td class="enum_member_name"><p><a name="GUPNP-CONTROL-ERROR-OUT-OF-SYNC:CAPS"></a>GUPNP_CONTROL_ERROR_OUT_OF_SYNC</p></td>
+<td class="enum_member_description">
+<p>Out of sync (deprecated).</p>
 </td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
-<td><p><a name="GUPNP-CONTROL-ERROR-ACTION-FAILED:CAPS"></a><span class="term"><code class="literal">GUPNP_CONTROL_ERROR_ACTION_FAILED</code></span></p></td>
-<td>The action failed.
+<td class="enum_member_name"><p><a name="GUPNP-CONTROL-ERROR-ACTION-FAILED:CAPS"></a>GUPNP_CONTROL_ERROR_ACTION_FAILED</p></td>
+<td class="enum_member_description">
+<p>The action failed.</p>
 </td>
+<td class="enum_member_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
-<hr>
-<div class="refsect2">
-<a name="GUPNP-XML-ERROR:CAPS"></a><h3>GUPNP_XML_ERROR</h3>
-<pre class="programlisting">#define GUPNP_XML_ERROR (gupnp_xml_error_quark ())
-</pre>
-<p>
-The <a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> uniquely used by GUPnP XML processing errors.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> uniquely used by GUPnP XML processing errors.</td>
-</tr></tbody>
-</table></div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GUPnPXMLError"></a><h3>enum GUPnPXMLError</h3>
-<pre class="programlisting">typedef enum {
-        GUPNP_XML_ERROR_PARSE,
-        GUPNP_XML_ERROR_NO_NODE,
-        GUPNP_XML_ERROR_EMPTY_NODE,
-        GUPNP_XML_ERROR_INVALID_ATTRIBUTE,
-        GUPNP_XML_ERROR_OTHER
-} GUPnPXMLError;
-</pre>
-<p>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> codes used for errors in the <a class="link" href="gupnp-Error-codes.html#GUPNP-XML-ERROR:CAPS" title="GUPNP_XML_ERROR"><span class="type">GUPNP_XML_ERROR</span></a> domain, during
-processing of XML data.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<p><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> codes used for errors in the <a class="link" href="gupnp-Error-codes.html#GUPNP-XML-ERROR:CAPS" title="GUPNP_XML_ERROR"><span class="type">GUPNP_XML_ERROR</span></a> domain, during
+processing of XML data.</p>
+<div class="refsect3">
+<a name="id-1.3.6.6.8.5.4"></a><h4>Members</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><a name="GUPNP-XML-ERROR-PARSE:CAPS"></a><span class="term"><code class="literal">GUPNP_XML_ERROR_PARSE</code></span></p></td>
-<td>Generic XML parsing error.
+<td class="enum_member_name"><p><a name="GUPNP-XML-ERROR-PARSE:CAPS"></a>GUPNP_XML_ERROR_PARSE</p></td>
+<td class="enum_member_description">
+<p>Generic XML parsing error.</p>
 </td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
-<td><p><a name="GUPNP-XML-ERROR-NO-NODE:CAPS"></a><span class="term"><code class="literal">GUPNP_XML_ERROR_NO_NODE</code></span></p></td>
-<td>A required XML node was not found.
+<td class="enum_member_name"><p><a name="GUPNP-XML-ERROR-NO-NODE:CAPS"></a>GUPNP_XML_ERROR_NO_NODE</p></td>
+<td class="enum_member_description">
+<p>A required XML node was not found.</p>
 </td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
-<td><p><a name="GUPNP-XML-ERROR-EMPTY-NODE:CAPS"></a><span class="term"><code class="literal">GUPNP_XML_ERROR_EMPTY_NODE</code></span></p></td>
-<td>An XML node is unexpectedly empty.
+<td class="enum_member_name"><p><a name="GUPNP-XML-ERROR-EMPTY-NODE:CAPS"></a>GUPNP_XML_ERROR_EMPTY_NODE</p></td>
+<td class="enum_member_description">
+<p>An XML node is unexpectedly empty.</p>
 </td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
-<td><p><a name="GUPNP-XML-ERROR-INVALID-ATTRIBUTE:CAPS"></a><span class="term"><code class="literal">GUPNP_XML_ERROR_INVALID_ATTRIBUTE</code></span></p></td>
-<td>An XML node has an unknown attribute.
+<td class="enum_member_name"><p><a name="GUPNP-XML-ERROR-INVALID-ATTRIBUTE:CAPS"></a>GUPNP_XML_ERROR_INVALID_ATTRIBUTE</p></td>
+<td class="enum_member_description">
+<p>An XML node has an unknown attribute.</p>
 </td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
-<td><p><a name="GUPNP-XML-ERROR-OTHER:CAPS"></a><span class="term"><code class="literal">GUPNP_XML_ERROR_OTHER</code></span></p></td>
-<td>Unknown/unhandled XML related errors.
+<td class="enum_member_name"><p><a name="GUPNP-XML-ERROR-OTHER:CAPS"></a>GUPNP_XML_ERROR_OTHER</p></td>
+<td class="enum_member_description">
+<p>Unknown/unhandled XML related errors.</p>
 </td>
+<td class="enum_member_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
 </div>
 </div>
+</div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 72858a9..4b95764 100644 (file)
@@ -2,30 +2,27 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Special UPnP types</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>GUPnP Reference Manual: Special UPnP types</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GUPnP Reference Manual">
 <link rel="up" href="api-utility.html" title="Utility Functions">
 <link rel="prev" href="gupnp-Error-codes.html" title="Error codes">
 <link rel="next" href="api-tools.html" title="Tools">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="gupnp-Error-codes.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="api-utility.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GUPnP Reference Manual</th>
-<td><a accesskey="n" href="api-tools.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#gupnp-Special-UPnP-types.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#gupnp-Special-UPnP-types.description" class="shortcut">Description</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
+                  <a href="#gupnp-Special-UPnP-types.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+                  <a href="#gupnp-Special-UPnP-types.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="api-utility.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="gupnp-Error-codes.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="api-tools.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="gupnp-Special-UPnP-types"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
 <h2><span class="refentrytitle"><a name="gupnp-Special-UPnP-types.top_of_page"></a>Special UPnP types</span></h2>
 <p>Special UPnP types — Extra types for use when calling UPnP actions.</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="gupnp-Special-UPnP-types.synopsis"></a><h2>Synopsis</h2>
-<pre class="synopsis">#define             <a class="link" href="gupnp-Special-UPnP-types.html#GUPNP-TYPE-BIN-BASE64:CAPS" title="GUPNP_TYPE_BIN_BASE64">GUPNP_TYPE_BIN_BASE64</a>
-#define             <a class="link" href="gupnp-Special-UPnP-types.html#GUPNP-TYPE-BIN-HEX:CAPS" title="GUPNP_TYPE_BIN_HEX">GUPNP_TYPE_BIN_HEX</a>
-#define             <a class="link" href="gupnp-Special-UPnP-types.html#GUPNP-TYPE-DATE:CAPS" title="GUPNP_TYPE_DATE">GUPNP_TYPE_DATE</a>
-#define             <a class="link" href="gupnp-Special-UPnP-types.html#GUPNP-TYPE-DATE-TIME:CAPS" title="GUPNP_TYPE_DATE_TIME">GUPNP_TYPE_DATE_TIME</a>
-#define             <a class="link" href="gupnp-Special-UPnP-types.html#GUPNP-TYPE-DATE-TIME-TZ:CAPS" title="GUPNP_TYPE_DATE_TIME_TZ">GUPNP_TYPE_DATE_TIME_TZ</a>
-#define             <a class="link" href="gupnp-Special-UPnP-types.html#GUPNP-TYPE-TIME:CAPS" title="GUPNP_TYPE_TIME">GUPNP_TYPE_TIME</a>
-#define             <a class="link" href="gupnp-Special-UPnP-types.html#GUPNP-TYPE-TIME-TZ:CAPS" title="GUPNP_TYPE_TIME_TZ">GUPNP_TYPE_TIME_TZ</a>
-#define             <a class="link" href="gupnp-Special-UPnP-types.html#GUPNP-TYPE-URI:CAPS" title="GUPNP_TYPE_URI">GUPNP_TYPE_URI</a>
-#define             <a class="link" href="gupnp-Special-UPnP-types.html#GUPNP-TYPE-UUID:CAPS" title="GUPNP_TYPE_UUID">GUPNP_TYPE_UUID</a>
+<div class="refsect1">
+<a name="gupnp-Special-UPnP-types.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gupnp-Special-UPnP-types.html#GUPNP-TYPE-BIN-BASE64:CAPS" title="GUPNP_TYPE_BIN_BASE64">GUPNP_TYPE_BIN_BASE64</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gupnp-Special-UPnP-types.html#GUPNP-TYPE-BIN-HEX:CAPS" title="GUPNP_TYPE_BIN_HEX">GUPNP_TYPE_BIN_HEX</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gupnp-Special-UPnP-types.html#GUPNP-TYPE-DATE:CAPS" title="GUPNP_TYPE_DATE">GUPNP_TYPE_DATE</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gupnp-Special-UPnP-types.html#GUPNP-TYPE-DATE-TIME:CAPS" title="GUPNP_TYPE_DATE_TIME">GUPNP_TYPE_DATE_TIME</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gupnp-Special-UPnP-types.html#GUPNP-TYPE-DATE-TIME-TZ:CAPS" title="GUPNP_TYPE_DATE_TIME_TZ">GUPNP_TYPE_DATE_TIME_TZ</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gupnp-Special-UPnP-types.html#GUPNP-TYPE-TIME:CAPS" title="GUPNP_TYPE_TIME">GUPNP_TYPE_TIME</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gupnp-Special-UPnP-types.html#GUPNP-TYPE-TIME-TZ:CAPS" title="GUPNP_TYPE_TIME_TZ">GUPNP_TYPE_TIME_TZ</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gupnp-Special-UPnP-types.html#GUPNP-TYPE-URI:CAPS" title="GUPNP_TYPE_URI">GUPNP_TYPE_URI</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gupnp-Special-UPnP-types.html#GUPNP-TYPE-UUID:CAPS" title="GUPNP_TYPE_UUID">GUPNP_TYPE_UUID</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gupnp-Special-UPnP-types.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">
 </pre>
 </div>
 <div class="refsect1">
 <a name="gupnp-Special-UPnP-types.description"></a><h2>Description</h2>
-<p>
-These GTypes are used to marshal to and from string data to particular UPnP
-types when invoking actions on a <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a>.
-</p>
+<p>These GTypes are used to marshal to and from string data to particular UPnP
+types when invoking actions on a <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a>.</p>
+</div>
+<div class="refsect1">
+<a name="gupnp-Special-UPnP-types.functions_details"></a><h2>Functions</h2>
 </div>
 <div class="refsect1">
-<a name="gupnp-Special-UPnP-types.details"></a><h2>Details</h2>
+<a name="gupnp-Special-UPnP-types.other_details"></a><h2>Types and Values</h2>
 <div class="refsect2">
 <a name="GUPNP-TYPE-BIN-BASE64:CAPS"></a><h3>GUPNP_TYPE_BIN_BASE64</h3>
 <pre class="programlisting">#define             GUPNP_TYPE_BIN_BASE64</pre>
-<p>
-A string type containing Base-64 encoded binary data.
-</p>
+<p>A string type containing Base-64 encoded binary data.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GUPNP-TYPE-BIN-HEX:CAPS"></a><h3>GUPNP_TYPE_BIN_HEX</h3>
 <pre class="programlisting">#define             GUPNP_TYPE_BIN_HEX</pre>
-<p>
-A string type containing binary hexadecimal encoded binary data.
-</p>
+<p>A string type containing binary hexadecimal encoded binary data.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GUPNP-TYPE-DATE:CAPS"></a><h3>GUPNP_TYPE_DATE</h3>
 <pre class="programlisting">#define             GUPNP_TYPE_DATE</pre>
-<p>
-A string type representing a date in ISO 8601 format with no time or timezone.
-</p>
+<p>A string type representing a date in ISO 8601 format with no time or timezone.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GUPNP-TYPE-DATE-TIME:CAPS"></a><h3>GUPNP_TYPE_DATE_TIME</h3>
 <pre class="programlisting">#define             GUPNP_TYPE_DATE_TIME</pre>
-<p>
-A string type representing a date in ISO 8601 format with optional time but no timezone.
-</p>
+<p>A string type representing a date in ISO 8601 format with optional time but no timezone.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GUPNP-TYPE-DATE-TIME-TZ:CAPS"></a><h3>GUPNP_TYPE_DATE_TIME_TZ</h3>
 <pre class="programlisting">#define             GUPNP_TYPE_DATE_TIME_TZ</pre>
-<p>
-A string type representing a date in ISO 8601 format with optional time and timezone.
-</p>
+<p>A string type representing a date in ISO 8601 format with optional time and timezone.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GUPNP-TYPE-TIME:CAPS"></a><h3>GUPNP_TYPE_TIME</h3>
 <pre class="programlisting">#define             GUPNP_TYPE_TIME</pre>
-<p>
-A string type representing a time in ISO 8601 format with no date or timezone.
-</p>
+<p>A string type representing a time in ISO 8601 format with no date or timezone.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GUPNP-TYPE-TIME-TZ:CAPS"></a><h3>GUPNP_TYPE_TIME_TZ</h3>
 <pre class="programlisting">#define             GUPNP_TYPE_TIME_TZ</pre>
-<p>
-A string type representing a time in ISO 8601 format with optional timezone and no date.
-</p>
+<p>A string type representing a time in ISO 8601 format with optional timezone and no date.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GUPNP-TYPE-URI:CAPS"></a><h3>GUPNP_TYPE_URI</h3>
 <pre class="programlisting">#define             GUPNP_TYPE_URI</pre>
-<p>
-A string type representing a Universal Resource Indentifier.
-</p>
+<p>A string type representing a Universal Resource Indentifier.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GUPNP-TYPE-UUID:CAPS"></a><h3>GUPNP_TYPE_UUID</h3>
 <pre class="programlisting">#define             GUPNP_TYPE_UUID</pre>
-<p>
-A Universally Unique ID represented as a hexadecimal-encoded string.
-</p>
+<p>A Universally Unique ID represented as a hexadecimal-encoded string.</p>
 </div>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 9b96911..86b348c 100644 (file)
@@ -2,22 +2,22 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>gupnp-binding-tool</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>GUPnP Reference Manual: gupnp-binding-tool</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GUPnP Reference Manual">
 <link rel="up" href="api-tools.html" title="Tools">
 <link rel="prev" href="api-tools.html" title="Tools">
 <link rel="next" href="schemas.html" title="Part III. XML Schemas">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="api-tools.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="api-tools.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GUPnP Reference Manual</th>
-<td><a accesskey="n" href="schemas.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="api-tools.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="api-tools.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="schemas.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gupnp-binding-tool"></a><div class="titlepage"></div>
 <h2><span class="refentrytitle">gupnp-binding-tool</span></h2>
 <p>gupnp-binding-tool — creates C convenience wrappers for UPnP services</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="cmdsynopsis"><p><code class="command">gupnp-binding-tool</code>  [--prefix {PREFIX}] [--mode {client|server}] {SCPD file}</p></div>
 </div>
 <div class="refsect1">
-<a name="idp8665712"></a><h2>Description</h2>
+<a name="id-1.3.7.2.4"></a><h2>Description</h2>
 <p>
       <span class="command"><strong>gupnp-binding-tool</strong></span> takes a <a class="glossterm" href="glossary.html#scpd"><em class="glossterm">SCPD file</em></a> and generates convenience C functions
       which call the actual GUPnP functions. The client-side bindings can be seen
@@ -49,7 +49,7 @@
     </p>
 </div>
 <div class="refsect1">
-<a name="idp11454640"></a><h2>Client side bindings</h2>
+<a name="id-1.3.7.2.5"></a><h2>Client side bindings</h2>
 <p>
       As an example, this action:
     </p>
@@ -138,7 +138,7 @@ igd_external_ip_address_add_notify (GUPnPServiceProxy *proxy,
     </p>
 </div>
 <div class="refsect1">
-<a name="idp12866592"></a><h2>Server side bindings</h2>
+<a name="id-1.3.7.2.6"></a><h2>Server side bindings</h2>
 <p>
       The corresponding server bindings for the same UPnP action 
       (DeletePortMapping) look like this:
@@ -183,6 +183,6 @@ igd_external_ip_address_variable_notify (GUPnPService *service,
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index a623a71..ecab883 100644 (file)
@@ -2,34 +2,28 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GUPnPServiceIntrospection</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>GUPnP Reference Manual: GUPnPServiceIntrospection</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GUPnP Reference Manual">
 <link rel="up" href="api-device-info.html" title="Device Information">
 <link rel="prev" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo">
 <link rel="next" href="api-device-control.html" title="Device Control">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
-<tr valign="middle">
-<td><a accesskey="p" href="GUPnPServiceInfo.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="api-device-info.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GUPnP Reference Manual</th>
-<td><a accesskey="n" href="api-device-control.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
-</tr>
-<tr><td colspan="5" class="shortcuts">
-<a href="#gupnp-gupnp-service-introspection.synopsis" class="shortcut">Top</a>
-                   | 
-                  <a href="#gupnp-gupnp-service-introspection.description" class="shortcut">Description</a>
-                   | 
-                  <a href="#gupnp-gupnp-service-introspection.object-hierarchy" class="shortcut">Object Hierarchy</a>
-                   | 
-                  <a href="#gupnp-gupnp-service-introspection.properties" class="shortcut">Properties</a>
-</td></tr>
-</table>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
+                  <a href="#gupnp-gupnp-service-introspection.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+                  <a href="#gupnp-gupnp-service-introspection.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> 
+                  <a href="#gupnp-gupnp-service-introspection.properties" class="shortcut">Properties</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="api-device-info.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="GUPnPServiceInfo.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="api-device-control.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
 <div class="refentry">
 <a name="gupnp-gupnp-service-introspection"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
 <h2><span class="refentrytitle"><a name="gupnp-gupnp-service-introspection.top_of_page"></a>GUPnPServiceIntrospection</span></h2>
 <p>GUPnPServiceIntrospection — Service introspection class.</p>
 </td>
-<td valign="top" align="right"></td>
+<td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsynopsisdiv">
-<a name="gupnp-gupnp-service-introspection.synopsis"></a><h2>Synopsis</h2>
-<a name="GUPnPServiceIntrospection"></a><pre class="synopsis">enum                <a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceActionArgDirection" title="enum GUPnPServiceActionArgDirection">GUPnPServiceActionArgDirection</a>;
-                    <a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceActionArgInfo" title="GUPnPServiceActionArgInfo">GUPnPServiceActionArgInfo</a>;
-                    <a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceActionInfo" title="GUPnPServiceActionInfo">GUPnPServiceActionInfo</a>;
-                    <a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceStateVariableInfo" title="GUPnPServiceStateVariableInfo">GUPnPServiceStateVariableInfo</a>;
-struct              <a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection-struct" title="struct GUPnPServiceIntrospection">GUPnPServiceIntrospection</a>;
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *       <a class="link" href="gupnp-gupnp-service-introspection.html#gupnp-service-introspection-list-action-names" title="gupnp_service_introspection_list_action_names ()">gupnp_service_introspection_list_action_names</a>
-                                                        (<em class="parameter"><code><a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection"><span class="type">GUPnPServiceIntrospection</span></a> *introspection</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *       <a class="link" href="gupnp-gupnp-service-introspection.html#gupnp-service-introspection-list-actions" title="gupnp_service_introspection_list_actions ()">gupnp_service_introspection_list_actions</a>
-                                                        (<em class="parameter"><code><a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection"><span class="type">GUPnPServiceIntrospection</span></a> *introspection</code></em>);
-const <a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceActionInfo" title="GUPnPServiceActionInfo"><span class="returnvalue">GUPnPServiceActionInfo</span></a> * <a class="link" href="gupnp-gupnp-service-introspection.html#gupnp-service-introspection-get-action" title="gupnp_service_introspection_get_action ()">gupnp_service_introspection_get_action</a>
-                                                        (<em class="parameter"><code><a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection"><span class="type">GUPnPServiceIntrospection</span></a> *introspection</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *action_name</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *       <a class="link" href="gupnp-gupnp-service-introspection.html#gupnp-service-introspection-list-state-variable-names" title="gupnp_service_introspection_list_state_variable_names ()">gupnp_service_introspection_list_state_variable_names</a>
-                                                        (<em class="parameter"><code><a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection"><span class="type">GUPnPServiceIntrospection</span></a> *introspection</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *       <a class="link" href="gupnp-gupnp-service-introspection.html#gupnp-service-introspection-list-state-variables" title="gupnp_service_introspection_list_state_variables ()">gupnp_service_introspection_list_state_variables</a>
-                                                        (<em class="parameter"><code><a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection"><span class="type">GUPnPServiceIntrospection</span></a> *introspection</code></em>);
-const <a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceStateVariableInfo" title="GUPnPServiceStateVariableInfo"><span class="returnvalue">GUPnPServiceStateVariableInfo</span></a> * <a class="link" href="gupnp-gupnp-service-introspection.html#gupnp-service-introspection-get-state-variable" title="gupnp_service_introspection_get_state_variable ()">gupnp_service_introspection_get_state_variable</a>
-                                                        (<em class="parameter"><code><a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection"><span class="type">GUPnPServiceIntrospection</span></a> *introspection</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *variable_name</code></em>);
-</pre>
-</div>
 <div class="refsect1">
-<a name="gupnp-gupnp-service-introspection.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="synopsis">
-  <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-   +----GUPnPServiceIntrospection
-</pre>
+<a name="gupnp-gupnp-service-introspection.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_return">
+<col class="functions_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gupnp-gupnp-service-introspection.html#gupnp-service-introspection-list-action-names" title="gupnp_service_introspection_list_action_names ()">gupnp_service_introspection_list_action_names</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gupnp-gupnp-service-introspection.html#gupnp-service-introspection-list-actions" title="gupnp_service_introspection_list_actions ()">gupnp_service_introspection_list_actions</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">const <a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceActionInfo" title="GUPnPServiceActionInfo"><span class="returnvalue">GUPnPServiceActionInfo</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gupnp-gupnp-service-introspection.html#gupnp-service-introspection-get-action" title="gupnp_service_introspection_get_action ()">gupnp_service_introspection_get_action</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gupnp-gupnp-service-introspection.html#gupnp-service-introspection-list-state-variable-names" title="gupnp_service_introspection_list_state_variable_names ()">gupnp_service_introspection_list_state_variable_names</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gupnp-gupnp-service-introspection.html#gupnp-service-introspection-list-state-variables" title="gupnp_service_introspection_list_state_variables ()">gupnp_service_introspection_list_state_variables</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">const <a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceStateVariableInfo" title="GUPnPServiceStateVariableInfo"><span class="returnvalue">GUPnPServiceStateVariableInfo</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gupnp-gupnp-service-introspection.html#gupnp-service-introspection-get-state-variable" title="gupnp_service_introspection_get_state_variable ()">gupnp_service_introspection_get_state_variable</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
 </div>
 <div class="refsect1">
 <a name="gupnp-gupnp-service-introspection.properties"></a><h2>Properties</h2>
-<pre class="synopsis">
-  "<a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection--scpd" title='The "scpd" property'>scpd</a>"                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>              : Write / Construct Only
+<div class="informaltable"><table border="0">
+<colgroup>
+<col width="150px" class="properties_type">
+<col width="300px" class="properties_name">
+<col width="200px" class="properties_flags">
+</colgroup>
+<tbody><tr>
+<td class="property_type"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a></td>
+<td class="property_name"><a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection--scpd" title="The “scpd” property">scpd</a></td>
+<td class="property_flags">Write / Construct Only</td>
+</tr></tbody>
+</table></div>
+</div>
+<a name="GUPnPServiceIntrospection"></a><div class="refsect1">
+<a name="gupnp-gupnp-service-introspection.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceActionArgDirection" title="enum GUPnPServiceActionArgDirection">GUPnPServiceActionArgDirection</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceActionArgInfo" title="GUPnPServiceActionArgInfo">GUPnPServiceActionArgInfo</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceActionInfo" title="GUPnPServiceActionInfo">GUPnPServiceActionInfo</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceStateVariableInfo" title="GUPnPServiceStateVariableInfo">GUPnPServiceStateVariableInfo</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection-struct" title="struct GUPnPServiceIntrospection">GUPnPServiceIntrospection</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gupnp-gupnp-service-introspection.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> GUPnPServiceIntrospection
 </pre>
 </div>
 <div class="refsect1">
 <a name="gupnp-gupnp-service-introspection.description"></a><h2>Description</h2>
-<p>
-The <a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection"><span class="type">GUPnPServiceIntrospection</span></a> class provides methods for service
+<p>The <a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection"><span class="type">GUPnPServiceIntrospection</span></a> class provides methods for service
 introspection based on information contained in its service description
 document (SCPD). There is no constructor provided for this class, please use
-<a class="link" href="GUPnPServiceInfo.html#gupnp-service-info-get-introspection" title="gupnp_service_info_get_introspection ()"><span class="type">gupnp_service_info_get_introspection</span></a> or
-<a class="link" href="GUPnPServiceInfo.html#gupnp-service-info-get-introspection-async" title="gupnp_service_info_get_introspection_async ()"><span class="type">gupnp_service_info_get_introspection_async</span></a> to create an
-<a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection"><span class="type">GUPnPServiceIntrospection</span></a> object for a specific service.
-</p>
-<p>
-Note that all the introspection information is retreived from the service
+<a class="link" href="GUPnPServiceInfo.html#gupnp-service-info-get-introspection" title="gupnp_service_info_get_introspection ()"><span class="type">gupnp_service_info_get_introspection</span></a> or
+<a class="link" href="GUPnPServiceInfo.html#gupnp-service-info-get-introspection-async" title="gupnp_service_info_get_introspection_async ()"><span class="type">gupnp_service_info_get_introspection_async</span></a> to create an
+<a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection"><span class="type">GUPnPServiceIntrospection</span></a> object for a specific service.</p>
+<p>Note that all the introspection information is retreived from the service
 description document (SCPD) provided by the service and hence can not be
 guaranteed to be complete. A UPnP service is required to provide an SCPD but
 unfortunately, many services either do not provide this document or the
-document does not provide any or all of the introspection information.
-</p>
-<p>
-This class exposes internals of the UPnP protocol and should not need
-to be used for regular device or control point development.
-</p>
+document does not provide any or all of the introspection information.</p>
+<p>This class exposes internals of the UPnP protocol and should not need
+to be used for regular device or control point development.</p>
 </div>
 <div class="refsect1">
-<a name="gupnp-gupnp-service-introspection.details"></a><h2>Details</h2>
+<a name="gupnp-gupnp-service-introspection.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="gupnp-service-introspection-list-action-names"></a><h3>gupnp_service_introspection_list_action_names ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+gupnp_service_introspection_list_action_names
+                               (<em class="parameter"><code><a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection"><span class="type">GUPnPServiceIntrospection</span></a> *introspection</code></em>);</pre>
+<p>Returns a GList of names of all the actions in this service.</p>
+<div class="refsect3">
+<a name="id-1.3.2.4.9.2.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>introspection</p></td>
+<td class="parameter_description"><p>A <a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection"><span class="type">GUPnPServiceIntrospection</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.2.4.9.2.6"></a><h4>Returns</h4>
+<p> (transfer none) (element-type utf8) : A GList of names of all
+the actions or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Do not modify or free it or its contents.</p>
+<p></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-service-introspection-list-actions"></a><h3>gupnp_service_introspection_list_actions ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+gupnp_service_introspection_list_actions
+                               (<em class="parameter"><code><a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection"><span class="type">GUPnPServiceIntrospection</span></a> *introspection</code></em>);</pre>
+<p>Returns a <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of all the actions (of type <a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceActionInfo" title="GUPnPServiceActionInfo"><span class="type">GUPnPServiceActionInfo</span></a>) in
+this service.</p>
+<div class="refsect3">
+<a name="id-1.3.2.4.9.3.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>introspection</p></td>
+<td class="parameter_description"><p>A <a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection"><span class="type">GUPnPServiceIntrospection</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.2.4.9.3.6"></a><h4>Returns</h4>
+<p> A
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of all the actions or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Do not modify or free it or its
+contents. </p>
+<p><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GUPnP.ServiceActionInfo][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-service-introspection-get-action"></a><h3>gupnp_service_introspection_get_action ()</h3>
+<pre class="programlisting">const <a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceActionInfo" title="GUPnPServiceActionInfo"><span class="returnvalue">GUPnPServiceActionInfo</span></a> *
+gupnp_service_introspection_get_action
+                               (<em class="parameter"><code><a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection"><span class="type">GUPnPServiceIntrospection</span></a> *introspection</code></em>,
+                                <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *action_name</code></em>);</pre>
+<p>Returns the action by the name <em class="parameter"><code>action_name</code></em>
+ in this service.</p>
+<div class="refsect3">
+<a name="id-1.3.2.4.9.4.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>introspection</p></td>
+<td class="parameter_description"><p>A <a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection"><span class="type">GUPnPServiceIntrospection</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>action_name</p></td>
+<td class="parameter_description"><p>The name of the action to retrieve</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.2.4.9.4.6"></a><h4>Returns</h4>
+<p> the action or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Do not modify or free
+it. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-service-introspection-list-state-variable-names"></a><h3>gupnp_service_introspection_list_state_variable_names ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+gupnp_service_introspection_list_state_variable_names
+                               (<em class="parameter"><code><a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection"><span class="type">GUPnPServiceIntrospection</span></a> *introspection</code></em>);</pre>
+<p>Returns a <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of names of all the state variables in this service.</p>
+<div class="refsect3">
+<a name="id-1.3.2.4.9.5.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>introspection</p></td>
+<td class="parameter_description"><p>A <a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection"><span class="type">GUPnPServiceIntrospection</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.2.4.9.5.6"></a><h4>Returns</h4>
+<p> A <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of names of all
+the state variables or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Do not modify or free it or its contents. </p>
+<p><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-service-introspection-list-state-variables"></a><h3>gupnp_service_introspection_list_state_variables ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
+gupnp_service_introspection_list_state_variables
+                               (<em class="parameter"><code><a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection"><span class="type">GUPnPServiceIntrospection</span></a> *introspection</code></em>);</pre>
+<p>Returns a GList of all the state variables (of type
+<a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceStateVariableInfo" title="GUPnPServiceStateVariableInfo"><span class="type">GUPnPServiceStateVariableInfo</span></a>) in this service.</p>
+<div class="refsect3">
+<a name="id-1.3.2.4.9.6.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>introspection</p></td>
+<td class="parameter_description"><p>A <a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection"><span class="type">GUPnPServiceIntrospection</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.2.4.9.6.6"></a><h4>Returns</h4>
+<p>A <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of all the state variables or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Do not modify or free it or
+its contents. </p>
+<p><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GUPnP.ServiceStateVariableInfo][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gupnp-service-introspection-get-state-variable"></a><h3>gupnp_service_introspection_get_state_variable ()</h3>
+<pre class="programlisting">const <a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceStateVariableInfo" title="GUPnPServiceStateVariableInfo"><span class="returnvalue">GUPnPServiceStateVariableInfo</span></a> *
+gupnp_service_introspection_get_state_variable
+                               (<em class="parameter"><code><a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection"><span class="type">GUPnPServiceIntrospection</span></a> *introspection</code></em>,
+                                <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *variable_name</code></em>);</pre>
+<p>Returns the state variable by the name <em class="parameter"><code>variable_name</code></em>
+ in this service.</p>
+<div class="refsect3">
+<a name="id-1.3.2.4.9.7.5"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>introspection</p></td>
+<td class="parameter_description"><p>A <a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection"><span class="type">GUPnPServiceIntrospection</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>variable_name</p></td>
+<td class="parameter_description"><p>The name of the variable to retrieve</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.3.2.4.9.7.6"></a><h4>Returns</h4>
+<p> the state variable or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Do not modify or
+free it. </p>
+<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gupnp-gupnp-service-introspection.other_details"></a><h2>Types and Values</h2>
 <div class="refsect2">
 <a name="GUPnPServiceActionArgDirection"></a><h3>enum GUPnPServiceActionArgDirection</h3>
-<pre class="programlisting">typedef enum {
-        GUPNP_SERVICE_ACTION_ARG_DIRECTION_IN,
-        GUPNP_SERVICE_ACTION_ARG_DIRECTION_OUT
-} GUPnPServiceActionArgDirection;
-</pre>
-<p>
-Represents the direction of a service state variable.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<p>Represents the direction of a service state variable.</p>
+<div class="refsect3">
+<a name="id-1.3.2.4.10.2.4"></a><h4>Members</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><a name="GUPNP-SERVICE-ACTION-ARG-DIRECTION-IN:CAPS"></a><span class="term"><code class="literal">GUPNP_SERVICE_ACTION_ARG_DIRECTION_IN</code></span></p></td>
-<td>An "in" variable, to the service.
+<td class="enum_member_name"><p><a name="GUPNP-SERVICE-ACTION-ARG-DIRECTION-IN:CAPS"></a>GUPNP_SERVICE_ACTION_ARG_DIRECTION_IN</p></td>
+<td class="enum_member_description">
+<p>An "in" variable, to the service.</p>
 </td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
-<td><p><a name="GUPNP-SERVICE-ACTION-ARG-DIRECTION-OUT:CAPS"></a><span class="term"><code class="literal">GUPNP_SERVICE_ACTION_ARG_DIRECTION_OUT</code></span></p></td>
-<td>An "out" variable, from the service.
+<td class="enum_member_name"><p><a name="GUPNP-SERVICE-ACTION-ARG-DIRECTION-OUT:CAPS"></a>GUPNP_SERVICE_ACTION_ARG_DIRECTION_OUT</p></td>
+<td class="enum_member_description">
+<p>An "out" variable, from the service.</p>
 </td>
+<td class="enum_member_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
 <a name="GUPnPServiceActionArgInfo"></a><h3>GUPnPServiceActionArgInfo</h3>
@@ -135,32 +393,41 @@ Represents the direction of a service state variable.
         gboolean                       retval;
 } GUPnPServiceActionArgInfo;
 </pre>
-<p>
-This structure contains information about the argument of service action.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<p>This structure contains information about the argument of service action.</p>
+<div class="refsect3">
+<a name="id-1.3.2.4.10.3.5"></a><h4>Members</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><span class="type">char</span> *<em class="structfield"><code><a name="GUPnPServiceActionArgInfo.name"></a>name</code></em>;</span></p></td>
-<td>The name of the action argument.</td>
+<td class="struct_member_name"><p><span class="type">char</span> *<em class="structfield"><code><a name="GUPnPServiceActionArgInfo.name"></a>name</code></em>;</p></td>
+<td class="struct_member_description"><p>The name of the action argument.</p></td>
+<td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceActionArgDirection" title="enum GUPnPServiceActionArgDirection"><span class="type">GUPnPServiceActionArgDirection</span></a> <em class="structfield"><code><a name="GUPnPServiceActionArgInfo.direction"></a>direction</code></em>;</span></p></td>
-<td>The direction of the action argument.</td>
+<td class="struct_member_name"><p><a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceActionArgDirection" title="enum GUPnPServiceActionArgDirection"><span class="type">GUPnPServiceActionArgDirection</span></a> <em class="structfield"><code><a name="GUPnPServiceActionArgInfo.direction"></a>direction</code></em>;</p></td>
+<td class="struct_member_description"><p>The direction of the action argument.</p></td>
+<td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><span class="type">char</span> *<em class="structfield"><code><a name="GUPnPServiceActionArgInfo.related-state-variable"></a>related_state_variable</code></em>;</span></p></td>
-<td>The name of the state variable associated with this
-argument.</td>
+<td class="struct_member_name"><p><span class="type">char</span> *<em class="structfield"><code><a name="GUPnPServiceActionArgInfo.related-state-variable"></a>related_state_variable</code></em>;</p></td>
+<td class="struct_member_description"><p>The name of the state variable associated with this
+argument.</p></td>
+<td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> <em class="structfield"><code><a name="GUPnPServiceActionArgInfo.retval"></a>retval</code></em>;</span></p></td>
-<td>Whether this argument is the return value of the action.</td>
+<td class="struct_member_name"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> <em class="structfield"><code><a name="GUPnPServiceActionArgInfo.retval"></a>retval</code></em>;</p></td>
+<td class="struct_member_description"><p>Whether this argument is the return value of the action.</p></td>
+<td class="struct_member_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
 <a name="GUPnPServiceActionInfo"></a><h3>GUPnPServiceActionInfo</h3>
@@ -169,25 +436,31 @@ argument.</td>
         GList *arguments; /* list of #GUPnPServiceActionArgInfo */
 } GUPnPServiceActionInfo;
 </pre>
-<p>
-This structure contains information about a service action.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<p>This structure contains information about a service action.</p>
+<div class="refsect3">
+<a name="id-1.3.2.4.10.4.5"></a><h4>Members</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><span class="type">char</span> *<em class="structfield"><code><a name="GUPnPServiceActionInfo.name"></a>name</code></em>;</span></p></td>
-<td>The name of the action argument.</td>
+<td class="struct_member_name"><p><span class="type">char</span> *<em class="structfield"><code><a name="GUPnPServiceActionInfo.name"></a>name</code></em>;</p></td>
+<td class="struct_member_description"><p>The name of the action argument.</p></td>
+<td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *<em class="structfield"><code><a name="GUPnPServiceActionInfo.arguments"></a>arguments</code></em>;</span></p></td>
-<td>A GList of all the arguments
-(of type <a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceActionArgInfo" title="GUPnPServiceActionArgInfo"><span class="type">GUPnPServiceActionArgInfo</span></a>) of this action. <span class="annotation">[<acronym title="Override the parsed C type with given type"><span class="acronym">type</span></acronym> GList][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GUPnP.ServiceActionArgInfo]</span>
-</td>
+<td class="struct_member_name"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *<em class="structfield"><code><a name="GUPnPServiceActionInfo.arguments"></a>arguments</code></em>;</p></td>
+<td class="struct_member_description"><p>A GList of all the arguments
+(of type <a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceActionArgInfo" title="GUPnPServiceActionArgInfo"><span class="type">GUPnPServiceActionArgInfo</span></a>) of this action. </p></td>
+<td class="struct_member_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> GList][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GUPnP.ServiceActionArgInfo]</span></td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
 <a name="GUPnPServiceStateVariableInfo"></a><h3>GUPnPServiceStateVariableInfo</h3>
@@ -203,243 +476,91 @@ This structure contains information about a service action.
         GList   *allowed_values;
 } GUPnPServiceStateVariableInfo;
 </pre>
-<p>
-This structure contains information about service state variable.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
+<p>This structure contains information about service state variable.</p>
+<div class="refsect3">
+<a name="id-1.3.2.4.10.5.5"></a><h4>Members</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
 <tbody>
 <tr>
-<td><p><span class="term"><span class="type">char</span> *<em class="structfield"><code><a name="GUPnPServiceStateVariableInfo.name"></a>name</code></em>;</span></p></td>
-<td>The name of the state variable.</td>
+<td class="struct_member_name"><p><span class="type">char</span> *<em class="structfield"><code><a name="GUPnPServiceStateVariableInfo.name"></a>name</code></em>;</p></td>
+<td class="struct_member_description"><p>The name of the state variable.</p></td>
+<td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> <em class="structfield"><code><a name="GUPnPServiceStateVariableInfo.send-events"></a>send_events</code></em>;</span></p></td>
-<td>Whether this state variable can source events.</td>
+<td class="struct_member_name"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> <em class="structfield"><code><a name="GUPnPServiceStateVariableInfo.send-events"></a>send_events</code></em>;</p></td>
+<td class="struct_member_description"><p>Whether this state variable can source events.</p></td>
+<td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> <em class="structfield"><code><a name="GUPnPServiceStateVariableInfo.is-numeric"></a>is_numeric</code></em>;</span></p></td>
-<td>Wether this state variable is a numeric type (integer and
-float).</td>
+<td class="struct_member_name"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> <em class="structfield"><code><a name="GUPnPServiceStateVariableInfo.is-numeric"></a>is_numeric</code></em>;</p></td>
+<td class="struct_member_description"><p>Wether this state variable is a numeric type (integer and
+float).</p></td>
+<td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> <em class="structfield"><code><a name="GUPnPServiceStateVariableInfo.type"></a>type</code></em>;</span></p></td>
-<td>The GType of this state variable.</td>
+<td class="struct_member_name"><p><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> <em class="structfield"><code><a name="GUPnPServiceStateVariableInfo.type"></a>type</code></em>;</p></td>
+<td class="struct_member_description"><p>The GType of this state variable.</p></td>
+<td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> <em class="structfield"><code><a name="GUPnPServiceStateVariableInfo.default-value"></a>default_value</code></em>;</span></p></td>
-<td>The default value of this state variable.</td>
+<td class="struct_member_name"><p><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> <em class="structfield"><code><a name="GUPnPServiceStateVariableInfo.default-value"></a>default_value</code></em>;</p></td>
+<td class="struct_member_description"><p>The default value of this state variable.</p></td>
+<td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> <em class="structfield"><code><a name="GUPnPServiceStateVariableInfo.minimum"></a>minimum</code></em>;</span></p></td>
-<td>The minimum value of this state variable. Only applies to numeric
-data types.</td>
+<td class="struct_member_name"><p><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> <em class="structfield"><code><a name="GUPnPServiceStateVariableInfo.minimum"></a>minimum</code></em>;</p></td>
+<td class="struct_member_description"><p>The minimum value of this state variable. Only applies to numeric
+data types.</p></td>
+<td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> <em class="structfield"><code><a name="GUPnPServiceStateVariableInfo.maximum"></a>maximum</code></em>;</span></p></td>
-<td>The maximum value of this state variable. Only applies to numeric
-data types.</td>
+<td class="struct_member_name"><p><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> <em class="structfield"><code><a name="GUPnPServiceStateVariableInfo.maximum"></a>maximum</code></em>;</p></td>
+<td class="struct_member_description"><p>The maximum value of this state variable. Only applies to numeric
+data types.</p></td>
+<td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> <em class="structfield"><code><a name="GUPnPServiceStateVariableInfo.step"></a>step</code></em>;</span></p></td>
-<td>The step value of this state variable. Only applies to numeric
-data types.</td>
+<td class="struct_member_name"><p><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> <em class="structfield"><code><a name="GUPnPServiceStateVariableInfo.step"></a>step</code></em>;</p></td>
+<td class="struct_member_description"><p>The step value of this state variable. Only applies to numeric
+data types.</p></td>
+<td class="struct_member_annotations"> </td>
 </tr>
 <tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *<em class="structfield"><code><a name="GUPnPServiceStateVariableInfo.allowed-values"></a>allowed_values</code></em>;</span></p></td>
-<td>The allowed values of this state variable. Only applies to
+<td class="struct_member_name"><p><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *<em class="structfield"><code><a name="GUPnPServiceStateVariableInfo.allowed-values"></a>allowed_values</code></em>;</p></td>
+<td class="struct_member_description"><p> The allowed values of this state variable. Only applies to
 string data types. Unlike the other fields in this structure, this field
-contains a list of (char *) strings rather than GValues. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8]</span>
-</td>
+contains a list of (char *) strings rather than GValues. </p></td>
+<td class="struct_member_annotations"><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8]</span></td>
 </tr>
 </tbody>
 </table></div>
 </div>
+</div>
 <hr>
 <div class="refsect2">
 <a name="GUPnPServiceIntrospection-struct"></a><h3>struct GUPnPServiceIntrospection</h3>
 <pre class="programlisting">struct GUPnPServiceIntrospection;</pre>
-<p>
-This struct contains private data only, and should be accessed using the
-functions below.
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gupnp-service-introspection-list-action-names"></a><h3>gupnp_service_introspection_list_action_names ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *       gupnp_service_introspection_list_action_names
-                                                        (<em class="parameter"><code><a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection"><span class="type">GUPnPServiceIntrospection</span></a> *introspection</code></em>);</pre>
-<p>
-Returns a GList of names of all the actions in this service.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>introspection</code></em> :</span></p></td>
-<td>A <a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection"><span class="type">GUPnPServiceIntrospection</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>(transfer none) (element-type utf8) : A GList of names of all
-the actions or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Do not modify or free it or its contents.</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gupnp-service-introspection-list-actions"></a><h3>gupnp_service_introspection_list_actions ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *       gupnp_service_introspection_list_actions
-                                                        (<em class="parameter"><code><a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection"><span class="type">GUPnPServiceIntrospection</span></a> *introspection</code></em>);</pre>
-<p>
-Returns a <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of all the actions (of type <a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceActionInfo" title="GUPnPServiceActionInfo"><span class="type">GUPnPServiceActionInfo</span></a>) in
-this service.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>introspection</code></em> :</span></p></td>
-<td>A <a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection"><span class="type">GUPnPServiceIntrospection</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of all the actions or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Do not modify or free it or its
-contents. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GUPnP.ServiceActionInfo][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gupnp-service-introspection-get-action"></a><h3>gupnp_service_introspection_get_action ()</h3>
-<pre class="programlisting">const <a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceActionInfo" title="GUPnPServiceActionInfo"><span class="returnvalue">GUPnPServiceActionInfo</span></a> * gupnp_service_introspection_get_action
-                                                        (<em class="parameter"><code><a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection"><span class="type">GUPnPServiceIntrospection</span></a> *introspection</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *action_name</code></em>);</pre>
-<p>
-Returns the action by the name <em class="parameter"><code>action_name</code></em> in this service.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>introspection</code></em> :</span></p></td>
-<td>A <a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection"><span class="type">GUPnPServiceIntrospection</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>action_name</code></em> :</span></p></td>
-<td>The name of the action to retrieve</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the action or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Do not modify or free
-it. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gupnp-service-introspection-list-state-variable-names"></a><h3>gupnp_service_introspection_list_state_variable_names ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *       gupnp_service_introspection_list_state_variable_names
-                                                        (<em class="parameter"><code><a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection"><span class="type">GUPnPServiceIntrospection</span></a> *introspection</code></em>);</pre>
-<p>
-Returns a <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of names of all the state variables in this service.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>introspection</code></em> :</span></p></td>
-<td>A <a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection"><span class="type">GUPnPServiceIntrospection</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of names of all
-the state variables or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Do not modify or free it or its contents. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gupnp-service-introspection-list-state-variables"></a><h3>gupnp_service_introspection_list_state_variables ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *       gupnp_service_introspection_list_state_variables
-                                                        (<em class="parameter"><code><a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection"><span class="type">GUPnPServiceIntrospection</span></a> *introspection</code></em>);</pre>
-<p>
-Returns a GList of all the state variables (of type
-<a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceStateVariableInfo" title="GUPnPServiceStateVariableInfo"><span class="type">GUPnPServiceStateVariableInfo</span></a>) in this service.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>introspection</code></em> :</span></p></td>
-<td>A <a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection"><span class="type">GUPnPServiceIntrospection</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of all the state variables or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Do not modify or free it or
-its contents. <span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GUPnP.ServiceStateVariableInfo][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gupnp-service-introspection-get-state-variable"></a><h3>gupnp_service_introspection_get_state_variable ()</h3>
-<pre class="programlisting">const <a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceStateVariableInfo" title="GUPnPServiceStateVariableInfo"><span class="returnvalue">GUPnPServiceStateVariableInfo</span></a> * gupnp_service_introspection_get_state_variable
-                                                        (<em class="parameter"><code><a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection"><span class="type">GUPnPServiceIntrospection</span></a> *introspection</code></em>,
-                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *variable_name</code></em>);</pre>
-<p>
-Returns the state variable by the name <em class="parameter"><code>variable_name</code></em> in this service.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>introspection</code></em> :</span></p></td>
-<td>A <a class="link" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection"><span class="type">GUPnPServiceIntrospection</span></a>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>variable_name</code></em> :</span></p></td>
-<td>The name of the variable to retrieve</td>
-</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the state variable or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Do not modify or
-free it. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
-</table></div>
+<p>This struct contains private data only, and should be accessed using the
+functions below.</p>
 </div>
 </div>
 <div class="refsect1">
 <a name="gupnp-gupnp-service-introspection.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
-<a name="GUPnPServiceIntrospection--scpd"></a><h3>The <code class="literal">"scpd"</code> property</h3>
-<pre class="programlisting">  "scpd"                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>              : Write / Construct Only</pre>
-<p>
-The scpd of the device description file.
-</p>
+<a name="GUPnPServiceIntrospection--scpd"></a><h3>The <code class="literal">“scpd”</code> property</h3>
+<pre class="programlisting">  “scpd”                     <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a></pre>
+<p>The scpd of the device description file.</p>
+<p>Flags: Write / Construct Only</p>
 </div>
 </div>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index b79f7af..33df99d 100644 (file)
         <sub name="GUPnPRootDevice" link="GUPnPRootDevice.html"/>
         <sub name="GUPnPService" link="GUPnPService.html"/>
       </sub>
-      <sub name="Utility Functions" link="api-utility.html">
+      <sub name="Network context handling" link="api-context.html">
         <sub name="GUPnPContext" link="GUPnPContext.html"/>
         <sub name="GUPnPContextManager" link="GUPnPContextManager.html"/>
+      </sub>
+      <sub name="Utility Functions" link="api-utility.html">
+        <sub name="GUPnPAcl" link="GUPnPAcl.html"/>
         <sub name="GUPnPWhiteList" link="GUPnPWhiteList.html"/>
         <sub name="GUPnPResourceFactory" link="GUPnPResourceFactory.html"/>
         <sub name="GUPnPXMLDoc" link="GUPnPXMLDoc.html"/>
     <sub name="" link="ix01.html"/>
   </chapters>
   <functions>
+    <keyword type="function" name="gupnp_device_info_get_resource_factory ()" link="GUPnPDeviceInfo.html#gupnp-device-info-get-resource-factory"/>
+    <keyword type="function" name="gupnp_device_info_get_context ()" link="GUPnPDeviceInfo.html#gupnp-device-info-get-context"/>
+    <keyword type="function" name="gupnp_device_info_get_location ()" link="GUPnPDeviceInfo.html#gupnp-device-info-get-location"/>
+    <keyword type="function" name="gupnp_device_info_get_url_base ()" link="GUPnPDeviceInfo.html#gupnp-device-info-get-url-base"/>
+    <keyword type="function" name="gupnp_device_info_get_udn ()" link="GUPnPDeviceInfo.html#gupnp-device-info-get-udn"/>
+    <keyword type="function" name="gupnp_device_info_get_device_type ()" link="GUPnPDeviceInfo.html#gupnp-device-info-get-device-type"/>
+    <keyword type="function" name="gupnp_device_info_get_friendly_name ()" link="GUPnPDeviceInfo.html#gupnp-device-info-get-friendly-name"/>
+    <keyword type="function" name="gupnp_device_info_get_manufacturer ()" link="GUPnPDeviceInfo.html#gupnp-device-info-get-manufacturer"/>
+    <keyword type="function" name="gupnp_device_info_get_manufacturer_url ()" link="GUPnPDeviceInfo.html#gupnp-device-info-get-manufacturer-url"/>
+    <keyword type="function" name="gupnp_device_info_get_model_description ()" link="GUPnPDeviceInfo.html#gupnp-device-info-get-model-description"/>
+    <keyword type="function" name="gupnp_device_info_get_model_name ()" link="GUPnPDeviceInfo.html#gupnp-device-info-get-model-name"/>
+    <keyword type="function" name="gupnp_device_info_get_model_number ()" link="GUPnPDeviceInfo.html#gupnp-device-info-get-model-number"/>
+    <keyword type="function" name="gupnp_device_info_get_model_url ()" link="GUPnPDeviceInfo.html#gupnp-device-info-get-model-url"/>
+    <keyword type="function" name="gupnp_device_info_get_serial_number ()" link="GUPnPDeviceInfo.html#gupnp-device-info-get-serial-number"/>
+    <keyword type="function" name="gupnp_device_info_get_presentation_url ()" link="GUPnPDeviceInfo.html#gupnp-device-info-get-presentation-url"/>
+    <keyword type="function" name="gupnp_device_info_get_upc ()" link="GUPnPDeviceInfo.html#gupnp-device-info-get-upc"/>
+    <keyword type="function" name="gupnp_device_info_get_icon_url ()" link="GUPnPDeviceInfo.html#gupnp-device-info-get-icon-url"/>
+    <keyword type="function" name="gupnp_device_info_list_dlna_capabilities ()" link="GUPnPDeviceInfo.html#gupnp-device-info-list-dlna-capabilities" since="0.13.0"/>
+    <keyword type="function" name="gupnp_device_info_list_dlna_device_class_identifier ()" link="GUPnPDeviceInfo.html#gupnp-device-info-list-dlna-device-class-identifier" since="0.20.4"/>
+    <keyword type="function" name="gupnp_device_info_get_description_value ()" link="GUPnPDeviceInfo.html#gupnp-device-info-get-description-value" since="0.13.0"/>
+    <keyword type="function" name="gupnp_device_info_list_devices ()" link="GUPnPDeviceInfo.html#gupnp-device-info-list-devices"/>
+    <keyword type="function" name="gupnp_device_info_list_device_types ()" link="GUPnPDeviceInfo.html#gupnp-device-info-list-device-types"/>
+    <keyword type="function" name="gupnp_device_info_get_device ()" link="GUPnPDeviceInfo.html#gupnp-device-info-get-device"/>
+    <keyword type="function" name="gupnp_device_info_list_services ()" link="GUPnPDeviceInfo.html#gupnp-device-info-list-services"/>
+    <keyword type="function" name="gupnp_device_info_list_service_types ()" link="GUPnPDeviceInfo.html#gupnp-device-info-list-service-types"/>
+    <keyword type="function" name="gupnp_device_info_get_service ()" link="GUPnPDeviceInfo.html#gupnp-device-info-get-service"/>
     <keyword type="struct" name="struct GUPnPDeviceInfo" link="GUPnPDeviceInfo.html#GUPnPDeviceInfo-struct"/>
-    <keyword type="function" name="gupnp_device_info_get_resource_factory ()" link="GUPnPDeviceInfo.html#gupnp-device-info-get-resource-factory"/>
-    <keyword type="function" name="gupnp_device_info_get_context ()" link="GUPnPDeviceInfo.html#gupnp-device-info-get-context"/>
-    <keyword type="function" name="gupnp_device_info_get_location ()" link="GUPnPDeviceInfo.html#gupnp-device-info-get-location"/>
-    <keyword type="function" name="gupnp_device_info_get_url_base ()" link="GUPnPDeviceInfo.html#gupnp-device-info-get-url-base"/>
-    <keyword type="function" name="gupnp_device_info_get_udn ()" link="GUPnPDeviceInfo.html#gupnp-device-info-get-udn"/>
-    <keyword type="function" name="gupnp_device_info_get_device_type ()" link="GUPnPDeviceInfo.html#gupnp-device-info-get-device-type"/>
-    <keyword type="function" name="gupnp_device_info_get_friendly_name ()" link="GUPnPDeviceInfo.html#gupnp-device-info-get-friendly-name"/>
-    <keyword type="function" name="gupnp_device_info_get_manufacturer ()" link="GUPnPDeviceInfo.html#gupnp-device-info-get-manufacturer"/>
-    <keyword type="function" name="gupnp_device_info_get_manufacturer_url ()" link="GUPnPDeviceInfo.html#gupnp-device-info-get-manufacturer-url"/>
-    <keyword type="function" name="gupnp_device_info_get_model_description ()" link="GUPnPDeviceInfo.html#gupnp-device-info-get-model-description"/>
-    <keyword type="function" name="gupnp_device_info_get_model_name ()" link="GUPnPDeviceInfo.html#gupnp-device-info-get-model-name"/>
-    <keyword type="function" name="gupnp_device_info_get_model_number ()" link="GUPnPDeviceInfo.html#gupnp-device-info-get-model-number"/>
-    <keyword type="function" name="gupnp_device_info_get_model_url ()" link="GUPnPDeviceInfo.html#gupnp-device-info-get-model-url"/>
-    <keyword type="function" name="gupnp_device_info_get_serial_number ()" link="GUPnPDeviceInfo.html#gupnp-device-info-get-serial-number"/>
-    <keyword type="function" name="gupnp_device_info_get_presentation_url ()" link="GUPnPDeviceInfo.html#gupnp-device-info-get-presentation-url"/>
-    <keyword type="function" name="gupnp_device_info_get_upc ()" link="GUPnPDeviceInfo.html#gupnp-device-info-get-upc"/>
-    <keyword type="function" name="gupnp_device_info_get_icon_url ()" link="GUPnPDeviceInfo.html#gupnp-device-info-get-icon-url"/>
-    <keyword type="function" name="gupnp_device_info_list_dlna_capabilities ()" link="GUPnPDeviceInfo.html#gupnp-device-info-list-dlna-capabilities"/>
-    <keyword type="function" name="gupnp_device_info_list_dlna_device_class_identifier ()" link="GUPnPDeviceInfo.html#gupnp-device-info-list-dlna-device-class-identifier"/>
-    <keyword type="function" name="gupnp_device_info_get_description_value ()" link="GUPnPDeviceInfo.html#gupnp-device-info-get-description-value"/>
-    <keyword type="function" name="gupnp_device_info_list_devices ()" link="GUPnPDeviceInfo.html#gupnp-device-info-list-devices"/>
-    <keyword type="function" name="gupnp_device_info_list_device_types ()" link="GUPnPDeviceInfo.html#gupnp-device-info-list-device-types"/>
-    <keyword type="function" name="gupnp_device_info_get_device ()" link="GUPnPDeviceInfo.html#gupnp-device-info-get-device"/>
-    <keyword type="function" name="gupnp_device_info_list_services ()" link="GUPnPDeviceInfo.html#gupnp-device-info-list-services"/>
-    <keyword type="function" name="gupnp_device_info_list_service_types ()" link="GUPnPDeviceInfo.html#gupnp-device-info-list-service-types"/>
-    <keyword type="function" name="gupnp_device_info_get_service ()" link="GUPnPDeviceInfo.html#gupnp-device-info-get-service"/>
-    <keyword type="property" name="The &quot;context&quot; property" link="GUPnPDeviceInfo.html#GUPnPDeviceInfo--context"/>
-    <keyword type="property" name="The &quot;device-type&quot; property" link="GUPnPDeviceInfo.html#GUPnPDeviceInfo--device-type"/>
-    <keyword type="property" name="The &quot;document&quot; property" link="GUPnPDeviceInfo.html#GUPnPDeviceInfo--document"/>
-    <keyword type="property" name="The &quot;element&quot; property" link="GUPnPDeviceInfo.html#GUPnPDeviceInfo--element"/>
-    <keyword type="property" name="The &quot;location&quot; property" link="GUPnPDeviceInfo.html#GUPnPDeviceInfo--location"/>
-    <keyword type="property" name="The &quot;resource-factory&quot; property" link="GUPnPDeviceInfo.html#GUPnPDeviceInfo--resource-factory"/>
-    <keyword type="property" name="The &quot;udn&quot; property" link="GUPnPDeviceInfo.html#GUPnPDeviceInfo--udn"/>
-    <keyword type="property" name="The &quot;url-base&quot; property" link="GUPnPDeviceInfo.html#GUPnPDeviceInfo--url-base"/>
+    <keyword type="property" name="The “context” property" link="GUPnPDeviceInfo.html#GUPnPDeviceInfo--context"/>
+    <keyword type="property" name="The “device-type” property" link="GUPnPDeviceInfo.html#GUPnPDeviceInfo--device-type"/>
+    <keyword type="property" name="The “document” property" link="GUPnPDeviceInfo.html#GUPnPDeviceInfo--document"/>
+    <keyword type="property" name="The “element” property" link="GUPnPDeviceInfo.html#GUPnPDeviceInfo--element"/>
+    <keyword type="property" name="The “location” property" link="GUPnPDeviceInfo.html#GUPnPDeviceInfo--location"/>
+    <keyword type="property" name="The “resource-factory” property" link="GUPnPDeviceInfo.html#GUPnPDeviceInfo--resource-factory"/>
+    <keyword type="property" name="The “udn” property" link="GUPnPDeviceInfo.html#GUPnPDeviceInfo--udn"/>
+    <keyword type="property" name="The “url-base” property" link="GUPnPDeviceInfo.html#GUPnPDeviceInfo--url-base"/>
+    <keyword type="function" name="GUPnPServiceIntrospectionCallback ()" link="GUPnPServiceInfo.html#GUPnPServiceIntrospectionCallback"/>
+    <keyword type="function" name="gupnp_service_info_get_context ()" link="GUPnPServiceInfo.html#gupnp-service-info-get-context"/>
+    <keyword type="function" name="gupnp_service_info_get_location ()" link="GUPnPServiceInfo.html#gupnp-service-info-get-location"/>
+    <keyword type="function" name="gupnp_service_info_get_url_base ()" link="GUPnPServiceInfo.html#gupnp-service-info-get-url-base"/>
+    <keyword type="function" name="gupnp_service_info_get_udn ()" link="GUPnPServiceInfo.html#gupnp-service-info-get-udn"/>
+    <keyword type="function" name="gupnp_service_info_get_service_type ()" link="GUPnPServiceInfo.html#gupnp-service-info-get-service-type"/>
+    <keyword type="function" name="gupnp_service_info_get_id ()" link="GUPnPServiceInfo.html#gupnp-service-info-get-id"/>
+    <keyword type="function" name="gupnp_service_info_get_scpd_url ()" link="GUPnPServiceInfo.html#gupnp-service-info-get-scpd-url"/>
+    <keyword type="function" name="gupnp_service_info_get_control_url ()" link="GUPnPServiceInfo.html#gupnp-service-info-get-control-url"/>
+    <keyword type="function" name="gupnp_service_info_get_event_subscription_url ()" link="GUPnPServiceInfo.html#gupnp-service-info-get-event-subscription-url"/>
+    <keyword type="function" name="gupnp_service_info_get_introspection ()" link="GUPnPServiceInfo.html#gupnp-service-info-get-introspection"/>
+    <keyword type="function" name="gupnp_service_info_get_introspection_async ()" link="GUPnPServiceInfo.html#gupnp-service-info-get-introspection-async"/>
+    <keyword type="function" name="gupnp_service_info_get_introspection_async_full ()" link="GUPnPServiceInfo.html#gupnp-service-info-get-introspection-async-full" since="0.20.9."/>
     <keyword type="struct" name="struct GUPnPServiceInfo" link="GUPnPServiceInfo.html#GUPnPServiceInfo-struct"/>
-    <keyword type="function" name="GUPnPServiceIntrospectionCallback ()" link="GUPnPServiceInfo.html#GUPnPServiceIntrospectionCallback"/>
-    <keyword type="function" name="gupnp_service_info_get_context ()" link="GUPnPServiceInfo.html#gupnp-service-info-get-context"/>
-    <keyword type="function" name="gupnp_service_info_get_location ()" link="GUPnPServiceInfo.html#gupnp-service-info-get-location"/>
-    <keyword type="function" name="gupnp_service_info_get_url_base ()" link="GUPnPServiceInfo.html#gupnp-service-info-get-url-base"/>
-    <keyword type="function" name="gupnp_service_info_get_udn ()" link="GUPnPServiceInfo.html#gupnp-service-info-get-udn"/>
-    <keyword type="function" name="gupnp_service_info_get_service_type ()" link="GUPnPServiceInfo.html#gupnp-service-info-get-service-type"/>
-    <keyword type="function" name="gupnp_service_info_get_id ()" link="GUPnPServiceInfo.html#gupnp-service-info-get-id"/>
-    <keyword type="function" name="gupnp_service_info_get_scpd_url ()" link="GUPnPServiceInfo.html#gupnp-service-info-get-scpd-url"/>
-    <keyword type="function" name="gupnp_service_info_get_control_url ()" link="GUPnPServiceInfo.html#gupnp-service-info-get-control-url"/>
-    <keyword type="function" name="gupnp_service_info_get_event_subscription_url ()" link="GUPnPServiceInfo.html#gupnp-service-info-get-event-subscription-url"/>
-    <keyword type="function" name="gupnp_service_info_get_introspection ()" link="GUPnPServiceInfo.html#gupnp-service-info-get-introspection"/>
-    <keyword type="function" name="gupnp_service_info_get_introspection_async ()" link="GUPnPServiceInfo.html#gupnp-service-info-get-introspection-async"/>
-    <keyword type="property" name="The &quot;context&quot; property" link="GUPnPServiceInfo.html#GUPnPServiceInfo--context"/>
-    <keyword type="property" name="The &quot;document&quot; property" link="GUPnPServiceInfo.html#GUPnPServiceInfo--document"/>
-    <keyword type="property" name="The &quot;element&quot; property" link="GUPnPServiceInfo.html#GUPnPServiceInfo--element"/>
-    <keyword type="property" name="The &quot;location&quot; property" link="GUPnPServiceInfo.html#GUPnPServiceInfo--location"/>
-    <keyword type="property" name="The &quot;service-type&quot; property" link="GUPnPServiceInfo.html#GUPnPServiceInfo--service-type"/>
-    <keyword type="property" name="The &quot;udn&quot; property" link="GUPnPServiceInfo.html#GUPnPServiceInfo--udn"/>
-    <keyword type="property" name="The &quot;url-base&quot; property" link="GUPnPServiceInfo.html#GUPnPServiceInfo--url-base"/>
+    <keyword type="property" name="The “context” property" link="GUPnPServiceInfo.html#GUPnPServiceInfo--context"/>
+    <keyword type="property" name="The “document” property" link="GUPnPServiceInfo.html#GUPnPServiceInfo--document"/>
+    <keyword type="property" name="The “element” property" link="GUPnPServiceInfo.html#GUPnPServiceInfo--element"/>
+    <keyword type="property" name="The “location” property" link="GUPnPServiceInfo.html#GUPnPServiceInfo--location"/>
+    <keyword type="property" name="The “service-type” property" link="GUPnPServiceInfo.html#GUPnPServiceInfo--service-type"/>
+    <keyword type="property" name="The “udn” property" link="GUPnPServiceInfo.html#GUPnPServiceInfo--udn"/>
+    <keyword type="property" name="The “url-base” property" link="GUPnPServiceInfo.html#GUPnPServiceInfo--url-base"/>
+    <keyword type="function" name="gupnp_service_introspection_list_action_names ()" link="gupnp-gupnp-service-introspection.html#gupnp-service-introspection-list-action-names"/>
+    <keyword type="function" name="gupnp_service_introspection_list_actions ()" link="gupnp-gupnp-service-introspection.html#gupnp-service-introspection-list-actions"/>
+    <keyword type="function" name="gupnp_service_introspection_get_action ()" link="gupnp-gupnp-service-introspection.html#gupnp-service-introspection-get-action"/>
+    <keyword type="function" name="gupnp_service_introspection_list_state_variable_names ()" link="gupnp-gupnp-service-introspection.html#gupnp-service-introspection-list-state-variable-names"/>
+    <keyword type="function" name="gupnp_service_introspection_list_state_variables ()" link="gupnp-gupnp-service-introspection.html#gupnp-service-introspection-list-state-variables"/>
+    <keyword type="function" name="gupnp_service_introspection_get_state_variable ()" link="gupnp-gupnp-service-introspection.html#gupnp-service-introspection-get-state-variable"/>
     <keyword type="enum" name="enum GUPnPServiceActionArgDirection" link="gupnp-gupnp-service-introspection.html#GUPnPServiceActionArgDirection"/>
     <keyword type="struct" name="GUPnPServiceActionArgInfo" link="gupnp-gupnp-service-introspection.html#GUPnPServiceActionArgInfo"/>
     <keyword type="struct" name="GUPnPServiceActionInfo" link="gupnp-gupnp-service-introspection.html#GUPnPServiceActionInfo"/>
     <keyword type="struct" name="GUPnPServiceStateVariableInfo" link="gupnp-gupnp-service-introspection.html#GUPnPServiceStateVariableInfo"/>
     <keyword type="struct" name="struct GUPnPServiceIntrospection" link="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection-struct"/>
-    <keyword type="function" name="gupnp_service_introspection_list_action_names ()" link="gupnp-gupnp-service-introspection.html#gupnp-service-introspection-list-action-names"/>
-    <keyword type="function" name="gupnp_service_introspection_list_actions ()" link="gupnp-gupnp-service-introspection.html#gupnp-service-introspection-list-actions"/>
-    <keyword type="function" name="gupnp_service_introspection_get_action ()" link="gupnp-gupnp-service-introspection.html#gupnp-service-introspection-get-action"/>
-    <keyword type="function" name="gupnp_service_introspection_list_state_variable_names ()" link="gupnp-gupnp-service-introspection.html#gupnp-service-introspection-list-state-variable-names"/>
-    <keyword type="function" name="gupnp_service_introspection_list_state_variables ()" link="gupnp-gupnp-service-introspection.html#gupnp-service-introspection-list-state-variables"/>
-    <keyword type="function" name="gupnp_service_introspection_get_state_variable ()" link="gupnp-gupnp-service-introspection.html#gupnp-service-introspection-get-state-variable"/>
-    <keyword type="property" name="The &quot;scpd&quot; property" link="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection--scpd"/>
+    <keyword type="property" name="The “scpd” property" link="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection--scpd"/>
+    <keyword type="function" name="gupnp_control_point_new ()" link="GUPnPControlPoint.html#gupnp-control-point-new"/>
+    <keyword type="function" name="gupnp_control_point_new_full ()" link="GUPnPControlPoint.html#gupnp-control-point-new-full"/>
+    <keyword type="function" name="gupnp_control_point_get_resource_factory ()" link="GUPnPControlPoint.html#gupnp-control-point-get-resource-factory"/>
+    <keyword type="function" name="gupnp_control_point_get_context ()" link="GUPnPControlPoint.html#gupnp-control-point-get-context"/>
+    <keyword type="function" name="gupnp_control_point_list_device_proxies ()" link="GUPnPControlPoint.html#gupnp-control-point-list-device-proxies"/>
+    <keyword type="function" name="gupnp_control_point_list_service_proxies ()" link="GUPnPControlPoint.html#gupnp-control-point-list-service-proxies"/>
     <keyword type="struct" name="struct GUPnPControlPoint" link="GUPnPControlPoint.html#GUPnPControlPoint-struct"/>
-    <keyword type="function" name="gupnp_control_point_new ()" link="GUPnPControlPoint.html#gupnp-control-point-new"/>
-    <keyword type="function" name="gupnp_control_point_new_full ()" link="GUPnPControlPoint.html#gupnp-control-point-new-full"/>
-    <keyword type="function" name="gupnp_control_point_get_resource_factory ()" link="GUPnPControlPoint.html#gupnp-control-point-get-resource-factory"/>
-    <keyword type="function" name="gupnp_control_point_get_context ()" link="GUPnPControlPoint.html#gupnp-control-point-get-context"/>
-    <keyword type="function" name="gupnp_control_point_list_device_proxies ()" link="GUPnPControlPoint.html#gupnp-control-point-list-device-proxies"/>
-    <keyword type="function" name="gupnp_control_point_list_service_proxies ()" link="GUPnPControlPoint.html#gupnp-control-point-list-service-proxies"/>
-    <keyword type="property" name="The &quot;resource-factory&quot; property" link="GUPnPControlPoint.html#GUPnPControlPoint--resource-factory"/>
-    <keyword type="signal" name="The &quot;device-proxy-available&quot; signal" link="GUPnPControlPoint.html#GUPnPControlPoint-device-proxy-available"/>
-    <keyword type="signal" name="The &quot;device-proxy-unavailable&quot; signal" link="GUPnPControlPoint.html#GUPnPControlPoint-device-proxy-unavailable"/>
-    <keyword type="signal" name="The &quot;service-proxy-available&quot; signal" link="GUPnPControlPoint.html#GUPnPControlPoint-service-proxy-available"/>
-    <keyword type="signal" name="The &quot;service-proxy-unavailable&quot; signal" link="GUPnPControlPoint.html#GUPnPControlPoint-service-proxy-unavailable"/>
+    <keyword type="property" name="The “resource-factory” property" link="GUPnPControlPoint.html#GUPnPControlPoint--resource-factory"/>
+    <keyword type="signal" name="The “device-proxy-available” signal" link="GUPnPControlPoint.html#GUPnPControlPoint-device-proxy-available"/>
+    <keyword type="signal" name="The “device-proxy-unavailable” signal" link="GUPnPControlPoint.html#GUPnPControlPoint-device-proxy-unavailable"/>
+    <keyword type="signal" name="The “service-proxy-available” signal" link="GUPnPControlPoint.html#GUPnPControlPoint-service-proxy-available"/>
+    <keyword type="signal" name="The “service-proxy-unavailable” signal" link="GUPnPControlPoint.html#GUPnPControlPoint-service-proxy-unavailable"/>
     <keyword type="struct" name="struct GUPnPDeviceProxy" link="GUPnPDeviceProxy.html#GUPnPDeviceProxy-struct"/>
+    <keyword type="function" name="GUPnPServiceProxyActionCallback ()" link="GUPnPServiceProxy.html#GUPnPServiceProxyActionCallback"/>
+    <keyword type="function" name="GUPnPServiceProxyNotifyCallback ()" link="GUPnPServiceProxy.html#GUPnPServiceProxyNotifyCallback"/>
+    <keyword type="function" name="gupnp_service_proxy_send_action ()" link="GUPnPServiceProxy.html#gupnp-service-proxy-send-action"/>
+    <keyword type="function" name="gupnp_service_proxy_send_action_valist ()" link="GUPnPServiceProxy.html#gupnp-service-proxy-send-action-valist"/>
+    <keyword type="function" name="gupnp_service_proxy_send_action_hash ()" link="GUPnPServiceProxy.html#gupnp-service-proxy-send-action-hash" deprecated=""/>
+    <keyword type="function" name="gupnp_service_proxy_send_action_list ()" link="GUPnPServiceProxy.html#gupnp-service-proxy-send-action-list" since="0.13.3"/>
+    <keyword type="function" name="gupnp_service_proxy_begin_action ()" link="GUPnPServiceProxy.html#gupnp-service-proxy-begin-action"/>
+    <keyword type="function" name="gupnp_service_proxy_begin_action_valist ()" link="GUPnPServiceProxy.html#gupnp-service-proxy-begin-action-valist"/>
+    <keyword type="function" name="gupnp_service_proxy_begin_action_hash ()" link="GUPnPServiceProxy.html#gupnp-service-proxy-begin-action-hash" deprecated=""/>
+    <keyword type="function" name="gupnp_service_proxy_begin_action_list ()" link="GUPnPServiceProxy.html#gupnp-service-proxy-begin-action-list" since="0.13.3"/>
+    <keyword type="function" name="gupnp_service_proxy_end_action ()" link="GUPnPServiceProxy.html#gupnp-service-proxy-end-action"/>
+    <keyword type="function" name="gupnp_service_proxy_end_action_valist ()" link="GUPnPServiceProxy.html#gupnp-service-proxy-end-action-valist"/>
+    <keyword type="function" name="gupnp_service_proxy_end_action_hash ()" link="GUPnPServiceProxy.html#gupnp-service-proxy-end-action-hash"/>
+    <keyword type="function" name="gupnp_service_proxy_end_action_list ()" link="GUPnPServiceProxy.html#gupnp-service-proxy-end-action-list"/>
+    <keyword type="function" name="gupnp_service_proxy_cancel_action ()" link="GUPnPServiceProxy.html#gupnp-service-proxy-cancel-action"/>
+    <keyword type="function" name="gupnp_service_proxy_add_notify ()" link="GUPnPServiceProxy.html#gupnp-service-proxy-add-notify"/>
+    <keyword type="function" name="gupnp_service_proxy_add_notify_full ()" link="GUPnPServiceProxy.html#gupnp-service-proxy-add-notify-full" since="0.20.12"/>
+    <keyword type="function" name="gupnp_service_proxy_add_raw_notify ()" link="GUPnPServiceProxy.html#gupnp-service-proxy-add-raw-notify" since="0.20.12"/>
+    <keyword type="function" name="gupnp_service_proxy_remove_notify ()" link="GUPnPServiceProxy.html#gupnp-service-proxy-remove-notify"/>
+    <keyword type="function" name="gupnp_service_proxy_remove_raw_notify ()" link="GUPnPServiceProxy.html#gupnp-service-proxy-remove-raw-notify"/>
+    <keyword type="function" name="gupnp_service_proxy_set_subscribed ()" link="GUPnPServiceProxy.html#gupnp-service-proxy-set-subscribed"/>
+    <keyword type="function" name="gupnp_service_proxy_get_subscribed ()" link="GUPnPServiceProxy.html#gupnp-service-proxy-get-subscribed"/>
     <keyword type="struct" name="struct GUPnPServiceProxy" link="GUPnPServiceProxy.html#GUPnPServiceProxy-struct"/>
     <keyword type="struct" name="GUPnPServiceProxyAction" link="GUPnPServiceProxy.html#GUPnPServiceProxyAction"/>
-    <keyword type="function" name="GUPnPServiceProxyActionCallback ()" link="GUPnPServiceProxy.html#GUPnPServiceProxyActionCallback"/>
-    <keyword type="function" name="GUPnPServiceProxyNotifyCallback ()" link="GUPnPServiceProxy.html#GUPnPServiceProxyNotifyCallback"/>
-    <keyword type="function" name="gupnp_service_proxy_send_action ()" link="GUPnPServiceProxy.html#gupnp-service-proxy-send-action"/>
-    <keyword type="function" name="gupnp_service_proxy_send_action_valist ()" link="GUPnPServiceProxy.html#gupnp-service-proxy-send-action-valist"/>
-    <keyword type="function" name="gupnp_service_proxy_send_action_hash ()" link="GUPnPServiceProxy.html#gupnp-service-proxy-send-action-hash"/>
-    <keyword type="function" name="gupnp_service_proxy_send_action_list ()" link="GUPnPServiceProxy.html#gupnp-service-proxy-send-action-list"/>
-    <keyword type="function" name="gupnp_service_proxy_begin_action ()" link="GUPnPServiceProxy.html#gupnp-service-proxy-begin-action"/>
-    <keyword type="function" name="gupnp_service_proxy_begin_action_valist ()" link="GUPnPServiceProxy.html#gupnp-service-proxy-begin-action-valist"/>
-    <keyword type="function" name="gupnp_service_proxy_begin_action_hash ()" link="GUPnPServiceProxy.html#gupnp-service-proxy-begin-action-hash"/>
-    <keyword type="function" name="gupnp_service_proxy_begin_action_list ()" link="GUPnPServiceProxy.html#gupnp-service-proxy-begin-action-list"/>
-    <keyword type="function" name="gupnp_service_proxy_end_action ()" link="GUPnPServiceProxy.html#gupnp-service-proxy-end-action"/>
-    <keyword type="function" name="gupnp_service_proxy_end_action_valist ()" link="GUPnPServiceProxy.html#gupnp-service-proxy-end-action-valist"/>
-    <keyword type="function" name="gupnp_service_proxy_end_action_hash ()" link="GUPnPServiceProxy.html#gupnp-service-proxy-end-action-hash"/>
-    <keyword type="function" name="gupnp_service_proxy_end_action_list ()" link="GUPnPServiceProxy.html#gupnp-service-proxy-end-action-list"/>
-    <keyword type="function" name="gupnp_service_proxy_cancel_action ()" link="GUPnPServiceProxy.html#gupnp-service-proxy-cancel-action"/>
-    <keyword type="function" name="gupnp_service_proxy_add_notify ()" link="GUPnPServiceProxy.html#gupnp-service-proxy-add-notify"/>
-    <keyword type="function" name="gupnp_service_proxy_remove_notify ()" link="GUPnPServiceProxy.html#gupnp-service-proxy-remove-notify"/>
-    <keyword type="function" name="gupnp_service_proxy_set_subscribed ()" link="GUPnPServiceProxy.html#gupnp-service-proxy-set-subscribed"/>
-    <keyword type="function" name="gupnp_service_proxy_get_subscribed ()" link="GUPnPServiceProxy.html#gupnp-service-proxy-get-subscribed"/>
-    <keyword type="property" name="The &quot;subscribed&quot; property" link="GUPnPServiceProxy.html#GUPnPServiceProxy--subscribed"/>
-    <keyword type="signal" name="The &quot;subscription-lost&quot; signal" link="GUPnPServiceProxy.html#GUPnPServiceProxy-subscription-lost"/>
-    <keyword type="struct" name="struct GUPnPDevice" link="GUPnPDevice.html#GUPnPDevice-struct"/>
-    <keyword type="property" name="The &quot;root-device&quot; property" link="GUPnPDevice.html#GUPnPDevice--root-device"/>
+    <keyword type="property" name="The “subscribed” property" link="GUPnPServiceProxy.html#GUPnPServiceProxy--subscribed"/>
+    <keyword type="signal" name="The “subscription-lost” signal" link="GUPnPServiceProxy.html#GUPnPServiceProxy-subscription-lost"/>
+    <keyword type="struct" name="GUPnPDevice" link="GUPnPDevice.html#GUPnPDevice-struct"/>
+    <keyword type="property" name="The “root-device” property" link="GUPnPDevice.html#GUPnPDevice--root-device"/>
+    <keyword type="function" name="gupnp_root_device_new ()" link="GUPnPRootDevice.html#gupnp-root-device-new"/>
+    <keyword type="function" name="gupnp_root_device_new_full ()" link="GUPnPRootDevice.html#gupnp-root-device-new-full"/>
+    <keyword type="function" name="gupnp_root_device_set_available ()" link="GUPnPRootDevice.html#gupnp-root-device-set-available"/>
+    <keyword type="function" name="gupnp_root_device_get_available ()" link="GUPnPRootDevice.html#gupnp-root-device-get-available"/>
+    <keyword type="function" name="gupnp_root_device_get_relative_location ()" link="GUPnPRootDevice.html#gupnp-root-device-get-relative-location"/>
+    <keyword type="function" name="gupnp_root_device_get_description_dir ()" link="GUPnPRootDevice.html#gupnp-root-device-get-description-dir"/>
+    <keyword type="function" name="gupnp_root_device_get_description_path ()" link="GUPnPRootDevice.html#gupnp-root-device-get-description-path"/>
+    <keyword type="function" name="gupnp_root_device_get_ssdp_resource_group ()" link="GUPnPRootDevice.html#gupnp-root-device-get-ssdp-resource-group" since="0.19.2"/>
     <keyword type="struct" name="struct GUPnPRootDevice" link="GUPnPRootDevice.html#GUPnPRootDevice-struct"/>
-    <keyword type="function" name="gupnp_root_device_new ()" link="GUPnPRootDevice.html#gupnp-root-device-new"/>
-    <keyword type="function" name="gupnp_root_device_new_full ()" link="GUPnPRootDevice.html#gupnp-root-device-new-full"/>
-    <keyword type="function" name="gupnp_root_device_set_available ()" link="GUPnPRootDevice.html#gupnp-root-device-set-available"/>
-    <keyword type="function" name="gupnp_root_device_get_available ()" link="GUPnPRootDevice.html#gupnp-root-device-get-available"/>
-    <keyword type="function" name="gupnp_root_device_get_relative_location ()" link="GUPnPRootDevice.html#gupnp-root-device-get-relative-location"/>
-    <keyword type="function" name="gupnp_root_device_get_description_dir ()" link="GUPnPRootDevice.html#gupnp-root-device-get-description-dir"/>
-    <keyword type="function" name="gupnp_root_device_get_description_path ()" link="GUPnPRootDevice.html#gupnp-root-device-get-description-path"/>
-    <keyword type="function" name="gupnp_root_device_get_ssdp_resource_group ()" link="GUPnPRootDevice.html#gupnp-root-device-get-ssdp-resource-group"/>
-    <keyword type="property" name="The &quot;available&quot; property" link="GUPnPRootDevice.html#GUPnPRootDevice--available"/>
-    <keyword type="property" name="The &quot;description-dir&quot; property" link="GUPnPRootDevice.html#GUPnPRootDevice--description-dir"/>
-    <keyword type="property" name="The &quot;description-doc&quot; property" link="GUPnPRootDevice.html#GUPnPRootDevice--description-doc"/>
-    <keyword type="property" name="The &quot;description-path&quot; property" link="GUPnPRootDevice.html#GUPnPRootDevice--description-path"/>
-    <keyword type="struct" name="struct GUPnPService" link="GUPnPService.html#GUPnPService-struct"/>
+    <keyword type="property" name="The “available” property" link="GUPnPRootDevice.html#GUPnPRootDevice--available"/>
+    <keyword type="property" name="The “description-dir” property" link="GUPnPRootDevice.html#GUPnPRootDevice--description-dir"/>
+    <keyword type="property" name="The “description-doc” property" link="GUPnPRootDevice.html#GUPnPRootDevice--description-doc"/>
+    <keyword type="property" name="The “description-path” property" link="GUPnPRootDevice.html#GUPnPRootDevice--description-path"/>
+    <keyword type="function" name="gupnp_service_action_get_name ()" link="GUPnPService.html#gupnp-service-action-get-name"/>
+    <keyword type="function" name="gupnp_service_action_get_locales ()" link="GUPnPService.html#gupnp-service-action-get-locales"/>
+    <keyword type="function" name="gupnp_service_action_get ()" link="GUPnPService.html#gupnp-service-action-get"/>
+    <keyword type="function" name="gupnp_service_action_get_valist ()" link="GUPnPService.html#gupnp-service-action-get-valist"/>
+    <keyword type="function" name="gupnp_service_action_get_value ()" link="GUPnPService.html#gupnp-service-action-get-value"/>
+    <keyword type="function" name="gupnp_service_action_get_gvalue ()" link="GUPnPService.html#gupnp-service-action-get-gvalue" since="0.13.3"/>
+    <keyword type="function" name="gupnp_service_action_get_values ()" link="GUPnPService.html#gupnp-service-action-get-values" since="0.13.3"/>
+    <keyword type="function" name="gupnp_service_action_set ()" link="GUPnPService.html#gupnp-service-action-set"/>
+    <keyword type="function" name="gupnp_service_action_set_valist ()" link="GUPnPService.html#gupnp-service-action-set-valist"/>
+    <keyword type="function" name="gupnp_service_action_set_value ()" link="GUPnPService.html#gupnp-service-action-set-value"/>
+    <keyword type="function" name="gupnp_service_action_set_values ()" link="GUPnPService.html#gupnp-service-action-set-values" since="0.13.3"/>
+    <keyword type="function" name="gupnp_service_action_return ()" link="GUPnPService.html#gupnp-service-action-return"/>
+    <keyword type="function" name="gupnp_service_action_return_error ()" link="GUPnPService.html#gupnp-service-action-return-error"/>
+    <keyword type="function" name="gupnp_service_action_get_message ()" link="GUPnPService.html#gupnp-service-action-get-message" since="0.13.0"/>
+    <keyword type="function" name="gupnp_service_action_get_argument_count ()" link="GUPnPService.html#gupnp-service-action-get-argument-count" since="0.17.0"/>
+    <keyword type="function" name="gupnp_service_notify ()" link="GUPnPService.html#gupnp-service-notify"/>
+    <keyword type="function" name="gupnp_service_notify_valist ()" link="GUPnPService.html#gupnp-service-notify-valist"/>
+    <keyword type="function" name="gupnp_service_notify_value ()" link="GUPnPService.html#gupnp-service-notify-value"/>
+    <keyword type="function" name="gupnp_service_freeze_notify ()" link="GUPnPService.html#gupnp-service-freeze-notify"/>
+    <keyword type="function" name="gupnp_service_thaw_notify ()" link="GUPnPService.html#gupnp-service-thaw-notify"/>
+    <keyword type="function" name="gupnp_service_signals_autoconnect ()" link="GUPnPService.html#gupnp-service-signals-autoconnect"/>
+    <keyword type="struct" name="GUPnPService" link="GUPnPService.html#GUPnPService-struct"/>
     <keyword type="struct" name="GUPnPServiceAction" link="GUPnPService.html#GUPnPServiceAction-struct"/>
-    <keyword type="function" name="gupnp_service_action_get_name ()" link="GUPnPService.html#gupnp-service-action-get-name"/>
-    <keyword type="function" name="gupnp_service_action_get_locales ()" link="GUPnPService.html#gupnp-service-action-get-locales"/>
-    <keyword type="function" name="gupnp_service_action_get ()" link="GUPnPService.html#gupnp-service-action-get"/>
-    <keyword type="function" name="gupnp_service_action_get_valist ()" link="GUPnPService.html#gupnp-service-action-get-valist"/>
-    <keyword type="function" name="gupnp_service_action_get_value ()" link="GUPnPService.html#gupnp-service-action-get-value"/>
-    <keyword type="function" name="gupnp_service_action_get_gvalue ()" link="GUPnPService.html#gupnp-service-action-get-gvalue"/>
-    <keyword type="function" name="gupnp_service_action_get_values ()" link="GUPnPService.html#gupnp-service-action-get-values"/>
-    <keyword type="function" name="gupnp_service_action_set ()" link="GUPnPService.html#gupnp-service-action-set"/>
-    <keyword type="function" name="gupnp_service_action_set_valist ()" link="GUPnPService.html#gupnp-service-action-set-valist"/>
-    <keyword type="function" name="gupnp_service_action_set_value ()" link="GUPnPService.html#gupnp-service-action-set-value"/>
-    <keyword type="function" name="gupnp_service_action_set_values ()" link="GUPnPService.html#gupnp-service-action-set-values"/>
-    <keyword type="function" name="gupnp_service_action_return ()" link="GUPnPService.html#gupnp-service-action-return"/>
-    <keyword type="function" name="gupnp_service_action_return_error ()" link="GUPnPService.html#gupnp-service-action-return-error"/>
-    <keyword type="function" name="gupnp_service_action_get_message ()" link="GUPnPService.html#gupnp-service-action-get-message"/>
-    <keyword type="function" name="gupnp_service_action_get_argument_count ()" link="GUPnPService.html#gupnp-service-action-get-argument-count"/>
-    <keyword type="function" name="gupnp_service_notify ()" link="GUPnPService.html#gupnp-service-notify"/>
-    <keyword type="function" name="gupnp_service_notify_valist ()" link="GUPnPService.html#gupnp-service-notify-valist"/>
-    <keyword type="function" name="gupnp_service_notify_value ()" link="GUPnPService.html#gupnp-service-notify-value"/>
-    <keyword type="function" name="gupnp_service_freeze_notify ()" link="GUPnPService.html#gupnp-service-freeze-notify"/>
-    <keyword type="function" name="gupnp_service_thaw_notify ()" link="GUPnPService.html#gupnp-service-thaw-notify"/>
-    <keyword type="function" name="gupnp_service_signals_autoconnect ()" link="GUPnPService.html#gupnp-service-signals-autoconnect"/>
-    <keyword type="property" name="The &quot;root-device&quot; property" link="GUPnPService.html#GUPnPService--root-device"/>
-    <keyword type="signal" name="The &quot;action-invoked&quot; signal" link="GUPnPService.html#GUPnPService-action-invoked"/>
-    <keyword type="signal" name="The &quot;notify-failed&quot; signal" link="GUPnPService.html#GUPnPService-notify-failed"/>
-    <keyword type="signal" name="The &quot;query-variable&quot; signal" link="GUPnPService.html#GUPnPService-query-variable"/>
+    <keyword type="property" name="The “root-device” property" link="GUPnPService.html#GUPnPService--root-device"/>
+    <keyword type="signal" name="The “action-invoked” signal" link="GUPnPService.html#GUPnPService-action-invoked"/>
+    <keyword type="signal" name="The “notify-failed” signal" link="GUPnPService.html#GUPnPService-notify-failed"/>
+    <keyword type="signal" name="The “query-variable” signal" link="GUPnPService.html#GUPnPService-query-variable"/>
+    <keyword type="function" name="gupnp_context_new ()" link="GUPnPContext.html#gupnp-context-new"/>
+    <keyword type="function" name="gupnp_context_get_host_ip ()" link="GUPnPContext.html#gupnp-context-get-host-ip" deprecated=""/>
+    <keyword type="function" name="gupnp_context_get_port ()" link="GUPnPContext.html#gupnp-context-get-port" deprecated=""/>
+    <keyword type="function" name="gupnp_context_get_server ()" link="GUPnPContext.html#gupnp-context-get-server"/>
+    <keyword type="function" name="gupnp_context_get_session ()" link="GUPnPContext.html#gupnp-context-get-session" since="0.12.3"/>
+    <keyword type="function" name="gupnp_context_set_subscription_timeout ()" link="GUPnPContext.html#gupnp-context-set-subscription-timeout"/>
+    <keyword type="function" name="gupnp_context_get_subscription_timeout ()" link="GUPnPContext.html#gupnp-context-get-subscription-timeout"/>
+    <keyword type="function" name="gupnp_context_get_default_language ()" link="GUPnPContext.html#gupnp-context-get-default-language" since="0.17.0"/>
+    <keyword type="function" name="gupnp_context_set_default_language ()" link="GUPnPContext.html#gupnp-context-set-default-language" since="0.17.0"/>
+    <keyword type="function" name="gupnp_context_add_server_handler ()" link="GUPnPContext.html#gupnp-context-add-server-handler" since="0.20.11"/>
+    <keyword type="function" name="gupnp_context_host_path ()" link="GUPnPContext.html#gupnp-context-host-path"/>
+    <keyword type="function" name="gupnp_context_host_path_for_agent ()" link="GUPnPContext.html#gupnp-context-host-path-for-agent" since="0.13.3"/>
+    <keyword type="function" name="gupnp_context_unhost_path ()" link="GUPnPContext.html#gupnp-context-unhost-path"/>
+    <keyword type="function" name="gupnp_context_get_acl ()" link="GUPnPContext.html#gupnp-context-get-acl" since="0.20.11"/>
+    <keyword type="function" name="gupnp_context_set_acl ()" link="GUPnPContext.html#gupnp-context-set-acl" since="0.20.11"/>
     <keyword type="struct" name="struct GUPnPContext" link="GUPnPContext.html#GUPnPContext-struct"/>
-    <keyword type="function" name="gupnp_context_new ()" link="GUPnPContext.html#gupnp-context-new"/>
-    <keyword type="function" name="gupnp_context_get_host_ip ()" link="GUPnPContext.html#gupnp-context-get-host-ip" deprecated=""/>
-    <keyword type="function" name="gupnp_context_get_port ()" link="GUPnPContext.html#gupnp-context-get-port"/>
-    <keyword type="function" name="gupnp_context_get_server ()" link="GUPnPContext.html#gupnp-context-get-server"/>
-    <keyword type="function" name="gupnp_context_get_session ()" link="GUPnPContext.html#gupnp-context-get-session"/>
-    <keyword type="function" name="gupnp_context_set_subscription_timeout ()" link="GUPnPContext.html#gupnp-context-set-subscription-timeout"/>
-    <keyword type="function" name="gupnp_context_get_subscription_timeout ()" link="GUPnPContext.html#gupnp-context-get-subscription-timeout"/>
-    <keyword type="function" name="gupnp_context_get_default_language ()" link="GUPnPContext.html#gupnp-context-get-default-language"/>
-    <keyword type="function" name="gupnp_context_set_default_language ()" link="GUPnPContext.html#gupnp-context-set-default-language"/>
-    <keyword type="function" name="gupnp_context_host_path ()" link="GUPnPContext.html#gupnp-context-host-path"/>
-    <keyword type="function" name="gupnp_context_host_path_for_agent ()" link="GUPnPContext.html#gupnp-context-host-path-for-agent"/>
-    <keyword type="function" name="gupnp_context_unhost_path ()" link="GUPnPContext.html#gupnp-context-unhost-path"/>
-    <keyword type="property" name="The &quot;default-language&quot; property" link="GUPnPContext.html#GUPnPContext--default-language"/>
-    <keyword type="property" name="The &quot;port&quot; property" link="GUPnPContext.html#GUPnPContext--port"/>
-    <keyword type="property" name="The &quot;server&quot; property" link="GUPnPContext.html#GUPnPContext--server"/>
-    <keyword type="property" name="The &quot;session&quot; property" link="GUPnPContext.html#GUPnPContext--session"/>
-    <keyword type="property" name="The &quot;subscription-timeout&quot; property" link="GUPnPContext.html#GUPnPContext--subscription-timeout"/>
+    <keyword type="property" name="The “acl” property" link="GUPnPContext.html#GUPnPContext--acl"/>
+    <keyword type="property" name="The “default-language” property" link="GUPnPContext.html#GUPnPContext--default-language"/>
+    <keyword type="property" name="The “port” property" link="GUPnPContext.html#GUPnPContext--port"/>
+    <keyword type="property" name="The “server” property" link="GUPnPContext.html#GUPnPContext--server"/>
+    <keyword type="property" name="The “session” property" link="GUPnPContext.html#GUPnPContext--session"/>
+    <keyword type="property" name="The “subscription-timeout” property" link="GUPnPContext.html#GUPnPContext--subscription-timeout"/>
+    <keyword type="function" name="gupnp_context_manager_new ()" link="GUPnPContextManager.html#gupnp-context-manager-new" deprecated="0.17.2: Use gupnp_context_manager_create()." since="0.13.0"/>
+    <keyword type="function" name="gupnp_context_manager_create ()" link="GUPnPContextManager.html#gupnp-context-manager-create" since="0.17.2"/>
+    <keyword type="function" name="gupnp_context_manager_rescan_control_points ()" link="GUPnPContextManager.html#gupnp-context-manager-rescan-control-points" since="0.20.3"/>
+    <keyword type="function" name="gupnp_context_manager_manage_control_point ()" link="GUPnPContextManager.html#gupnp-context-manager-manage-control-point" since="0.13.0"/>
+    <keyword type="function" name="gupnp_context_manager_manage_root_device ()" link="GUPnPContextManager.html#gupnp-context-manager-manage-root-device" since="0.13.0"/>
+    <keyword type="function" name="gupnp_context_manager_get_port ()" link="GUPnPContextManager.html#gupnp-context-manager-get-port" since="0.19.1"/>
+    <keyword type="function" name="gupnp_context_manager_get_white_list ()" link="GUPnPContextManager.html#gupnp-context-manager-get-white-list"/>
     <keyword type="struct" name="struct GUPnPContextManager" link="GUPnPContextManager.html#GUPnPContextManager-struct"/>
-    <keyword type="function" name="gupnp_context_manager_new ()" link="GUPnPContextManager.html#gupnp-context-manager-new" deprecated="0.17.2: Use gupnp_context_manager_create()."/>
-    <keyword type="function" name="gupnp_context_manager_create ()" link="GUPnPContextManager.html#gupnp-context-manager-create"/>
-    <keyword type="function" name="gupnp_context_manager_rescan_control_points ()" link="GUPnPContextManager.html#gupnp-context-manager-rescan-control-points"/>
-    <keyword type="function" name="gupnp_context_manager_manage_control_point ()" link="GUPnPContextManager.html#gupnp-context-manager-manage-control-point"/>
-    <keyword type="function" name="gupnp_context_manager_manage_root_device ()" link="GUPnPContextManager.html#gupnp-context-manager-manage-root-device"/>
-    <keyword type="function" name="gupnp_context_manager_get_port ()" link="GUPnPContextManager.html#gupnp-context-manager-get-port"/>
-    <keyword type="function" name="gupnp_context_manager_get_white_list ()" link="GUPnPContextManager.html#gupnp-context-manager-get-white-list"/>
-    <keyword type="property" name="The &quot;main-context&quot; property" link="GUPnPContextManager.html#GUPnPContextManager--main-context"/>
-    <keyword type="property" name="The &quot;port&quot; property" link="GUPnPContextManager.html#GUPnPContextManager--port"/>
-    <keyword type="property" name="The &quot;white-list&quot; property" link="GUPnPContextManager.html#GUPnPContextManager--white-list"/>
-    <keyword type="signal" name="The &quot;context-available&quot; signal" link="GUPnPContextManager.html#GUPnPContextManager-context-available"/>
-    <keyword type="signal" name="The &quot;context-unavailable&quot; signal" link="GUPnPContextManager.html#GUPnPContextManager-context-unavailable"/>
+    <keyword type="property" name="The “main-context” property" link="GUPnPContextManager.html#GUPnPContextManager--main-context"/>
+    <keyword type="property" name="The “port” property" link="GUPnPContextManager.html#GUPnPContextManager--port"/>
+    <keyword type="property" name="The “white-list” property" link="GUPnPContextManager.html#GUPnPContextManager--white-list"/>
+    <keyword type="signal" name="The “context-available” signal" link="GUPnPContextManager.html#GUPnPContextManager-context-available"/>
+    <keyword type="signal" name="The “context-unavailable” signal" link="GUPnPContextManager.html#GUPnPContextManager-context-unavailable"/>
+    <keyword type="function" name="gupnp_acl_can_sync ()" link="GUPnPAcl.html#gupnp-acl-can-sync" since="0.20.11"/>
+    <keyword type="function" name="gupnp_acl_is_allowed ()" link="GUPnPAcl.html#gupnp-acl-is-allowed" since="0.20.11"/>
+    <keyword type="function" name="gupnp_acl_is_allowed_async ()" link="GUPnPAcl.html#gupnp-acl-is-allowed-async" since="0.20.11"/>
+    <keyword type="function" name="gupnp_acl_is_allowed_finish ()" link="GUPnPAcl.html#gupnp-acl-is-allowed-finish" since="0.20.11"/>
+    <keyword type="struct" name="GUPnPAcl" link="GUPnPAcl.html#GUPnPAcl-struct"/>
+    <keyword type="struct" name="struct GUPnPAclInterface" link="GUPnPAcl.html#GUPnPAclInterface" since="0.20.11"/>
+    <keyword type="function" name="gupnp_white_list_add_entry ()" link="GUPnPWhiteList.html#gupnp-white-list-add-entry" since="0.20.5"/>
+    <keyword type="function" name="gupnp_white_list_add_entryv ()" link="GUPnPWhiteList.html#gupnp-white-list-add-entryv" since="0.20.8"/>
+    <keyword type="function" name="gupnp_white_list_check_context ()" link="GUPnPWhiteList.html#gupnp-white-list-check-context" since="0.20.5"/>
+    <keyword type="function" name="gupnp_white_list_clear ()" link="GUPnPWhiteList.html#gupnp-white-list-clear" since="0.20.5"/>
+    <keyword type="function" name="gupnp_white_list_set_enabled ()" link="GUPnPWhiteList.html#gupnp-white-list-set-enabled" since="0.20.5"/>
+    <keyword type="function" name="gupnp_white_list_get_entries ()" link="GUPnPWhiteList.html#gupnp-white-list-get-entries" since="0.20.5"/>
+    <keyword type="function" name="gupnp_white_list_is_empty ()" link="GUPnPWhiteList.html#gupnp-white-list-is-empty" since="0.20.5"/>
+    <keyword type="function" name="gupnp_white_list_get_enabled ()" link="GUPnPWhiteList.html#gupnp-white-list-get-enabled" since="0.20.5"/>
+    <keyword type="function" name="gupnp_white_list_new ()" link="GUPnPWhiteList.html#gupnp-white-list-new" since="0.20.5"/>
+    <keyword type="function" name="gupnp_white_list_remove_entry ()" link="GUPnPWhiteList.html#gupnp-white-list-remove-entry" since="0.20.5"/>
     <keyword type="struct" name="struct GUPnPWhiteList" link="GUPnPWhiteList.html#GUPnPWhiteList-struct"/>
-    <keyword type="function" name="gupnp_white_list_add_entry ()" link="GUPnPWhiteList.html#gupnp-white-list-add-entry"/>
-    <keyword type="function" name="gupnp_white_list_check_context ()" link="GUPnPWhiteList.html#gupnp-white-list-check-context"/>
-    <keyword type="function" name="gupnp_white_list_clear ()" link="GUPnPWhiteList.html#gupnp-white-list-clear"/>
-    <keyword type="function" name="gupnp_white_list_set_enabled ()" link="GUPnPWhiteList.html#gupnp-white-list-set-enabled"/>
-    <keyword type="function" name="gupnp_white_list_get_entries ()" link="GUPnPWhiteList.html#gupnp-white-list-get-entries"/>
-    <keyword type="function" name="gupnp_white_list_is_empty ()" link="GUPnPWhiteList.html#gupnp-white-list-is-empty"/>
-    <keyword type="function" name="gupnp_white_list_get_enabled ()" link="GUPnPWhiteList.html#gupnp-white-list-get-enabled"/>
-    <keyword type="function" name="gupnp_white_list_new ()" link="GUPnPWhiteList.html#gupnp-white-list-new"/>
-    <keyword type="function" name="gupnp_white_list_remove_entry ()" link="GUPnPWhiteList.html#gupnp-white-list-remove-entry"/>
+    <keyword type="property" name="The “enabled” property" link="GUPnPWhiteList.html#GUPnPWhiteList--enabled"/>
+    <keyword type="property" name="The “entries” property" link="GUPnPWhiteList.html#GUPnPWhiteList--entries"/>
+    <keyword type="function" name="gupnp_resource_factory_new ()" link="GUPnPResourceFactory.html#gupnp-resource-factory-new"/>
+    <keyword type="function" name="gupnp_resource_factory_get_default ()" link="GUPnPResourceFactory.html#gupnp-resource-factory-get-default"/>
+    <keyword type="function" name="gupnp_resource_factory_register_resource_type ()" link="GUPnPResourceFactory.html#gupnp-resource-factory-register-resource-type"/>
+    <keyword type="function" name="gupnp_resource_factory_unregister_resource_type ()" link="GUPnPResourceFactory.html#gupnp-resource-factory-unregister-resource-type"/>
+    <keyword type="function" name="gupnp_resource_factory_register_resource_proxy_type ()" link="GUPnPResourceFactory.html#gupnp-resource-factory-register-resource-proxy-type"/>
+    <keyword type="function" name="gupnp_resource_factory_unregister_resource_proxy_type ()" link="GUPnPResourceFactory.html#gupnp-resource-factory-unregister-resource-proxy-type"/>
     <keyword type="struct" name="struct GUPnPResourceFactory" link="GUPnPResourceFactory.html#GUPnPResourceFactory-struct"/>
-    <keyword type="function" name="gupnp_resource_factory_new ()" link="GUPnPResourceFactory.html#gupnp-resource-factory-new"/>
-    <keyword type="function" name="gupnp_resource_factory_get_default ()" link="GUPnPResourceFactory.html#gupnp-resource-factory-get-default"/>
-    <keyword type="function" name="gupnp_resource_factory_register_resource_type ()" link="GUPnPResourceFactory.html#gupnp-resource-factory-register-resource-type"/>
-    <keyword type="function" name="gupnp_resource_factory_unregister_resource_type ()" link="GUPnPResourceFactory.html#gupnp-resource-factory-unregister-resource-type"/>
-    <keyword type="function" name="gupnp_resource_factory_register_resource_proxy_type ()" link="GUPnPResourceFactory.html#gupnp-resource-factory-register-resource-proxy-type"/>
-    <keyword type="function" name="gupnp_resource_factory_unregister_resource_proxy_type ()" link="GUPnPResourceFactory.html#gupnp-resource-factory-unregister-resource-proxy-type"/>
+    <keyword type="function" name="gupnp_xml_doc_new ()" link="GUPnPXMLDoc.html#gupnp-xml-doc-new" since="0.13.0"/>
+    <keyword type="function" name="gupnp_xml_doc_new_from_path ()" link="GUPnPXMLDoc.html#gupnp-xml-doc-new-from-path" since="0.13.0"/>
     <keyword type="struct" name="struct GUPnPXMLDoc" link="GUPnPXMLDoc.html#GUPnPXMLDoc-struct"/>
-    <keyword type="function" name="gupnp_xml_doc_new ()" link="GUPnPXMLDoc.html#gupnp-xml-doc-new"/>
-    <keyword type="function" name="gupnp_xml_doc_new_from_path ()" link="GUPnPXMLDoc.html#gupnp-xml-doc-new-from-path"/>
     <keyword type="macro" name="GUPNP_SERVER_ERROR" link="gupnp-Error-codes.html#GUPNP-SERVER-ERROR:CAPS"/>
-    <keyword type="enum" name="enum GUPnPServerError" link="gupnp-Error-codes.html#GUPnPServerError"/>
     <keyword type="macro" name="GUPNP_EVENTING_ERROR" link="gupnp-Error-codes.html#GUPNP-EVENTING-ERROR:CAPS"/>
-    <keyword type="enum" name="enum GUPnPEventingError" link="gupnp-Error-codes.html#GUPnPEventingError"/>
     <keyword type="macro" name="GUPNP_CONTROL_ERROR" link="gupnp-Error-codes.html#GUPNP-CONTROL-ERROR:CAPS"/>
-    <keyword type="enum" name="enum GUPnPControlError" link="gupnp-Error-codes.html#GUPnPControlError"/>
     <keyword type="macro" name="GUPNP_XML_ERROR" link="gupnp-Error-codes.html#GUPNP-XML-ERROR:CAPS"/>
+    <keyword type="enum" name="enum GUPnPServerError" link="gupnp-Error-codes.html#GUPnPServerError"/>
+    <keyword type="enum" name="enum GUPnPEventingError" link="gupnp-Error-codes.html#GUPnPEventingError"/>
+    <keyword type="enum" name="enum GUPnPControlError" link="gupnp-Error-codes.html#GUPnPControlError"/>
     <keyword type="enum" name="enum GUPnPXMLError" link="gupnp-Error-codes.html#GUPnPXMLError"/>
     <keyword type="macro" name="GUPNP_TYPE_BIN_BASE64" link="gupnp-Special-UPnP-types.html#GUPNP-TYPE-BIN-BASE64:CAPS"/>
     <keyword type="macro" name="GUPNP_TYPE_BIN_HEX" link="gupnp-Special-UPnP-types.html#GUPNP-TYPE-BIN-HEX:CAPS"/>
     <keyword type="macro" name="GUPNP_TYPE_TIME_TZ" link="gupnp-Special-UPnP-types.html#GUPNP-TYPE-TIME-TZ:CAPS"/>
     <keyword type="macro" name="GUPNP_TYPE_URI" link="gupnp-Special-UPnP-types.html#GUPNP-TYPE-URI:CAPS"/>
     <keyword type="macro" name="GUPNP_TYPE_UUID" link="gupnp-Special-UPnP-types.html#GUPNP-TYPE-UUID:CAPS"/>
-    <keyword type="constant" name="GUPNP_SERVICE_ACTION_ARG_DIRECTION_IN" link="gupnp-gupnp-service-introspection.html#GUPNP-SERVICE-ACTION-ARG-DIRECTION-IN:CAPS"/>
-    <keyword type="constant" name="GUPNP_SERVICE_ACTION_ARG_DIRECTION_OUT" link="gupnp-gupnp-service-introspection.html#GUPNP-SERVICE-ACTION-ARG-DIRECTION-OUT:CAPS"/>
-    <keyword type="constant" name="GUPNP_SERVER_ERROR_INTERNAL_SERVER_ERROR" link="gupnp-Error-codes.html#GUPNP-SERVER-ERROR-INTERNAL-SERVER-ERROR:CAPS"/>
-    <keyword type="constant" name="GUPNP_SERVER_ERROR_NOT_FOUND" link="gupnp-Error-codes.html#GUPNP-SERVER-ERROR-NOT-FOUND:CAPS"/>
-    <keyword type="constant" name="GUPNP_SERVER_ERROR_NOT_IMPLEMENTED" link="gupnp-Error-codes.html#GUPNP-SERVER-ERROR-NOT-IMPLEMENTED:CAPS"/>
-    <keyword type="constant" name="GUPNP_SERVER_ERROR_INVALID_RESPONSE" link="gupnp-Error-codes.html#GUPNP-SERVER-ERROR-INVALID-RESPONSE:CAPS"/>
-    <keyword type="constant" name="GUPNP_SERVER_ERROR_INVALID_URL" link="gupnp-Error-codes.html#GUPNP-SERVER-ERROR-INVALID-URL:CAPS"/>
-    <keyword type="constant" name="GUPNP_SERVER_ERROR_OTHER" link="gupnp-Error-codes.html#GUPNP-SERVER-ERROR-OTHER:CAPS"/>
-    <keyword type="constant" name="GUPNP_EVENTING_ERROR_SUBSCRIPTION_FAILED" link="gupnp-Error-codes.html#GUPNP-EVENTING-ERROR-SUBSCRIPTION-FAILED:CAPS"/>
-    <keyword type="constant" name="GUPNP_EVENTING_ERROR_SUBSCRIPTION_LOST" link="gupnp-Error-codes.html#GUPNP-EVENTING-ERROR-SUBSCRIPTION-LOST:CAPS"/>
-    <keyword type="constant" name="GUPNP_EVENTING_ERROR_NOTIFY_FAILED" link="gupnp-Error-codes.html#GUPNP-EVENTING-ERROR-NOTIFY-FAILED:CAPS"/>
-    <keyword type="constant" name="GUPNP_CONTROL_ERROR_INVALID_ACTION" link="gupnp-Error-codes.html#GUPNP-CONTROL-ERROR-INVALID-ACTION:CAPS"/>
-    <keyword type="constant" name="GUPNP_CONTROL_ERROR_INVALID_ARGS" link="gupnp-Error-codes.html#GUPNP-CONTROL-ERROR-INVALID-ARGS:CAPS"/>
-    <keyword type="constant" name="GUPNP_CONTROL_ERROR_OUT_OF_SYNC" link="gupnp-Error-codes.html#GUPNP-CONTROL-ERROR-OUT-OF-SYNC:CAPS"/>
-    <keyword type="constant" name="GUPNP_CONTROL_ERROR_ACTION_FAILED" link="gupnp-Error-codes.html#GUPNP-CONTROL-ERROR-ACTION-FAILED:CAPS"/>
-    <keyword type="constant" name="GUPNP_XML_ERROR_PARSE" link="gupnp-Error-codes.html#GUPNP-XML-ERROR-PARSE:CAPS"/>
-    <keyword type="constant" name="GUPNP_XML_ERROR_NO_NODE" link="gupnp-Error-codes.html#GUPNP-XML-ERROR-NO-NODE:CAPS"/>
-    <keyword type="constant" name="GUPNP_XML_ERROR_EMPTY_NODE" link="gupnp-Error-codes.html#GUPNP-XML-ERROR-EMPTY-NODE:CAPS"/>
-    <keyword type="constant" name="GUPNP_XML_ERROR_INVALID_ATTRIBUTE" link="gupnp-Error-codes.html#GUPNP-XML-ERROR-INVALID-ATTRIBUTE:CAPS"/>
-    <keyword type="constant" name="GUPNP_XML_ERROR_OTHER" link="gupnp-Error-codes.html#GUPNP-XML-ERROR-OTHER:CAPS"/>
   </functions>
 </book>
index fb60b55..28c2e27 100644 (file)
Binary files a/doc/html/home.png and b/doc/html/home.png differ
index 19fb5bc..dded744 100644 (file)
@@ -2,11 +2,11 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GUPnP Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>GUPnP Reference Manual: GUPnP Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GUPnP Reference Manual">
 <link rel="next" href="tutorial.html" title="Part I. Tutorial">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <div class="titlepage">
 <div>
 <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GUPnP Reference Manual</p></th></tr></table></div>
-<div><p class="releaseinfo">Version 0.20.5
+<div><p class="releaseinfo">Version 0.20.12
 </p></div>
 <div><p class="copyright">Copyright © 2007, 2008, 2009 OpenedHand Ltd, Nokia Corporation</p></div>
 <div><div class="legalnotice">
-<a name="idp4402048"></a><p>
+<a name="id-1.1.4"></a><p>
         Permission is granted to copy, distribute and/or modify this
         document under the terms of the <em class="citetitle">GNU Free
         Documentation License</em>, Version 1.1 or any later
@@ -41,7 +41,7 @@
 </div>
 <hr>
 </div>
-<div class="toc"><dl>
+<div class="toc"><dl class="toc">
 <dt><span class="part"><a href="tutorial.html">I. Tutorial</a></span></dt>
 <dd><dl>
 <dt><span class="chapter"><a href="overview.html">Overview</a></span></dt>
 <span class="refentrytitle"><a href="GUPnPService.html">GUPnPService</a></span><span class="refpurpose"> — Class for service implementations.</span>
 </dt>
 </dl></dd>
-<dt><span class="chapter"><a href="api-utility.html">Utility Functions</a></span></dt>
+<dt><span class="chapter"><a href="api-context.html">Network context handling</a></span></dt>
 <dd><dl>
 <dt>
 <span class="refentrytitle"><a href="GUPnPContext.html">GUPnPContext</a></span><span class="refpurpose"> — Context object wrapping shared networking bits.</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="GUPnPContextManager.html">GUPnPContextManager</a></span><span class="refpurpose"> — Manages <a class="link" href="GUPnPContext.html" title="GUPnPContext"><span class="type">GUPnPContext</span></a> objects.</span>
+<span class="refentrytitle"><a href="GUPnPContextManager.html">GUPnPContextManager</a></span><span class="refpurpose"> — Manages GUPnPContext objects.</span>
+</dt>
+</dl></dd>
+<dt><span class="chapter"><a href="api-utility.html">Utility Functions</a></span></dt>
+<dd><dl>
+<dt>
+<span class="refentrytitle"><a href="GUPnPAcl.html">GUPnPAcl</a></span><span class="refpurpose"> — Object providing a simple access control list for
+GUPnP.</span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="GUPnPWhiteList.html">GUPnPWhiteList</a></span><span class="refpurpose"> — Class for network filtering.</span>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 0788f18..91fed0b 100644 (file)
@@ -1,10 +1,10 @@
 <ANCHOR id="GUPnPDeviceInfo" href="gupnp/GUPnPDeviceInfo.html">
-<ANCHOR id="GUPnPDeviceInfo.synopsis" href="gupnp/GUPnPDeviceInfo.html#GUPnPDeviceInfo.synopsis">
-<ANCHOR id="GUPnPDeviceInfo.object-hierarchy" href="gupnp/GUPnPDeviceInfo.html#GUPnPDeviceInfo.object-hierarchy">
+<ANCHOR id="GUPnPDeviceInfo.functions" href="gupnp/GUPnPDeviceInfo.html#GUPnPDeviceInfo.functions">
 <ANCHOR id="GUPnPDeviceInfo.properties" href="gupnp/GUPnPDeviceInfo.html#GUPnPDeviceInfo.properties">
+<ANCHOR id="GUPnPDeviceInfo.other" href="gupnp/GUPnPDeviceInfo.html#GUPnPDeviceInfo.other">
+<ANCHOR id="GUPnPDeviceInfo.object-hierarchy" href="gupnp/GUPnPDeviceInfo.html#GUPnPDeviceInfo.object-hierarchy">
 <ANCHOR id="GUPnPDeviceInfo.description" href="gupnp/GUPnPDeviceInfo.html#GUPnPDeviceInfo.description">
-<ANCHOR id="GUPnPDeviceInfo.details" href="gupnp/GUPnPDeviceInfo.html#GUPnPDeviceInfo.details">
-<ANCHOR id="GUPnPDeviceInfo-struct" href="gupnp/GUPnPDeviceInfo.html#GUPnPDeviceInfo-struct">
+<ANCHOR id="GUPnPDeviceInfo.functions_details" href="gupnp/GUPnPDeviceInfo.html#GUPnPDeviceInfo.functions_details">
 <ANCHOR id="gupnp-device-info-get-resource-factory" href="gupnp/GUPnPDeviceInfo.html#gupnp-device-info-get-resource-factory">
 <ANCHOR id="gupnp-device-info-get-context" href="gupnp/GUPnPDeviceInfo.html#gupnp-device-info-get-context">
 <ANCHOR id="gupnp-device-info-get-location" href="gupnp/GUPnPDeviceInfo.html#gupnp-device-info-get-location">
@@ -31,6 +31,8 @@
 <ANCHOR id="gupnp-device-info-list-services" href="gupnp/GUPnPDeviceInfo.html#gupnp-device-info-list-services">
 <ANCHOR id="gupnp-device-info-list-service-types" href="gupnp/GUPnPDeviceInfo.html#gupnp-device-info-list-service-types">
 <ANCHOR id="gupnp-device-info-get-service" href="gupnp/GUPnPDeviceInfo.html#gupnp-device-info-get-service">
+<ANCHOR id="GUPnPDeviceInfo.other_details" href="gupnp/GUPnPDeviceInfo.html#GUPnPDeviceInfo.other_details">
+<ANCHOR id="GUPnPDeviceInfo-struct" href="gupnp/GUPnPDeviceInfo.html#GUPnPDeviceInfo-struct">
 <ANCHOR id="GUPnPDeviceInfo.property-details" href="gupnp/GUPnPDeviceInfo.html#GUPnPDeviceInfo.property-details">
 <ANCHOR id="GUPnPDeviceInfo--context" href="gupnp/GUPnPDeviceInfo.html#GUPnPDeviceInfo--context">
 <ANCHOR id="GUPnPDeviceInfo--device-type" href="gupnp/GUPnPDeviceInfo.html#GUPnPDeviceInfo--device-type">
 <ANCHOR id="GUPnPDeviceInfo--udn" href="gupnp/GUPnPDeviceInfo.html#GUPnPDeviceInfo--udn">
 <ANCHOR id="GUPnPDeviceInfo--url-base" href="gupnp/GUPnPDeviceInfo.html#GUPnPDeviceInfo--url-base">
 <ANCHOR id="GUPnPServiceInfo" href="gupnp/GUPnPServiceInfo.html">
-<ANCHOR id="GUPnPServiceInfo.synopsis" href="gupnp/GUPnPServiceInfo.html#GUPnPServiceInfo.synopsis">
-<ANCHOR id="GUPnPServiceInfo.object-hierarchy" href="gupnp/GUPnPServiceInfo.html#GUPnPServiceInfo.object-hierarchy">
+<ANCHOR id="GUPnPServiceInfo.functions" href="gupnp/GUPnPServiceInfo.html#GUPnPServiceInfo.functions">
 <ANCHOR id="GUPnPServiceInfo.properties" href="gupnp/GUPnPServiceInfo.html#GUPnPServiceInfo.properties">
+<ANCHOR id="GUPnPServiceInfo.other" href="gupnp/GUPnPServiceInfo.html#GUPnPServiceInfo.other">
+<ANCHOR id="GUPnPServiceInfo.object-hierarchy" href="gupnp/GUPnPServiceInfo.html#GUPnPServiceInfo.object-hierarchy">
 <ANCHOR id="GUPnPServiceInfo.description" href="gupnp/GUPnPServiceInfo.html#GUPnPServiceInfo.description">
-<ANCHOR id="GUPnPServiceInfo.details" href="gupnp/GUPnPServiceInfo.html#GUPnPServiceInfo.details">
-<ANCHOR id="GUPnPServiceInfo-struct" href="gupnp/GUPnPServiceInfo.html#GUPnPServiceInfo-struct">
+<ANCHOR id="GUPnPServiceInfo.functions_details" href="gupnp/GUPnPServiceInfo.html#GUPnPServiceInfo.functions_details">
 <ANCHOR id="GUPnPServiceIntrospectionCallback" href="gupnp/GUPnPServiceInfo.html#GUPnPServiceIntrospectionCallback">
 <ANCHOR id="gupnp-service-info-get-context" href="gupnp/GUPnPServiceInfo.html#gupnp-service-info-get-context">
 <ANCHOR id="gupnp-service-info-get-location" href="gupnp/GUPnPServiceInfo.html#gupnp-service-info-get-location">
@@ -59,6 +61,9 @@
 <ANCHOR id="gupnp-service-info-get-event-subscription-url" href="gupnp/GUPnPServiceInfo.html#gupnp-service-info-get-event-subscription-url">
 <ANCHOR id="gupnp-service-info-get-introspection" href="gupnp/GUPnPServiceInfo.html#gupnp-service-info-get-introspection">
 <ANCHOR id="gupnp-service-info-get-introspection-async" href="gupnp/GUPnPServiceInfo.html#gupnp-service-info-get-introspection-async">
+<ANCHOR id="gupnp-service-info-get-introspection-async-full" href="gupnp/GUPnPServiceInfo.html#gupnp-service-info-get-introspection-async-full">
+<ANCHOR id="GUPnPServiceInfo.other_details" href="gupnp/GUPnPServiceInfo.html#GUPnPServiceInfo.other_details">
+<ANCHOR id="GUPnPServiceInfo-struct" href="gupnp/GUPnPServiceInfo.html#GUPnPServiceInfo-struct">
 <ANCHOR id="GUPnPServiceInfo.property-details" href="gupnp/GUPnPServiceInfo.html#GUPnPServiceInfo.property-details">
 <ANCHOR id="GUPnPServiceInfo--context" href="gupnp/GUPnPServiceInfo.html#GUPnPServiceInfo--context">
 <ANCHOR id="GUPnPServiceInfo--document" href="gupnp/GUPnPServiceInfo.html#GUPnPServiceInfo--document">
 <ANCHOR id="GUPnPServiceInfo--udn" href="gupnp/GUPnPServiceInfo.html#GUPnPServiceInfo--udn">
 <ANCHOR id="GUPnPServiceInfo--url-base" href="gupnp/GUPnPServiceInfo.html#GUPnPServiceInfo--url-base">
 <ANCHOR id="gupnp-gupnp-service-introspection" href="gupnp/gupnp-gupnp-service-introspection.html">
-<ANCHOR id="gupnp-gupnp-service-introspection.synopsis" href="gupnp/gupnp-gupnp-service-introspection.html#gupnp-gupnp-service-introspection.synopsis">
+<ANCHOR id="gupnp-gupnp-service-introspection.functions" href="gupnp/gupnp-gupnp-service-introspection.html#gupnp-gupnp-service-introspection.functions">
+<ANCHOR id="gupnp-gupnp-service-introspection.properties" href="gupnp/gupnp-gupnp-service-introspection.html#gupnp-gupnp-service-introspection.properties">
 <ANCHOR id="GUPnPServiceIntrospection" href="gupnp/gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection">
+<ANCHOR id="gupnp-gupnp-service-introspection.other" href="gupnp/gupnp-gupnp-service-introspection.html#gupnp-gupnp-service-introspection.other">
 <ANCHOR id="gupnp-gupnp-service-introspection.object-hierarchy" href="gupnp/gupnp-gupnp-service-introspection.html#gupnp-gupnp-service-introspection.object-hierarchy">
-<ANCHOR id="gupnp-gupnp-service-introspection.properties" href="gupnp/gupnp-gupnp-service-introspection.html#gupnp-gupnp-service-introspection.properties">
 <ANCHOR id="gupnp-gupnp-service-introspection.description" href="gupnp/gupnp-gupnp-service-introspection.html#gupnp-gupnp-service-introspection.description">
-<ANCHOR id="gupnp-gupnp-service-introspection.details" href="gupnp/gupnp-gupnp-service-introspection.html#gupnp-gupnp-service-introspection.details">
-<ANCHOR id="GUPnPServiceActionArgDirection" href="gupnp/gupnp-gupnp-service-introspection.html#GUPnPServiceActionArgDirection">
-<ANCHOR id="GUPNP-SERVICE-ACTION-ARG-DIRECTION-IN:CAPS" href="gupnp/gupnp-gupnp-service-introspection.html#GUPNP-SERVICE-ACTION-ARG-DIRECTION-IN:CAPS">
-<ANCHOR id="GUPNP-SERVICE-ACTION-ARG-DIRECTION-OUT:CAPS" href="gupnp/gupnp-gupnp-service-introspection.html#GUPNP-SERVICE-ACTION-ARG-DIRECTION-OUT:CAPS">
-<ANCHOR id="GUPnPServiceActionArgInfo" href="gupnp/gupnp-gupnp-service-introspection.html#GUPnPServiceActionArgInfo">
-<ANCHOR id="GUPnPServiceActionInfo" href="gupnp/gupnp-gupnp-service-introspection.html#GUPnPServiceActionInfo">
-<ANCHOR id="GUPnPServiceStateVariableInfo" href="gupnp/gupnp-gupnp-service-introspection.html#GUPnPServiceStateVariableInfo">
-<ANCHOR id="GUPnPServiceIntrospection-struct" href="gupnp/gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection-struct">
+<ANCHOR id="gupnp-gupnp-service-introspection.functions_details" href="gupnp/gupnp-gupnp-service-introspection.html#gupnp-gupnp-service-introspection.functions_details">
 <ANCHOR id="gupnp-service-introspection-list-action-names" href="gupnp/gupnp-gupnp-service-introspection.html#gupnp-service-introspection-list-action-names">
 <ANCHOR id="gupnp-service-introspection-list-actions" href="gupnp/gupnp-gupnp-service-introspection.html#gupnp-service-introspection-list-actions">
 <ANCHOR id="gupnp-service-introspection-get-action" href="gupnp/gupnp-gupnp-service-introspection.html#gupnp-service-introspection-get-action">
 <ANCHOR id="gupnp-service-introspection-list-state-variable-names" href="gupnp/gupnp-gupnp-service-introspection.html#gupnp-service-introspection-list-state-variable-names">
 <ANCHOR id="gupnp-service-introspection-list-state-variables" href="gupnp/gupnp-gupnp-service-introspection.html#gupnp-service-introspection-list-state-variables">
 <ANCHOR id="gupnp-service-introspection-get-state-variable" href="gupnp/gupnp-gupnp-service-introspection.html#gupnp-service-introspection-get-state-variable">
+<ANCHOR id="gupnp-gupnp-service-introspection.other_details" href="gupnp/gupnp-gupnp-service-introspection.html#gupnp-gupnp-service-introspection.other_details">
+<ANCHOR id="GUPnPServiceActionArgDirection" href="gupnp/gupnp-gupnp-service-introspection.html#GUPnPServiceActionArgDirection">
+<ANCHOR id="GUPnPServiceActionArgInfo" href="gupnp/gupnp-gupnp-service-introspection.html#GUPnPServiceActionArgInfo">
+<ANCHOR id="GUPnPServiceActionInfo" href="gupnp/gupnp-gupnp-service-introspection.html#GUPnPServiceActionInfo">
+<ANCHOR id="GUPnPServiceStateVariableInfo" href="gupnp/gupnp-gupnp-service-introspection.html#GUPnPServiceStateVariableInfo">
+<ANCHOR id="GUPnPServiceIntrospection-struct" href="gupnp/gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection-struct">
 <ANCHOR id="gupnp-gupnp-service-introspection.property-details" href="gupnp/gupnp-gupnp-service-introspection.html#gupnp-gupnp-service-introspection.property-details">
 <ANCHOR id="GUPnPServiceIntrospection--scpd" href="gupnp/gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection--scpd">
 <ANCHOR id="GUPnPControlPoint" href="gupnp/GUPnPControlPoint.html">
-<ANCHOR id="GUPnPControlPoint.synopsis" href="gupnp/GUPnPControlPoint.html#GUPnPControlPoint.synopsis">
-<ANCHOR id="GUPnPControlPoint.object-hierarchy" href="gupnp/GUPnPControlPoint.html#GUPnPControlPoint.object-hierarchy">
+<ANCHOR id="GUPnPControlPoint.functions" href="gupnp/GUPnPControlPoint.html#GUPnPControlPoint.functions">
 <ANCHOR id="GUPnPControlPoint.properties" href="gupnp/GUPnPControlPoint.html#GUPnPControlPoint.properties">
 <ANCHOR id="GUPnPControlPoint.signals" href="gupnp/GUPnPControlPoint.html#GUPnPControlPoint.signals">
+<ANCHOR id="GUPnPControlPoint.other" href="gupnp/GUPnPControlPoint.html#GUPnPControlPoint.other">
+<ANCHOR id="GUPnPControlPoint.object-hierarchy" href="gupnp/GUPnPControlPoint.html#GUPnPControlPoint.object-hierarchy">
 <ANCHOR id="GUPnPControlPoint.description" href="gupnp/GUPnPControlPoint.html#GUPnPControlPoint.description">
-<ANCHOR id="GUPnPControlPoint.details" href="gupnp/GUPnPControlPoint.html#GUPnPControlPoint.details">
-<ANCHOR id="GUPnPControlPoint-struct" href="gupnp/GUPnPControlPoint.html#GUPnPControlPoint-struct">
+<ANCHOR id="GUPnPControlPoint.functions_details" href="gupnp/GUPnPControlPoint.html#GUPnPControlPoint.functions_details">
 <ANCHOR id="gupnp-control-point-new" href="gupnp/GUPnPControlPoint.html#gupnp-control-point-new">
 <ANCHOR id="gupnp-control-point-new-full" href="gupnp/GUPnPControlPoint.html#gupnp-control-point-new-full">
 <ANCHOR id="gupnp-control-point-get-resource-factory" href="gupnp/GUPnPControlPoint.html#gupnp-control-point-get-resource-factory">
 <ANCHOR id="gupnp-control-point-get-context" href="gupnp/GUPnPControlPoint.html#gupnp-control-point-get-context">
 <ANCHOR id="gupnp-control-point-list-device-proxies" href="gupnp/GUPnPControlPoint.html#gupnp-control-point-list-device-proxies">
 <ANCHOR id="gupnp-control-point-list-service-proxies" href="gupnp/GUPnPControlPoint.html#gupnp-control-point-list-service-proxies">
+<ANCHOR id="GUPnPControlPoint.other_details" href="gupnp/GUPnPControlPoint.html#GUPnPControlPoint.other_details">
+<ANCHOR id="GUPnPControlPoint-struct" href="gupnp/GUPnPControlPoint.html#GUPnPControlPoint-struct">
 <ANCHOR id="GUPnPControlPoint.property-details" href="gupnp/GUPnPControlPoint.html#GUPnPControlPoint.property-details">
 <ANCHOR id="GUPnPControlPoint--resource-factory" href="gupnp/GUPnPControlPoint.html#GUPnPControlPoint--resource-factory">
 <ANCHOR id="GUPnPControlPoint.signal-details" href="gupnp/GUPnPControlPoint.html#GUPnPControlPoint.signal-details">
 <ANCHOR id="GUPnPControlPoint-service-proxy-available" href="gupnp/GUPnPControlPoint.html#GUPnPControlPoint-service-proxy-available">
 <ANCHOR id="GUPnPControlPoint-service-proxy-unavailable" href="gupnp/GUPnPControlPoint.html#GUPnPControlPoint-service-proxy-unavailable">
 <ANCHOR id="GUPnPDeviceProxy" href="gupnp/GUPnPDeviceProxy.html">
-<ANCHOR id="GUPnPDeviceProxy.synopsis" href="gupnp/GUPnPDeviceProxy.html#GUPnPDeviceProxy.synopsis">
+<ANCHOR id="GUPnPDeviceProxy.other" href="gupnp/GUPnPDeviceProxy.html#GUPnPDeviceProxy.other">
 <ANCHOR id="GUPnPDeviceProxy.object-hierarchy" href="gupnp/GUPnPDeviceProxy.html#GUPnPDeviceProxy.object-hierarchy">
 <ANCHOR id="GUPnPDeviceProxy.description" href="gupnp/GUPnPDeviceProxy.html#GUPnPDeviceProxy.description">
-<ANCHOR id="GUPnPDeviceProxy.details" href="gupnp/GUPnPDeviceProxy.html#GUPnPDeviceProxy.details">
+<ANCHOR id="GUPnPDeviceProxy.functions_details" href="gupnp/GUPnPDeviceProxy.html#GUPnPDeviceProxy.functions_details">
+<ANCHOR id="GUPnPDeviceProxy.other_details" href="gupnp/GUPnPDeviceProxy.html#GUPnPDeviceProxy.other_details">
 <ANCHOR id="GUPnPDeviceProxy-struct" href="gupnp/GUPnPDeviceProxy.html#GUPnPDeviceProxy-struct">
 <ANCHOR id="GUPnPServiceProxy" href="gupnp/GUPnPServiceProxy.html">
-<ANCHOR id="GUPnPServiceProxy.synopsis" href="gupnp/GUPnPServiceProxy.html#GUPnPServiceProxy.synopsis">
-<ANCHOR id="GUPnPServiceProxy.object-hierarchy" href="gupnp/GUPnPServiceProxy.html#GUPnPServiceProxy.object-hierarchy">
+<ANCHOR id="GUPnPServiceProxy.functions" href="gupnp/GUPnPServiceProxy.html#GUPnPServiceProxy.functions">
 <ANCHOR id="GUPnPServiceProxy.properties" href="gupnp/GUPnPServiceProxy.html#GUPnPServiceProxy.properties">
 <ANCHOR id="GUPnPServiceProxy.signals" href="gupnp/GUPnPServiceProxy.html#GUPnPServiceProxy.signals">
+<ANCHOR id="GUPnPServiceProxy.other" href="gupnp/GUPnPServiceProxy.html#GUPnPServiceProxy.other">
+<ANCHOR id="GUPnPServiceProxy.object-hierarchy" href="gupnp/GUPnPServiceProxy.html#GUPnPServiceProxy.object-hierarchy">
 <ANCHOR id="GUPnPServiceProxy.description" href="gupnp/GUPnPServiceProxy.html#GUPnPServiceProxy.description">
-<ANCHOR id="GUPnPServiceProxy.details" href="gupnp/GUPnPServiceProxy.html#GUPnPServiceProxy.details">
-<ANCHOR id="GUPnPServiceProxy-struct" href="gupnp/GUPnPServiceProxy.html#GUPnPServiceProxy-struct">
-<ANCHOR id="GUPnPServiceProxyAction" href="gupnp/GUPnPServiceProxy.html#GUPnPServiceProxyAction">
+<ANCHOR id="GUPnPServiceProxy.functions_details" href="gupnp/GUPnPServiceProxy.html#GUPnPServiceProxy.functions_details">
 <ANCHOR id="GUPnPServiceProxyActionCallback" href="gupnp/GUPnPServiceProxy.html#GUPnPServiceProxyActionCallback">
 <ANCHOR id="GUPnPServiceProxyNotifyCallback" href="gupnp/GUPnPServiceProxy.html#GUPnPServiceProxyNotifyCallback">
 <ANCHOR id="gupnp-service-proxy-send-action" href="gupnp/GUPnPServiceProxy.html#gupnp-service-proxy-send-action">
 <ANCHOR id="gupnp-service-proxy-end-action-list" href="gupnp/GUPnPServiceProxy.html#gupnp-service-proxy-end-action-list">
 <ANCHOR id="gupnp-service-proxy-cancel-action" href="gupnp/GUPnPServiceProxy.html#gupnp-service-proxy-cancel-action">
 <ANCHOR id="gupnp-service-proxy-add-notify" href="gupnp/GUPnPServiceProxy.html#gupnp-service-proxy-add-notify">
+<ANCHOR id="gupnp-service-proxy-add-notify-full" href="gupnp/GUPnPServiceProxy.html#gupnp-service-proxy-add-notify-full">
+<ANCHOR id="gupnp-service-proxy-add-raw-notify" href="gupnp/GUPnPServiceProxy.html#gupnp-service-proxy-add-raw-notify">
 <ANCHOR id="gupnp-service-proxy-remove-notify" href="gupnp/GUPnPServiceProxy.html#gupnp-service-proxy-remove-notify">
+<ANCHOR id="gupnp-service-proxy-remove-raw-notify" href="gupnp/GUPnPServiceProxy.html#gupnp-service-proxy-remove-raw-notify">
 <ANCHOR id="gupnp-service-proxy-set-subscribed" href="gupnp/GUPnPServiceProxy.html#gupnp-service-proxy-set-subscribed">
 <ANCHOR id="gupnp-service-proxy-get-subscribed" href="gupnp/GUPnPServiceProxy.html#gupnp-service-proxy-get-subscribed">
+<ANCHOR id="GUPnPServiceProxy.other_details" href="gupnp/GUPnPServiceProxy.html#GUPnPServiceProxy.other_details">
+<ANCHOR id="GUPnPServiceProxy-struct" href="gupnp/GUPnPServiceProxy.html#GUPnPServiceProxy-struct">
+<ANCHOR id="GUPnPServiceProxyAction" href="gupnp/GUPnPServiceProxy.html#GUPnPServiceProxyAction">
 <ANCHOR id="GUPnPServiceProxy.property-details" href="gupnp/GUPnPServiceProxy.html#GUPnPServiceProxy.property-details">
 <ANCHOR id="GUPnPServiceProxy--subscribed" href="gupnp/GUPnPServiceProxy.html#GUPnPServiceProxy--subscribed">
 <ANCHOR id="GUPnPServiceProxy.signal-details" href="gupnp/GUPnPServiceProxy.html#GUPnPServiceProxy.signal-details">
 <ANCHOR id="GUPnPServiceProxy-subscription-lost" href="gupnp/GUPnPServiceProxy.html#GUPnPServiceProxy-subscription-lost">
 <ANCHOR id="GUPnPDevice" href="gupnp/GUPnPDevice.html">
-<ANCHOR id="GUPnPDevice.synopsis" href="gupnp/GUPnPDevice.html#GUPnPDevice.synopsis">
-<ANCHOR id="GUPnPDevice.object-hierarchy" href="gupnp/GUPnPDevice.html#GUPnPDevice.object-hierarchy">
 <ANCHOR id="GUPnPDevice.properties" href="gupnp/GUPnPDevice.html#GUPnPDevice.properties">
+<ANCHOR id="GUPnPDevice.other" href="gupnp/GUPnPDevice.html#GUPnPDevice.other">
+<ANCHOR id="GUPnPDevice.object-hierarchy" href="gupnp/GUPnPDevice.html#GUPnPDevice.object-hierarchy">
 <ANCHOR id="GUPnPDevice.description" href="gupnp/GUPnPDevice.html#GUPnPDevice.description">
-<ANCHOR id="GUPnPDevice.details" href="gupnp/GUPnPDevice.html#GUPnPDevice.details">
+<ANCHOR id="GUPnPDevice.functions_details" href="gupnp/GUPnPDevice.html#GUPnPDevice.functions_details">
+<ANCHOR id="GUPnPDevice.other_details" href="gupnp/GUPnPDevice.html#GUPnPDevice.other_details">
 <ANCHOR id="GUPnPDevice-struct" href="gupnp/GUPnPDevice.html#GUPnPDevice-struct">
 <ANCHOR id="GUPnPDevice.property-details" href="gupnp/GUPnPDevice.html#GUPnPDevice.property-details">
 <ANCHOR id="GUPnPDevice--root-device" href="gupnp/GUPnPDevice.html#GUPnPDevice--root-device">
 <ANCHOR id="GUPnPRootDevice" href="gupnp/GUPnPRootDevice.html">
-<ANCHOR id="GUPnPRootDevice.synopsis" href="gupnp/GUPnPRootDevice.html#GUPnPRootDevice.synopsis">
-<ANCHOR id="GUPnPRootDevice.object-hierarchy" href="gupnp/GUPnPRootDevice.html#GUPnPRootDevice.object-hierarchy">
+<ANCHOR id="GUPnPRootDevice.functions" href="gupnp/GUPnPRootDevice.html#GUPnPRootDevice.functions">
 <ANCHOR id="GUPnPRootDevice.properties" href="gupnp/GUPnPRootDevice.html#GUPnPRootDevice.properties">
+<ANCHOR id="GUPnPRootDevice.other" href="gupnp/GUPnPRootDevice.html#GUPnPRootDevice.other">
+<ANCHOR id="GUPnPRootDevice.object-hierarchy" href="gupnp/GUPnPRootDevice.html#GUPnPRootDevice.object-hierarchy">
 <ANCHOR id="GUPnPRootDevice.description" href="gupnp/GUPnPRootDevice.html#GUPnPRootDevice.description">
-<ANCHOR id="GUPnPRootDevice.details" href="gupnp/GUPnPRootDevice.html#GUPnPRootDevice.details">
-<ANCHOR id="GUPnPRootDevice-struct" href="gupnp/GUPnPRootDevice.html#GUPnPRootDevice-struct">
+<ANCHOR id="GUPnPRootDevice.functions_details" href="gupnp/GUPnPRootDevice.html#GUPnPRootDevice.functions_details">
 <ANCHOR id="gupnp-root-device-new" href="gupnp/GUPnPRootDevice.html#gupnp-root-device-new">
 <ANCHOR id="gupnp-root-device-new-full" href="gupnp/GUPnPRootDevice.html#gupnp-root-device-new-full">
 <ANCHOR id="gupnp-root-device-set-available" href="gupnp/GUPnPRootDevice.html#gupnp-root-device-set-available">
 <ANCHOR id="gupnp-root-device-get-description-dir" href="gupnp/GUPnPRootDevice.html#gupnp-root-device-get-description-dir">
 <ANCHOR id="gupnp-root-device-get-description-path" href="gupnp/GUPnPRootDevice.html#gupnp-root-device-get-description-path">
 <ANCHOR id="gupnp-root-device-get-ssdp-resource-group" href="gupnp/GUPnPRootDevice.html#gupnp-root-device-get-ssdp-resource-group">
+<ANCHOR id="GUPnPRootDevice.other_details" href="gupnp/GUPnPRootDevice.html#GUPnPRootDevice.other_details">
+<ANCHOR id="GUPnPRootDevice-struct" href="gupnp/GUPnPRootDevice.html#GUPnPRootDevice-struct">
 <ANCHOR id="GUPnPRootDevice.property-details" href="gupnp/GUPnPRootDevice.html#GUPnPRootDevice.property-details">
 <ANCHOR id="GUPnPRootDevice--available" href="gupnp/GUPnPRootDevice.html#GUPnPRootDevice--available">
 <ANCHOR id="GUPnPRootDevice--description-dir" href="gupnp/GUPnPRootDevice.html#GUPnPRootDevice--description-dir">
 <ANCHOR id="GUPnPRootDevice--description-doc" href="gupnp/GUPnPRootDevice.html#GUPnPRootDevice--description-doc">
 <ANCHOR id="GUPnPRootDevice--description-path" href="gupnp/GUPnPRootDevice.html#GUPnPRootDevice--description-path">
 <ANCHOR id="GUPnPService" href="gupnp/GUPnPService.html">
-<ANCHOR id="GUPnPService.synopsis" href="gupnp/GUPnPService.html#GUPnPService.synopsis">
-<ANCHOR id="GUPnPServiceAction" href="gupnp/GUPnPService.html#GUPnPServiceAction">
-<ANCHOR id="GUPnPService.object-hierarchy" href="gupnp/GUPnPService.html#GUPnPService.object-hierarchy">
+<ANCHOR id="GUPnPService.functions" href="gupnp/GUPnPService.html#GUPnPService.functions">
 <ANCHOR id="GUPnPService.properties" href="gupnp/GUPnPService.html#GUPnPService.properties">
 <ANCHOR id="GUPnPService.signals" href="gupnp/GUPnPService.html#GUPnPService.signals">
+<ANCHOR id="GUPnPServiceAction" href="gupnp/GUPnPService.html#GUPnPServiceAction">
+<ANCHOR id="GUPnPService.other" href="gupnp/GUPnPService.html#GUPnPService.other">
+<ANCHOR id="GUPnPService.object-hierarchy" href="gupnp/GUPnPService.html#GUPnPService.object-hierarchy">
 <ANCHOR id="GUPnPService.description" href="gupnp/GUPnPService.html#GUPnPService.description">
-<ANCHOR id="GUPnPService.details" href="gupnp/GUPnPService.html#GUPnPService.details">
-<ANCHOR id="GUPnPService-struct" href="gupnp/GUPnPService.html#GUPnPService-struct">
-<ANCHOR id="GUPnPServiceAction-struct" href="gupnp/GUPnPService.html#GUPnPServiceAction-struct">
+<ANCHOR id="GUPnPService.functions_details" href="gupnp/GUPnPService.html#GUPnPService.functions_details">
 <ANCHOR id="gupnp-service-action-get-name" href="gupnp/GUPnPService.html#gupnp-service-action-get-name">
 <ANCHOR id="gupnp-service-action-get-locales" href="gupnp/GUPnPService.html#gupnp-service-action-get-locales">
 <ANCHOR id="gupnp-service-action-get" href="gupnp/GUPnPService.html#gupnp-service-action-get">
 <ANCHOR id="gupnp-service-freeze-notify" href="gupnp/GUPnPService.html#gupnp-service-freeze-notify">
 <ANCHOR id="gupnp-service-thaw-notify" href="gupnp/GUPnPService.html#gupnp-service-thaw-notify">
 <ANCHOR id="gupnp-service-signals-autoconnect" href="gupnp/GUPnPService.html#gupnp-service-signals-autoconnect">
+<ANCHOR id="GUPnPService.other_details" href="gupnp/GUPnPService.html#GUPnPService.other_details">
+<ANCHOR id="GUPnPService-struct" href="gupnp/GUPnPService.html#GUPnPService-struct">
+<ANCHOR id="GUPnPServiceAction-struct" href="gupnp/GUPnPService.html#GUPnPServiceAction-struct">
 <ANCHOR id="GUPnPService.property-details" href="gupnp/GUPnPService.html#GUPnPService.property-details">
 <ANCHOR id="GUPnPService--root-device" href="gupnp/GUPnPService.html#GUPnPService--root-device">
 <ANCHOR id="GUPnPService.signal-details" href="gupnp/GUPnPService.html#GUPnPService.signal-details">
 <ANCHOR id="GUPnPService-notify-failed" href="gupnp/GUPnPService.html#GUPnPService-notify-failed">
 <ANCHOR id="GUPnPService-query-variable" href="gupnp/GUPnPService.html#GUPnPService-query-variable">
 <ANCHOR id="GUPnPContext" href="gupnp/GUPnPContext.html">
-<ANCHOR id="GUPnPContext.synopsis" href="gupnp/GUPnPContext.html#GUPnPContext.synopsis">
+<ANCHOR id="GUPnPContext.functions" href="gupnp/GUPnPContext.html#GUPnPContext.functions">
+<ANCHOR id="GUPnPContext.properties" href="gupnp/GUPnPContext.html#GUPnPContext.properties">
+<ANCHOR id="GUPnPContext.other" href="gupnp/GUPnPContext.html#GUPnPContext.other">
 <ANCHOR id="GUPnPContext.object-hierarchy" href="gupnp/GUPnPContext.html#GUPnPContext.object-hierarchy">
 <ANCHOR id="GUPnPContext.implemented-interfaces" href="gupnp/GUPnPContext.html#GUPnPContext.implemented-interfaces">
-<ANCHOR id="GUPnPContext.properties" href="gupnp/GUPnPContext.html#GUPnPContext.properties">
 <ANCHOR id="GUPnPContext.description" href="gupnp/GUPnPContext.html#GUPnPContext.description">
-<ANCHOR id="GUPnPContext.details" href="gupnp/GUPnPContext.html#GUPnPContext.details">
-<ANCHOR id="GUPnPContext-struct" href="gupnp/GUPnPContext.html#GUPnPContext-struct">
+<ANCHOR id="GUPnPContext.functions_details" href="gupnp/GUPnPContext.html#GUPnPContext.functions_details">
 <ANCHOR id="gupnp-context-new" href="gupnp/GUPnPContext.html#gupnp-context-new">
 <ANCHOR id="gupnp-context-get-host-ip" href="gupnp/GUPnPContext.html#gupnp-context-get-host-ip">
 <ANCHOR id="gupnp-context-get-port" href="gupnp/GUPnPContext.html#gupnp-context-get-port">
 <ANCHOR id="gupnp-context-get-subscription-timeout" href="gupnp/GUPnPContext.html#gupnp-context-get-subscription-timeout">
 <ANCHOR id="gupnp-context-get-default-language" href="gupnp/GUPnPContext.html#gupnp-context-get-default-language">
 <ANCHOR id="gupnp-context-set-default-language" href="gupnp/GUPnPContext.html#gupnp-context-set-default-language">
+<ANCHOR id="gupnp-context-add-server-handler" href="gupnp/GUPnPContext.html#gupnp-context-add-server-handler">
 <ANCHOR id="gupnp-context-host-path" href="gupnp/GUPnPContext.html#gupnp-context-host-path">
 <ANCHOR id="gupnp-context-host-path-for-agent" href="gupnp/GUPnPContext.html#gupnp-context-host-path-for-agent">
 <ANCHOR id="gupnp-context-unhost-path" href="gupnp/GUPnPContext.html#gupnp-context-unhost-path">
+<ANCHOR id="gupnp-context-get-acl" href="gupnp/GUPnPContext.html#gupnp-context-get-acl">
+<ANCHOR id="gupnp-context-set-acl" href="gupnp/GUPnPContext.html#gupnp-context-set-acl">
+<ANCHOR id="GUPnPContext.other_details" href="gupnp/GUPnPContext.html#GUPnPContext.other_details">
+<ANCHOR id="GUPnPContext-struct" href="gupnp/GUPnPContext.html#GUPnPContext-struct">
 <ANCHOR id="GUPnPContext.property-details" href="gupnp/GUPnPContext.html#GUPnPContext.property-details">
+<ANCHOR id="GUPnPContext--acl" href="gupnp/GUPnPContext.html#GUPnPContext--acl">
 <ANCHOR id="GUPnPContext--default-language" href="gupnp/GUPnPContext.html#GUPnPContext--default-language">
 <ANCHOR id="GUPnPContext--port" href="gupnp/GUPnPContext.html#GUPnPContext--port">
 <ANCHOR id="GUPnPContext--server" href="gupnp/GUPnPContext.html#GUPnPContext--server">
 <ANCHOR id="GUPnPContext--session" href="gupnp/GUPnPContext.html#GUPnPContext--session">
 <ANCHOR id="GUPnPContext--subscription-timeout" href="gupnp/GUPnPContext.html#GUPnPContext--subscription-timeout">
 <ANCHOR id="GUPnPContextManager" href="gupnp/GUPnPContextManager.html">
-<ANCHOR id="GUPnPContextManager.synopsis" href="gupnp/GUPnPContextManager.html#GUPnPContextManager.synopsis">
-<ANCHOR id="GUPnPContextManager.object-hierarchy" href="gupnp/GUPnPContextManager.html#GUPnPContextManager.object-hierarchy">
+<ANCHOR id="GUPnPContextManager.functions" href="gupnp/GUPnPContextManager.html#GUPnPContextManager.functions">
 <ANCHOR id="GUPnPContextManager.properties" href="gupnp/GUPnPContextManager.html#GUPnPContextManager.properties">
 <ANCHOR id="GUPnPContextManager.signals" href="gupnp/GUPnPContextManager.html#GUPnPContextManager.signals">
+<ANCHOR id="GUPnPContextManager.other" href="gupnp/GUPnPContextManager.html#GUPnPContextManager.other">
+<ANCHOR id="GUPnPContextManager.object-hierarchy" href="gupnp/GUPnPContextManager.html#GUPnPContextManager.object-hierarchy">
 <ANCHOR id="GUPnPContextManager.description" href="gupnp/GUPnPContextManager.html#GUPnPContextManager.description">
-<ANCHOR id="GUPnPContextManager.details" href="gupnp/GUPnPContextManager.html#GUPnPContextManager.details">
-<ANCHOR id="GUPnPContextManager-struct" href="gupnp/GUPnPContextManager.html#GUPnPContextManager-struct">
+<ANCHOR id="GUPnPContextManager.functions_details" href="gupnp/GUPnPContextManager.html#GUPnPContextManager.functions_details">
 <ANCHOR id="gupnp-context-manager-new" href="gupnp/GUPnPContextManager.html#gupnp-context-manager-new">
 <ANCHOR id="gupnp-context-manager-create" href="gupnp/GUPnPContextManager.html#gupnp-context-manager-create">
 <ANCHOR id="gupnp-context-manager-rescan-control-points" href="gupnp/GUPnPContextManager.html#gupnp-context-manager-rescan-control-points">
 <ANCHOR id="gupnp-context-manager-manage-root-device" href="gupnp/GUPnPContextManager.html#gupnp-context-manager-manage-root-device">
 <ANCHOR id="gupnp-context-manager-get-port" href="gupnp/GUPnPContextManager.html#gupnp-context-manager-get-port">
 <ANCHOR id="gupnp-context-manager-get-white-list" href="gupnp/GUPnPContextManager.html#gupnp-context-manager-get-white-list">
+<ANCHOR id="GUPnPContextManager.other_details" href="gupnp/GUPnPContextManager.html#GUPnPContextManager.other_details">
+<ANCHOR id="GUPnPContextManager-struct" href="gupnp/GUPnPContextManager.html#GUPnPContextManager-struct">
 <ANCHOR id="GUPnPContextManager.property-details" href="gupnp/GUPnPContextManager.html#GUPnPContextManager.property-details">
 <ANCHOR id="GUPnPContextManager--main-context" href="gupnp/GUPnPContextManager.html#GUPnPContextManager--main-context">
 <ANCHOR id="GUPnPContextManager--port" href="gupnp/GUPnPContextManager.html#GUPnPContextManager--port">
 <ANCHOR id="GUPnPContextManager.signal-details" href="gupnp/GUPnPContextManager.html#GUPnPContextManager.signal-details">
 <ANCHOR id="GUPnPContextManager-context-available" href="gupnp/GUPnPContextManager.html#GUPnPContextManager-context-available">
 <ANCHOR id="GUPnPContextManager-context-unavailable" href="gupnp/GUPnPContextManager.html#GUPnPContextManager-context-unavailable">
+<ANCHOR id="GUPnPAcl" href="gupnp/GUPnPAcl.html">
+<ANCHOR id="GUPnPAcl.functions" href="gupnp/GUPnPAcl.html#GUPnPAcl.functions">
+<ANCHOR id="GUPnPAcl.other" href="gupnp/GUPnPAcl.html#GUPnPAcl.other">
+<ANCHOR id="GUPnPAcl.object-hierarchy" href="gupnp/GUPnPAcl.html#GUPnPAcl.object-hierarchy">
+<ANCHOR id="GUPnPAcl.prerequisites" href="gupnp/GUPnPAcl.html#GUPnPAcl.prerequisites">
+<ANCHOR id="GUPnPAcl.description" href="gupnp/GUPnPAcl.html#GUPnPAcl.description">
+<ANCHOR id="GUPnPAcl.functions_details" href="gupnp/GUPnPAcl.html#GUPnPAcl.functions_details">
+<ANCHOR id="gupnp-acl-can-sync" href="gupnp/GUPnPAcl.html#gupnp-acl-can-sync">
+<ANCHOR id="gupnp-acl-is-allowed" href="gupnp/GUPnPAcl.html#gupnp-acl-is-allowed">
+<ANCHOR id="gupnp-acl-is-allowed-async" href="gupnp/GUPnPAcl.html#gupnp-acl-is-allowed-async">
+<ANCHOR id="gupnp-acl-is-allowed-finish" href="gupnp/GUPnPAcl.html#gupnp-acl-is-allowed-finish">
+<ANCHOR id="GUPnPAcl.other_details" href="gupnp/GUPnPAcl.html#GUPnPAcl.other_details">
+<ANCHOR id="GUPnPAcl-struct" href="gupnp/GUPnPAcl.html#GUPnPAcl-struct">
+<ANCHOR id="GUPnPAclInterface" href="gupnp/GUPnPAcl.html#GUPnPAclInterface">
 <ANCHOR id="GUPnPWhiteList" href="gupnp/GUPnPWhiteList.html">
-<ANCHOR id="GUPnPWhiteList.synopsis" href="gupnp/GUPnPWhiteList.html#GUPnPWhiteList.synopsis">
+<ANCHOR id="GUPnPWhiteList.functions" href="gupnp/GUPnPWhiteList.html#GUPnPWhiteList.functions">
+<ANCHOR id="GUPnPWhiteList.properties" href="gupnp/GUPnPWhiteList.html#GUPnPWhiteList.properties">
+<ANCHOR id="GUPnPWhiteList.other" href="gupnp/GUPnPWhiteList.html#GUPnPWhiteList.other">
 <ANCHOR id="GUPnPWhiteList.object-hierarchy" href="gupnp/GUPnPWhiteList.html#GUPnPWhiteList.object-hierarchy">
 <ANCHOR id="GUPnPWhiteList.description" href="gupnp/GUPnPWhiteList.html#GUPnPWhiteList.description">
-<ANCHOR id="GUPnPWhiteList.details" href="gupnp/GUPnPWhiteList.html#GUPnPWhiteList.details">
-<ANCHOR id="GUPnPWhiteList-struct" href="gupnp/GUPnPWhiteList.html#GUPnPWhiteList-struct">
+<ANCHOR id="GUPnPWhiteList.functions_details" href="gupnp/GUPnPWhiteList.html#GUPnPWhiteList.functions_details">
 <ANCHOR id="gupnp-white-list-add-entry" href="gupnp/GUPnPWhiteList.html#gupnp-white-list-add-entry">
+<ANCHOR id="gupnp-white-list-add-entryv" href="gupnp/GUPnPWhiteList.html#gupnp-white-list-add-entryv">
 <ANCHOR id="gupnp-white-list-check-context" href="gupnp/GUPnPWhiteList.html#gupnp-white-list-check-context">
 <ANCHOR id="gupnp-white-list-clear" href="gupnp/GUPnPWhiteList.html#gupnp-white-list-clear">
 <ANCHOR id="gupnp-white-list-set-enabled" href="gupnp/GUPnPWhiteList.html#gupnp-white-list-set-enabled">
 <ANCHOR id="gupnp-white-list-get-enabled" href="gupnp/GUPnPWhiteList.html#gupnp-white-list-get-enabled">
 <ANCHOR id="gupnp-white-list-new" href="gupnp/GUPnPWhiteList.html#gupnp-white-list-new">
 <ANCHOR id="gupnp-white-list-remove-entry" href="gupnp/GUPnPWhiteList.html#gupnp-white-list-remove-entry">
+<ANCHOR id="GUPnPWhiteList.other_details" href="gupnp/GUPnPWhiteList.html#GUPnPWhiteList.other_details">
+<ANCHOR id="GUPnPWhiteList-struct" href="gupnp/GUPnPWhiteList.html#GUPnPWhiteList-struct">
+<ANCHOR id="GUPnPWhiteList.property-details" href="gupnp/GUPnPWhiteList.html#GUPnPWhiteList.property-details">
+<ANCHOR id="GUPnPWhiteList--enabled" href="gupnp/GUPnPWhiteList.html#GUPnPWhiteList--enabled">
+<ANCHOR id="GUPnPWhiteList--entries" href="gupnp/GUPnPWhiteList.html#GUPnPWhiteList--entries">
 <ANCHOR id="GUPnPResourceFactory" href="gupnp/GUPnPResourceFactory.html">
-<ANCHOR id="GUPnPResourceFactory.synopsis" href="gupnp/GUPnPResourceFactory.html#GUPnPResourceFactory.synopsis">
+<ANCHOR id="GUPnPResourceFactory.functions" href="gupnp/GUPnPResourceFactory.html#GUPnPResourceFactory.functions">
+<ANCHOR id="GUPnPResourceFactory.other" href="gupnp/GUPnPResourceFactory.html#GUPnPResourceFactory.other">
 <ANCHOR id="GUPnPResourceFactory.object-hierarchy" href="gupnp/GUPnPResourceFactory.html#GUPnPResourceFactory.object-hierarchy">
 <ANCHOR id="GUPnPResourceFactory.description" href="gupnp/GUPnPResourceFactory.html#GUPnPResourceFactory.description">
-<ANCHOR id="GUPnPResourceFactory.details" href="gupnp/GUPnPResourceFactory.html#GUPnPResourceFactory.details">
-<ANCHOR id="GUPnPResourceFactory-struct" href="gupnp/GUPnPResourceFactory.html#GUPnPResourceFactory-struct">
+<ANCHOR id="GUPnPResourceFactory.functions_details" href="gupnp/GUPnPResourceFactory.html#GUPnPResourceFactory.functions_details">
 <ANCHOR id="gupnp-resource-factory-new" href="gupnp/GUPnPResourceFactory.html#gupnp-resource-factory-new">
 <ANCHOR id="gupnp-resource-factory-get-default" href="gupnp/GUPnPResourceFactory.html#gupnp-resource-factory-get-default">
 <ANCHOR id="gupnp-resource-factory-register-resource-type" href="gupnp/GUPnPResourceFactory.html#gupnp-resource-factory-register-resource-type">
 <ANCHOR id="gupnp-resource-factory-unregister-resource-type" href="gupnp/GUPnPResourceFactory.html#gupnp-resource-factory-unregister-resource-type">
 <ANCHOR id="gupnp-resource-factory-register-resource-proxy-type" href="gupnp/GUPnPResourceFactory.html#gupnp-resource-factory-register-resource-proxy-type">
 <ANCHOR id="gupnp-resource-factory-unregister-resource-proxy-type" href="gupnp/GUPnPResourceFactory.html#gupnp-resource-factory-unregister-resource-proxy-type">
+<ANCHOR id="GUPnPResourceFactory.other_details" href="gupnp/GUPnPResourceFactory.html#GUPnPResourceFactory.other_details">
+<ANCHOR id="GUPnPResourceFactory-struct" href="gupnp/GUPnPResourceFactory.html#GUPnPResourceFactory-struct">
 <ANCHOR id="GUPnPXMLDoc" href="gupnp/GUPnPXMLDoc.html">
-<ANCHOR id="GUPnPXMLDoc.synopsis" href="gupnp/GUPnPXMLDoc.html#GUPnPXMLDoc.synopsis">
+<ANCHOR id="GUPnPXMLDoc.functions" href="gupnp/GUPnPXMLDoc.html#GUPnPXMLDoc.functions">
+<ANCHOR id="GUPnPXMLDoc.other" href="gupnp/GUPnPXMLDoc.html#GUPnPXMLDoc.other">
 <ANCHOR id="GUPnPXMLDoc.object-hierarchy" href="gupnp/GUPnPXMLDoc.html#GUPnPXMLDoc.object-hierarchy">
 <ANCHOR id="GUPnPXMLDoc.description" href="gupnp/GUPnPXMLDoc.html#GUPnPXMLDoc.description">
-<ANCHOR id="GUPnPXMLDoc.details" href="gupnp/GUPnPXMLDoc.html#GUPnPXMLDoc.details">
-<ANCHOR id="GUPnPXMLDoc-struct" href="gupnp/GUPnPXMLDoc.html#GUPnPXMLDoc-struct">
+<ANCHOR id="GUPnPXMLDoc.functions_details" href="gupnp/GUPnPXMLDoc.html#GUPnPXMLDoc.functions_details">
 <ANCHOR id="gupnp-xml-doc-new" href="gupnp/GUPnPXMLDoc.html#gupnp-xml-doc-new">
 <ANCHOR id="gupnp-xml-doc-new-from-path" href="gupnp/GUPnPXMLDoc.html#gupnp-xml-doc-new-from-path">
+<ANCHOR id="GUPnPXMLDoc.other_details" href="gupnp/GUPnPXMLDoc.html#GUPnPXMLDoc.other_details">
+<ANCHOR id="GUPnPXMLDoc-struct" href="gupnp/GUPnPXMLDoc.html#GUPnPXMLDoc-struct">
 <ANCHOR id="gupnp-Error-codes" href="gupnp/gupnp-Error-codes.html">
-<ANCHOR id="gupnp-Error-codes.synopsis" href="gupnp/gupnp-Error-codes.html#gupnp-Error-codes.synopsis">
+<ANCHOR id="gupnp-Error-codes.functions" href="gupnp/gupnp-Error-codes.html#gupnp-Error-codes.functions">
+<ANCHOR id="gupnp-Error-codes.other" href="gupnp/gupnp-Error-codes.html#gupnp-Error-codes.other">
+<ANCHOR id="gupnp-Error-codes.object-hierarchy" href="gupnp/gupnp-Error-codes.html#gupnp-Error-codes.object-hierarchy">
 <ANCHOR id="gupnp-Error-codes.description" href="gupnp/gupnp-Error-codes.html#gupnp-Error-codes.description">
-<ANCHOR id="gupnp-Error-codes.details" href="gupnp/gupnp-Error-codes.html#gupnp-Error-codes.details">
+<ANCHOR id="gupnp-Error-codes.functions_details" href="gupnp/gupnp-Error-codes.html#gupnp-Error-codes.functions_details">
 <ANCHOR id="GUPNP-SERVER-ERROR:CAPS" href="gupnp/gupnp-Error-codes.html#GUPNP-SERVER-ERROR:CAPS">
-<ANCHOR id="GUPnPServerError" href="gupnp/gupnp-Error-codes.html#GUPnPServerError">
-<ANCHOR id="GUPNP-SERVER-ERROR-INTERNAL-SERVER-ERROR:CAPS" href="gupnp/gupnp-Error-codes.html#GUPNP-SERVER-ERROR-INTERNAL-SERVER-ERROR:CAPS">
-<ANCHOR id="GUPNP-SERVER-ERROR-NOT-FOUND:CAPS" href="gupnp/gupnp-Error-codes.html#GUPNP-SERVER-ERROR-NOT-FOUND:CAPS">
-<ANCHOR id="GUPNP-SERVER-ERROR-NOT-IMPLEMENTED:CAPS" href="gupnp/gupnp-Error-codes.html#GUPNP-SERVER-ERROR-NOT-IMPLEMENTED:CAPS">
-<ANCHOR id="GUPNP-SERVER-ERROR-INVALID-RESPONSE:CAPS" href="gupnp/gupnp-Error-codes.html#GUPNP-SERVER-ERROR-INVALID-RESPONSE:CAPS">
-<ANCHOR id="GUPNP-SERVER-ERROR-INVALID-URL:CAPS" href="gupnp/gupnp-Error-codes.html#GUPNP-SERVER-ERROR-INVALID-URL:CAPS">
-<ANCHOR id="GUPNP-SERVER-ERROR-OTHER:CAPS" href="gupnp/gupnp-Error-codes.html#GUPNP-SERVER-ERROR-OTHER:CAPS">
 <ANCHOR id="GUPNP-EVENTING-ERROR:CAPS" href="gupnp/gupnp-Error-codes.html#GUPNP-EVENTING-ERROR:CAPS">
-<ANCHOR id="GUPnPEventingError" href="gupnp/gupnp-Error-codes.html#GUPnPEventingError">
-<ANCHOR id="GUPNP-EVENTING-ERROR-SUBSCRIPTION-FAILED:CAPS" href="gupnp/gupnp-Error-codes.html#GUPNP-EVENTING-ERROR-SUBSCRIPTION-FAILED:CAPS">
-<ANCHOR id="GUPNP-EVENTING-ERROR-SUBSCRIPTION-LOST:CAPS" href="gupnp/gupnp-Error-codes.html#GUPNP-EVENTING-ERROR-SUBSCRIPTION-LOST:CAPS">
-<ANCHOR id="GUPNP-EVENTING-ERROR-NOTIFY-FAILED:CAPS" href="gupnp/gupnp-Error-codes.html#GUPNP-EVENTING-ERROR-NOTIFY-FAILED:CAPS">
 <ANCHOR id="GUPNP-CONTROL-ERROR:CAPS" href="gupnp/gupnp-Error-codes.html#GUPNP-CONTROL-ERROR:CAPS">
-<ANCHOR id="GUPnPControlError" href="gupnp/gupnp-Error-codes.html#GUPnPControlError">
-<ANCHOR id="GUPNP-CONTROL-ERROR-INVALID-ACTION:CAPS" href="gupnp/gupnp-Error-codes.html#GUPNP-CONTROL-ERROR-INVALID-ACTION:CAPS">
-<ANCHOR id="GUPNP-CONTROL-ERROR-INVALID-ARGS:CAPS" href="gupnp/gupnp-Error-codes.html#GUPNP-CONTROL-ERROR-INVALID-ARGS:CAPS">
-<ANCHOR id="GUPNP-CONTROL-ERROR-OUT-OF-SYNC:CAPS" href="gupnp/gupnp-Error-codes.html#GUPNP-CONTROL-ERROR-OUT-OF-SYNC:CAPS">
-<ANCHOR id="GUPNP-CONTROL-ERROR-ACTION-FAILED:CAPS" href="gupnp/gupnp-Error-codes.html#GUPNP-CONTROL-ERROR-ACTION-FAILED:CAPS">
 <ANCHOR id="GUPNP-XML-ERROR:CAPS" href="gupnp/gupnp-Error-codes.html#GUPNP-XML-ERROR:CAPS">
+<ANCHOR id="gupnp-Error-codes.other_details" href="gupnp/gupnp-Error-codes.html#gupnp-Error-codes.other_details">
+<ANCHOR id="GUPnPServerError" href="gupnp/gupnp-Error-codes.html#GUPnPServerError">
+<ANCHOR id="GUPnPEventingError" href="gupnp/gupnp-Error-codes.html#GUPnPEventingError">
+<ANCHOR id="GUPnPControlError" href="gupnp/gupnp-Error-codes.html#GUPnPControlError">
 <ANCHOR id="GUPnPXMLError" href="gupnp/gupnp-Error-codes.html#GUPnPXMLError">
-<ANCHOR id="GUPNP-XML-ERROR-PARSE:CAPS" href="gupnp/gupnp-Error-codes.html#GUPNP-XML-ERROR-PARSE:CAPS">
-<ANCHOR id="GUPNP-XML-ERROR-NO-NODE:CAPS" href="gupnp/gupnp-Error-codes.html#GUPNP-XML-ERROR-NO-NODE:CAPS">
-<ANCHOR id="GUPNP-XML-ERROR-EMPTY-NODE:CAPS" href="gupnp/gupnp-Error-codes.html#GUPNP-XML-ERROR-EMPTY-NODE:CAPS">
-<ANCHOR id="GUPNP-XML-ERROR-INVALID-ATTRIBUTE:CAPS" href="gupnp/gupnp-Error-codes.html#GUPNP-XML-ERROR-INVALID-ATTRIBUTE:CAPS">
-<ANCHOR id="GUPNP-XML-ERROR-OTHER:CAPS" href="gupnp/gupnp-Error-codes.html#GUPNP-XML-ERROR-OTHER:CAPS">
 <ANCHOR id="gupnp-Special-UPnP-types" href="gupnp/gupnp-Special-UPnP-types.html">
-<ANCHOR id="gupnp-Special-UPnP-types.synopsis" href="gupnp/gupnp-Special-UPnP-types.html#gupnp-Special-UPnP-types.synopsis">
+<ANCHOR id="gupnp-Special-UPnP-types.other" href="gupnp/gupnp-Special-UPnP-types.html#gupnp-Special-UPnP-types.other">
+<ANCHOR id="gupnp-Special-UPnP-types.object-hierarchy" href="gupnp/gupnp-Special-UPnP-types.html#gupnp-Special-UPnP-types.object-hierarchy">
 <ANCHOR id="gupnp-Special-UPnP-types.description" href="gupnp/gupnp-Special-UPnP-types.html#gupnp-Special-UPnP-types.description">
-<ANCHOR id="gupnp-Special-UPnP-types.details" href="gupnp/gupnp-Special-UPnP-types.html#gupnp-Special-UPnP-types.details">
+<ANCHOR id="gupnp-Special-UPnP-types.functions_details" href="gupnp/gupnp-Special-UPnP-types.html#gupnp-Special-UPnP-types.functions_details">
+<ANCHOR id="gupnp-Special-UPnP-types.other_details" href="gupnp/gupnp-Special-UPnP-types.html#gupnp-Special-UPnP-types.other_details">
 <ANCHOR id="GUPNP-TYPE-BIN-BASE64:CAPS" href="gupnp/gupnp-Special-UPnP-types.html#GUPNP-TYPE-BIN-BASE64:CAPS">
 <ANCHOR id="GUPNP-TYPE-BIN-HEX:CAPS" href="gupnp/gupnp-Special-UPnP-types.html#GUPNP-TYPE-BIN-HEX:CAPS">
 <ANCHOR id="GUPNP-TYPE-DATE:CAPS" href="gupnp/gupnp-Special-UPnP-types.html#GUPNP-TYPE-DATE:CAPS">
 <ANCHOR id="GUPNP-TYPE-URI:CAPS" href="gupnp/gupnp-Special-UPnP-types.html#GUPNP-TYPE-URI:CAPS">
 <ANCHOR id="GUPNP-TYPE-UUID:CAPS" href="gupnp/gupnp-Special-UPnP-types.html#GUPNP-TYPE-UUID:CAPS">
 <ANCHOR id="gupnp-binding-tool" href="gupnp/gupnp-binding-tool.html">
-<ANCHOR id="annotation-glossterm-out" href="gupnp/annotation-glossary.html#annotation-glossterm-out">
-<ANCHOR id="annotation-glossterm-scope async" href="gupnp/annotation-glossary.html#annotation-glossterm-scope async">
 <ANCHOR id="annotation-glossterm-allow-none" href="gupnp/annotation-glossary.html#annotation-glossterm-allow-none">
-<ANCHOR id="annotation-glossterm-inout" href="gupnp/annotation-glossary.html#annotation-glossterm-inout">
-<ANCHOR id="annotation-glossterm-transfer none" href="gupnp/annotation-glossary.html#annotation-glossterm-transfer none">
+<ANCHOR id="annotation-glossterm-array" href="gupnp/annotation-glossary.html#annotation-glossterm-array">
 <ANCHOR id="annotation-glossterm-element-type" href="gupnp/annotation-glossary.html#annotation-glossterm-element-type">
+<ANCHOR id="annotation-glossterm-inout" href="gupnp/annotation-glossary.html#annotation-glossterm-inout">
+<ANCHOR id="annotation-glossterm-out" href="gupnp/annotation-glossary.html#annotation-glossterm-out">
+<ANCHOR id="annotation-glossterm-scope async" href="gupnp/annotation-glossary.html#annotation-glossterm-scope async">
 <ANCHOR id="annotation-glossterm-scope call" href="gupnp/annotation-glossary.html#annotation-glossterm-scope call">
+<ANCHOR id="annotation-glossterm-scope notified" href="gupnp/annotation-glossary.html#annotation-glossterm-scope notified">
 <ANCHOR id="annotation-glossterm-transfer full" href="gupnp/annotation-glossary.html#annotation-glossterm-transfer full">
+<ANCHOR id="annotation-glossterm-transfer none" href="gupnp/annotation-glossary.html#annotation-glossterm-transfer none">
 <ANCHOR id="annotation-glossterm-type" href="gupnp/annotation-glossary.html#annotation-glossterm-type">
index b542543..c4dd56a 100644 (file)
@@ -2,87 +2,93 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>GUPnP Reference Manual: Index</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GUPnP Reference Manual">
 <link rel="up" href="index.html" title="GUPnP Reference Manual">
 <link rel="prev" href="annotation-glossary.html" title="Annotation Glossary">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="annotation-glossary.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td> </td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GUPnP Reference Manual</th>
-<td> </td>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="annotation-glossary.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><img src="right-insensitive.png" width="16" height="16" border="0"></td>
 </tr></table>
 <div class="index">
-<div class="titlepage"><div><div><h2 class="title">
-<a name="idp53232"></a>Index</h2></div></div></div>
+<div class="titlepage"><div><div><h1 class="title">
+<a name="id-1.7"></a>Index</h1></div></div></div>
 <div class="index"><div class="indexdiv">
 <h3>G</h3>
 <dl>
+<dt>GUPnPAcl, <a class="indexterm" href="GUPnPAcl.html#GUPnPAcl-struct">GUPnPAcl</a>
+</dt>
+<dt>GUPnPAclInterface, <a class="indexterm" href="GUPnPAcl.html#GUPnPAclInterface">struct GUPnPAclInterface</a>
+</dt>
 <dt>GUPnPContext, <a class="indexterm" href="GUPnPContext.html#GUPnPContext-struct">struct GUPnPContext</a>
 </dt>
-<dt>GUPnPContext:default-language, <a class="indexterm" href="GUPnPContext.html#GUPnPContext--default-language">The "default-language" property</a>
+<dt>GUPnPContext:acl, <a class="indexterm" href="GUPnPContext.html#GUPnPContext--acl">The “acl” property</a>
+</dt>
+<dt>GUPnPContext:default-language, <a class="indexterm" href="GUPnPContext.html#GUPnPContext--default-language">The “default-language” property</a>
 </dt>
-<dt>GUPnPContext:port, <a class="indexterm" href="GUPnPContext.html#GUPnPContext--port">The "port" property</a>
+<dt>GUPnPContext:port, <a class="indexterm" href="GUPnPContext.html#GUPnPContext--port">The “port” property</a>
 </dt>
-<dt>GUPnPContext:server, <a class="indexterm" href="GUPnPContext.html#GUPnPContext--server">The "server" property</a>
+<dt>GUPnPContext:server, <a class="indexterm" href="GUPnPContext.html#GUPnPContext--server">The “server” property</a>
 </dt>
-<dt>GUPnPContext:session, <a class="indexterm" href="GUPnPContext.html#GUPnPContext--session">The "session" property</a>
+<dt>GUPnPContext:session, <a class="indexterm" href="GUPnPContext.html#GUPnPContext--session">The “session” property</a>
 </dt>
-<dt>GUPnPContext:subscription-timeout, <a class="indexterm" href="GUPnPContext.html#GUPnPContext--subscription-timeout">The "subscription-timeout" property</a>
+<dt>GUPnPContext:subscription-timeout, <a class="indexterm" href="GUPnPContext.html#GUPnPContext--subscription-timeout">The “subscription-timeout” property</a>
 </dt>
 <dt>GUPnPContextManager, <a class="indexterm" href="GUPnPContextManager.html#GUPnPContextManager-struct">struct GUPnPContextManager</a>
 </dt>
-<dt>GUPnPContextManager::context-available, <a class="indexterm" href="GUPnPContextManager.html#GUPnPContextManager-context-available">The "context-available" signal</a>
+<dt>GUPnPContextManager::context-available, <a class="indexterm" href="GUPnPContextManager.html#GUPnPContextManager-context-available">The “context-available” signal</a>
 </dt>
-<dt>GUPnPContextManager::context-unavailable, <a class="indexterm" href="GUPnPContextManager.html#GUPnPContextManager-context-unavailable">The "context-unavailable" signal</a>
+<dt>GUPnPContextManager::context-unavailable, <a class="indexterm" href="GUPnPContextManager.html#GUPnPContextManager-context-unavailable">The “context-unavailable” signal</a>
 </dt>
-<dt>GUPnPContextManager:main-context, <a class="indexterm" href="GUPnPContextManager.html#GUPnPContextManager--main-context">The "main-context" property</a>
+<dt>GUPnPContextManager:main-context, <a class="indexterm" href="GUPnPContextManager.html#GUPnPContextManager--main-context">The “main-context” property</a>
 </dt>
-<dt>GUPnPContextManager:port, <a class="indexterm" href="GUPnPContextManager.html#GUPnPContextManager--port">The "port" property</a>
+<dt>GUPnPContextManager:port, <a class="indexterm" href="GUPnPContextManager.html#GUPnPContextManager--port">The “port” property</a>
 </dt>
-<dt>GUPnPContextManager:white-list, <a class="indexterm" href="GUPnPContextManager.html#GUPnPContextManager--white-list">The "white-list" property</a>
+<dt>GUPnPContextManager:white-list, <a class="indexterm" href="GUPnPContextManager.html#GUPnPContextManager--white-list">The “white-list” property</a>
 </dt>
 <dt>GUPnPControlError, <a class="indexterm" href="gupnp-Error-codes.html#GUPnPControlError">enum GUPnPControlError</a>
 </dt>
 <dt>GUPnPControlPoint, <a class="indexterm" href="GUPnPControlPoint.html#GUPnPControlPoint-struct">struct GUPnPControlPoint</a>
 </dt>
-<dt>GUPnPControlPoint::device-proxy-available, <a class="indexterm" href="GUPnPControlPoint.html#GUPnPControlPoint-device-proxy-available">The "device-proxy-available" signal</a>
+<dt>GUPnPControlPoint::device-proxy-available, <a class="indexterm" href="GUPnPControlPoint.html#GUPnPControlPoint-device-proxy-available">The “device-proxy-available” signal</a>
 </dt>
-<dt>GUPnPControlPoint::device-proxy-unavailable, <a class="indexterm" href="GUPnPControlPoint.html#GUPnPControlPoint-device-proxy-unavailable">The "device-proxy-unavailable" signal</a>
+<dt>GUPnPControlPoint::device-proxy-unavailable, <a class="indexterm" href="GUPnPControlPoint.html#GUPnPControlPoint-device-proxy-unavailable">The “device-proxy-unavailable” signal</a>
 </dt>
-<dt>GUPnPControlPoint::service-proxy-available, <a class="indexterm" href="GUPnPControlPoint.html#GUPnPControlPoint-service-proxy-available">The "service-proxy-available" signal</a>
+<dt>GUPnPControlPoint::service-proxy-available, <a class="indexterm" href="GUPnPControlPoint.html#GUPnPControlPoint-service-proxy-available">The “service-proxy-available” signal</a>
 </dt>
-<dt>GUPnPControlPoint::service-proxy-unavailable, <a class="indexterm" href="GUPnPControlPoint.html#GUPnPControlPoint-service-proxy-unavailable">The "service-proxy-unavailable" signal</a>
+<dt>GUPnPControlPoint::service-proxy-unavailable, <a class="indexterm" href="GUPnPControlPoint.html#GUPnPControlPoint-service-proxy-unavailable">The “service-proxy-unavailable” signal</a>
 </dt>
-<dt>GUPnPControlPoint:resource-factory, <a class="indexterm" href="GUPnPControlPoint.html#GUPnPControlPoint--resource-factory">The "resource-factory" property</a>
+<dt>GUPnPControlPoint:resource-factory, <a class="indexterm" href="GUPnPControlPoint.html#GUPnPControlPoint--resource-factory">The “resource-factory” property</a>
 </dt>
-<dt>GUPnPDevice, <a class="indexterm" href="GUPnPDevice.html#GUPnPDevice-struct">struct GUPnPDevice</a>
+<dt>GUPnPDevice, <a class="indexterm" href="GUPnPDevice.html#GUPnPDevice-struct">GUPnPDevice</a>
 </dt>
-<dt>GUPnPDevice:root-device, <a class="indexterm" href="GUPnPDevice.html#GUPnPDevice--root-device">The "root-device" property</a>
+<dt>GUPnPDevice:root-device, <a class="indexterm" href="GUPnPDevice.html#GUPnPDevice--root-device">The “root-device” property</a>
 </dt>
 <dt>GUPnPDeviceInfo, <a class="indexterm" href="GUPnPDeviceInfo.html#GUPnPDeviceInfo-struct">struct GUPnPDeviceInfo</a>
 </dt>
-<dt>GUPnPDeviceInfo:context, <a class="indexterm" href="GUPnPDeviceInfo.html#GUPnPDeviceInfo--context">The "context" property</a>
+<dt>GUPnPDeviceInfo:context, <a class="indexterm" href="GUPnPDeviceInfo.html#GUPnPDeviceInfo--context">The “context” property</a>
 </dt>
-<dt>GUPnPDeviceInfo:device-type, <a class="indexterm" href="GUPnPDeviceInfo.html#GUPnPDeviceInfo--device-type">The "device-type" property</a>
+<dt>GUPnPDeviceInfo:device-type, <a class="indexterm" href="GUPnPDeviceInfo.html#GUPnPDeviceInfo--device-type">The “device-type” property</a>
 </dt>
-<dt>GUPnPDeviceInfo:document, <a class="indexterm" href="GUPnPDeviceInfo.html#GUPnPDeviceInfo--document">The "document" property</a>
+<dt>GUPnPDeviceInfo:document, <a class="indexterm" href="GUPnPDeviceInfo.html#GUPnPDeviceInfo--document">The “document” property</a>
 </dt>
-<dt>GUPnPDeviceInfo:element, <a class="indexterm" href="GUPnPDeviceInfo.html#GUPnPDeviceInfo--element">The "element" property</a>
+<dt>GUPnPDeviceInfo:element, <a class="indexterm" href="GUPnPDeviceInfo.html#GUPnPDeviceInfo--element">The “element” property</a>
 </dt>
-<dt>GUPnPDeviceInfo:location, <a class="indexterm" href="GUPnPDeviceInfo.html#GUPnPDeviceInfo--location">The "location" property</a>
+<dt>GUPnPDeviceInfo:location, <a class="indexterm" href="GUPnPDeviceInfo.html#GUPnPDeviceInfo--location">The “location” property</a>
 </dt>
-<dt>GUPnPDeviceInfo:resource-factory, <a class="indexterm" href="GUPnPDeviceInfo.html#GUPnPDeviceInfo--resource-factory">The "resource-factory" property</a>
+<dt>GUPnPDeviceInfo:resource-factory, <a class="indexterm" href="GUPnPDeviceInfo.html#GUPnPDeviceInfo--resource-factory">The “resource-factory” property</a>
 </dt>
-<dt>GUPnPDeviceInfo:udn, <a class="indexterm" href="GUPnPDeviceInfo.html#GUPnPDeviceInfo--udn">The "udn" property</a>
+<dt>GUPnPDeviceInfo:udn, <a class="indexterm" href="GUPnPDeviceInfo.html#GUPnPDeviceInfo--udn">The “udn” property</a>
 </dt>
-<dt>GUPnPDeviceInfo:url-base, <a class="indexterm" href="GUPnPDeviceInfo.html#GUPnPDeviceInfo--url-base">The "url-base" property</a>
+<dt>GUPnPDeviceInfo:url-base, <a class="indexterm" href="GUPnPDeviceInfo.html#GUPnPDeviceInfo--url-base">The “url-base” property</a>
 </dt>
 <dt>GUPnPDeviceProxy, <a class="indexterm" href="GUPnPDeviceProxy.html#GUPnPDeviceProxy-struct">struct GUPnPDeviceProxy</a>
 </dt>
 </dt>
 <dt>GUPnPRootDevice, <a class="indexterm" href="GUPnPRootDevice.html#GUPnPRootDevice-struct">struct GUPnPRootDevice</a>
 </dt>
-<dt>GUPnPRootDevice:available, <a class="indexterm" href="GUPnPRootDevice.html#GUPnPRootDevice--available">The "available" property</a>
+<dt>GUPnPRootDevice:available, <a class="indexterm" href="GUPnPRootDevice.html#GUPnPRootDevice--available">The “available” property</a>
 </dt>
-<dt>GUPnPRootDevice:description-dir, <a class="indexterm" href="GUPnPRootDevice.html#GUPnPRootDevice--description-dir">The "description-dir" property</a>
+<dt>GUPnPRootDevice:description-dir, <a class="indexterm" href="GUPnPRootDevice.html#GUPnPRootDevice--description-dir">The “description-dir” property</a>
 </dt>
-<dt>GUPnPRootDevice:description-doc, <a class="indexterm" href="GUPnPRootDevice.html#GUPnPRootDevice--description-doc">The "description-doc" property</a>
+<dt>GUPnPRootDevice:description-doc, <a class="indexterm" href="GUPnPRootDevice.html#GUPnPRootDevice--description-doc">The “description-doc” property</a>
 </dt>
-<dt>GUPnPRootDevice:description-path, <a class="indexterm" href="GUPnPRootDevice.html#GUPnPRootDevice--description-path">The "description-path" property</a>
+<dt>GUPnPRootDevice:description-path, <a class="indexterm" href="GUPnPRootDevice.html#GUPnPRootDevice--description-path">The “description-path” property</a>
 </dt>
 <dt>GUPnPServerError, <a class="indexterm" href="gupnp-Error-codes.html#GUPnPServerError">enum GUPnPServerError</a>
 </dt>
-<dt>GUPnPService, <a class="indexterm" href="GUPnPService.html#GUPnPService-struct">struct GUPnPService</a>
+<dt>GUPnPService, <a class="indexterm" href="GUPnPService.html#GUPnPService-struct">GUPnPService</a>
 </dt>
-<dt>GUPnPService::action-invoked, <a class="indexterm" href="GUPnPService.html#GUPnPService-action-invoked">The "action-invoked" signal</a>
+<dt>GUPnPService::action-invoked, <a class="indexterm" href="GUPnPService.html#GUPnPService-action-invoked">The “action-invoked” signal</a>
 </dt>
-<dt>GUPnPService::notify-failed, <a class="indexterm" href="GUPnPService.html#GUPnPService-notify-failed">The "notify-failed" signal</a>
+<dt>GUPnPService::notify-failed, <a class="indexterm" href="GUPnPService.html#GUPnPService-notify-failed">The “notify-failed” signal</a>
 </dt>
-<dt>GUPnPService::query-variable, <a class="indexterm" href="GUPnPService.html#GUPnPService-query-variable">The "query-variable" signal</a>
+<dt>GUPnPService::query-variable, <a class="indexterm" href="GUPnPService.html#GUPnPService-query-variable">The “query-variable” signal</a>
 </dt>
-<dt>GUPnPService:root-device, <a class="indexterm" href="GUPnPService.html#GUPnPService--root-device">The "root-device" property</a>
+<dt>GUPnPService:root-device, <a class="indexterm" href="GUPnPService.html#GUPnPService--root-device">The “root-device” property</a>
 </dt>
 <dt>GUPnPServiceAction, <a class="indexterm" href="GUPnPService.html#GUPnPServiceAction-struct">GUPnPServiceAction</a>
 </dt>
 </dt>
 <dt>GUPnPServiceInfo, <a class="indexterm" href="GUPnPServiceInfo.html#GUPnPServiceInfo-struct">struct GUPnPServiceInfo</a>
 </dt>
-<dt>GUPnPServiceInfo:context, <a class="indexterm" href="GUPnPServiceInfo.html#GUPnPServiceInfo--context">The "context" property</a>
+<dt>GUPnPServiceInfo:context, <a class="indexterm" href="GUPnPServiceInfo.html#GUPnPServiceInfo--context">The “context” property</a>
 </dt>
-<dt>GUPnPServiceInfo:document, <a class="indexterm" href="GUPnPServiceInfo.html#GUPnPServiceInfo--document">The "document" property</a>
+<dt>GUPnPServiceInfo:document, <a class="indexterm" href="GUPnPServiceInfo.html#GUPnPServiceInfo--document">The “document” property</a>
 </dt>
-<dt>GUPnPServiceInfo:element, <a class="indexterm" href="GUPnPServiceInfo.html#GUPnPServiceInfo--element">The "element" property</a>
+<dt>GUPnPServiceInfo:element, <a class="indexterm" href="GUPnPServiceInfo.html#GUPnPServiceInfo--element">The “element” property</a>
 </dt>
-<dt>GUPnPServiceInfo:location, <a class="indexterm" href="GUPnPServiceInfo.html#GUPnPServiceInfo--location">The "location" property</a>
+<dt>GUPnPServiceInfo:location, <a class="indexterm" href="GUPnPServiceInfo.html#GUPnPServiceInfo--location">The “location” property</a>
 </dt>
-<dt>GUPnPServiceInfo:service-type, <a class="indexterm" href="GUPnPServiceInfo.html#GUPnPServiceInfo--service-type">The "service-type" property</a>
+<dt>GUPnPServiceInfo:service-type, <a class="indexterm" href="GUPnPServiceInfo.html#GUPnPServiceInfo--service-type">The “service-type” property</a>
 </dt>
-<dt>GUPnPServiceInfo:udn, <a class="indexterm" href="GUPnPServiceInfo.html#GUPnPServiceInfo--udn">The "udn" property</a>
+<dt>GUPnPServiceInfo:udn, <a class="indexterm" href="GUPnPServiceInfo.html#GUPnPServiceInfo--udn">The “udn” property</a>
 </dt>
-<dt>GUPnPServiceInfo:url-base, <a class="indexterm" href="GUPnPServiceInfo.html#GUPnPServiceInfo--url-base">The "url-base" property</a>
+<dt>GUPnPServiceInfo:url-base, <a class="indexterm" href="GUPnPServiceInfo.html#GUPnPServiceInfo--url-base">The “url-base” property</a>
 </dt>
 <dt>GUPnPServiceIntrospection, <a class="indexterm" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection-struct">struct GUPnPServiceIntrospection</a>
 </dt>
-<dt>GUPnPServiceIntrospection:scpd, <a class="indexterm" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection--scpd">The "scpd" property</a>
+<dt>GUPnPServiceIntrospection:scpd, <a class="indexterm" href="gupnp-gupnp-service-introspection.html#GUPnPServiceIntrospection--scpd">The “scpd” property</a>
 </dt>
-<dt>GUPnPServiceIntrospectionCallback, <a class="indexterm" href="GUPnPServiceInfo.html#GUPnPServiceIntrospectionCallback">GUPnPServiceIntrospectionCallback ()</a>
+<dt>GUPnPServiceIntrospectionCallback, <a class="indexterm" href="GUPnPServiceInfo.html#GUPnPServiceIntrospectionCallback">GUPnPServiceIntrospectionCallback ()</a>
 </dt>
 <dt>GUPnPServiceProxy, <a class="indexterm" href="GUPnPServiceProxy.html#GUPnPServiceProxy-struct">struct GUPnPServiceProxy</a>
 </dt>
-<dt>GUPnPServiceProxy::subscription-lost, <a class="indexterm" href="GUPnPServiceProxy.html#GUPnPServiceProxy-subscription-lost">The "subscription-lost" signal</a>
+<dt>GUPnPServiceProxy::subscription-lost, <a class="indexterm" href="GUPnPServiceProxy.html#GUPnPServiceProxy-subscription-lost">The “subscription-lost” signal</a>
 </dt>
-<dt>GUPnPServiceProxy:subscribed, <a class="indexterm" href="GUPnPServiceProxy.html#GUPnPServiceProxy--subscribed">The "subscribed" property</a>
+<dt>GUPnPServiceProxy:subscribed, <a class="indexterm" href="GUPnPServiceProxy.html#GUPnPServiceProxy--subscribed">The “subscribed” property</a>
 </dt>
 <dt>GUPnPServiceProxyAction, <a class="indexterm" href="GUPnPServiceProxy.html#GUPnPServiceProxyAction">GUPnPServiceProxyAction</a>
 </dt>
-<dt>GUPnPServiceProxyActionCallback, <a class="indexterm" href="GUPnPServiceProxy.html#GUPnPServiceProxyActionCallback">GUPnPServiceProxyActionCallback ()</a>
+<dt>GUPnPServiceProxyActionCallback, <a class="indexterm" href="GUPnPServiceProxy.html#GUPnPServiceProxyActionCallback">GUPnPServiceProxyActionCallback ()</a>
 </dt>
-<dt>GUPnPServiceProxyNotifyCallback, <a class="indexterm" href="GUPnPServiceProxy.html#GUPnPServiceProxyNotifyCallback">GUPnPServiceProxyNotifyCallback ()</a>
+<dt>GUPnPServiceProxyNotifyCallback, <a class="indexterm" href="GUPnPServiceProxy.html#GUPnPServiceProxyNotifyCallback">GUPnPServiceProxyNotifyCallback ()</a>
 </dt>
 <dt>GUPnPServiceStateVariableInfo, <a class="indexterm" href="gupnp-gupnp-service-introspection.html#GUPnPServiceStateVariableInfo">GUPnPServiceStateVariableInfo</a>
 </dt>
 <dt>GUPnPWhiteList, <a class="indexterm" href="GUPnPWhiteList.html#GUPnPWhiteList-struct">struct GUPnPWhiteList</a>
 </dt>
+<dt>GUPnPWhiteList:enabled, <a class="indexterm" href="GUPnPWhiteList.html#GUPnPWhiteList--enabled">The “enabled” property</a>
+</dt>
+<dt>GUPnPWhiteList:entries, <a class="indexterm" href="GUPnPWhiteList.html#GUPnPWhiteList--entries">The “entries” property</a>
+</dt>
 <dt>GUPnPXMLDoc, <a class="indexterm" href="GUPnPXMLDoc.html#GUPnPXMLDoc-struct">struct GUPnPXMLDoc</a>
 </dt>
 <dt>GUPnPXMLError, <a class="indexterm" href="gupnp-Error-codes.html#GUPnPXMLError">enum GUPnPXMLError</a>
 </dt>
-<dt>gupnp_context_get_default_language, <a class="indexterm" href="GUPnPContext.html#gupnp-context-get-default-language">gupnp_context_get_default_language ()</a>
+<dt>gupnp_acl_can_sync, <a class="indexterm" href="GUPnPAcl.html#gupnp-acl-can-sync">gupnp_acl_can_sync ()</a>
+</dt>
+<dt>gupnp_acl_is_allowed, <a class="indexterm" href="GUPnPAcl.html#gupnp-acl-is-allowed">gupnp_acl_is_allowed ()</a>
+</dt>
+<dt>gupnp_acl_is_allowed_async, <a class="indexterm" href="GUPnPAcl.html#gupnp-acl-is-allowed-async">gupnp_acl_is_allowed_async ()</a>
+</dt>
+<dt>gupnp_acl_is_allowed_finish, <a class="indexterm" href="GUPnPAcl.html#gupnp-acl-is-allowed-finish">gupnp_acl_is_allowed_finish ()</a>
+</dt>
+<dt>gupnp_context_add_server_handler, <a class="indexterm" href="GUPnPContext.html#gupnp-context-add-server-handler">gupnp_context_add_server_handler ()</a>
 </dt>
-<dt>gupnp_context_get_host_ip, <a class="indexterm" href="GUPnPContext.html#gupnp-context-get-host-ip">gupnp_context_get_host_ip ()</a>
+<dt>gupnp_context_get_acl, <a class="indexterm" href="GUPnPContext.html#gupnp-context-get-acl">gupnp_context_get_acl ()</a>
 </dt>
-<dt>gupnp_context_get_port, <a class="indexterm" href="GUPnPContext.html#gupnp-context-get-port">gupnp_context_get_port ()</a>
+<dt>gupnp_context_get_default_language, <a class="indexterm" href="GUPnPContext.html#gupnp-context-get-default-language">gupnp_context_get_default_language ()</a>
 </dt>
-<dt>gupnp_context_get_server, <a class="indexterm" href="GUPnPContext.html#gupnp-context-get-server">gupnp_context_get_server ()</a>
+<dt>gupnp_context_get_host_ip, <a class="indexterm" href="GUPnPContext.html#gupnp-context-get-host-ip">gupnp_context_get_host_ip ()</a>
 </dt>
-<dt>gupnp_context_get_session, <a class="indexterm" href="GUPnPContext.html#gupnp-context-get-session">gupnp_context_get_session ()</a>
+<dt>gupnp_context_get_port, <a class="indexterm" href="GUPnPContext.html#gupnp-context-get-port">gupnp_context_get_port ()</a>
 </dt>
-<dt>gupnp_context_get_subscription_timeout, <a class="indexterm" href="GUPnPContext.html#gupnp-context-get-subscription-timeout">gupnp_context_get_subscription_timeout ()</a>
+<dt>gupnp_context_get_server, <a class="indexterm" href="GUPnPContext.html#gupnp-context-get-server">gupnp_context_get_server ()</a>
 </dt>
-<dt>gupnp_context_host_path, <a class="indexterm" href="GUPnPContext.html#gupnp-context-host-path">gupnp_context_host_path ()</a>
+<dt>gupnp_context_get_session, <a class="indexterm" href="GUPnPContext.html#gupnp-context-get-session">gupnp_context_get_session ()</a>
 </dt>
-<dt>gupnp_context_host_path_for_agent, <a class="indexterm" href="GUPnPContext.html#gupnp-context-host-path-for-agent">gupnp_context_host_path_for_agent ()</a>
+<dt>gupnp_context_get_subscription_timeout, <a class="indexterm" href="GUPnPContext.html#gupnp-context-get-subscription-timeout">gupnp_context_get_subscription_timeout ()</a>
 </dt>
-<dt>gupnp_context_manager_create, <a class="indexterm" href="GUPnPContextManager.html#gupnp-context-manager-create">gupnp_context_manager_create ()</a>
+<dt>gupnp_context_host_path, <a class="indexterm" href="GUPnPContext.html#gupnp-context-host-path">gupnp_context_host_path ()</a>
 </dt>
-<dt>gupnp_context_manager_get_port, <a class="indexterm" href="GUPnPContextManager.html#gupnp-context-manager-get-port">gupnp_context_manager_get_port ()</a>
+<dt>gupnp_context_host_path_for_agent, <a class="indexterm" href="GUPnPContext.html#gupnp-context-host-path-for-agent">gupnp_context_host_path_for_agent ()</a>
 </dt>
-<dt>gupnp_context_manager_get_white_list, <a class="indexterm" href="GUPnPContextManager.html#gupnp-context-manager-get-white-list">gupnp_context_manager_get_white_list ()</a>
+<dt>gupnp_context_manager_create, <a class="indexterm" href="GUPnPContextManager.html#gupnp-context-manager-create">gupnp_context_manager_create ()</a>
 </dt>
-<dt>gupnp_context_manager_manage_control_point, <a class="indexterm" href="GUPnPContextManager.html#gupnp-context-manager-manage-control-point">gupnp_context_manager_manage_control_point ()</a>
+<dt>gupnp_context_manager_get_port, <a class="indexterm" href="GUPnPContextManager.html#gupnp-context-manager-get-port">gupnp_context_manager_get_port ()</a>
 </dt>
-<dt>gupnp_context_manager_manage_root_device, <a class="indexterm" href="GUPnPContextManager.html#gupnp-context-manager-manage-root-device">gupnp_context_manager_manage_root_device ()</a>
+<dt>gupnp_context_manager_get_white_list, <a class="indexterm" href="GUPnPContextManager.html#gupnp-context-manager-get-white-list">gupnp_context_manager_get_white_list ()</a>
 </dt>
-<dt>gupnp_context_manager_new, <a class="indexterm" href="GUPnPContextManager.html#gupnp-context-manager-new">gupnp_context_manager_new ()</a>
+<dt>gupnp_context_manager_manage_control_point, <a class="indexterm" href="GUPnPContextManager.html#gupnp-context-manager-manage-control-point">gupnp_context_manager_manage_control_point ()</a>
 </dt>
-<dt>gupnp_context_manager_rescan_control_points, <a class="indexterm" href="GUPnPContextManager.html#gupnp-context-manager-rescan-control-points">gupnp_context_manager_rescan_control_points ()</a>
+<dt>gupnp_context_manager_manage_root_device, <a class="indexterm" href="GUPnPContextManager.html#gupnp-context-manager-manage-root-device">gupnp_context_manager_manage_root_device ()</a>
 </dt>
-<dt>gupnp_context_new, <a class="indexterm" href="GUPnPContext.html#gupnp-context-new">gupnp_context_new ()</a>
+<dt>gupnp_context_manager_new, <a class="indexterm" href="GUPnPContextManager.html#gupnp-context-manager-new">gupnp_context_manager_new ()</a>, <a class="indexterm" href="GUPnPContextManager.html#gupnp-context-manager-new">gupnp_context_manager_new ()</a>
 </dt>
-<dt>gupnp_context_set_default_language, <a class="indexterm" href="GUPnPContext.html#gupnp-context-set-default-language">gupnp_context_set_default_language ()</a>
+<dt>gupnp_context_manager_rescan_control_points, <a class="indexterm" href="GUPnPContextManager.html#gupnp-context-manager-rescan-control-points">gupnp_context_manager_rescan_control_points ()</a>
 </dt>
-<dt>gupnp_context_set_subscription_timeout, <a class="indexterm" href="GUPnPContext.html#gupnp-context-set-subscription-timeout">gupnp_context_set_subscription_timeout ()</a>
+<dt>gupnp_context_new, <a class="indexterm" href="GUPnPContext.html#gupnp-context-new">gupnp_context_new ()</a>
 </dt>
-<dt>gupnp_context_unhost_path, <a class="indexterm" href="GUPnPContext.html#gupnp-context-unhost-path">gupnp_context_unhost_path ()</a>
+<dt>gupnp_context_set_acl, <a class="indexterm" href="GUPnPContext.html#gupnp-context-set-acl">gupnp_context_set_acl ()</a>
+</dt>
+<dt>gupnp_context_set_default_language, <a class="indexterm" href="GUPnPContext.html#gupnp-context-set-default-language">gupnp_context_set_default_language ()</a>
+</dt>
+<dt>gupnp_context_set_subscription_timeout, <a class="indexterm" href="GUPnPContext.html#gupnp-context-set-subscription-timeout">gupnp_context_set_subscription_timeout ()</a>
+</dt>
+<dt>gupnp_context_unhost_path, <a class="indexterm" href="GUPnPContext.html#gupnp-context-unhost-path">gupnp_context_unhost_path ()</a>
 </dt>
 <dt>GUPNP_CONTROL_ERROR, <a class="indexterm" href="gupnp-Error-codes.html#GUPNP-CONTROL-ERROR:CAPS">GUPNP_CONTROL_ERROR</a>
 </dt>
-<dt>gupnp_control_point_get_context, <a class="indexterm" href="GUPnPControlPoint.html#gupnp-control-point-get-context">gupnp_control_point_get_context ()</a>
+<dt>gupnp_control_point_get_context, <a class="indexterm" href="GUPnPControlPoint.html#gupnp-control-point-get-context">gupnp_control_point_get_context ()</a>
 </dt>
-<dt>gupnp_control_point_get_resource_factory, <a class="indexterm" href="GUPnPControlPoint.html#gupnp-control-point-get-resource-factory">gupnp_control_point_get_resource_factory ()</a>
+<dt>gupnp_control_point_get_resource_factory, <a class="indexterm" href="GUPnPControlPoint.html#gupnp-control-point-get-resource-factory">gupnp_control_point_get_resource_factory ()</a>
 </dt>
-<dt>gupnp_control_point_list_device_proxies, <a class="indexterm" href="GUPnPControlPoint.html#gupnp-control-point-list-device-proxies">gupnp_control_point_list_device_proxies ()</a>
+<dt>gupnp_control_point_list_device_proxies, <a class="indexterm" href="GUPnPControlPoint.html#gupnp-control-point-list-device-proxies">gupnp_control_point_list_device_proxies ()</a>
 </dt>
-<dt>gupnp_control_point_list_service_proxies, <a class="indexterm" href="GUPnPControlPoint.html#gupnp-control-point-list-service-proxies">gupnp_control_point_list_service_proxies ()</a>
+<dt>gupnp_control_point_list_service_proxies, <a class="indexterm" href="GUPnPControlPoint.html#gupnp-control-point-list-service-proxies">gupnp_control_point_list_service_proxies ()</a>
 </dt>
-<dt>gupnp_control_point_new, <a class="indexterm" href="GUPnPControlPoint.html#gupnp-control-point-new">gupnp_control_point_new ()</a>
+<dt>gupnp_control_point_new, <a class="indexterm" href="GUPnPControlPoint.html#gupnp-control-point-new">gupnp_control_point_new ()</a>
 </dt>
-<dt>gupnp_control_point_new_full, <a class="indexterm" href="GUPnPControlPoint.html#gupnp-control-point-new-full">gupnp_control_point_new_full ()</a>
+<dt>gupnp_control_point_new_full, <a class="indexterm" href="GUPnPControlPoint.html#gupnp-control-point-new-full">gupnp_control_point_new_full ()</a>
 </dt>
-<dt>gupnp_device_info_get_context, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-get-context">gupnp_device_info_get_context ()</a>
+<dt>gupnp_device_info_get_context, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-get-context">gupnp_device_info_get_context ()</a>
 </dt>
-<dt>gupnp_device_info_get_description_value, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-get-description-value">gupnp_device_info_get_description_value ()</a>
+<dt>gupnp_device_info_get_description_value, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-get-description-value">gupnp_device_info_get_description_value ()</a>
 </dt>
-<dt>gupnp_device_info_get_device, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-get-device">gupnp_device_info_get_device ()</a>
+<dt>gupnp_device_info_get_device, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-get-device">gupnp_device_info_get_device ()</a>
 </dt>
-<dt>gupnp_device_info_get_device_type, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-get-device-type">gupnp_device_info_get_device_type ()</a>
+<dt>gupnp_device_info_get_device_type, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-get-device-type">gupnp_device_info_get_device_type ()</a>
 </dt>
-<dt>gupnp_device_info_get_friendly_name, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-get-friendly-name">gupnp_device_info_get_friendly_name ()</a>
+<dt>gupnp_device_info_get_friendly_name, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-get-friendly-name">gupnp_device_info_get_friendly_name ()</a>
 </dt>
-<dt>gupnp_device_info_get_icon_url, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-get-icon-url">gupnp_device_info_get_icon_url ()</a>
+<dt>gupnp_device_info_get_icon_url, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-get-icon-url">gupnp_device_info_get_icon_url ()</a>
 </dt>
-<dt>gupnp_device_info_get_location, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-get-location">gupnp_device_info_get_location ()</a>
+<dt>gupnp_device_info_get_location, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-get-location">gupnp_device_info_get_location ()</a>
 </dt>
-<dt>gupnp_device_info_get_manufacturer, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-get-manufacturer">gupnp_device_info_get_manufacturer ()</a>
+<dt>gupnp_device_info_get_manufacturer, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-get-manufacturer">gupnp_device_info_get_manufacturer ()</a>
 </dt>
-<dt>gupnp_device_info_get_manufacturer_url, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-get-manufacturer-url">gupnp_device_info_get_manufacturer_url ()</a>
+<dt>gupnp_device_info_get_manufacturer_url, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-get-manufacturer-url">gupnp_device_info_get_manufacturer_url ()</a>
 </dt>
-<dt>gupnp_device_info_get_model_description, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-get-model-description">gupnp_device_info_get_model_description ()</a>
+<dt>gupnp_device_info_get_model_description, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-get-model-description">gupnp_device_info_get_model_description ()</a>
 </dt>
-<dt>gupnp_device_info_get_model_name, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-get-model-name">gupnp_device_info_get_model_name ()</a>
+<dt>gupnp_device_info_get_model_name, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-get-model-name">gupnp_device_info_get_model_name ()</a>
 </dt>
-<dt>gupnp_device_info_get_model_number, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-get-model-number">gupnp_device_info_get_model_number ()</a>
+<dt>gupnp_device_info_get_model_number, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-get-model-number">gupnp_device_info_get_model_number ()</a>
 </dt>
-<dt>gupnp_device_info_get_model_url, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-get-model-url">gupnp_device_info_get_model_url ()</a>
+<dt>gupnp_device_info_get_model_url, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-get-model-url">gupnp_device_info_get_model_url ()</a>
 </dt>
-<dt>gupnp_device_info_get_presentation_url, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-get-presentation-url">gupnp_device_info_get_presentation_url ()</a>
+<dt>gupnp_device_info_get_presentation_url, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-get-presentation-url">gupnp_device_info_get_presentation_url ()</a>
 </dt>
-<dt>gupnp_device_info_get_resource_factory, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-get-resource-factory">gupnp_device_info_get_resource_factory ()</a>
+<dt>gupnp_device_info_get_resource_factory, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-get-resource-factory">gupnp_device_info_get_resource_factory ()</a>
 </dt>
-<dt>gupnp_device_info_get_serial_number, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-get-serial-number">gupnp_device_info_get_serial_number ()</a>
+<dt>gupnp_device_info_get_serial_number, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-get-serial-number">gupnp_device_info_get_serial_number ()</a>
 </dt>
-<dt>gupnp_device_info_get_service, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-get-service">gupnp_device_info_get_service ()</a>
+<dt>gupnp_device_info_get_service, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-get-service">gupnp_device_info_get_service ()</a>
 </dt>
-<dt>gupnp_device_info_get_udn, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-get-udn">gupnp_device_info_get_udn ()</a>
+<dt>gupnp_device_info_get_udn, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-get-udn">gupnp_device_info_get_udn ()</a>
 </dt>
-<dt>gupnp_device_info_get_upc, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-get-upc">gupnp_device_info_get_upc ()</a>
+<dt>gupnp_device_info_get_upc, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-get-upc">gupnp_device_info_get_upc ()</a>
 </dt>
-<dt>gupnp_device_info_get_url_base, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-get-url-base">gupnp_device_info_get_url_base ()</a>
+<dt>gupnp_device_info_get_url_base, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-get-url-base">gupnp_device_info_get_url_base ()</a>
 </dt>
-<dt>gupnp_device_info_list_devices, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-list-devices">gupnp_device_info_list_devices ()</a>
+<dt>gupnp_device_info_list_devices, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-list-devices">gupnp_device_info_list_devices ()</a>
 </dt>
-<dt>gupnp_device_info_list_device_types, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-list-device-types">gupnp_device_info_list_device_types ()</a>
+<dt>gupnp_device_info_list_device_types, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-list-device-types">gupnp_device_info_list_device_types ()</a>
 </dt>
-<dt>gupnp_device_info_list_dlna_capabilities, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-list-dlna-capabilities">gupnp_device_info_list_dlna_capabilities ()</a>
+<dt>gupnp_device_info_list_dlna_capabilities, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-list-dlna-capabilities">gupnp_device_info_list_dlna_capabilities ()</a>
 </dt>
-<dt>gupnp_device_info_list_dlna_device_class_identifier, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-list-dlna-device-class-identifier">gupnp_device_info_list_dlna_device_class_identifier ()</a>
+<dt>gupnp_device_info_list_dlna_device_class_identifier, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-list-dlna-device-class-identifier">gupnp_device_info_list_dlna_device_class_identifier ()</a>
 </dt>
-<dt>gupnp_device_info_list_services, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-list-services">gupnp_device_info_list_services ()</a>
+<dt>gupnp_device_info_list_services, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-list-services">gupnp_device_info_list_services ()</a>
 </dt>
-<dt>gupnp_device_info_list_service_types, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-list-service-types">gupnp_device_info_list_service_types ()</a>
+<dt>gupnp_device_info_list_service_types, <a class="indexterm" href="GUPnPDeviceInfo.html#gupnp-device-info-list-service-types">gupnp_device_info_list_service_types ()</a>
 </dt>
 <dt>GUPNP_EVENTING_ERROR, <a class="indexterm" href="gupnp-Error-codes.html#GUPNP-EVENTING-ERROR:CAPS">GUPNP_EVENTING_ERROR</a>
 </dt>
-<dt>gupnp_resource_factory_get_default, <a class="indexterm" href="GUPnPResourceFactory.html#gupnp-resource-factory-get-default">gupnp_resource_factory_get_default ()</a>
+<dt>gupnp_resource_factory_get_default, <a class="indexterm" href="GUPnPResourceFactory.html#gupnp-resource-factory-get-default">gupnp_resource_factory_get_default ()</a>
 </dt>
-<dt>gupnp_resource_factory_new, <a class="indexterm" href="GUPnPResourceFactory.html#gupnp-resource-factory-new">gupnp_resource_factory_new ()</a>
+<dt>gupnp_resource_factory_new, <a class="indexterm" href="GUPnPResourceFactory.html#gupnp-resource-factory-new">gupnp_resource_factory_new ()</a>
 </dt>
-<dt>gupnp_resource_factory_register_resource_proxy_type, <a class="indexterm" href="GUPnPResourceFactory.html#gupnp-resource-factory-register-resource-proxy-type">gupnp_resource_factory_register_resource_proxy_type ()</a>
+<dt>gupnp_resource_factory_register_resource_proxy_type, <a class="indexterm" href="GUPnPResourceFactory.html#gupnp-resource-factory-register-resource-proxy-type">gupnp_resource_factory_register_resource_proxy_type ()</a>
 </dt>
-<dt>gupnp_resource_factory_register_resource_type, <a class="indexterm" href="GUPnPResourceFactory.html#gupnp-resource-factory-register-resource-type">gupnp_resource_factory_register_resource_type ()</a>
+<dt>gupnp_resource_factory_register_resource_type, <a class="indexterm" href="GUPnPResourceFactory.html#gupnp-resource-factory-register-resource-type">gupnp_resource_factory_register_resource_type ()</a>
 </dt>
-<dt>gupnp_resource_factory_unregister_resource_proxy_type, <a class="indexterm" href="GUPnPResourceFactory.html#gupnp-resource-factory-unregister-resource-proxy-type">gupnp_resource_factory_unregister_resource_proxy_type ()</a>
+<dt>gupnp_resource_factory_unregister_resource_proxy_type, <a class="indexterm" href="GUPnPResourceFactory.html#gupnp-resource-factory-unregister-resource-proxy-type">gupnp_resource_factory_unregister_resource_proxy_type ()</a>
 </dt>
-<dt>gupnp_resource_factory_unregister_resource_type, <a class="indexterm" href="GUPnPResourceFactory.html#gupnp-resource-factory-unregister-resource-type">gupnp_resource_factory_unregister_resource_type ()</a>
+<dt>gupnp_resource_factory_unregister_resource_type, <a class="indexterm" href="GUPnPResourceFactory.html#gupnp-resource-factory-unregister-resource-type">gupnp_resource_factory_unregister_resource_type ()</a>
 </dt>
-<dt>gupnp_root_device_get_available, <a class="indexterm" href="GUPnPRootDevice.html#gupnp-root-device-get-available">gupnp_root_device_get_available ()</a>
+<dt>gupnp_root_device_get_available, <a class="indexterm" href="GUPnPRootDevice.html#gupnp-root-device-get-available">gupnp_root_device_get_available ()</a>
 </dt>
-<dt>gupnp_root_device_get_description_dir, <a class="indexterm" href="GUPnPRootDevice.html#gupnp-root-device-get-description-dir">gupnp_root_device_get_description_dir ()</a>
+<dt>gupnp_root_device_get_description_dir, <a class="indexterm" href="GUPnPRootDevice.html#gupnp-root-device-get-description-dir">gupnp_root_device_get_description_dir ()</a>
 </dt>
-<dt>gupnp_root_device_get_description_path, <a class="indexterm" href="GUPnPRootDevice.html#gupnp-root-device-get-description-path">gupnp_root_device_get_description_path ()</a>
+<dt>gupnp_root_device_get_description_path, <a class="indexterm" href="GUPnPRootDevice.html#gupnp-root-device-get-description-path">gupnp_root_device_get_description_path ()</a>
 </dt>
-<dt>gupnp_root_device_get_relative_location, <a class="indexterm" href="GUPnPRootDevice.html#gupnp-root-device-get-relative-location">gupnp_root_device_get_relative_location ()</a>
+<dt>gupnp_root_device_get_relative_location, <a class="indexterm" href="GUPnPRootDevice.html#gupnp-root-device-get-relative-location">gupnp_root_device_get_relative_location ()</a>
 </dt>
-<dt>gupnp_root_device_get_ssdp_resource_group, <a class="indexterm" href="GUPnPRootDevice.html#gupnp-root-device-get-ssdp-resource-group">gupnp_root_device_get_ssdp_resource_group ()</a>
+<dt>gupnp_root_device_get_ssdp_resource_group, <a class="indexterm" href="GUPnPRootDevice.html#gupnp-root-device-get-ssdp-resource-group">gupnp_root_device_get_ssdp_resource_group ()</a>
 </dt>
-<dt>gupnp_root_device_new, <a class="indexterm" href="GUPnPRootDevice.html#gupnp-root-device-new">gupnp_root_device_new ()</a>
+<dt>gupnp_root_device_new, <a class="indexterm" href="GUPnPRootDevice.html#gupnp-root-device-new">gupnp_root_device_new ()</a>
 </dt>
-<dt>gupnp_root_device_new_full, <a class="indexterm" href="GUPnPRootDevice.html#gupnp-root-device-new-full">gupnp_root_device_new_full ()</a>
+<dt>gupnp_root_device_new_full, <a class="indexterm" href="GUPnPRootDevice.html#gupnp-root-device-new-full">gupnp_root_device_new_full ()</a>
 </dt>
-<dt>gupnp_root_device_set_available, <a class="indexterm" href="GUPnPRootDevice.html#gupnp-root-device-set-available">gupnp_root_device_set_available ()</a>
+<dt>gupnp_root_device_set_available, <a class="indexterm" href="GUPnPRootDevice.html#gupnp-root-device-set-available">gupnp_root_device_set_available ()</a>
 </dt>
 <dt>GUPNP_SERVER_ERROR, <a class="indexterm" href="gupnp-Error-codes.html#GUPNP-SERVER-ERROR:CAPS">GUPNP_SERVER_ERROR</a>
 </dt>
-<dt>gupnp_service_action_get, <a class="indexterm" href="GUPnPService.html#gupnp-service-action-get">gupnp_service_action_get ()</a>
+<dt>gupnp_service_action_get, <a class="indexterm" href="GUPnPService.html#gupnp-service-action-get">gupnp_service_action_get ()</a>
+</dt>
+<dt>gupnp_service_action_get_argument_count, <a class="indexterm" href="GUPnPService.html#gupnp-service-action-get-argument-count">gupnp_service_action_get_argument_count ()</a>
 </dt>
-<dt>gupnp_service_action_get_argument_count, <a class="indexterm" href="GUPnPService.html#gupnp-service-action-get-argument-count">gupnp_service_action_get_argument_count ()</a>
+<dt>gupnp_service_action_get_gvalue, <a class="indexterm" href="GUPnPService.html#gupnp-service-action-get-gvalue">gupnp_service_action_get_gvalue ()</a>
 </dt>
-<dt>gupnp_service_action_get_gvalue, <a class="indexterm" href="GUPnPService.html#gupnp-service-action-get-gvalue">gupnp_service_action_get_gvalue ()</a>
+<dt>gupnp_service_action_get_locales, <a class="indexterm" href="GUPnPService.html#gupnp-service-action-get-locales">gupnp_service_action_get_locales ()</a>
 </dt>
-<dt>gupnp_service_action_get_locales, <a class="indexterm" href="GUPnPService.html#gupnp-service-action-get-locales">gupnp_service_action_get_locales ()</a>
+<dt>gupnp_service_action_get_message, <a class="indexterm" href="GUPnPService.html#gupnp-service-action-get-message">gupnp_service_action_get_message ()</a>
 </dt>
-<dt>gupnp_service_action_get_message, <a class="indexterm" href="GUPnPService.html#gupnp-service-action-get-message">gupnp_service_action_get_message ()</a>
+<dt>gupnp_service_action_get_name, <a class="indexterm" href="GUPnPService.html#gupnp-service-action-get-name">gupnp_service_action_get_name ()</a>
 </dt>
-<dt>gupnp_service_action_get_name, <a class="indexterm" href="GUPnPService.html#gupnp-service-action-get-name">gupnp_service_action_get_name ()</a>
+<dt>gupnp_service_action_get_valist, <a class="indexterm" href="GUPnPService.html#gupnp-service-action-get-valist">gupnp_service_action_get_valist ()</a>
 </dt>
-<dt>gupnp_service_action_get_valist, <a class="indexterm" href="GUPnPService.html#gupnp-service-action-get-valist">gupnp_service_action_get_valist ()</a>
+<dt>gupnp_service_action_get_value, <a class="indexterm" href="GUPnPService.html#gupnp-service-action-get-value">gupnp_service_action_get_value ()</a>
 </dt>
-<dt>gupnp_service_action_get_value, <a class="indexterm" href="GUPnPService.html#gupnp-service-action-get-value">gupnp_service_action_get_value ()</a>
+<dt>gupnp_service_action_get_values, <a class="indexterm" href="GUPnPService.html#gupnp-service-action-get-values">gupnp_service_action_get_values ()</a>
 </dt>
-<dt>gupnp_service_action_get_values, <a class="indexterm" href="GUPnPService.html#gupnp-service-action-get-values">gupnp_service_action_get_values ()</a>
+<dt>gupnp_service_action_return, <a class="indexterm" href="GUPnPService.html#gupnp-service-action-return">gupnp_service_action_return ()</a>
 </dt>
-<dt>gupnp_service_action_return, <a class="indexterm" href="GUPnPService.html#gupnp-service-action-return">gupnp_service_action_return ()</a>
+<dt>gupnp_service_action_return_error, <a class="indexterm" href="GUPnPService.html#gupnp-service-action-return-error">gupnp_service_action_return_error ()</a>
 </dt>
-<dt>gupnp_service_action_return_error, <a class="indexterm" href="GUPnPService.html#gupnp-service-action-return-error">gupnp_service_action_return_error ()</a>
+<dt>gupnp_service_action_set, <a class="indexterm" href="GUPnPService.html#gupnp-service-action-set">gupnp_service_action_set ()</a>
 </dt>
-<dt>gupnp_service_action_set, <a class="indexterm" href="GUPnPService.html#gupnp-service-action-set">gupnp_service_action_set ()</a>
+<dt>gupnp_service_action_set_valist, <a class="indexterm" href="GUPnPService.html#gupnp-service-action-set-valist">gupnp_service_action_set_valist ()</a>
 </dt>
-<dt>gupnp_service_action_set_valist, <a class="indexterm" href="GUPnPService.html#gupnp-service-action-set-valist">gupnp_service_action_set_valist ()</a>
+<dt>gupnp_service_action_set_value, <a class="indexterm" href="GUPnPService.html#gupnp-service-action-set-value">gupnp_service_action_set_value ()</a>
 </dt>
-<dt>gupnp_service_action_set_value, <a class="indexterm" href="GUPnPService.html#gupnp-service-action-set-value">gupnp_service_action_set_value ()</a>
+<dt>gupnp_service_action_set_values, <a class="indexterm" href="GUPnPService.html#gupnp-service-action-set-values">gupnp_service_action_set_values ()</a>
 </dt>
-<dt>gupnp_service_action_set_values, <a class="indexterm" href="GUPnPService.html#gupnp-service-action-set-values">gupnp_service_action_set_values ()</a>
+<dt>gupnp_service_freeze_notify, <a class="indexterm" href="GUPnPService.html#gupnp-service-freeze-notify">gupnp_service_freeze_notify ()</a>
 </dt>
-<dt>gupnp_service_freeze_notify, <a class="indexterm" href="GUPnPService.html#gupnp-service-freeze-notify">gupnp_service_freeze_notify ()</a>
+<dt>gupnp_service_info_get_context, <a class="indexterm" href="GUPnPServiceInfo.html#gupnp-service-info-get-context">gupnp_service_info_get_context ()</a>
 </dt>
-<dt>gupnp_service_info_get_context, <a class="indexterm" href="GUPnPServiceInfo.html#gupnp-service-info-get-context">gupnp_service_info_get_context ()</a>
+<dt>gupnp_service_info_get_control_url, <a class="indexterm" href="GUPnPServiceInfo.html#gupnp-service-info-get-control-url">gupnp_service_info_get_control_url ()</a>
 </dt>
-<dt>gupnp_service_info_get_control_url, <a class="indexterm" href="GUPnPServiceInfo.html#gupnp-service-info-get-control-url">gupnp_service_info_get_control_url ()</a>
+<dt>gupnp_service_info_get_event_subscription_url, <a class="indexterm" href="GUPnPServiceInfo.html#gupnp-service-info-get-event-subscription-url">gupnp_service_info_get_event_subscription_url ()</a>
 </dt>
-<dt>gupnp_service_info_get_event_subscription_url, <a class="indexterm" href="GUPnPServiceInfo.html#gupnp-service-info-get-event-subscription-url">gupnp_service_info_get_event_subscription_url ()</a>
+<dt>gupnp_service_info_get_id, <a class="indexterm" href="GUPnPServiceInfo.html#gupnp-service-info-get-id">gupnp_service_info_get_id ()</a>
 </dt>
-<dt>gupnp_service_info_get_id, <a class="indexterm" href="GUPnPServiceInfo.html#gupnp-service-info-get-id">gupnp_service_info_get_id ()</a>
+<dt>gupnp_service_info_get_introspection, <a class="indexterm" href="GUPnPServiceInfo.html#gupnp-service-info-get-introspection">gupnp_service_info_get_introspection ()</a>
 </dt>
-<dt>gupnp_service_info_get_introspection, <a class="indexterm" href="GUPnPServiceInfo.html#gupnp-service-info-get-introspection">gupnp_service_info_get_introspection ()</a>
+<dt>gupnp_service_info_get_introspection_async, <a class="indexterm" href="GUPnPServiceInfo.html#gupnp-service-info-get-introspection-async">gupnp_service_info_get_introspection_async ()</a>
 </dt>
-<dt>gupnp_service_info_get_introspection_async, <a class="indexterm" href="GUPnPServiceInfo.html#gupnp-service-info-get-introspection-async">gupnp_service_info_get_introspection_async ()</a>
+<dt>gupnp_service_info_get_introspection_async_full, <a class="indexterm" href="GUPnPServiceInfo.html#gupnp-service-info-get-introspection-async-full">gupnp_service_info_get_introspection_async_full ()</a>
 </dt>
-<dt>gupnp_service_info_get_location, <a class="indexterm" href="GUPnPServiceInfo.html#gupnp-service-info-get-location">gupnp_service_info_get_location ()</a>
+<dt>gupnp_service_info_get_location, <a class="indexterm" href="GUPnPServiceInfo.html#gupnp-service-info-get-location">gupnp_service_info_get_location ()</a>
 </dt>
-<dt>gupnp_service_info_get_scpd_url, <a class="indexterm" href="GUPnPServiceInfo.html#gupnp-service-info-get-scpd-url">gupnp_service_info_get_scpd_url ()</a>
+<dt>gupnp_service_info_get_scpd_url, <a class="indexterm" href="GUPnPServiceInfo.html#gupnp-service-info-get-scpd-url">gupnp_service_info_get_scpd_url ()</a>
 </dt>
-<dt>gupnp_service_info_get_service_type, <a class="indexterm" href="GUPnPServiceInfo.html#gupnp-service-info-get-service-type">gupnp_service_info_get_service_type ()</a>
+<dt>gupnp_service_info_get_service_type, <a class="indexterm" href="GUPnPServiceInfo.html#gupnp-service-info-get-service-type">gupnp_service_info_get_service_type ()</a>
 </dt>
-<dt>gupnp_service_info_get_udn, <a class="indexterm" href="GUPnPServiceInfo.html#gupnp-service-info-get-udn">gupnp_service_info_get_udn ()</a>
+<dt>gupnp_service_info_get_udn, <a class="indexterm" href="GUPnPServiceInfo.html#gupnp-service-info-get-udn">gupnp_service_info_get_udn ()</a>
 </dt>
-<dt>gupnp_service_info_get_url_base, <a class="indexterm" href="GUPnPServiceInfo.html#gupnp-service-info-get-url-base">gupnp_service_info_get_url_base ()</a>
+<dt>gupnp_service_info_get_url_base, <a class="indexterm" href="GUPnPServiceInfo.html#gupnp-service-info-get-url-base">gupnp_service_info_get_url_base ()</a>
 </dt>
-<dt>gupnp_service_introspection_get_action, <a class="indexterm" href="gupnp-gupnp-service-introspection.html#gupnp-service-introspection-get-action">gupnp_service_introspection_get_action ()</a>
+<dt>gupnp_service_introspection_get_action, <a class="indexterm" href="gupnp-gupnp-service-introspection.html#gupnp-service-introspection-get-action">gupnp_service_introspection_get_action ()</a>
 </dt>
-<dt>gupnp_service_introspection_get_state_variable, <a class="indexterm" href="gupnp-gupnp-service-introspection.html#gupnp-service-introspection-get-state-variable">gupnp_service_introspection_get_state_variable ()</a>
+<dt>gupnp_service_introspection_get_state_variable, <a class="indexterm" href="gupnp-gupnp-service-introspection.html#gupnp-service-introspection-get-state-variable">gupnp_service_introspection_get_state_variable ()</a>
 </dt>
-<dt>gupnp_service_introspection_list_actions, <a class="indexterm" href="gupnp-gupnp-service-introspection.html#gupnp-service-introspection-list-actions">gupnp_service_introspection_list_actions ()</a>
+<dt>gupnp_service_introspection_list_actions, <a class="indexterm" href="gupnp-gupnp-service-introspection.html#gupnp-service-introspection-list-actions">gupnp_service_introspection_list_actions ()</a>
 </dt>
-<dt>gupnp_service_introspection_list_action_names, <a class="indexterm" href="gupnp-gupnp-service-introspection.html#gupnp-service-introspection-list-action-names">gupnp_service_introspection_list_action_names ()</a>
+<dt>gupnp_service_introspection_list_action_names, <a class="indexterm" href="gupnp-gupnp-service-introspection.html#gupnp-service-introspection-list-action-names">gupnp_service_introspection_list_action_names ()</a>
 </dt>
-<dt>gupnp_service_introspection_list_state_variables, <a class="indexterm" href="gupnp-gupnp-service-introspection.html#gupnp-service-introspection-list-state-variables">gupnp_service_introspection_list_state_variables ()</a>
+<dt>gupnp_service_introspection_list_state_variables, <a class="indexterm" href="gupnp-gupnp-service-introspection.html#gupnp-service-introspection-list-state-variables">gupnp_service_introspection_list_state_variables ()</a>
 </dt>
-<dt>gupnp_service_introspection_list_state_variable_names, <a class="indexterm" href="gupnp-gupnp-service-introspection.html#gupnp-service-introspection-list-state-variable-names">gupnp_service_introspection_list_state_variable_names ()</a>
+<dt>gupnp_service_introspection_list_state_variable_names, <a class="indexterm" href="gupnp-gupnp-service-introspection.html#gupnp-service-introspection-list-state-variable-names">gupnp_service_introspection_list_state_variable_names ()</a>
 </dt>
-<dt>gupnp_service_notify, <a class="indexterm" href="GUPnPService.html#gupnp-service-notify">gupnp_service_notify ()</a>
+<dt>gupnp_service_notify, <a class="indexterm" href="GUPnPService.html#gupnp-service-notify">gupnp_service_notify ()</a>
 </dt>
-<dt>gupnp_service_notify_valist, <a class="indexterm" href="GUPnPService.html#gupnp-service-notify-valist">gupnp_service_notify_valist ()</a>
+<dt>gupnp_service_notify_valist, <a class="indexterm" href="GUPnPService.html#gupnp-service-notify-valist">gupnp_service_notify_valist ()</a>
 </dt>
-<dt>gupnp_service_notify_value, <a class="indexterm" href="GUPnPService.html#gupnp-service-notify-value">gupnp_service_notify_value ()</a>
+<dt>gupnp_service_notify_value, <a class="indexterm" href="GUPnPService.html#gupnp-service-notify-value">gupnp_service_notify_value ()</a>
 </dt>
-<dt>gupnp_service_proxy_add_notify, <a class="indexterm" href="GUPnPServiceProxy.html#gupnp-service-proxy-add-notify">gupnp_service_proxy_add_notify ()</a>
+<dt>gupnp_service_proxy_add_notify, <a class="indexterm" href="GUPnPServiceProxy.html#gupnp-service-proxy-add-notify">gupnp_service_proxy_add_notify ()</a>
 </dt>
-<dt>gupnp_service_proxy_begin_action, <a class="indexterm" href="GUPnPServiceProxy.html#gupnp-service-proxy-begin-action">gupnp_service_proxy_begin_action ()</a>
+<dt>gupnp_service_proxy_add_notify_full, <a class="indexterm" href="GUPnPServiceProxy.html#gupnp-service-proxy-add-notify-full">gupnp_service_proxy_add_notify_full ()</a>
 </dt>
-<dt>gupnp_service_proxy_begin_action_hash, <a class="indexterm" href="GUPnPServiceProxy.html#gupnp-service-proxy-begin-action-hash">gupnp_service_proxy_begin_action_hash ()</a>
+<dt>gupnp_service_proxy_add_raw_notify, <a class="indexterm" href="GUPnPServiceProxy.html#gupnp-service-proxy-add-raw-notify">gupnp_service_proxy_add_raw_notify ()</a>
 </dt>
-<dt>gupnp_service_proxy_begin_action_list, <a class="indexterm" href="GUPnPServiceProxy.html#gupnp-service-proxy-begin-action-list">gupnp_service_proxy_begin_action_list ()</a>
+<dt>gupnp_service_proxy_begin_action, <a class="indexterm" href="GUPnPServiceProxy.html#gupnp-service-proxy-begin-action">gupnp_service_proxy_begin_action ()</a>
 </dt>
-<dt>gupnp_service_proxy_begin_action_valist, <a class="indexterm" href="GUPnPServiceProxy.html#gupnp-service-proxy-begin-action-valist">gupnp_service_proxy_begin_action_valist ()</a>
+<dt>gupnp_service_proxy_begin_action_hash, <a class="indexterm" href="GUPnPServiceProxy.html#gupnp-service-proxy-begin-action-hash">gupnp_service_proxy_begin_action_hash ()</a>
 </dt>
-<dt>gupnp_service_proxy_cancel_action, <a class="indexterm" href="GUPnPServiceProxy.html#gupnp-service-proxy-cancel-action">gupnp_service_proxy_cancel_action ()</a>
+<dt>gupnp_service_proxy_begin_action_list, <a class="indexterm" href="GUPnPServiceProxy.html#gupnp-service-proxy-begin-action-list">gupnp_service_proxy_begin_action_list ()</a>
 </dt>
-<dt>gupnp_service_proxy_end_action, <a class="indexterm" href="GUPnPServiceProxy.html#gupnp-service-proxy-end-action">gupnp_service_proxy_end_action ()</a>
+<dt>gupnp_service_proxy_begin_action_valist, <a class="indexterm" href="GUPnPServiceProxy.html#gupnp-service-proxy-begin-action-valist">gupnp_service_proxy_begin_action_valist ()</a>
 </dt>
-<dt>gupnp_service_proxy_end_action_hash, <a class="indexterm" href="GUPnPServiceProxy.html#gupnp-service-proxy-end-action-hash">gupnp_service_proxy_end_action_hash ()</a>
+<dt>gupnp_service_proxy_cancel_action, <a class="indexterm" href="GUPnPServiceProxy.html#gupnp-service-proxy-cancel-action">gupnp_service_proxy_cancel_action ()</a>
 </dt>
-<dt>gupnp_service_proxy_end_action_list, <a class="indexterm" href="GUPnPServiceProxy.html#gupnp-service-proxy-end-action-list">gupnp_service_proxy_end_action_list ()</a>
+<dt>gupnp_service_proxy_end_action, <a class="indexterm" href="GUPnPServiceProxy.html#gupnp-service-proxy-end-action">gupnp_service_proxy_end_action ()</a>
 </dt>
-<dt>gupnp_service_proxy_end_action_valist, <a class="indexterm" href="GUPnPServiceProxy.html#gupnp-service-proxy-end-action-valist">gupnp_service_proxy_end_action_valist ()</a>
+<dt>gupnp_service_proxy_end_action_hash, <a class="indexterm" href="GUPnPServiceProxy.html#gupnp-service-proxy-end-action-hash">gupnp_service_proxy_end_action_hash ()</a>
 </dt>
-<dt>gupnp_service_proxy_get_subscribed, <a class="indexterm" href="GUPnPServiceProxy.html#gupnp-service-proxy-get-subscribed">gupnp_service_proxy_get_subscribed ()</a>
+<dt>gupnp_service_proxy_end_action_list, <a class="indexterm" href="GUPnPServiceProxy.html#gupnp-service-proxy-end-action-list">gupnp_service_proxy_end_action_list ()</a>
 </dt>
-<dt>gupnp_service_proxy_remove_notify, <a class="indexterm" href="GUPnPServiceProxy.html#gupnp-service-proxy-remove-notify">gupnp_service_proxy_remove_notify ()</a>
+<dt>gupnp_service_proxy_end_action_valist, <a class="indexterm" href="GUPnPServiceProxy.html#gupnp-service-proxy-end-action-valist">gupnp_service_proxy_end_action_valist ()</a>
 </dt>
-<dt>gupnp_service_proxy_send_action, <a class="indexterm" href="GUPnPServiceProxy.html#gupnp-service-proxy-send-action">gupnp_service_proxy_send_action ()</a>
+<dt>gupnp_service_proxy_get_subscribed, <a class="indexterm" href="GUPnPServiceProxy.html#gupnp-service-proxy-get-subscribed">gupnp_service_proxy_get_subscribed ()</a>
 </dt>
-<dt>gupnp_service_proxy_send_action_hash, <a class="indexterm" href="GUPnPServiceProxy.html#gupnp-service-proxy-send-action-hash">gupnp_service_proxy_send_action_hash ()</a>
+<dt>gupnp_service_proxy_remove_notify, <a class="indexterm" href="GUPnPServiceProxy.html#gupnp-service-proxy-remove-notify">gupnp_service_proxy_remove_notify ()</a>
 </dt>
-<dt>gupnp_service_proxy_send_action_list, <a class="indexterm" href="GUPnPServiceProxy.html#gupnp-service-proxy-send-action-list">gupnp_service_proxy_send_action_list ()</a>
+<dt>gupnp_service_proxy_remove_raw_notify, <a class="indexterm" href="GUPnPServiceProxy.html#gupnp-service-proxy-remove-raw-notify">gupnp_service_proxy_remove_raw_notify ()</a>
 </dt>
-<dt>gupnp_service_proxy_send_action_valist, <a class="indexterm" href="GUPnPServiceProxy.html#gupnp-service-proxy-send-action-valist">gupnp_service_proxy_send_action_valist ()</a>
+<dt>gupnp_service_proxy_send_action, <a class="indexterm" href="GUPnPServiceProxy.html#gupnp-service-proxy-send-action">gupnp_service_proxy_send_action ()</a>
 </dt>
-<dt>gupnp_service_proxy_set_subscribed, <a class="indexterm" href="GUPnPServiceProxy.html#gupnp-service-proxy-set-subscribed">gupnp_service_proxy_set_subscribed ()</a>
+<dt>gupnp_service_proxy_send_action_hash, <a class="indexterm" href="GUPnPServiceProxy.html#gupnp-service-proxy-send-action-hash">gupnp_service_proxy_send_action_hash ()</a>
 </dt>
-<dt>gupnp_service_signals_autoconnect, <a class="indexterm" href="GUPnPService.html#gupnp-service-signals-autoconnect">gupnp_service_signals_autoconnect ()</a>
+<dt>gupnp_service_proxy_send_action_list, <a class="indexterm" href="GUPnPServiceProxy.html#gupnp-service-proxy-send-action-list">gupnp_service_proxy_send_action_list ()</a>
 </dt>
-<dt>gupnp_service_thaw_notify, <a class="indexterm" href="GUPnPService.html#gupnp-service-thaw-notify">gupnp_service_thaw_notify ()</a>
+<dt>gupnp_service_proxy_send_action_valist, <a class="indexterm" href="GUPnPServiceProxy.html#gupnp-service-proxy-send-action-valist">gupnp_service_proxy_send_action_valist ()</a>
+</dt>
+<dt>gupnp_service_proxy_set_subscribed, <a class="indexterm" href="GUPnPServiceProxy.html#gupnp-service-proxy-set-subscribed">gupnp_service_proxy_set_subscribed ()</a>
+</dt>
+<dt>gupnp_service_signals_autoconnect, <a class="indexterm" href="GUPnPService.html#gupnp-service-signals-autoconnect">gupnp_service_signals_autoconnect ()</a>
+</dt>
+<dt>gupnp_service_thaw_notify, <a class="indexterm" href="GUPnPService.html#gupnp-service-thaw-notify">gupnp_service_thaw_notify ()</a>
 </dt>
 <dt>GUPNP_TYPE_BIN_BASE64, <a class="indexterm" href="gupnp-Special-UPnP-types.html#GUPNP-TYPE-BIN-BASE64:CAPS">GUPNP_TYPE_BIN_BASE64</a>
 </dt>
 </dt>
 <dt>GUPNP_TYPE_UUID, <a class="indexterm" href="gupnp-Special-UPnP-types.html#GUPNP-TYPE-UUID:CAPS">GUPNP_TYPE_UUID</a>
 </dt>
-<dt>gupnp_white_list_add_entry, <a class="indexterm" href="GUPnPWhiteList.html#gupnp-white-list-add-entry">gupnp_white_list_add_entry ()</a>
+<dt>gupnp_white_list_add_entry, <a class="indexterm" href="GUPnPWhiteList.html#gupnp-white-list-add-entry">gupnp_white_list_add_entry ()</a>
+</dt>
+<dt>gupnp_white_list_add_entryv, <a class="indexterm" href="GUPnPWhiteList.html#gupnp-white-list-add-entryv">gupnp_white_list_add_entryv ()</a>
 </dt>
-<dt>gupnp_white_list_check_context, <a class="indexterm" href="GUPnPWhiteList.html#gupnp-white-list-check-context">gupnp_white_list_check_context ()</a>
+<dt>gupnp_white_list_check_context, <a class="indexterm" href="GUPnPWhiteList.html#gupnp-white-list-check-context">gupnp_white_list_check_context ()</a>
 </dt>
-<dt>gupnp_white_list_clear, <a class="indexterm" href="GUPnPWhiteList.html#gupnp-white-list-clear">gupnp_white_list_clear ()</a>
+<dt>gupnp_white_list_clear, <a class="indexterm" href="GUPnPWhiteList.html#gupnp-white-list-clear">gupnp_white_list_clear ()</a>
 </dt>
-<dt>gupnp_white_list_get_enabled, <a class="indexterm" href="GUPnPWhiteList.html#gupnp-white-list-get-enabled">gupnp_white_list_get_enabled ()</a>
+<dt>gupnp_white_list_get_enabled, <a class="indexterm" href="GUPnPWhiteList.html#gupnp-white-list-get-enabled">gupnp_white_list_get_enabled ()</a>
 </dt>
-<dt>gupnp_white_list_get_entries, <a class="indexterm" href="GUPnPWhiteList.html#gupnp-white-list-get-entries">gupnp_white_list_get_entries ()</a>
+<dt>gupnp_white_list_get_entries, <a class="indexterm" href="GUPnPWhiteList.html#gupnp-white-list-get-entries">gupnp_white_list_get_entries ()</a>
 </dt>
-<dt>gupnp_white_list_is_empty, <a class="indexterm" href="GUPnPWhiteList.html#gupnp-white-list-is-empty">gupnp_white_list_is_empty ()</a>
+<dt>gupnp_white_list_is_empty, <a class="indexterm" href="GUPnPWhiteList.html#gupnp-white-list-is-empty">gupnp_white_list_is_empty ()</a>
 </dt>
-<dt>gupnp_white_list_new, <a class="indexterm" href="GUPnPWhiteList.html#gupnp-white-list-new">gupnp_white_list_new ()</a>
+<dt>gupnp_white_list_new, <a class="indexterm" href="GUPnPWhiteList.html#gupnp-white-list-new">gupnp_white_list_new ()</a>
 </dt>
-<dt>gupnp_white_list_remove_entry, <a class="indexterm" href="GUPnPWhiteList.html#gupnp-white-list-remove-entry">gupnp_white_list_remove_entry ()</a>
+<dt>gupnp_white_list_remove_entry, <a class="indexterm" href="GUPnPWhiteList.html#gupnp-white-list-remove-entry">gupnp_white_list_remove_entry ()</a>
 </dt>
-<dt>gupnp_white_list_set_enabled, <a class="indexterm" href="GUPnPWhiteList.html#gupnp-white-list-set-enabled">gupnp_white_list_set_enabled ()</a>
+<dt>gupnp_white_list_set_enabled, <a class="indexterm" href="GUPnPWhiteList.html#gupnp-white-list-set-enabled">gupnp_white_list_set_enabled ()</a>
 </dt>
-<dt>gupnp_xml_doc_new, <a class="indexterm" href="GUPnPXMLDoc.html#gupnp-xml-doc-new">gupnp_xml_doc_new ()</a>
+<dt>gupnp_xml_doc_new, <a class="indexterm" href="GUPnPXMLDoc.html#gupnp-xml-doc-new">gupnp_xml_doc_new ()</a>
 </dt>
-<dt>gupnp_xml_doc_new_from_path, <a class="indexterm" href="GUPnPXMLDoc.html#gupnp-xml-doc-new-from-path">gupnp_xml_doc_new_from_path ()</a>
+<dt>gupnp_xml_doc_new_from_path, <a class="indexterm" href="GUPnPXMLDoc.html#gupnp-xml-doc-new-from-path">gupnp_xml_doc_new_from_path ()</a>
 </dt>
 <dt>GUPNP_XML_ERROR, <a class="indexterm" href="gupnp-Error-codes.html#GUPNP-XML-ERROR:CAPS">GUPNP_XML_ERROR</a>
 </dt>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/doc/html/left-insensitive.png b/doc/html/left-insensitive.png
new file mode 100644 (file)
index 0000000..9b8005b
Binary files /dev/null and b/doc/html/left-insensitive.png differ
index 48cab27..c518641 100644 (file)
Binary files a/doc/html/left.png and b/doc/html/left.png differ
index 1205d1b..1986201 100644 (file)
@@ -2,22 +2,22 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Overview</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>GUPnP Reference Manual: Overview</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GUPnP Reference Manual">
 <link rel="up" href="tutorial.html" title="Part I. Tutorial">
 <link rel="prev" href="tutorial.html" title="Part I. Tutorial">
 <link rel="next" href="client-tutorial.html" title="Writing a UPnP Client">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="tutorial.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="tutorial.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GUPnP Reference Manual</th>
-<td><a accesskey="n" href="client-tutorial.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="tutorial.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="tutorial.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="client-tutorial.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="chapter">
 <div class="titlepage"><div><div><h2 class="title">
@@ -50,6 +50,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/doc/html/right-insensitive.png b/doc/html/right-insensitive.png
new file mode 100644 (file)
index 0000000..f999f00
Binary files /dev/null and b/doc/html/right-insensitive.png differ
index ed55207..78f5875 100644 (file)
Binary files a/doc/html/right.png and b/doc/html/right.png differ
index 2f62cba..d32ccd9 100644 (file)
@@ -2,22 +2,22 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Device Description</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>GUPnP Reference Manual: Device Description</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GUPnP Reference Manual">
 <link rel="up" href="schemas.html" title="Part III. XML Schemas">
 <link rel="prev" href="schemas.html" title="Part III. XML Schemas">
 <link rel="next" href="schemas-service.html" title="Service Description">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="schemas.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="schemas.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GUPnP Reference Manual</th>
-<td><a accesskey="n" href="schemas-service.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="schemas.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="schemas.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="schemas-service.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="chapter">
 <div class="titlepage"><div><div><h2 class="title">
@@ -87,6 +87,6 @@ device = element device {
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index ed59761..f286d2d 100644 (file)
@@ -2,22 +2,22 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Service Description</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>GUPnP Reference Manual: Service Description</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GUPnP Reference Manual">
 <link rel="up" href="schemas.html" title="Part III. XML Schemas">
 <link rel="prev" href="schemas-device.html" title="Device Description">
 <link rel="next" href="glossary.html" title="Glossary">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="schemas-device.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="schemas.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GUPnP Reference Manual</th>
-<td><a accesskey="n" href="glossary.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="schemas.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="schemas-device.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="glossary.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="chapter">
 <div class="titlepage"><div><div><h2 class="title">
@@ -83,6 +83,6 @@ scpd = element scpd {
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index d74aab8..ba1e5dc 100644 (file)
@@ -2,29 +2,29 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Part III. XML Schemas</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>GUPnP Reference Manual: Part III. XML Schemas</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GUPnP Reference Manual">
 <link rel="up" href="index.html" title="GUPnP Reference Manual">
 <link rel="prev" href="gupnp-binding-tool.html" title="gupnp-binding-tool">
 <link rel="next" href="schemas-device.html" title="Device Description">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="gupnp-binding-tool.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td> </td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GUPnP Reference Manual</th>
-<td><a accesskey="n" href="schemas-device.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="gupnp-binding-tool.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="schemas-device.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="part">
 <div class="titlepage"><div><div><h1 class="title">
 <a name="schemas"></a>Part III. XML Schemas</h1></div></div></div>
 <div class="toc">
 <p><b>Table of Contents</b></p>
-<dl>
+<dl class="toc">
 <dt><span class="chapter"><a href="schemas-device.html">Device Description</a></span></dt>
 <dt><span class="chapter"><a href="schemas-service.html">Service Description</a></span></dt>
 </dl>
@@ -32,6 +32,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index f1ec040..5ef12dc 100644 (file)
@@ -2,29 +2,29 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Writing a UPnP Service</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>GUPnP Reference Manual: Writing a UPnP Service</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GUPnP Reference Manual">
 <link rel="up" href="tutorial.html" title="Part I. Tutorial">
 <link rel="prev" href="client-tutorial.html" title="Writing a UPnP Client">
 <link rel="next" href="api.html" title="Part II. Reference">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="client-tutorial.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td><a accesskey="u" href="tutorial.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GUPnP Reference Manual</th>
-<td><a accesskey="n" href="api.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="tutorial.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="client-tutorial.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="api.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="chapter">
 <div class="titlepage"><div><div><h2 class="title">
 <a name="server-tutorial"></a>Writing a UPnP Service</h2></div></div></div>
 <div class="simplesect">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="idp5609200"></a>Introduction</h2></div></div></div>
+<a name="id-1.2.4.2"></a>Introduction</h2></div></div></div>
 <p>
       This chapter explains how to implement a UPnP service using GUPnP. For
       this example we will create a virtual UPnP-enabled light bulb.
@@ -42,7 +42,7 @@
 </div>
 <div class="simplesect">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="idp7391456"></a>Defining the Device</h2></div></div></div>
+<a name="id-1.2.4.3"></a>Defining the Device</h2></div></div></div>
 <p>
       The first step is to write the <em class="firstterm">device description</em>
       file.  This is a short XML document which describes the device and what
 </div>
 <div class="simplesect">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="idm8096"></a>Defining Services</h2></div></div></div>
+<a name="id-1.2.4.4"></a>Defining Services</h2></div></div></div>
 <p>
       Because we are using a standard service we can use the service description
       from the specification.  This is the <code class="literal">SwitchPower1</code>
 </div>
 <div class="simplesect">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="idp6387216"></a>Implementing the Device</h2></div></div></div>
+<a name="id-1.2.4.5"></a>Implementing the Device</h2></div></div></div>
 <p>
       Before starting to implement the device, some boilerplate code is needed
       to initialise GUPnP.  GLib types and threading needs to be initialised,
-      and then a GUPnP context can be created using gupnp_context_new().
+      and then a GUPnP context can be created using <a class="link" href="GUPnPContext.html#gupnp-context-new" title="gupnp_context_new ()"><code class="function">gupnp_context_new()</code></a>.
     </p>
 <pre class="programlisting">GUPnPContext *context;
 /* Initialize required subsystems */
@@ -227,7 +227,7 @@ context = gupnp_context_new (NULL, NULL, 0, NULL);</pre>
 <p>
       Next the root device can be created. The name of the device description
       file can be passed as an absolute file path or a relative path to the
-      second parameter of gupnp_root_device_new(). The service description
+      second parameter of <a class="link" href="GUPnPRootDevice.html#gupnp-root-device-new" title="gupnp_root_device_new ()"><code class="function">gupnp_root_device_new()</code></a>. The service description
       files referenced in the device description are expected to be at the path
       given there as well.
     </p>
@@ -245,58 +245,54 @@ gupnp_root_device_set_available (dev, TRUE);</pre>
 </div>
 <div class="simplesect">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="idp8436720"></a>Implementing a Service</h2></div></div></div>
+<a name="id-1.2.4.6"></a>Implementing a Service</h2></div></div></div>
 <p>
-      To implement a service we first fetch the #GUPnPService from the root
-      device using gupnp_device_info_get_service() (#GUPnPRootDevice is a
-      subclass of #GUPnPDevice, which implements #GUPnPDeviceInfo).  This
-      returns a #GUPnPServiceInfo which again is an interface, implemented by
-      #GUPnPService (on the server) and #GUPnPServiceProxy (on the client).
+      To implement a service we first fetch the <a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a> from the root
+      device using <a class="link" href="GUPnPDeviceInfo.html#gupnp-device-info-get-service" title="gupnp_device_info_get_service ()"><code class="function">gupnp_device_info_get_service()</code></a> (<a class="link" href="GUPnPRootDevice.html" title="GUPnPRootDevice"><span class="type">GUPnPRootDevice</span></a> is a
+      subclass of <a class="link" href="GUPnPDevice.html" title="GUPnPDevice"><span class="type">GUPnPDevice</span></a>, which implements <a class="link" href="GUPnPDeviceInfo.html" title="GUPnPDeviceInfo"><span class="type">GUPnPDeviceInfo</span></a>).  This
+      returns a <a class="link" href="GUPnPServiceInfo.html" title="GUPnPServiceInfo"><span class="type">GUPnPServiceInfo</span></a> which again is an interface, implemented by
+      <a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a> (on the server) and <a class="link" href="GUPnPServiceProxy.html" title="GUPnPServiceProxy"><span class="type">GUPnPServiceProxy</span></a> (on the client).
     </p>
 <pre class="programlisting">GUPnPServiceInfo *service;
 service = gupnp_device_info_get_service
   (GUPNP_DEVICE_INFO (dev), "urn:schemas-upnp-org:service:SwitchPower:1");</pre>
 <p>
-      #GUPnPService handles interacting with the network itself, leaving the
+      <a class="link" href="GUPnPService.html" title="GUPnPService"><span class="type">GUPnPService</span></a> handles interacting with the network itself, leaving the
       implementation of the service itself to signal handlers that we need to
-      connect.  There are two signals: #GUPnPService::action-invoked and
-      #GUPnPService::query-variable.  #GUPnPService::action-invoked is emitted
+      connect.  There are two signals: <a class="link" href="GUPnPService.html#GUPnPService-action-invoked" title="The “action-invoked” signal"><span class="type">“action-invoked”</span></a> and
+      <a class="link" href="GUPnPService.html#GUPnPService-query-variable" title="The “query-variable” signal"><span class="type">“query-variable”</span></a>.  <a class="link" href="GUPnPService.html#GUPnPService-action-invoked" title="The “action-invoked” signal"><span class="type">“action-invoked”</span></a> is emitted
       when a client invokes an action: the handler is passed a
-      #GUPnPServiceAction object that identifies which action was invoked, and
-      is used to return values using gupnp_service_action_set().
-      #GUPnPService::query-variable is emitted for evented variables when a
+      <a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a> object that identifies which action was invoked, and
+      is used to return values using <a class="link" href="GUPnPService.html#gupnp-service-action-set" title="gupnp_service_action_set ()"><code class="function">gupnp_service_action_set()</code></a>.
+      <a class="link" href="GUPnPService.html#GUPnPService-query-variable" title="The “query-variable” signal"><span class="type">“query-variable”</span></a> is emitted for evented variables when a
       control point subscribes to the service (to announce the initial value),
       or whenever a client queries the value of a state variable (note that this
       is now deprecated behaviour for UPnP control points): the handler is
-      passed the variable name and a #GValue which should be set to the current
+      passed the variable name and a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> which should be set to the current
       value of the variable.
     </p>
 <p>
-      There are two approaches that clients can take to handle these signals.
-      They can either connect a single handler to #GUPnPService::action-invoked
-      or #GUPnPService::query-variable and examine the arguments to decide what
-      action to take.  Alternatively, handlers can be targetted at specific
-      actions or variables by using the <em class="firstterm">signal detail</em>
-      when connecting.  For example, this causes
-      <code class="function">on_get_status_action</code> to be called when the
-      <code class="function">GetStatus</code> action is invoked:
+      Handlers should be targetted at specific actions or variables by using
+      the <em class="firstterm">signal detail</em> when connecting. For example,
+      this causes <code class="function">on_get_status_action</code> to be called when
+      the <code class="function">GetStatus</code> action is invoked:
     </p>
 <pre class="programlisting">static void on_get_status_action (GUPnPService *service, GUPnPServiceAction *action, gpointer user_data);
 …
 g_signal_connect (service, "action-invoked::GetStatus", G_CALLBACK (on_get_status_action), NULL);</pre>
 <p>
       The implementation of action handlers is quite simple.  The handler is
-      passed a #GUPnPServiceAction object which represents the in-progress
+      passed a <a class="link" href="GUPnPService.html#GUPnPServiceAction"><span class="type">GUPnPServiceAction</span></a> object which represents the in-progress
       action.  If required it can be queried using
-      gupnp_service_action_get_name() to identify the action (this isn't
+      <a class="link" href="GUPnPService.html#gupnp-service-action-get-name" title="gupnp_service_action_get_name ()"><code class="function">gupnp_service_action_get_name()</code></a> to identify the action (this isn't
       required if detailed signals were connected).  Any
       <em class="firstterm">in</em> arguments can be retrieving using
-      gupnp_service_action_get(), and then return values can be set using
-      gupnp_service_action_set().  Once the action has been performed, either
-      gupnp_service_action_return() or gupnp_service_action_return_error()
+      <a class="link" href="GUPnPService.html#gupnp-service-action-get" title="gupnp_service_action_get ()"><code class="function">gupnp_service_action_get()</code></a>, and then return values can be set using
+      <a class="link" href="GUPnPService.html#gupnp-service-action-set" title="gupnp_service_action_set ()"><code class="function">gupnp_service_action_set()</code></a>.  Once the action has been performed, either
+      <a class="link" href="GUPnPService.html#gupnp-service-action-return" title="gupnp_service_action_return ()"><code class="function">gupnp_service_action_return()</code></a> or <a class="link" href="GUPnPService.html#gupnp-service-action-return-error" title="gupnp_service_action_return_error ()"><code class="function">gupnp_service_action_return_error()</code></a>
       should be called to either return successfully or return an error code.
       If any evented state variables were modified during the action then a
-      notification should be emitted using gupnp_service_notify().  This is an
+      notification should be emitted using <a class="link" href="GUPnPService.html#gupnp-service-notify" title="gupnp_service_notify ()"><code class="function">gupnp_service_notify()</code></a>.  This is an
       example implementation of <code class="function">GetStatus</code> and
       <code class="function">SetTarget</code>:
     </p>
@@ -325,7 +321,7 @@ g_signal_connect (service, "action-invoked::GetStatus", G_CALLBACK (get_status_c
 g_signal_connect (service, "action-invoked::SetTarget", G_CALLBACK (set_target_cb), NULL);</pre>
 <p>
       State variable query handlers are called with the name of the variable and
-      a #GValue.  This value should be initialized with the relevant type and
+      a <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a>.  This value should be initialized with the relevant type and
       then set to the current value.  Again signal detail can be used to connect
       handlers to specific state variable callbacks.
     </p>
@@ -347,14 +343,14 @@ g_signal_connect (service, "query-variable::Status", G_CALLBACK (query_status_cb
     </p>
 <p>
       For services which have many actions and variables there is a convenience
-      method gupnp_service_signals_autoconnect() which will automatically
+      method <a class="link" href="GUPnPService.html#gupnp-service-signals-autoconnect" title="gupnp_service_signals_autoconnect ()"><code class="function">gupnp_service_signals_autoconnect()</code></a> which will automatically
       connect specially named handlers to signals.  See the documentation for
       full details on how it works.
     </p>
 </div>
 <div class="simplesect">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="idp9527792"></a>Generating Service-specific Wrappers</h2></div></div></div>
+<a name="id-1.2.4.7"></a>Generating Service-specific Wrappers</h2></div></div></div>
 <p>
       Using service-specific wrappers can simplify the implementation of a service.
       Wrappers can be generated with <a class="xref" href="gupnp-binding-tool.html" title="gupnp-binding-tool"><span class="refentrytitle">gupnp-binding-tool</span>(1)</a>
@@ -418,6 +414,6 @@ switch_status_query_connect (service, query_status_cb, NULL);</pre>
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index d6f6c26..705a5c9 100644 (file)
@@ -1,15 +1,23 @@
+body
+{
+  font-family: cantarell, sans-serif;
+}
 .synopsis, .classsynopsis
 {
   /* tango:aluminium 1/2 */
   background: #eeeeec;
-  border: solid 1px #d3d7cf;
+  background: rgba(238, 238, 236, 0.5);
+  border: solid 1px rgb(238, 238, 236);
   padding: 0.5em;
 }
 .programlisting
 {
   /* tango:sky blue 0/1 */
+  /* fallback for no rgba support */
   background: #e6f3ff;
   border: solid 1px #729fcf;
+  background: rgba(114, 159, 207, 0.1);
+  border: solid 1px rgba(114, 159, 207, 0.2);
   padding: 0.5em;
 }
 .variablelist
@@ -27,7 +35,6 @@
   {
     position: relative;
     top: 0em ! important;
-    
   }
   /* this is needed so that the local anchors are displayed below the naviagtion */
   div.footnote a[name], div.refnamediv a[name], div.refsect1 a[name], div.refsect2 a[name], div.index a[name], div.glossary a[name], div.sect1 a[name]
    */
   body
   {
-    padding-top: 3.2em;
-    padding-bottom: 20em;
+    padding-top: 5em;
+    padding-bottom: 500px;
+    max-width: 60em;
+  }
+  p
+  {
+    max-width: 60em;
   }
   /* style and size the navigation bar */
   table.navigation#top
   {
     position: fixed;
-    /* tango:scarlet red 0/1 */
-    background: #ffe6e6;
-    border: solid 1px #ef2929;
+    background: #e2e2e2;
+    border-bottom: solid 1px #babdb6;
     margin-top: 0;
     margin-bottom: 0;
     top: 0;
   }
   .navigation a, .navigation a:visited
   {
-    /* tango:scarlet red 3 */
-    color: #a40000;
+    /* tango:sky blue 3 */
+    color: #204a87;
   }
   .navigation a:hover
   {
-    /* tango:scarlet red 1 */
-    color: #ef2929;
+    /* tango:sky blue 2 */
+    color: #3465a4;
   }
   td.shortcuts
   {
-    /* tango:scarlet red 1 */
-    color: #ef2929;
+    /* tango:sky blue 2 */
+    color: #3465a4;
     font-size: 80%;
     white-space: nowrap;
   }
+  td.shortcuts .dim
+  {
+    color: #babdb6;
+  }
+}
+@media screen and (min-width: 60em) {
+  /* screen larger than 60em */
+  body { margin: auto; }
+}
+@media screen and (max-width: 60em) {
+  /* screen less than 60em */
+  #nav_hierarchy { display: none; }
+  #nav_interfaces { display: none; }
+  #nav_prerequisites { display: none; }
+  #nav_derived_interfaces { display: none; }
+  #nav_implementations { display: none; }
+  #nav_child_properties { display: none; }
+  #nav_style_properties { display: none; }
+  #nav_index { display: none; }
+  #nav_glossary { display: none; }
+  .gallery_image { display: none; }
+  .property_flags { display: none; }
+  .signal_flags { display: none; }
+  .parameter_annotations { display: none; }
+  .enum_member_annotations { display: none; }
+  .struct_member_annotations { display: none; }
+  .union_member_annotations { display: none; }
+  /* now that a column is hidden, optimize space */
+  col.parameters_name { width: auto; }
+  col.parameters_description { width: auto; }
+  col.struct_members_name { width: auto; }
+  col.struct_members_description { width: auto; }
+  col.enum_members_name { width: auto; }
+  col.enum_members_description { width: auto; }
+  col.union_members_name { width: auto; }
+  col.union_members_description { width: auto; }
 }
 @media print {
   table.navigation {
   div.titlepage table.navigation {
     visibility: visible;
     display: table;
-    /* tango:scarlet red 0/1 */
-    background: #ffe6e6;
-    border: solid 1px #ef2929;
+    background: #e2e2e2;
+    border: solid 1px #babdb6;
     margin-top: 0;
     margin-bottom: 0;
     top: 0;
 
 .navigation .title
 {
-  font-size: 200%;
+  font-size: 120%;
 }
 
 div.gallery-float
@@ -132,6 +178,67 @@ a:hover
   color: #729fcf;
 }
 
+div.informaltable table
+{
+  border-collapse: separate;
+  border-spacing: 20px 3px;
+  border: none;
+}
+
+div.informaltable table td, div.informaltable table th
+{
+  vertical-align: top;
+}
+
+.function_type,
+.variable_type,
+.property_type,
+.signal_type,
+.parameter_name,
+.struct_member_name,
+.union_member_name,
+.define_keyword,
+.datatype_keyword,
+.typedef_keyword
+{
+  text-align: right;
+}
+
+/* dim non-primary columns */
+.c_punctuation,
+.function_type,
+.variable_type,
+.property_type,
+.signal_type,
+.define_keyword,
+.datatype_keyword,
+.typedef_keyword,
+.property_flags,
+.signal_flags,
+.parameter_annotations,
+.enum_member_annotations,
+.struct_member_annotations,
+.union_member_annotations
+{
+  color: #888a85;
+}
+
+.function_type a,
+.function_type a:visited,
+.function_type a:hover,
+.property_type a,
+.property_type a:visited,
+.property_type a:hover,
+.signal_type a,
+.signal_type a:visited,
+.signal_type a:hover,
+.signal_flags a,
+.signal_flags a:visited,
+.signal_flags a:hover
+{
+ color: #729fcf;
+}
+
 div.table table
 {
   border-collapse: collapse;
@@ -154,14 +261,43 @@ div.table table th
   background-color: #d3d7cf;
 }
 
+h4
+{
+  color: #555753;
+}
+
 hr
 {
-  /* tango:aluminium 3 */
-  color: #babdb6;
-  background: #babdb6;
+  /* tango:aluminium 1 */
+  color: #d3d7cf;
+  background: #d3d7cf;
   border: none 0px;
   height: 1px;
   clear: both;
+  margin: 2.0em 0em 2.0em 0em;
+}
+
+dl.toc dt
+{
+  padding-bottom: 0.25em;
+}
+
+dl.toc > dd > dl > dt
+{
+  padding-top: 0.25em;
+  padding-bottom: 0.25em;
+}
+
+dl.toc > dt
+{
+  padding-top: 1em;
+  padding-bottom: 0.5em;
+  font-weight: bold;
+}
+
+.parameter
+{
+  font-style: normal;
 }
 
 .footer
@@ -173,31 +309,70 @@ hr
   font-size: 80%;
 }
 
+.informalfigure,
+.figure
+{
+  margin: 1em;
+}
+
+.informalexample,
+.example
+{
+  margin-top: 1em;
+  margin-bottom: 1em;
+}
+
 .warning
 {
   /* tango:orange 0/1 */
   background: #ffeed9;
+  background: rgba(252, 175, 62, 0.1);
   border-color: #ffb04f;
+  border-color: rgba(252, 175, 62, 0.2);
 }
 .note
 {
   /* tango:chameleon 0/0.5 */
   background: #d8ffb2;
+  background: rgba(138, 226, 52, 0.1);
   border-color: #abf562;
+  border-color: rgba(138, 226, 52, 0.2);
 }
-.note, .warning
+div.blockquote
+{
+  border-color: #eeeeec;
+}
+.note, .warning, div.blockquote
 {
   padding: 0.5em;
   border-width: 1px;
   border-style: solid;
+  margin: 2em;
 }
-.note h3, .warning h3
+.note p, .warning p
 {
-  margin-top: 0.0em
+  margin: 0;
 }
-.note p, .warning p
+
+div.warning h3.title,
+div.note h3.title
 {
-  margin-bottom: 0.0em
+  display: none;
+}
+
+p + div.section
+{
+  margin-top: 1em;
+}
+
+div.refnamediv,
+div.refsynopsisdiv,
+div.refsect1,
+div.refsect2,
+div.toc,
+div.section
+{
+  margin-bottom: 1em;
 }
 
 /* blob links */
@@ -210,11 +385,22 @@ h2 .extralinks, h3 .extralinks
   font-weight: normal;
 }
 
+.lineart
+{
+  color: #d3d7cf;
+  font-weight: normal;
+}
+
 .annotation
 {
   /* tango:aluminium 5 */
   color: #555753;
-  font-size: 80%;
+  font-weight: normal;
+}
+
+.structfield
+{
+  font-style: normal;
   font-weight: normal;
 }
 
@@ -237,6 +423,7 @@ h2 .extralinks, h3 .extralinks
 .listing_frame {
   /* tango:sky blue 1 */
   border: solid 1px #729fcf;
+  border: solid 1px rgba(114, 159, 207, 0.2);
   padding: 0px;
 }
 
@@ -246,19 +433,27 @@ h2 .extralinks, h3 .extralinks
   padding: 0.5em;
 }
 .listing_lines {
+  /* this just adds visual clutter and
+     takes precious room from small screens */
+  display: none;
+}
+.listing_lines {
   /* tango:sky blue 0.5 */
   background: #a6c5e3;
+  background: rgba(114, 159, 207, 0.2);
   /* tango:aluminium 6 */
   color: #2e3436;
 }
 .listing_code {
   /* tango:sky blue 0 */
   background: #e6f3ff;
+  background: rgba(114, 159, 207, 0.1);
 }
 .listing_code .programlisting {
   /* override from previous */
   border: none 0px;
   padding: 0px;
+  background: none;
 }
 .listing_lines pre, .listing_code pre {
   margin: 0px;
index d07074c..6494394 100644 (file)
@@ -2,29 +2,29 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Part I. Tutorial</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<title>GUPnP Reference Manual: Part I. Tutorial</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GUPnP Reference Manual">
 <link rel="up" href="index.html" title="GUPnP Reference Manual">
 <link rel="prev" href="index.html" title="GUPnP Reference Manual">
 <link rel="next" href="overview.html" title="Overview">
-<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="index.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
-<td> </td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
-<th width="100%" align="center">GUPnP Reference Manual</th>
-<td><a accesskey="n" href="overview.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="index.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="overview.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="part">
 <div class="titlepage"><div><div><h1 class="title">
 <a name="tutorial"></a>Part I. Tutorial</h1></div></div></div>
 <div class="toc">
 <p><b>Table of Contents</b></p>
-<dl>
+<dl class="toc">
 <dt><span class="chapter"><a href="overview.html">Overview</a></span></dt>
 <dt><span class="chapter"><a href="client-tutorial.html">Writing a UPnP Client</a></span></dt>
 <dt><span class="chapter"><a href="server-tutorial.html">Writing a UPnP Service</a></span></dt>
@@ -33,6 +33,6 @@
 </div>
 <div class="footer">
 <hr>
-          Generated by GTK-Doc V1.18</div>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/doc/html/up-insensitive.png b/doc/html/up-insensitive.png
new file mode 100644 (file)
index 0000000..bda3ce2
Binary files /dev/null and b/doc/html/up-insensitive.png differ
index 8eb591f..af46b2a 100644 (file)
Binary files a/doc/html/up.png and b/doc/html/up.png differ
index 8f03295..65a33a9 100644 (file)
@@ -182,14 +182,10 @@ service = gupnp_device_info_get_service
       value of the variable.
     </para>
     <para>
-      There are two approaches that clients can take to handle these signals.
-      They can either connect a single handler to #GUPnPService::action-invoked
-      or #GUPnPService::query-variable and examine the arguments to decide what
-      action to take.  Alternatively, handlers can be targetted at specific
-      actions or variables by using the <firstterm>signal detail</firstterm>
-      when connecting.  For example, this causes
-      <function>on_get_status_action</function> to be called when the
-      <function>GetStatus</function> action is invoked:
+      Handlers should be targetted at specific actions or variables by using
+      the <firstterm>signal detail</firstterm> when connecting. For example,
+      this causes <function>on_get_status_action</function> to be called when
+      the <function>GetStatus</function> action is invoked:
     </para>
     <programlisting>static void on_get_status_action (GUPnPService *service, GUPnPServiceAction *action, gpointer user_data);
 &hellip;
index a397ab9..812717a 100644 (file)
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \  ]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,7 +81,8 @@ host_triplet = @host@
 target_triplet = @target@
 noinst_PROGRAMS = light-server$(EXEEXT) light-client$(EXEEXT)
 subdir = examples
-DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+       $(top_srcdir)/build-aux/depcomp README
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/gtk-doc.m4 \
        $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
@@ -75,6 +103,7 @@ light_client_DEPENDENCIES = $(top_builddir)/libgupnp/libgupnp-1.0.la
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 light_client_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(light_client_LDFLAGS) $(LDFLAGS) -o $@
@@ -85,6 +114,18 @@ light_server_DEPENDENCIES = $(top_builddir)/libgupnp/libgupnp-1.0.la
 light_server_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(light_server_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
 am__depfiles_maybe = depfiles
@@ -97,20 +138,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(light_client_SOURCES) $(light_server_SOURCES)
 DIST_SOURCES = $(light_client_SOURCES) $(light_server_SOURCES)
 am__can_run_installinfo = \
@@ -118,6 +155,23 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -148,17 +202,17 @@ ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
 FGREP = @FGREP@
-GIO_CFLAGS = @GIO_CFLAGS@
-GIO_LIBS = @GIO_LIBS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
 GREP = @GREP@
 GTHREAD_CFLAGS = @GTHREAD_CFLAGS@
 GTHREAD_LIBS = @GTHREAD_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
+HAVE_IFADDRS_H = @HAVE_IFADDRS_H@
 HAVE_NETLINK = @HAVE_NETLINK@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -211,6 +265,7 @@ SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
 USE_NETLINK = @USE_NETLINK@
+UUID_LIBS = @UUID_LIBS@
 VAPIGEN = @VAPIGEN@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
@@ -322,9 +377,11 @@ clean-noinstPROGRAMS:
        list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
        echo " rm -f" $$list; \
        rm -f $$list
+
 light-client$(EXEEXT): $(light_client_OBJECTS) $(light_client_DEPENDENCIES) $(EXTRA_light_client_DEPENDENCIES) 
        @rm -f light-client$(EXEEXT)
        $(AM_V_CCLD)$(light_client_LINK) $(light_client_OBJECTS) $(light_client_LDADD) $(LIBS)
+
 light-server$(EXEEXT): $(light_server_OBJECTS) $(light_server_DEPENDENCIES) $(EXTRA_light_server_DEPENDENCIES) 
        @rm -f light-server$(EXEEXT)
        $(AM_V_CCLD)$(light_server_LINK) $(light_server_OBJECTS) $(light_server_LDADD) $(LIBS)
@@ -343,14 +400,14 @@ distclean-compile:
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@@ -365,26 +422,15 @@ mostlyclean-libtool:
 clean-libtool:
        -rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-       unique=`for i in $$list; do \
-           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-         done | \
-         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-             END { if (nonempty) { for (i in files) print i; }; }'`; \
-       mkid -fID $$unique
-tags: TAGS
-
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-               $(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+       $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
        set x; \
        here=`pwd`; \
-       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-       unique=`for i in $$list; do \
-           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-         done | \
-         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       $(am__define_uniq_tagged_files); \
        shift; \
        if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
          test -n "$$unique" || unique=$$empty_fix; \
@@ -396,15 +442,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
              $$unique; \
          fi; \
        fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-               $(TAGS_FILES) $(LISP)
-       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-       unique=`for i in $$list; do \
-           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-         done | \
-         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-             END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       $(am__define_uniq_tagged_files); \
        test -z "$(CTAGS_ARGS)$$unique" \
          || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
             $$unique
@@ -413,6 +455,21 @@ GTAGS:
        here=`$(am__cd) $(top_builddir) && pwd` \
          && $(am__cd) $(top_srcdir) \
          && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+       list='$(am__tagged_files)'; \
+       case "$(srcdir)" in \
+         [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+         *) sdir=$(subdir)/$(srcdir) ;; \
+       esac; \
+       for i in $$list; do \
+         if test -f "$$i"; then \
+           echo "$(subdir)/$$i"; \
+         else \
+           echo "$$sdir/$$i"; \
+         fi; \
+       done >> $(top_builddir)/cscope.files
 
 distclean-tags:
        -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -555,18 +612,19 @@ uninstall-am:
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-       clean-libtool clean-noinstPROGRAMS ctags distclean \
-       distclean-compile distclean-generic distclean-libtool \
-       distclean-tags distdir dvi dvi-am html html-am info info-am \
-       install install-am install-data install-data-am install-dvi \
-       install-dvi-am install-exec install-exec-am install-html \
-       install-html-am install-info install-info-am install-man \
-       install-pdf install-pdf-am install-ps install-ps-am \
-       install-strip installcheck installcheck-am installdirs \
-       maintainer-clean maintainer-clean-generic mostlyclean \
-       mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
-       pdf pdf-am ps ps-am tags uninstall uninstall-am
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+       clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
+       ctags-am distclean distclean-compile distclean-generic \
+       distclean-libtool distclean-tags distdir dvi dvi-am html \
+       html-am info info-am install install-am install-data \
+       install-data-am install-dvi install-dvi-am install-exec \
+       install-exec-am install-html install-html-am install-info \
+       install-info-am install-man install-pdf install-pdf-am \
+       install-ps install-ps-am install-strip installcheck \
+       installcheck-am installdirs maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-compile \
+       mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+       tags tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
index 60ce266..cdb9aab 100644 (file)
@@ -20,9 +20,21 @@ static enum {
   TOGGLE
 } mode;
 
+static gboolean quiet;
+static gint repeat_counter = 1;
+static gint repeat_delay;
+
+static GOptionEntry entries[] =
+{
+  { "quiet", 'q', 0, G_OPTION_ARG_NONE, &quiet, "Turn off output", NULL },
+  { "repeat-counter", 'c', 0, G_OPTION_ARG_INT, &repeat_counter, "Repeat counter", "value" },
+  { "repeat-delay", 'd', 0, G_OPTION_ARG_INT, &repeat_delay, "Delay in [ms] between each iteration", "value" },
+  { NULL }
+};
+
+
 static void
-service_proxy_available_cb (G_GNUC_UNUSED GUPnPControlPoint *cp,
-                            GUPnPServiceProxy               *proxy)
+send_cmd (GUPnPServiceProxy *proxy)
 {
   GError *error = NULL;
   gboolean target;
@@ -51,12 +63,16 @@ service_proxy_available_cb (G_GNUC_UNUSED GUPnPControlPoint *cp,
                                         NULL)) {
     goto error;
   } else {
-    g_print ("Set switch to %s.\n", target ? "on" : "off");
+    if (!quiet) {
+      g_print ("Set switch to %s.\n", target ? "on" : "off");
+    }
   }
   
  done:
   /* Only manipulate the first light switch that is found */
-  g_main_loop_quit (main_loop);
+  if (--repeat_counter <= 0) {
+    g_main_loop_quit (main_loop);
+  }
   return;
 
  error:
@@ -65,15 +81,41 @@ service_proxy_available_cb (G_GNUC_UNUSED GUPnPControlPoint *cp,
   goto done;
 }
 
+static gboolean timeout_func (gpointer user_data)
+{
+  GUPnPServiceProxy *proxy = (GUPnPServiceProxy *) user_data;
+
+  send_cmd (proxy);
+  return TRUE;
+}
+
 static void
-usage (void)
+service_proxy_available_cb (G_GNUC_UNUSED GUPnPControlPoint *cp,
+                            GUPnPServiceProxy               *proxy)
 {
-    g_printerr ("$ light-client [on|off|toggle]\n");
+  if (repeat_counter>0)
+  {
+    send_cmd (proxy);
+    g_timeout_add (repeat_delay, timeout_func, proxy);
+  } else {
+    g_main_loop_quit (main_loop);
+  }
+}
+
+static void
+usage (GOptionContext *optionContext)
+{
+  gchar *help_text;
+
+  help_text = g_option_context_get_help (optionContext, TRUE, NULL);
+  g_printerr ("%s", help_text);
+  g_free (help_text);
 }
 
 int
 main (int argc, char **argv)
 {
+  GOptionContext *optionContext;
   GError *error = NULL;
   GUPnPContext *context;
   GUPnPControlPoint *cp;
@@ -82,10 +124,17 @@ main (int argc, char **argv)
   g_type_init ();
 #endif
 
+  optionContext = g_option_context_new ("[on|off|toggle]");
+  g_option_context_add_main_entries (optionContext, entries, NULL);
+  if (!g_option_context_parse (optionContext, &argc, &argv, &error))
+  {
+    g_print ("option parsing failed: %s\n", error->message);
+    exit (1);
+  }
 
   /* Check and parse command line arguments */
   if (argc != 2) {
-    usage ();
+    usage (optionContext);
     return EXIT_FAILURE;
   }
   
@@ -96,7 +145,7 @@ main (int argc, char **argv)
   } else if (g_str_equal (argv[1], "toggle")) {
     mode = TOGGLE;
   } else {
-    usage ();
+    usage (optionContext);
     return EXIT_FAILURE;
   }
 
index 2dcddf3..f1b7162 100644 (file)
 #include <gmodule.h>
 
 static gboolean status;
+static gboolean quiet;
+
+static GOptionEntry entries[] =
+{
+  { "quiet", 'q', 0, G_OPTION_ARG_NONE, &quiet, "Turn off output", NULL },
+  { NULL }
+};
 
 G_BEGIN_DECLS
 G_MODULE_EXPORT void set_target_cb (GUPnPService *service,
@@ -55,7 +62,10 @@ set_target_cb (GUPnPService          *service,
                           "Status", G_TYPE_BOOLEAN, status,
                           NULL);
 
-    g_print ("The light is now %s.\n", status ? "on" : "off");
+    if (!quiet)
+    {
+      g_print ("The light is now %s.\n", status ? "on" : "off");
+    }
   }
 
   /* Return success to the client */
@@ -116,6 +126,7 @@ query_status_cb (G_GNUC_UNUSED GUPnPService *service,
 int
 main (G_GNUC_UNUSED int argc, G_GNUC_UNUSED char **argv)
 {
+  GOptionContext *optionContext;
   GMainLoop *main_loop;
   GError *error = NULL;
   GUPnPContext *context;
@@ -126,9 +137,20 @@ main (G_GNUC_UNUSED int argc, G_GNUC_UNUSED char **argv)
   g_type_init ();
 #endif
 
+  optionContext = g_option_context_new (NULL);
+  g_option_context_add_main_entries (optionContext, entries, NULL);
+  if (!g_option_context_parse (optionContext, &argc, &argv, &error))
+  {
+    g_print ("option parsing failed: %s\n", error->message);
+    exit (1);
+  }
+
   /* By default the light is off */
   status = FALSE;
-  g_print ("The light is now %s.\n", status ? "on" : "off");
+  if (!quiet)
+  {
+    g_print ("The light is now %s.\n", status ? "on" : "off");
+  }
 
   /* Create the UPnP context */
   context = gupnp_context_new (NULL, NULL, 0, &error);
index 9841de4..e791656 100644 (file)
@@ -49,9 +49,13 @@ REPORT_FILES = \
        $(DOC_MODULE)-undeclared.txt \
        $(DOC_MODULE)-unused.txt
 
-CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS)
+gtkdoc-check.test: Makefile
+       $(AM_V_GEN)echo "#!/bin/sh -e" > $@; \
+               echo "$(GTKDOC_CHECK_PATH) || exit 1" >> $@; \
+               chmod +x $@
+
+CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) gtkdoc-check.test
 
-if ENABLE_GTK_DOC
 if GTK_DOC_BUILD_HTML
 HTML_BUILD_STAMP=html-build.stamp
 else
@@ -63,9 +67,11 @@ else
 PDF_BUILD_STAMP=
 endif
 
-all-local: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
-else
-all-local:
+all-gtk-doc: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
+.PHONY: all-gtk-doc
+
+if ENABLE_GTK_DOC
+all-local: all-gtk-doc
 endif
 
 docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP)
@@ -74,31 +80,42 @@ $(REPORT_FILES): sgml-build.stamp
 
 #### setup ####
 
+GTK_DOC_V_SETUP=$(GTK_DOC_V_SETUP_$(V))
+GTK_DOC_V_SETUP_=$(GTK_DOC_V_SETUP_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_SETUP_0=@echo "  DOC   Preparing build";
+
 setup-build.stamp:
-       -@if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
-           echo '  DOC   Preparing build'; \
+       -$(GTK_DOC_V_SETUP)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
            files=`echo $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types`; \
            if test "x$$files" != "x" ; then \
                for file in $$files ; do \
+                   destdir=`dirname $(abs_builddir)/$$file`; \
+                   test -d "$$destdir" || mkdir -p "$$destdir"; \
                    test -f $(abs_srcdir)/$$file && \
-                       cp -pu $(abs_srcdir)/$$file $(abs_builddir)/ || true; \
+                       cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \
                done; \
            fi; \
        fi
-       @touch setup-build.stamp
+       $(AM_V_at)touch setup-build.stamp
 
 
 #### scan ####
 
-scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB)
-       @echo '  DOC   Scanning header files'
-       @_source_dir='' ; \
+GTK_DOC_V_SCAN=$(GTK_DOC_V_SCAN_$(V))
+GTK_DOC_V_SCAN_=$(GTK_DOC_V_SCAN_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_SCAN_0=@echo "  DOC   Scanning header files";
+
+GTK_DOC_V_INTROSPECT=$(GTK_DOC_V_INTROSPECT_$(V))
+GTK_DOC_V_INTROSPECT_=$(GTK_DOC_V_INTROSPECT_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_INTROSPECT_0=@echo "  DOC   Introspecting gobjects";
+
+scan-build.stamp: setup-build.stamp $(HFILE_GLOB) $(CFILE_GLOB)
+       $(GTK_DOC_V_SCAN)_source_dir='' ; \
        for i in $(DOC_SOURCE_DIR) ; do \
            _source_dir="$${_source_dir} --source-dir=$$i" ; \
        done ; \
        gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES)
-       @if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \
-           echo "  DOC   Introspecting gobjects"; \
+       $(GTK_DOC_V_INTROSPECT)if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \
            scanobj_options=""; \
            gtkdoc-scangobj 2>&1 --help | grep  >/dev/null "\-\-verbose"; \
            if test "$(?)" = "0"; then \
@@ -113,32 +130,41 @@ scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB)
                test -f $$i || touch $$i ; \
            done \
        fi
-       @touch scan-build.stamp
+       $(AM_V_at)touch scan-build.stamp
 
 $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp
        @true
 
 #### xml ####
 
+GTK_DOC_V_XML=$(GTK_DOC_V_XML_$(V))
+GTK_DOC_V_XML_=$(GTK_DOC_V_XML_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_XML_0=@echo "  DOC   Building XML";
+
 sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files)
-       @echo '  DOC   Building XML'
-       @_source_dir='' ; \
+       $(GTK_DOC_V_XML)_source_dir='' ; \
        for i in $(DOC_SOURCE_DIR) ; do \
            _source_dir="$${_source_dir} --source-dir=$$i" ; \
        done ; \
        gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS)
-       @touch sgml-build.stamp
+       $(AM_V_at)touch sgml-build.stamp
 
 sgml.stamp: sgml-build.stamp
        @true
 
 #### html ####
 
+GTK_DOC_V_HTML=$(GTK_DOC_V_HTML_$(V))
+GTK_DOC_V_HTML_=$(GTK_DOC_V_HTML_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_HTML_0=@echo "  DOC   Building HTML";
+
+GTK_DOC_V_XREF=$(GTK_DOC_V_XREF_$(V))
+GTK_DOC_V_XREF_=$(GTK_DOC_V_XREF_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_XREF_0=@echo "  DOC   Fixing cross-references";
+
 html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
-       @echo '  DOC   Building HTML'
-       @rm -rf html
-       @mkdir html
-       @mkhtml_options=""; \
+       $(GTK_DOC_V_HTML)rm -rf html && mkdir html && \
+       mkhtml_options=""; \
        gtkdoc-mkhtml 2>&1 --help | grep  >/dev/null "\-\-verbose"; \
        if test "$(?)" = "0"; then \
          if test "x$(V)" = "x1"; then \
@@ -159,16 +185,18 @@ html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
            cp $(abs_builddir)/$$file $(abs_builddir)/html; \
          fi; \
        done;
-       @echo '  DOC   Fixing cross-references'
-       @gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
-       @touch html-build.stamp
+       $(GTK_DOC_V_XREF)gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
+       $(AM_V_at)touch html-build.stamp
 
 #### pdf ####
 
+GTK_DOC_V_PDF=$(GTK_DOC_V_PDF_$(V))
+GTK_DOC_V_PDF_=$(GTK_DOC_V_PDF_$(AM_DEFAULT_VERBOSITY))
+GTK_DOC_V_PDF_0=@echo "  DOC   Building PDF";
+
 pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
-       @echo '  DOC   Building PDF'
-       @rm -f $(DOC_MODULE).pdf
-       @mkpdf_options=""; \
+       $(GTK_DOC_V_PDF)rm -f $(DOC_MODULE).pdf && \
+       mkpdf_options=""; \
        gtkdoc-mkpdf 2>&1 --help | grep  >/dev/null "\-\-verbose"; \
        if test "$(?)" = "0"; then \
          if test "x$(V)" = "x1"; then \
@@ -185,13 +213,16 @@ pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
          done; \
        fi; \
        gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS)
-       @touch pdf-build.stamp
+       $(AM_V_at)touch pdf-build.stamp
 
 ##############
 
 clean-local:
        @rm -f *~ *.bak
        @rm -rf .libs
+       @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-types" ; then \
+         rm -f $(DOC_MODULE).types; \
+       fi
 
 distclean-local:
        @rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \
@@ -200,7 +231,7 @@ distclean-local:
            rm -f $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types; \
        fi
 
-maintainer-clean-local: clean
+maintainer-clean-local:
        @rm -rf xml html
 
 install-data-local:
@@ -236,15 +267,17 @@ uninstall-local:
 #
 # Require gtk-doc when making dist
 #
-if ENABLE_GTK_DOC
-dist-check-gtkdoc:
+if HAVE_GTK_DOC
+dist-check-gtkdoc: docs
 else
 dist-check-gtkdoc:
-       @echo "*** gtk-doc must be installed and enabled in order to make dist"
+       @echo "*** gtk-doc is needed to run 'make dist'.         ***"
+       @echo "*** gtk-doc was not found when 'configure' ran.   ***"
+       @echo "*** please install gtk-doc and rerun 'configure'. ***"
        @false
 endif
 
-dist-hook: dist-check-gtkdoc dist-hook-local
+dist-hook: dist-check-gtkdoc all-gtk-doc dist-hook-local
        @mkdir $(distdir)/html
        @cp ./html/* $(distdir)/html
        @-cp ./$(DOC_MODULE).pdf $(distdir)/
index 40e75ca..c44a201 100644 (file)
@@ -8,4 +8,4 @@ Description: GObject-based UPnP library
 Version: @VERSION@
 Libs: ${libdir}/libgupnp-1.0.la
 Cflags: -I${includedir}
-Requires.private: gssdp-1.0 libxml-2.0 libsoup-2.4
+Requires.private: gssdp-1.0 libxml-2.0 libsoup-2.4 @UUID_LIBS@
index d2612b4..51e0128 100644 (file)
@@ -8,4 +8,4 @@ Description: GObject-based UPnP library
 Version: @VERSION@
 Libs: -L${libdir} -lgupnp-1.0
 Cflags: -I${includedir}/gupnp-1.0
-Requires.private: gssdp-1.0 libxml-2.0 libsoup-2.4
+Requires.private: gssdp-1.0 libxml-2.0 libsoup-2.4 @UUID_LIBS@
index 6d30acb..771434d 100644 (file)
@@ -7,8 +7,12 @@ CONTEXT_MANAGER_CFLAGS =
 CONTEXT_MANAGER_LIBS = -lws2_32 -liphlpapi
 WIN32_LDFLAGS = -no-undefined
 else
+if HAVE_IFADDRS_H
 CONTEXT_MANAGER_IMPL = gupnp-unix-context-manager.c \
                                           gupnp-unix-context-manager.h
+else
+CONTEXT_MANAGER_IMPL =
+endif
 if USE_NETWORK_MANAGER
 CONTEXT_MANAGER_IMPL += gupnp-network-manager.c  \
                        gupnp-network-manager.h
@@ -44,7 +48,8 @@ libgupnpincdir = $(includedir)/gupnp-1.0/libgupnp
 
 lib_LTLIBRARIES = libgupnp-1.0.la
 
-libgupnpinc_HEADERS = gupnp-context.h                  \
+libgupnpinc_HEADERS = gupnp-acl.h                      \
+                     gupnp-context.h                   \
                      gupnp-context-manager.h           \
                      gupnp-control-point.h             \
                      gupnp-device.h                    \
@@ -63,6 +68,7 @@ libgupnpinc_HEADERS = gupnp-context.h                 \
                      gupnp.h
 
 introspection_sources = $(libgupnpinc_HEADERS) \
+                       gupnp-acl.c                     \
                        gupnp-context.c                 \
                        gupnp-context-manager.c         \
                        gupnp-control-point.c           \
@@ -102,6 +108,7 @@ libgupnp_1_0_la_SOURCES = $(introspection_sources)          \
                          gupnp-error-private.h                 \
                          gupnp-resource-factory-private.h      \
                          gupnp-service-introspection-private.h \
+                          gupnp-acl-private.h                   \
                          gupnp-types-private.h                 \
                          gvalue-util.c                         \
                          gvalue-util.h                         \
index 594ae20..2884c15 100644 (file)
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \  ]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -66,8 +93,8 @@ target_triplet = @target@
 
 @HAVE_INTROSPECTION_TRUE@am__append_4 = GUPnP-1.0.gir
 subdir = libgupnp
-DIST_COMMON = $(libgupnpinc_HEADERS) $(srcdir)/Makefile.am \
-       $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+       $(top_srcdir)/build-aux/depcomp $(libgupnpinc_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/gtk-doc.m4 \
        $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
@@ -113,32 +140,32 @@ LTLIBRARIES = $(lib_LTLIBRARIES)
 am__DEPENDENCIES_1 =
 libgupnp_1_0_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
        $(am__DEPENDENCIES_1)
-am__libgupnp_1_0_la_SOURCES_DIST = gupnp-context.h \
+am__libgupnp_1_0_la_SOURCES_DIST = gupnp-acl.h gupnp-context.h \
        gupnp-context-manager.h gupnp-control-point.h gupnp-device.h \
        gupnp-device-info.h gupnp-device-proxy.h gupnp-error.h \
        gupnp-resource-factory.h gupnp-root-device.h gupnp-service.h \
        gupnp-service-info.h gupnp-service-proxy.h \
        gupnp-service-introspection.h gupnp-xml-doc.h \
-       gupnp-white-list.h gupnp-types.h gupnp.h gupnp-context.c \
-       gupnp-context-manager.c gupnp-control-point.c gupnp-device.c \
-       gupnp-device-info.c gupnp-device-proxy.c gupnp-error.c \
-       gupnp-resource-factory.c gupnp-root-device.c gupnp-service.c \
-       gupnp-service-info.c gupnp-service-proxy.c \
+       gupnp-white-list.h gupnp-types.h gupnp.h gupnp-acl.c \
+       gupnp-context.c gupnp-context-manager.c gupnp-control-point.c \
+       gupnp-device.c gupnp-device-info.c gupnp-device-proxy.c \
+       gupnp-error.c gupnp-resource-factory.c gupnp-root-device.c \
+       gupnp-service.c gupnp-service-info.c gupnp-service-proxy.c \
        gupnp-service-introspection.c gupnp-xml-doc.c \
        gupnp-white-list.c gupnp-types.c http-headers.c http-headers.h \
-       gupnp-context-private.h gupnp-unix-context-manager.c \
-       gupnp-unix-context-manager.h gupnp-network-manager.c \
+       gupnp-context-private.h gupnp-network-manager.c \
        gupnp-network-manager.h gupnp-connman-manager.c \
        gupnp-connman-manager.h gupnp-linux-context-manager.c \
-       gupnp-linux-context-manager.h gupnp-windows-context-manager.c \
+       gupnp-linux-context-manager.h gupnp-unix-context-manager.c \
+       gupnp-unix-context-manager.h gupnp-windows-context-manager.c \
        gupnp-windows-context-manager.h gupnp-simple-context-manager.h \
        gupnp-simple-context-manager.c gupnp-device-info-private.h \
        gupnp-error-private.h gupnp-resource-factory-private.h \
-       gupnp-service-introspection-private.h gupnp-types-private.h \
-       gvalue-util.c gvalue-util.h xml-util.c xml-util.h \
-       gena-protocol.h gupnp-marshal.c gupnp-marshal.h
+       gupnp-service-introspection-private.h gupnp-acl-private.h \
+       gupnp-types-private.h gvalue-util.c gvalue-util.h xml-util.c \
+       xml-util.h gena-protocol.h gupnp-marshal.c gupnp-marshal.h
 am__objects_1 =
-am__objects_2 = $(am__objects_1) gupnp-context.lo \
+am__objects_2 = $(am__objects_1) gupnp-acl.lo gupnp-context.lo \
        gupnp-context-manager.lo gupnp-control-point.lo \
        gupnp-device.lo gupnp-device-info.lo gupnp-device-proxy.lo \
        gupnp-error.lo gupnp-resource-factory.lo gupnp-root-device.lo \
@@ -148,9 +175,14 @@ am__objects_2 = $(am__objects_1) gupnp-context.lo \
 @OS_WIN32_FALSE@@USE_NETWORK_MANAGER_TRUE@am__objects_3 = gupnp-network-manager.lo
 @OS_WIN32_FALSE@@USE_CONNMAN_TRUE@@USE_NETWORK_MANAGER_FALSE@am__objects_4 = gupnp-connman-manager.lo
 @HAVE_NETLINK_TRUE@am__objects_5 = gupnp-linux-context-manager.lo
-@OS_WIN32_FALSE@am__objects_6 = gupnp-unix-context-manager.lo \
-@OS_WIN32_FALSE@       $(am__objects_3) $(am__objects_4) \
-@OS_WIN32_FALSE@       $(am__objects_5)
+@HAVE_IFADDRS_H_FALSE@@OS_WIN32_FALSE@am__objects_6 =  \
+@HAVE_IFADDRS_H_FALSE@@OS_WIN32_FALSE@ $(am__objects_3) \
+@HAVE_IFADDRS_H_FALSE@@OS_WIN32_FALSE@ $(am__objects_4) \
+@HAVE_IFADDRS_H_FALSE@@OS_WIN32_FALSE@ $(am__objects_5)
+@HAVE_IFADDRS_H_TRUE@@OS_WIN32_FALSE@am__objects_6 = gupnp-unix-context-manager.lo \
+@HAVE_IFADDRS_H_TRUE@@OS_WIN32_FALSE@  $(am__objects_3) \
+@HAVE_IFADDRS_H_TRUE@@OS_WIN32_FALSE@  $(am__objects_4) \
+@HAVE_IFADDRS_H_TRUE@@OS_WIN32_FALSE@  $(am__objects_5)
 @OS_WIN32_TRUE@am__objects_6 = gupnp-windows-context-manager.lo \
 @OS_WIN32_TRUE@        $(am__objects_3) $(am__objects_4) \
 @OS_WIN32_TRUE@        $(am__objects_5)
@@ -162,10 +194,23 @@ libgupnp_1_0_la_OBJECTS = $(am_libgupnp_1_0_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 libgupnp_1_0_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
        $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
        $(AM_CFLAGS) $(CFLAGS) $(libgupnp_1_0_la_LDFLAGS) $(LDFLAGS) \
        -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
 am__depfiles_maybe = depfiles
@@ -178,20 +223,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libgupnp_1_0_la_SOURCES)
 DIST_SOURCES = $(am__libgupnp_1_0_la_SOURCES_DIST)
 am__can_run_installinfo = \
@@ -201,6 +242,23 @@ am__can_run_installinfo = \
   esac
 DATA = $(gir_DATA) $(typelib_DATA)
 HEADERS = $(libgupnpinc_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -231,17 +289,17 @@ ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
 FGREP = @FGREP@
-GIO_CFLAGS = @GIO_CFLAGS@
-GIO_LIBS = @GIO_LIBS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
 GREP = @GREP@
 GTHREAD_CFLAGS = @GTHREAD_CFLAGS@
 GTHREAD_LIBS = @GTHREAD_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
+HAVE_IFADDRS_H = @HAVE_IFADDRS_H@
 HAVE_NETLINK = @HAVE_NETLINK@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -294,6 +352,7 @@ SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
 USE_NETLINK = @USE_NETLINK@
+UUID_LIBS = @UUID_LIBS@
 VAPIGEN = @VAPIGEN@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
@@ -353,9 +412,15 @@ top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 LTVERSION = 4:0:0
-@OS_WIN32_FALSE@CONTEXT_MANAGER_IMPL = gupnp-unix-context-manager.c \
-@OS_WIN32_FALSE@       gupnp-unix-context-manager.h $(am__append_1) \
-@OS_WIN32_FALSE@       $(am__append_2) $(am__append_3)
+@HAVE_IFADDRS_H_FALSE@@OS_WIN32_FALSE@CONTEXT_MANAGER_IMPL =  \
+@HAVE_IFADDRS_H_FALSE@@OS_WIN32_FALSE@ $(am__append_1) \
+@HAVE_IFADDRS_H_FALSE@@OS_WIN32_FALSE@ $(am__append_2) \
+@HAVE_IFADDRS_H_FALSE@@OS_WIN32_FALSE@ $(am__append_3)
+@HAVE_IFADDRS_H_TRUE@@OS_WIN32_FALSE@CONTEXT_MANAGER_IMPL = gupnp-unix-context-manager.c \
+@HAVE_IFADDRS_H_TRUE@@OS_WIN32_FALSE@  gupnp-unix-context-manager.h \
+@HAVE_IFADDRS_H_TRUE@@OS_WIN32_FALSE@  $(am__append_1) \
+@HAVE_IFADDRS_H_TRUE@@OS_WIN32_FALSE@  $(am__append_2) \
+@HAVE_IFADDRS_H_TRUE@@OS_WIN32_FALSE@  $(am__append_3)
 @OS_WIN32_TRUE@CONTEXT_MANAGER_IMPL = gupnp-windows-context-manager.c \
 @OS_WIN32_TRUE@        gupnp-windows-context-manager.h $(am__append_1) \
 @OS_WIN32_TRUE@        $(am__append_2) $(am__append_3)
@@ -374,7 +439,8 @@ AM_CFLAGS = $(LIBGUPNP_CFLAGS) \
 
 libgupnpincdir = $(includedir)/gupnp-1.0/libgupnp
 lib_LTLIBRARIES = libgupnp-1.0.la
-libgupnpinc_HEADERS = gupnp-context.h                  \
+libgupnpinc_HEADERS = gupnp-acl.h                      \
+                     gupnp-context.h                   \
                      gupnp-context-manager.h           \
                      gupnp-control-point.h             \
                      gupnp-device.h                    \
@@ -393,6 +459,7 @@ libgupnpinc_HEADERS = gupnp-context.h                       \
                      gupnp.h
 
 introspection_sources = $(libgupnpinc_HEADERS) \
+                       gupnp-acl.c                     \
                        gupnp-context.c                 \
                        gupnp-context-manager.c         \
                        gupnp-control-point.c           \
@@ -423,6 +490,7 @@ libgupnp_1_0_la_SOURCES = $(introspection_sources)          \
                          gupnp-error-private.h                 \
                          gupnp-resource-factory-private.h      \
                          gupnp-service-introspection-private.h \
+                          gupnp-acl-private.h                   \
                          gupnp-types-private.h                 \
                          gvalue-util.c                         \
                          gvalue-util.h                         \
@@ -500,6 +568,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-libLTLIBRARIES: $(lib_LTLIBRARIES)
        @$(NORMAL_INSTALL)
        @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
@@ -526,12 +595,15 @@ uninstall-libLTLIBRARIES:
 
 clean-libLTLIBRARIES:
        -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
-       @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
-         dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-         test "$$dir" != "$$p" || dir=.; \
-         echo "rm -f \"$${dir}/so_locations\""; \
-         rm -f "$${dir}/so_locations"; \
-       done
+       @list='$(lib_LTLIBRARIES)'; \
+       locs=`for p in $$list; do echo $$p; done | \
+             sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+             sort -u`; \
+       test -z "$$locs" || { \
+         echo rm -f $${locs}; \
+         rm -f $${locs}; \
+       }
+
 libgupnp-1.0.la: $(libgupnp_1_0_la_OBJECTS) $(libgupnp_1_0_la_DEPENDENCIES) $(EXTRA_libgupnp_1_0_la_DEPENDENCIES) 
        $(AM_V_CCLD)$(libgupnp_1_0_la_LINK) -rpath $(libdir) $(libgupnp_1_0_la_OBJECTS) $(libgupnp_1_0_la_LIBADD) $(LIBS)
 
@@ -541,6 +613,7 @@ mostlyclean-compile:
 distclean-compile:
        -rm -f *.tab.c
 
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gupnp-acl.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gupnp-connman-manager.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gupnp-context-manager.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gupnp-context.Plo@am__quote@
@@ -573,14 +646,14 @@ distclean-compile:
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@@ -658,26 +731,15 @@ uninstall-libgupnpincHEADERS:
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
        dir='$(DESTDIR)$(libgupnpincdir)'; $(am__uninstall_files_from_dir)
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-       unique=`for i in $$list; do \
-           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-         done | \
-         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-             END { if (nonempty) { for (i in files) print i; }; }'`; \
-       mkid -fID $$unique
-tags: TAGS
-
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-               $(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+       $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
        set x; \
        here=`pwd`; \
-       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-       unique=`for i in $$list; do \
-           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-         done | \
-         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       $(am__define_uniq_tagged_files); \
        shift; \
        if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
          test -n "$$unique" || unique=$$empty_fix; \
@@ -689,15 +751,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
              $$unique; \
          fi; \
        fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-               $(TAGS_FILES) $(LISP)
-       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-       unique=`for i in $$list; do \
-           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-         done | \
-         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-             END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       $(am__define_uniq_tagged_files); \
        test -z "$(CTAGS_ARGS)$$unique" \
          || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
             $$unique
@@ -706,6 +764,21 @@ GTAGS:
        here=`$(am__cd) $(top_builddir) && pwd` \
          && $(am__cd) $(top_srcdir) \
          && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+       list='$(am__tagged_files)'; \
+       case "$(srcdir)" in \
+         [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+         *) sdir=$(subdir)/$(srcdir) ;; \
+       esac; \
+       for i in $$list; do \
+         if test -f "$$i"; then \
+           echo "$(subdir)/$$i"; \
+         else \
+           echo "$$sdir/$$i"; \
+         fi; \
+       done >> $(top_builddir)/cscope.files
 
 distclean-tags:
        -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -858,20 +931,21 @@ uninstall-am: uninstall-girDATA uninstall-libLTLIBRARIES \
 
 .MAKE: all check install install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-       clean-libLTLIBRARIES clean-libtool ctags distclean \
-       distclean-compile distclean-generic distclean-libtool \
-       distclean-tags distdir dvi dvi-am html html-am info info-am \
-       install install-am install-data install-data-am install-dvi \
-       install-dvi-am install-exec install-exec-am install-girDATA \
-       install-html install-html-am install-info install-info-am \
-       install-libLTLIBRARIES install-libgupnpincHEADERS install-man \
-       install-pdf install-pdf-am install-ps install-ps-am \
-       install-strip install-typelibDATA installcheck installcheck-am \
-       installdirs maintainer-clean maintainer-clean-generic \
-       mostlyclean mostlyclean-compile mostlyclean-generic \
-       mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
-       uninstall-am uninstall-girDATA uninstall-libLTLIBRARIES \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+       clean-libLTLIBRARIES clean-libtool cscopelist-am ctags \
+       ctags-am distclean distclean-compile distclean-generic \
+       distclean-libtool distclean-tags distdir dvi dvi-am html \
+       html-am info info-am install install-am install-data \
+       install-data-am install-dvi install-dvi-am install-exec \
+       install-exec-am install-girDATA install-html install-html-am \
+       install-info install-info-am install-libLTLIBRARIES \
+       install-libgupnpincHEADERS install-man install-pdf \
+       install-pdf-am install-ps install-ps-am install-strip \
+       install-typelibDATA installcheck installcheck-am installdirs \
+       maintainer-clean maintainer-clean-generic mostlyclean \
+       mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+       pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
+       uninstall-girDATA uninstall-libLTLIBRARIES \
        uninstall-libgupnpincHEADERS uninstall-typelibDATA
 
 
diff --git a/libgupnp/gupnp-acl-private.h b/libgupnp/gupnp-acl-private.h
new file mode 100644 (file)
index 0000000..16c9187
--- /dev/null
@@ -0,0 +1,89 @@
+/*
+ * Copyright (C) 2013,2014 Jens Georg <mail@jensge.org>
+ *
+ * Author: Jens Georg <mail@jensge.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GUPNP_ACL_PRIVATE_H__
+#define __GUPNP_ACL_PRIVATE_H__
+
+#include <glib.h>
+#include <glib-object.h>
+#include <libsoup/soup-session.h>
+
+#include "gupnp-acl.h"
+#include "gupnp-context.h"
+
+G_BEGIN_DECLS
+
+/**
+ * AclServerHandler:
+ *
+ * Closure for the ACL server handler that adds
+ * a) Some data from the original server handler such as user_data and callback
+ * b) Saves information for later use to pass on to ACL such as the service and context
+ */
+typedef struct _AclServerHandler
+{
+        GUPnPService *service;
+        GUPnPContext *context;
+        SoupServerCallback callback;
+        gpointer user_data;
+        GDestroyNotify notify;
+} AclServerHandler;
+
+/**
+ * AclAsyncHandler:
+ *
+ * Closure when doing an async ACL request. Stores everything passed into the server handler
+ */
+typedef struct _AclAsyncHandler
+{
+        SoupServer *server;
+        SoupMessage *message;
+        char *path;
+        GHashTable *query;
+        SoupClientContext *client;
+        AclServerHandler *handler;
+} AclAsyncHandler;
+
+G_GNUC_INTERNAL AclServerHandler *
+acl_server_handler_new (GUPnPService *service,
+                        GUPnPContext *context,
+                        SoupServerCallback callback,
+                        gpointer user_data,
+                        GDestroyNotify notify);
+
+G_GNUC_INTERNAL void
+acl_server_handler_free (AclServerHandler *handler);
+
+G_GNUC_INTERNAL AclAsyncHandler *
+acl_async_handler_new (SoupServer *server,
+                       SoupMessage *message,
+                       const char *path,
+                       GHashTable *query,
+                       SoupClientContext *client,
+                       AclServerHandler *handler);
+
+G_GNUC_INTERNAL void
+acl_async_handler_free (AclAsyncHandler *handler);
+
+
+G_END_DECLS
+
+#endif
diff --git a/libgupnp/gupnp-acl.c b/libgupnp/gupnp-acl.c
new file mode 100644 (file)
index 0000000..0d4c55a
--- /dev/null
@@ -0,0 +1,269 @@
+/*
+ * Copyright (C) 2013,2014 Jens Georg <mail@jensge.org>
+ *
+ * Author: Jens Georg <mail@jensge.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+/**
+ * SECTION:gupnp-acl
+ * @short_description: Object providing a simple access control list for
+ * GUPnP.
+ *
+ * #GUPnPAcl provides either synchronous or asynchronous functions to check
+ * whether a peer sould be able to access a resource or not.
+ *
+ * Since: 0.20.11
+ */
+
+#include "gupnp-acl.h"
+#include "gupnp-acl-private.h"
+
+G_DEFINE_INTERFACE(GUPnPAcl, gupnp_acl, G_TYPE_OBJECT)
+
+static void
+gupnp_acl_default_init (GUPnPAclInterface *klass)
+{
+}
+
+/**
+ * gupnp_acl_is_allowed:
+ * @self: an instance of #GUPnPAcl
+ * @device: (allow-none): The #GUPnPDevice associated with @path or %NULL if
+ * unknown.
+ * @service: (allow-none): The #GUPnPService associated with @path or %NULL if
+ * unknown.
+ * @path: The path being served.
+ * @address: IP address of the peer.
+ * @agent: (allow-none): The User-Agent header of the peer or %NULL if not
+ * unknown.
+ * @returns %TRUE if the peer is allowed, %FALSE otherwise
+ *
+ * Check whether an IP address is allowed to access this resource.
+ *
+ * Since: 0.20.11
+ */
+gboolean
+gupnp_acl_is_allowed (GUPnPAcl     *self,
+                      GUPnPDevice  *device,
+                      GUPnPService *service,
+                      const char   *path,
+                      const char   *address,
+                      const char   *agent)
+{
+        g_return_val_if_fail (GUPNP_IS_ACL (self), FALSE);
+
+        return GUPNP_ACL_GET_INTERFACE (self)->is_allowed (self,
+                                                           device,
+                                                           service,
+                                                           path,
+                                                           address,
+                                                           agent);
+}
+
+/**
+ * gupnp_acl_is_allowed_async:
+ * @self: a #GUPnPAcl
+ * @device: (allow-none): The #GUPnPDevice associated with @path or %NULL if
+ * unknown.
+ * @service: (allow-none): The #GUPnPService associated with @path or %NULL if
+ * unknown.
+ * @path: The path being served.
+ * @address: IP address of the peer
+ * @agent: (allow-none): The User-Agent header of the peer or %NULL if not
+ * unknown.
+ * @cancellable: (allow-none): A #GCancellable which can be used to cancel the
+ * operation.
+ * @callback: Callback to call after the function is done.
+ * @user_data: Some user data.
+ *
+ * Optional. Check asynchronously whether an IP address is allowed to access
+ * this resource. Use this function if the process of verifying the access right
+ * is expected to take some time, for example when using D-Bus etc.
+ *
+ * If this function is supported, gupnp_acl_can_sync() should return %TRUE.
+ *
+ * Use gupnp_acl_is_allowed_finish() to retrieve the result.
+ *
+* Since: 0.20.11
+ */
+void
+gupnp_acl_is_allowed_async (GUPnPAcl           *self,
+                            GUPnPDevice        *device,
+                            GUPnPService       *service,
+                            const char         *path,
+                            const char         *address,
+                            const char         *agent,
+                            GCancellable       *cancellable,
+                            GAsyncReadyCallback callback,
+                            gpointer            user_data)
+{
+        g_return_if_fail (GUPNP_IS_ACL (self));
+
+        GUPNP_ACL_GET_INTERFACE (self)->is_allowed_async (self,
+                                                          device,
+                                                          service,
+                                                          path,
+                                                          address,
+                                                          agent,
+                                                          cancellable,
+                                                          callback,
+                                                          user_data);
+}
+
+/**
+ * gupnp_acl_is_allowed_finish:
+ * @self: An instance of #GUPnPAcl
+ * @res: %GAsyncResult obtained from the callback in gupnp_acl_is_allowed_async()
+ * @error: (allow-none): A return location for a #GError describing the failure
+ * @returns %TRUE if the authentication was successful, %FALSE otherwise and on
+ * error. Check @error for details.
+ *
+ * Since: 0.20.11
+ */
+gboolean
+gupnp_acl_is_allowed_finish (GUPnPAcl      *self,
+                             GAsyncResult  *res,
+                             GError       **error)
+{
+        g_return_val_if_fail (GUPNP_IS_ACL (self), FALSE);
+
+        return GUPNP_ACL_GET_INTERFACE (self)->is_allowed_finish (self,
+                                                                  res,
+                                                                  error);
+}
+
+/**
+ * gupnp_acl_can_sync:
+ * @self: A #GUPnPAcl
+ * @returns %TRUE, if gupnp_acl_is_allowed_async() is supported, %FALSE
+ * otherwise.
+ *
+ * Check whether gupnp_acl_is_allowed_async() is supported.
+ *
+ * Since: 0.20.11
+ */
+gboolean
+gupnp_acl_can_sync (GUPnPAcl *self)
+{
+        g_return_val_if_fail (GUPNP_IS_ACL (self), FALSE);
+
+        return GUPNP_ACL_GET_INTERFACE (self)->can_sync (self);
+}
+
+/**
+ * acl_server_handler_new:
+ * @service: (allow-none): A #GUPnPContext or %NULL if unknown
+ * @context: The #GUPnPContext the server handler is run on.
+ * @callback: The #SoupServerCallback we're wrapping.
+ * @user_data: The user_data for @callback
+ * @notify: (allow-none): The #GDestroyNotify for @user_data or %NULL if none.
+ * @returns: A newly allocated #AclServerHandler
+ *
+ * Allocate a new #AclServerHandler.
+ *
+ */
+AclServerHandler *
+acl_server_handler_new (GUPnPService *service,
+                        GUPnPContext *context,
+                        SoupServerCallback callback,
+                        gpointer user_data,
+                        GDestroyNotify notify)
+{
+        AclServerHandler *handler = g_new0 (AclServerHandler, 1);
+
+        handler->service = service ? g_object_ref (service) : NULL;
+        handler->context = g_object_ref (context);
+        handler->callback = callback;
+        handler->user_data = user_data;
+        handler->notify = notify;
+
+        return handler;
+}
+
+/**
+ * acl_server_handler_free:
+ * @handler: An #AclServerHandler instance.
+ *
+ * Free an #AclServerHandler previously allocated with acl_server_handler_new().
+ *
+ */
+void
+acl_server_handler_free (AclServerHandler *handler)
+{
+        g_clear_object (&handler->service);
+        g_clear_object (&handler->context);
+
+        if (handler->notify != NULL)
+                handler->notify (handler->user_data);
+
+        g_free (handler);
+}
+
+/**
+ * acl_async_handler_new:
+ * @server: A #SoupServer instance.
+ * @message: The #SoupMessage we want to handle.
+ * @path: The path we're trying to serve.
+ * @query: (allow-none): The query parameters of the request.
+ * @client: The #SoupClientContext for this request.
+ * @handler: The #AclServerHandler used with this request.
+ * @returns: A new instance of #AclAsyncHandler.
+ *
+ * Create a new async closure.
+ *
+ */
+AclAsyncHandler *
+acl_async_handler_new (SoupServer *server,
+                       SoupMessage *message,
+                       const char *path,
+                       GHashTable *query,
+                       SoupClientContext *client,
+                       AclServerHandler *handler)
+{
+        AclAsyncHandler *data = g_slice_new0 (AclAsyncHandler);
+
+        data->server = g_object_ref (server);
+        data->message = g_object_ref (message);
+        data->path = g_strdup (path);
+        if (query != NULL)
+                data->query = g_hash_table_ref (query);
+        data->client = g_boxed_copy (SOUP_TYPE_CLIENT_CONTEXT, client);
+        data->handler = handler;
+
+        return data;
+}
+
+/**
+ * acl_async_handler_free:
+ * @handler: An instance allocated with acl_async_handler_new()
+ *
+ * Free an #AclAsyncHandler allocated with acl_async_handler_new().
+ *
+ */
+void
+acl_async_handler_free (AclAsyncHandler *handler)
+{
+        g_object_unref (handler->server);
+        g_object_unref (handler->message);
+        g_free (handler->path);
+        if (handler->query != NULL)
+                g_hash_table_unref (handler->query);
+        g_boxed_free (SOUP_TYPE_CLIENT_CONTEXT, handler->client);
+
+        g_slice_free (AclAsyncHandler, handler);
+}
diff --git a/libgupnp/gupnp-acl.h b/libgupnp/gupnp-acl.h
new file mode 100644 (file)
index 0000000..df5ebe8
--- /dev/null
@@ -0,0 +1,138 @@
+/*
+ * Copyright (C) 2013,2014 Jens Georg <mail@jensge.org>
+ *
+ * Author: Jens Georg <mail@jensge.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GUPNP_ACL_H__
+#define __GUPNP_ACL_H__
+
+#include <glib.h>
+#include <glib-object.h>
+#include <libsoup/soup-session.h>
+
+G_BEGIN_DECLS
+
+GType
+gupnp_acl_get_type (void) G_GNUC_CONST;
+
+#define GUPNP_TYPE_ACL (gupnp_acl_get_type())
+
+#define GUPNP_ACL(obj)                  \
+    (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
+     GUPNP_TYPE_ACL,                    \
+     GUPnPAcl))
+
+#define GUPNP_IS_ACL(obj)               \
+    (G_TYPE_CHECK_INSTANCE_TYPE ((obj),  \
+     GUPNP_TYPE_ACL))
+
+#define GUPNP_ACL_GET_INTERFACE(obj)      \
+    (G_TYPE_INSTANCE_GET_INTERFACE ((obj), \
+     GUPNP_TYPE_ACL, GUPnPAclInterface))
+
+/**
+ * GUPnPAcl:
+ *
+ * Handle to an object implementing the #GUPnPAclInterface interface.
+ */
+typedef struct _GUPnPAcl GUPnPAcl;
+
+/**
+ * GUPnPAclInterface:
+ * @parent: The parent interface.
+ * @is_allowed: Check whether access to the resource is granted.
+ * @is_allowed_async: Asynchronously check whether the access is granted.
+ * @is_allowed_finish: Conclude the @is_allowed_async operation.
+ * @can_sync: Whether the ACL can do sync queries.
+ *
+ * Implement a simple access control list for GUPnP.
+ *
+ * Since: 0.20.11
+ */
+typedef struct _GUPnPAclInterface GUPnPAclInterface;
+
+/* Forward declarations to avoid recursive includes */
+typedef struct _GUPnPDevice GUPnPDevice;
+typedef struct _GUPnPService GUPnPService;
+
+struct _GUPnPAclInterface {
+    GTypeInterface parent;
+
+    gboolean (*is_allowed) (GUPnPAcl     *self,
+                            GUPnPDevice  *device,
+                            GUPnPService *service,
+                            const char   *path,
+                            const char   *address,
+                            const char   *agent);
+
+    void     (*is_allowed_async) (GUPnPAcl           *self,
+                                  GUPnPDevice        *device,
+                                  GUPnPService       *service,
+                                  const char         *path,
+                                  const char         *address,
+                                  const char         *agent,
+                                  GCancellable       *cancellable,
+                                  GAsyncReadyCallback callback,
+                                  gpointer            user_data);
+
+    gboolean (*is_allowed_finish) (GUPnPAcl      *self,
+                                   GAsyncResult  *res,
+                                   GError       **error);
+
+    gboolean (*can_sync)          (GUPnPAcl *self);
+
+
+    /*< private >*/
+    /* future padding */
+    void (* _gupnp_reserved1) (void);
+    void (* _gupnp_reserved2) (void);
+    void (* _gupnp_reserved3) (void);
+    void (* _gupnp_reserved4) (void);
+};
+
+gboolean
+gupnp_acl_is_allowed (GUPnPAcl     *self,
+                      GUPnPDevice  *device,
+                      GUPnPService *service,
+                      const char   *path,
+                      const char   *address,
+                      const char   *agent);
+
+void
+gupnp_acl_is_allowed_async (GUPnPAcl           *self,
+                            GUPnPDevice        *device,
+                            GUPnPService       *service,
+                            const char         *path,
+                            const char         *address,
+                            const char         *agent,
+                            GCancellable       *cancellable,
+                            GAsyncReadyCallback callback,
+                            gpointer            user_data);
+
+gboolean
+gupnp_acl_is_allowed_finish (GUPnPAcl      *self,
+                             GAsyncResult  *res,
+                             GError       **error);
+
+gboolean
+gupnp_acl_can_sync (GUPnPAcl *self);
+
+G_END_DECLS
+
+#endif
index 21ce53b..7c58f31 100644 (file)
 
 /**
  * SECTION:gupnp-context-manager
- * @short_description: Manages #GUPnPContext objects.
+ * @short_description: Manages GUPnPContext objects.
  *
  * A Utility class that takes care of creation and destruction of
  * #GUPnPContext objects for all available network interfaces as they go up
  * (connect) and down (disconnect), respectively.
  *
+ * Since: 0.13.0
  */
 
 #include <config.h>
 #include "gupnp.h"
 #include "gupnp-marshal.h"
 
+#ifdef HAVE_IFADDRS_H
 #include "gupnp-unix-context-manager.h"
+#endif
+
+#ifdef G_OS_WIN32
+#include "gupnp-windows-context-manager.h"
+#elif defined(USE_NETWORK_MANAGER)
+#include "gupnp-network-manager.h"
+#elif defined(USE_CONNMAN)
+#include "gupnp-connman-manager.h"
+#endif
 
 G_DEFINE_ABSTRACT_TYPE (GUPnPContextManager,
                         gupnp_context_manager,
@@ -169,20 +180,19 @@ gupnp_context_manager_filter_context (GUPnPWhiteList *white_list,
         GList *obj;
         GList *blk;
         gboolean match;
-        GUPnPContext *context;
-        GSSDPResourceBrowser *browser;
 
         obj = manager->priv->objects;
         blk = manager->priv->blacklisted;
 
         while (obj != NULL) {
-                if (!GUPNP_IS_CONTROL_POINT (obj->data))
-                        continue;
-
                 /* If the white list is empty, treat it as disabled */
                 if (check) {
-                        /* Filter out context */
-                        context = gupnp_control_point_get_context (obj->data);
+                        GUPnPContext *context;
+
+                        g_object_get (G_OBJECT (obj->data),
+                                      "context", &context,
+                                      NULL);
+
                         match = gupnp_white_list_check_context (white_list,
                                                                 context);
                 } else {
@@ -190,11 +200,18 @@ gupnp_context_manager_filter_context (GUPnPWhiteList *white_list,
                         match = TRUE;
                 }
 
-                browser = GSSDP_RESOURCE_BROWSER (obj->data);
-                gssdp_resource_browser_set_active (browser, match);
+                if (GUPNP_IS_CONTROL_POINT (obj->data)) {
+                        GSSDPResourceBrowser *browser;
+
+                        browser = GSSDP_RESOURCE_BROWSER (obj->data);
+                        gssdp_resource_browser_set_active (browser, match);
+                } else if (GUPNP_IS_ROOT_DEVICE (obj->data)) {
+                        GSSDPResourceGroup *group;
 
-                if (match)
-                        (void) gssdp_resource_browser_rescan (browser);
+                        group = GSSDP_RESOURCE_GROUP (obj->data);
+                        gssdp_resource_group_set_available (group, match);
+                } else
+                        g_assert_not_reached ();
 
                 obj = obj->next;
         }
@@ -492,6 +509,7 @@ gupnp_context_manager_class_init (GUPnPContextManagerClass *klass)
  * Same as gupnp_context_manager_create().
  *
  * Returns: (transfer full): A new #GUPnPContextManager object.
+ * Since: 0.13.0
  * Deprecated: 0.17.2: Use gupnp_context_manager_create().
  **/
 GUPnPContextManager *
@@ -520,6 +538,8 @@ gupnp_context_manager_new (GMainContext *main_context,
  * the implementation falls back to the basic Unix context manager instead.
  *
  * Returns: (transfer full): A new #GUPnPContextManager object.
+ *
+ * Since: 0.17.2
  **/
 GUPnPContextManager *
 gupnp_context_manager_create (guint port)
@@ -529,22 +549,19 @@ gupnp_context_manager_create (guint port)
 #endif
         GUPnPContextManager *impl;
         GType impl_type = G_TYPE_INVALID;
-#ifdef G_OS_WIN32
-#include "gupnp-windows-context-manager.h"
 
+#ifdef G_OS_WIN32
         impl_type = GUPNP_TYPE_WINDOWS_CONTEXT_MANAGER;
 #else
-#ifdef USE_NETWORK_MANAGER
-#include "gupnp-network-manager.h"
+#if defined(USE_NETWORK_MANAGER)
         system_bus = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, NULL);
 
-        if (gupnp_network_manager_is_available ())
+        if (system_bus != NULL && gupnp_network_manager_is_available ())
                 impl_type = GUPNP_TYPE_NETWORK_MANAGER;
-#elif USE_CONNMAN
-#include "gupnp-connman-manager.h"
+#elif defined(USE_CONNMAN)
         system_bus = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, NULL);
 
-       if (gupnp_connman_manager_is_available ())
+       if (system_bus != NULL && gupnp_connman_manager_is_available ())
                 impl_type = GUPNP_TYPE_CONNMAN_MANAGER;
 #endif
 
@@ -553,21 +570,28 @@ gupnp_context_manager_create (guint port)
              * are using one of the DBus managers but it's not available, so we
              * fall-back to it. */
 #if defined (USE_NETLINK) || defined (HAVE_LINUX_RTNETLINK_H)
+#if defined (HAVE_IFADDRS_H)
                 if (gupnp_linux_context_manager_is_available ())
                         impl_type = GUPNP_TYPE_LINUX_CONTEXT_MANAGER;
                 else
                     impl_type = GUPNP_TYPE_UNIX_CONTEXT_MANAGER;
 #else
+               impl_type = GUPNP_TYPE_LINUX_CONTEXT_MANAGER;
+
+#endif
+#elif defined (HAVE_IFADDRS_H)
                 impl_type = GUPNP_TYPE_UNIX_CONTEXT_MANAGER;
+#else
+#error No context manager defined
 #endif
         }
 #endif /* G_OS_WIN32 */
-        impl = g_object_new (impl_type,
-                             "port", port,
-                             NULL);
+        impl = GUPNP_CONTEXT_MANAGER (g_object_new (impl_type,
+                                                    "port", port,
+                                                    NULL));
 
 #if defined(USE_NETWORK_MANAGER) || defined(USE_CONNMAN)
-        g_object_unref (system_bus);
+        g_clear_object (&system_bus);
 #endif
         return impl;
 }
@@ -580,6 +604,8 @@ gupnp_context_manager_create (guint port)
  * Only the active control points send discovery messages.
  * This function should be called when servers are suspected to have
  * disappeared.
+ *
+ * Since: 0.20.3
  **/
 void
 gupnp_context_manager_rescan_control_points (GUPnPContextManager *manager)
@@ -611,6 +637,8 @@ gupnp_context_manager_rescan_control_points (GUPnPContextManager *manager)
  * You usually want to call this function from
  * #GUPnPContextManager::context-available handler after you create a
  * #GUPnPControlPoint object for the newly available context.
+ *
+ * Since: 0.13.0
  **/
 void
 gupnp_context_manager_manage_control_point (GUPnPContextManager *manager,
@@ -633,6 +661,8 @@ gupnp_context_manager_manage_control_point (GUPnPContextManager *manager,
  * usually want to call this function from
  * #GUPnPContextManager::context-available handler after you create a
  * #GUPnPRootDevice object for the newly available context.
+ *
+ * Since: 0.13.0
  **/
 void
 gupnp_context_manager_manage_root_device (GUPnPContextManager *manager,
@@ -651,6 +681,8 @@ gupnp_context_manager_manage_root_device (GUPnPContextManager *manager,
  *
  * Get the network port associated with this context manager.
  * Returns: The network port asssociated with this context manager.
+ *
+ * Since: 0.19.1
  */
 guint
 gupnp_context_manager_get_port (GUPnPContextManager *manager)
index 18c4813..212d5e0 100644 (file)
 
 #include <libsoup/soup.h>
 
+#include "gupnp-acl-private.h"
+
 G_BEGIN_DECLS
 
 G_GNUC_INTERNAL const char *
 _gupnp_context_get_server_url (GUPnPContext *context);
 
+G_GNUC_INTERNAL void
+_gupnp_context_add_server_handler_with_data (GUPnPContext *context,
+                                             const char *path,
+                                             AclServerHandler *data);
+
 G_END_DECLS
 
 #endif /* __GUPNP_CONTEXT_PRIVATE_H__ */
index 81c030c..b942369 100644 (file)
@@ -41,7 +41,9 @@
 #include <stdlib.h>
 #include <stdio.h>
 #include <glib.h>
-#ifndef G_OS_WIN32
+#ifdef G_OS_WIN32
+#include <windows.h>
+#else
 #include <sys/utsname.h>
 #endif
 #include <sys/types.h>
@@ -49,6 +51,8 @@
 #include <libsoup/soup-address.h>
 #include <glib/gstdio.h>
 
+#include "gupnp-acl.h"
+#include "gupnp-acl-private.h"
 #include "gupnp-context.h"
 #include "gupnp-context-private.h"
 #include "gupnp-error.h"
 #define GUPNP_CONTEXT_DEFAULT_LANGUAGE "en"
 
 static void
+gupnp_acl_server_handler (SoupServer *server,
+                          SoupMessage *msg,
+                          const char *path,
+                          GHashTable *query,
+                          SoupClientContext *client,
+                          gpointer user_data);
+
+static void
 gupnp_context_initable_iface_init (gpointer g_iface,
                                    gpointer iface_data);
 
@@ -83,6 +95,8 @@ struct _GUPnPContextPrivate {
         char        *default_language;
 
         GList       *host_path_datas;
+
+        GUPnPAcl    *acl;
 };
 
 enum {
@@ -91,7 +105,8 @@ enum {
         PROP_SERVER,
         PROP_SESSION,
         PROP_SUBSCRIPTION_TIMEOUT,
-        PROP_DEFAULT_LANGUAGE
+        PROP_DEFAULT_LANGUAGE,
+        PROP_ACL
 };
 
 typedef struct {
@@ -251,6 +266,10 @@ gupnp_context_set_property (GObject      *object,
                 gupnp_context_set_default_language (context,
                                                     g_value_get_string (value));
                 break;
+        case PROP_ACL:
+                gupnp_context_set_acl (context, g_value_get_object (value));
+
+                break;
         default:
                 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
                 break;
@@ -290,6 +309,11 @@ gupnp_context_get_property (GObject    *object,
                                     gupnp_context_get_default_language
                                                                    (context));
                 break;
+        case PROP_ACL:
+                g_value_set_object (value,
+                                    gupnp_context_get_acl (context));
+
+                break;
         default:
                 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
                 break;
@@ -335,11 +359,7 @@ gupnp_context_finalize (GObject *object)
 
         context = GUPNP_CONTEXT (object);
 
-        if (context->priv->default_language) {
-                g_free (context->priv->default_language);
-                context->priv->default_language = NULL;
-        }
-
+        g_free (context->priv->default_language);
         g_free (context->priv->server_url);
 
         /* Call super */
@@ -347,6 +367,43 @@ gupnp_context_finalize (GObject *object)
         object_class->finalize (object);
 }
 
+static GObject *
+gupnp_context_constructor (GType                  type,
+                           guint                  n_construct_params,
+                           GObjectConstructParam *construct_params)
+{
+        GObjectClass *object_class;
+        guint port = 0, msearch_port = 0;
+        int i, msearch_idx = -1;
+
+        for (i = 0; i < n_construct_params; i++) {
+                const char *par_name;
+
+                par_name = construct_params[i].pspec->name;
+
+                if (strcmp (par_name, "port") == 0)
+                        port = g_value_get_uint (construct_params[i].value);
+                else if (strcmp (par_name, "msearch-port") == 0) {
+                        msearch_idx = i;
+                        msearch_port = g_value_get_uint
+                                        (construct_params[i].value);
+                }
+        }
+
+        object_class = G_OBJECT_CLASS (gupnp_context_parent_class);
+
+        /* Override msearch-port property if port is set, the property exists
+         * and wasn't provided otherwise */
+        if (port != 0 && msearch_idx != -1 && msearch_port == 0) {
+                g_value_set_uint (construct_params[msearch_idx].value, port);
+        }
+
+        return object_class->constructor (type,
+                                          n_construct_params,
+                                          construct_params);
+}
+
+
 static void
 gupnp_context_class_init (GUPnPContextClass *klass)
 {
@@ -358,6 +415,7 @@ gupnp_context_class_init (GUPnPContextClass *klass)
         object_class->get_property = gupnp_context_get_property;
         object_class->dispose      = gupnp_context_dispose;
         object_class->finalize     = gupnp_context_finalize;
+        object_class->constructor  = gupnp_context_constructor;
 
         g_type_class_add_private (klass, sizeof (GUPnPContextPrivate));
 
@@ -440,6 +498,8 @@ gupnp_context_class_init (GUPnPContextClass *klass)
          * The content of the Content-Language header id the client
          * sends Accept-Language and no language-specific pages to serve
          * exist. The property defaults to 'en'.
+         *
+         * Since: 0.17.0
          **/
         g_object_class_install_property
                 (object_class,
@@ -453,6 +513,24 @@ gupnp_context_class_init (GUPnPContextClass *klass)
                                       G_PARAM_STATIC_NAME |
                                       G_PARAM_STATIC_NICK |
                                       G_PARAM_STATIC_BLURB));
+
+        /**
+         * GUPnPContext:acl:
+         *
+         * An access control list.
+         *
+         * Since: 0.20.11
+         */
+        g_object_class_install_property
+                (object_class,
+                 PROP_ACL,
+                 g_param_spec_object ("acl",
+                                      "Access control list",
+                                      "Access control list",
+                                      GUPNP_TYPE_ACL,
+                                      G_PARAM_CONSTRUCT |
+                                      G_PARAM_READWRITE |
+                                      G_PARAM_STATIC_STRINGS));
 }
 
 /**
@@ -463,6 +541,8 @@ gupnp_context_class_init (GUPnPContextClass *klass)
  *
  * Return value: (transfer none): The #SoupSession used by GUPnP. Do not unref
  * this when finished.
+ *
+ * Since: 0.12.3
  **/
 SoupSession *
 gupnp_context_get_session (GUPnPContext *context)
@@ -676,9 +756,7 @@ host_path_data_set_language (HostPathData *data, const char *language)
 
         data->default_language = g_strdup (language);
 
-
-        if (old_language != NULL)
-                g_free (old_language);
+        g_free (old_language);
 }
 
 /**
@@ -692,6 +770,8 @@ host_path_data_set_language (HostPathData *data, const char *language)
  * is required to send a Content-Language header in return. If there are
  * no files hosted in languages which match the requested ones the
  * Content-Language header is set to this value. The default value is "en".
+ *
+ * Since: 0.17.0
  */
 void
 gupnp_context_set_default_language (GUPnPContext *context,
@@ -712,8 +792,7 @@ gupnp_context_set_default_language (GUPnPContext *context,
                         (GFunc) host_path_data_set_language,
                         (gpointer) language);
 
-        if (old_language != NULL)
-                g_free (old_language);
+        g_free (old_language);
 }
 
 /**
@@ -724,6 +803,8 @@ gupnp_context_set_default_language (GUPnPContext *context,
  *
  * Returns: (transfer none): The default content of the Content-Language
  * header.
+ *
+ * Since: 0.17.0
  */
 const char *
 gupnp_context_get_default_language (GUPnPContext *context)
@@ -854,6 +935,17 @@ host_path_handler (G_GNUC_UNUSED SoupServer        *server,
                 goto DONE;
         }
 
+        /* Always send HTTP 1.1 for device description requests
+         * Also set Connection: close header, since the request originated
+         * from a HTTP 1.0 client
+         */
+        if (soup_message_get_http_version (msg) == SOUP_HTTP_1_0) {
+                soup_message_set_http_version (msg, SOUP_HTTP_1_1);
+                soup_message_headers_append (msg->response_headers,
+                                             "Connection",
+                                             "close");
+        }
+
         user_agent = soup_message_headers_get_one (msg->request_headers,
                                                    "User-Agent");
 
@@ -1040,10 +1132,7 @@ host_path_handler (G_GNUC_UNUSED SoupServer        *server,
         g_free (path_to_open);
         g_free (local_path);
 
-        while (orig_locales) {
-                g_free (orig_locales->data);
-                orig_locales = g_list_delete_link (orig_locales, orig_locales);
-        }
+        g_list_free_full (orig_locales, g_free);
 }
 
 static UserAgent *
@@ -1092,17 +1181,8 @@ host_path_data_free (HostPathData *path_data)
         g_free (path_data->server_path);
         g_free (path_data->default_language);
 
-        while (path_data->user_agents) {
-                UserAgent *agent;
-
-                agent = path_data->user_agents->data;
-
-                user_agent_free (agent);
-
-                path_data->user_agents = g_list_delete_link (
-                                path_data->user_agents,
-                                path_data->user_agents);
-        }
+        g_list_free_full (path_data->user_agents,
+                          (GDestroyNotify) user_agent_free);
 
         g_slice_free (HostPathData, path_data);
 }
@@ -1165,6 +1245,8 @@ path_compare_func (HostPathData *path_data,
  * path @server_path must already be hosted by @context.
  *
  * Return value: %TRUE on success, %FALSE otherwise.
+ *
+ * Since: 0.13.3
  **/
 gboolean
 gupnp_context_host_path_for_agent (GUPnPContext *context,
@@ -1230,3 +1312,201 @@ gupnp_context_unhost_path (GUPnPContext *context,
         soup_server_remove_handler (server, server_path);
         host_path_data_free (path_data);
 }
+
+/**
+ * gupnp_context_get_acl:
+ * @context: A #GUPnPContext
+ *
+ * Returns:(transfer none): The access control list associated with this context or %NULL
+ * if no acl is set.
+ *
+ * Since: 0.20.11
+ **/
+GUPnPAcl *
+gupnp_context_get_acl (GUPnPContext *context)
+{
+        g_return_val_if_fail (GUPNP_IS_CONTEXT (context), NULL);
+
+        return context->priv->acl;
+}
+
+/**
+ * gupnp_context_set_acl:
+ * @context: A #GUPnPContext
+ * @acl: (allow-none): The new access control list or %NULL to remove the
+ * current list.
+ *
+ * Since: 0.20.11
+ **/
+void
+gupnp_context_set_acl (GUPnPContext *context, GUPnPAcl *acl)
+{
+        g_return_if_fail (GUPNP_IS_CONTEXT (context));
+
+        if (context->priv->acl != NULL) {
+                g_object_unref (context->priv->acl);
+                context->priv->acl = NULL;
+        }
+
+        if (acl != NULL)
+                context->priv->acl = g_object_ref (acl);
+
+        g_object_notify (G_OBJECT (context), "acl");
+}
+
+static void
+gupnp_acl_async_callback (GUPnPAcl *acl,
+                          GAsyncResult *res,
+                          AclAsyncHandler *data)
+{
+        gboolean allowed;
+        GError *error = NULL;
+
+        allowed = gupnp_acl_is_allowed_finish (acl, res, &error);
+        soup_server_unpause_message (data->server, data->message);
+        if (!allowed)
+                soup_message_set_status (data->message, SOUP_STATUS_FORBIDDEN);
+        else
+                data->handler->callback (data->server,
+                                         data->message,
+                                         data->path,
+                                         data->query,
+                                         data->client,
+                                         data->handler->user_data);
+
+        acl_async_handler_free (data);
+}
+
+static void
+gupnp_acl_server_handler (SoupServer *server,
+                          SoupMessage *msg,
+                          const char *path,
+                          GHashTable *query,
+                          SoupClientContext *client,
+                          gpointer user_data)
+{
+        AclServerHandler *handler = (AclServerHandler *) user_data;
+        const char *agent;
+        GUPnPDevice *device = NULL;
+
+        if (handler->service) {
+                g_object_get (handler->service,
+                              "root-device", &device,
+                              NULL);
+
+                if (device != NULL) {
+                        g_object_unref (device);
+                }
+        }
+
+        agent = soup_message_headers_get_one (msg->request_headers,
+                                              "User-Agent");
+
+        if (handler->context->priv->acl != NULL) {
+                if (gupnp_acl_can_sync (handler->context->priv->acl)) {
+                        if (!gupnp_acl_is_allowed (handler->context->priv->acl,
+                                                   device,
+                                                   handler->service,
+                                                   path,
+                                                   soup_client_context_get_host (client),
+                                                   agent)) {
+                                soup_message_set_status (msg, SOUP_STATUS_FORBIDDEN);
+
+                                return;
+                        }
+                } else {
+                        AclAsyncHandler *data;
+
+                        data = acl_async_handler_new (server, msg, path, query, client, handler);
+
+                        soup_server_pause_message (server, msg);
+                        gupnp_acl_is_allowed_async (handler->context->priv->acl,
+                                                    device,
+                                                    handler->service,
+                                                    path,
+                                                    soup_client_context_get_host (client),
+                                                    agent,
+                                                    NULL,
+                                                    (GAsyncReadyCallback) gupnp_acl_async_callback,
+                                                    data);
+
+                        return;
+                }
+        }
+
+        /* Delegate to orignal callback */
+        handler->callback (server, msg, path, query, client, handler->user_data);
+}
+
+/**
+ * gupnp_context_add_server_handler:
+ * @context: a #GUPnPContext
+ * @use_acl: %TRUE, if the path should query the GUPnPContext::acl before
+ * serving the resource, %FALSE otherwise.
+ * @path: the toplevel path for the handler.
+ * @callback: callback to invoke for requests under @path
+ * @user_data: the user_data passed to @callback
+ * @destroy: (allow-none): A #GDestroyNotify for @user_data or %NULL if none.
+ *
+ * Add a #SoupServerCallback to the #GUPnPContext<!-- -->'s #SoupServer.
+ *
+ * Since: 0.20.11
+ */
+void
+gupnp_context_add_server_handler (GUPnPContext *context,
+                                  gboolean use_acl,
+                                  const char *path,
+                                  SoupServerCallback callback,
+                                  gpointer user_data,
+                                  GDestroyNotify destroy)
+{
+        g_return_if_fail (GUPNP_IS_CONTEXT (context));
+
+        if (use_acl) {
+                AclServerHandler *handler;
+                handler = acl_server_handler_new (NULL, context, callback, user_data, destroy);
+                soup_server_add_handler (context->priv->server,
+                                         path,
+                                         gupnp_acl_server_handler,
+                                         handler,
+                                         (GDestroyNotify) acl_server_handler_free);
+        } else
+                soup_server_add_handler (context->priv->server,
+                                         path,
+                                         callback,
+                                         user_data,
+                                         destroy);
+}
+
+void
+_gupnp_context_add_server_handler_with_data (GUPnPContext *context,
+                                             const char *path,
+                                             AclServerHandler *handler)
+{
+        g_return_if_fail (GUPNP_IS_CONTEXT (context));
+
+        soup_server_add_handler (context->priv->server,
+                                 path,
+                                 gupnp_acl_server_handler,
+                                 handler,
+                                 (GDestroyNotify) acl_server_handler_free);
+}
+
+/**
+ * gupnp_context_remove_server_handler:
+ * @context: a #GUPnPContext
+ * @use_acl: %TRUE, if the path should query the GUPnPContext::acl before
+ * serving the resource, %FALSE otherwise.
+ * @path: the toplevel path for the handler.
+ *
+ * Add a #SoupServerCallback to the #GUPnPContext<!-- -->'s #SoupServer.
+ *
+ * Since: 0.20.11
+ */
+void
+gupnp_context_remove_server_handler (GUPnPContext *context, const char *path)
+{
+        g_return_if_fail (GUPNP_IS_CONTEXT (context));
+
+        soup_server_remove_handler (context->priv->server, path);
+}
index a2e2f9e..233d2fa 100644 (file)
@@ -26,6 +26,8 @@
 #include <libsoup/soup-server.h>
 #include <libsoup/soup-session.h>
 
+#include "gupnp-acl.h"
+
 G_BEGIN_DECLS
 
 GType
@@ -129,6 +131,20 @@ void
 gupnp_context_unhost_path              (GUPnPContext *context,
                                         const char   *server_path);
 
+GUPnPAcl *
+gupnp_context_get_acl                  (GUPnPContext *context);
+
+void
+gupnp_context_set_acl                  (GUPnPContext *context,
+                                        GUPnPAcl     *acl);
+
+void
+gupnp_context_add_server_handler       (GUPnPContext *context,
+                                        gboolean use_acl,
+                                        const char *path,
+                                        SoupServerCallback callback,
+                                        gpointer user_data,
+                                        GDestroyNotify destroy);
 G_END_DECLS
 
 #endif /* __GUPNP_CONTEXT_H__ */
index 9ef38fd..b314eee 100644 (file)
@@ -334,7 +334,7 @@ gupnp_device_info_class_init (GUPnPDeviceInfoClass *klass)
                                       "The XML document related to this "
                                       "device",
                                       GUPNP_TYPE_XML_DOC,
-                                      G_PARAM_WRITABLE |
+                                      G_PARAM_READWRITE |
                                       G_PARAM_CONSTRUCT_ONLY |
                                       G_PARAM_STATIC_NAME |
                                       G_PARAM_STATIC_NICK |
@@ -864,10 +864,7 @@ gupnp_device_info_get_icon_url (GUPnPDeviceInfo *info,
         }
 
         /* Cleanup */
-        while (icons) {
-                icon_free (icons->data);
-                icons = g_list_delete_link (icons, icons);
-        }
+        g_list_free_full (icons, (GDestroyNotify) icon_free);
 
         return ret;
 }
@@ -938,6 +935,8 @@ resource_type_match (const char *query,
  * Returns: (transfer full) (element-type utf8): a #GList of newly allocated strings or
  * %NULL if the device description doesn't contain the &lt;dlna:X_DLNADOC&gt;
  * element.
+ *
+ * Since: 0.20.4
  **/
 GList *
 gupnp_device_info_list_dlna_device_class_identifier (GUPnPDeviceInfo *info)
@@ -952,9 +951,18 @@ gupnp_device_info_list_dlna_device_class_identifier (GUPnPDeviceInfo *info)
         for (element = element->children; element; element = element->next) {
                 /* No early exit since the node explicitly may appear multiple
                  * times: 7.2.10.3 */
-                if (!strcmp ("X_DLNADOC", (char *) element->name))
+                if (!strcmp ("X_DLNADOC", (char *) element->name)) {
+                        xmlChar *content = NULL;
+
+                        content = xmlNodeGetContent (element);
+
+                        if (content == NULL)
+                                continue;
+
                         list = g_list_prepend (list,
-                                               xmlNodeGetContent(element));
+                                               g_strdup ((char *) content));
+                        xmlFree (content);
+                }
         }
 
         /* Return in order of appearance in document */
@@ -971,6 +979,8 @@ gupnp_device_info_list_dlna_device_class_identifier (GUPnPDeviceInfo *info)
  * Returns: (transfer full) (element-type utf8): a #GList of newly allocated strings or
  * %NULL if the device description doesn't contain the &lt;dlna:X_DLNACAP&gt;
  * element.
+ *
+ * Since: 0.13.0
  **/
 GList *
 gupnp_device_info_list_dlna_capabilities (GUPnPDeviceInfo *info)
@@ -1025,6 +1035,8 @@ gupnp_device_info_list_dlna_capabilities (GUPnPDeviceInfo *info)
  *
  * Return value: a newly allocated string or %NULL if the device
  *               description doesn't contain the given @element
+ *
+ * Since: 0.13.0
  **/
 char *
 gupnp_device_info_get_description_value (GUPnPDeviceInfo *info,
index 2257a6e..46a5408 100644 (file)
  * SECTION:gupnp-linux-context-manager
  * @short_description: Linux-specific implementation of #GUPnPContextManager
  *
+ * This is a Linux-specific context manager which uses <ulink
+ * url="http://www.linuxfoundation.org/collaborate/workgroups/networking/netlink">Netlink</ulink>
+ * to detect the changes in network interface configurations, such as
+ * added or removed interfaces, network addresses, ...
+ *
+ * The context manager works in two phase.
+ *
+ * Phase one is the "bootstrapping" phase where we query all currently
+ * configured interfaces and addresses.
+ *
+ * Phase two is the "listening" phase where we just listen to the netlink
+ * messages that are happening and create or destroy #GUPnPContext<!-- -->s
+ * accordingly.
  */
 
 #include <config.h>
@@ -38,6 +51,9 @@
 #include <errno.h>
 #include <string.h>
 
+#include <glib.h>
+#include <gio/gio.h>
+
 #include "gupnp-linux-context-manager.h"
 #include "gupnp-context.h"
 
@@ -46,12 +62,23 @@ G_DEFINE_TYPE (GUPnPLinuxContextManager,
                GUPNP_TYPE_CONTEXT_MANAGER);
 
 struct _GUPnPLinuxContextManagerPrivate {
+        /* Socket used for IOCTL calls */
         int fd;
+
+        /* Netlink sequence number; nl_seq > 1 means bootstrapping done */
         int nl_seq;
+
+        /* Socket used to do netlink communication */
         GSocket *netlink_socket;
+
+        /* Socket source used for normal netlink communication */
         GSource *netlink_socket_source;
+
+        /* Idle source used during bootstrap */
         GSource *bootstrap_source;
 
+        /* A hash table mapping system interface indices to a NetworkInterface
+         * structure */
         GHashTable *interfaces;
 };
 
@@ -144,8 +171,7 @@ network_device_update_essid (NetworkInterface *device)
         else
                 old_essid = NULL;
 #endif
-        if (old_essid)
-                g_free (old_essid);
+        g_free (old_essid);
 }
 
 static void
@@ -200,7 +226,7 @@ context_signal_up (G_GNUC_UNUSED gpointer key,
                    gpointer               value,
                    gpointer               user_data)
 {
-    g_signal_emit_by_name (user_data, "context-available", value);
+        g_signal_emit_by_name (user_data, "context-available", value);
 }
 
 static void
@@ -208,7 +234,7 @@ context_signal_down (G_GNUC_UNUSED gpointer key,
                      gpointer               value,
                      gpointer               user_data)
 {
-    g_signal_emit_by_name (user_data, "context-unavailable", value);
+        g_signal_emit_by_name (user_data, "context-unavailable", value);
 }
 
 static void
@@ -244,10 +270,8 @@ network_device_down (NetworkInterface *device)
 static void
 network_device_free (NetworkInterface *device)
 {
-        if (device->name != NULL)
-                g_free (device->name);
-        if (device->essid != NULL)
-                g_free (device->essid);
+        g_free (device->name);
+        g_free (device->essid);
 
         if (device->contexts != NULL) {
                 GHashTableIter iter;
@@ -258,15 +282,17 @@ network_device_free (NetworkInterface *device)
                 while (g_hash_table_iter_next (&iter,
                                                (gpointer *) &key,
                                                (gpointer *) &value)) {
-                    g_signal_emit_by_name (device->manager,
-                                           "context-unavailable",
-                                           value);
-                    g_hash_table_iter_remove (&iter);
+                        g_signal_emit_by_name (device->manager,
+                                               "context-unavailable",
+                                               value);
+                        g_hash_table_iter_remove (&iter);
                 }
         }
 
         g_hash_table_unref (device->contexts);
         device->contexts = NULL;
+
+        g_slice_free (NetworkInterface, device);
 }
 
 
@@ -301,18 +327,19 @@ on_netlink_message_available (G_GNUC_UNUSED GSocket     *socket,
 static void
 extract_info (struct nlmsghdr *header, char **label)
 {
-    int rt_attr_len;
-    struct rtattr *rt_attr;
-
-    rt_attr = IFLA_RTA (NLMSG_DATA (header));
-    rt_attr_len = IFLA_PAYLOAD (header);
-    while (RT_ATTR_OK (rt_attr, rt_attr_len)) {
-        if (rt_attr->rta_type == IFA_LABEL) {
-            *label = g_strdup ((char *) RTA_DATA (rt_attr));
-            break;
+        int rt_attr_len;
+        struct rtattr *rt_attr;
+
+        rt_attr = IFLA_RTA (NLMSG_DATA (header));
+        rt_attr_len = IFLA_PAYLOAD (header);
+        while (RT_ATTR_OK (rt_attr, rt_attr_len)) {
+                if (rt_attr->rta_type == IFA_LABEL) {
+                        *label = g_strdup ((char *) RTA_DATA (rt_attr));
+
+                        break;
+                }
+                rt_attr = RTA_NEXT (rt_attr, rt_attr_len);
         }
-        rt_attr = RTA_NEXT (rt_attr, rt_attr_len);
-    }
 }
 
 static gboolean
@@ -354,9 +381,8 @@ create_context (GUPnPLinuxContextManager *self,
         }
 
         /* If device isn't one we consider, silently skip address */
-        if (device->flags & NETWORK_INTERFACE_IGNORE) {
+        if (device->flags & NETWORK_INTERFACE_IGNORE)
                 return;
-        }
 
         network_device_create_context (device, label);
 }
@@ -468,6 +494,8 @@ send_netlink_request (GUPnPLinuxContextManager *self,
                            strerror (errno));
 }
 
+/* Query all available interfaces and immediately process all answers. We need
+ * to do this to be able to send RTM_GETADDR in the next step */
 static void
 query_all_network_interfaces (GUPnPLinuxContextManager *self)
 {
@@ -481,6 +509,8 @@ query_all_network_interfaces (GUPnPLinuxContextManager *self)
         g_error_free (error);
 }
 
+/* Start query of all currenly available network addresses. The answer will be
+ * processed by the normal netlink socket source call-back. */
 static void
 query_all_addresses (GUPnPLinuxContextManager *self)
 {
@@ -494,6 +524,7 @@ query_all_addresses (GUPnPLinuxContextManager *self)
         (((ifi)->ifi_flags & (IFF_MULTICAST | IFF_LOOPBACK)) && \
          !((ifi)->ifi_flags & IFF_POINTOPOINT))
 
+/* Handle status changes (up, down, new address, ...) on network interfaces */
 static void
 handle_device_status_change (GUPnPLinuxContextManager *self,
                              struct ifinfomsg         *ifi)
@@ -538,6 +569,8 @@ remove_device (GUPnPLinuxContextManager *self,
 #define NLMSG_IS_VALID(msg,len) \
         (NLMSG_OK(msg,len) && (msg->nlmsg_type != NLMSG_DONE))
 
+/* Process the raw netlink message and dispatch to helper functions
+ * accordingly */
 static void
 receive_netlink_message (GUPnPLinuxContextManager *self, GError **error)
 {
@@ -690,6 +723,8 @@ create_netlink_socket (GUPnPLinuxContextManager *self, GError **error)
         return TRUE;
 }
 
+/* public helper function to determine runtime-fallback depending on netlink
+ * availability. */
 gboolean
 gupnp_linux_context_manager_is_available (void)
 {
@@ -705,6 +740,8 @@ gupnp_linux_context_manager_is_available (void)
         return TRUE;
 }
 
+/* GObject virtual functions */
+
 static void
 gupnp_linux_context_manager_init (GUPnPLinuxContextManager *self)
 {
@@ -722,6 +759,7 @@ gupnp_linux_context_manager_init (GUPnPLinuxContextManager *self)
                                        (GDestroyNotify) network_device_free);
 }
 
+/* Constructor, kicks off bootstrapping */
 static void
 gupnp_linux_context_manager_constructed (GObject *object)
 {
index 76b1f80..0f6658e 100644 (file)
@@ -22,6 +22,9 @@
 #ifndef __GUPNP_LINUX_CONTEXT_MANAGER_H__
 #define __GUPNP_LINUX_CONTEXT_MANAGER_H__
 
+#include <glib.h>
+#include <glib-object.h>
+
 #include "gupnp-context-manager.h"
 
 G_BEGIN_DECLS
index 3b4e424..f9c304e 100644 (file)
@@ -714,12 +714,7 @@ gupnp_network_manager_dispose (GObject *object)
                 priv->manager_proxy = NULL;
         }
 
-        if (priv->nm_devices != NULL) {
-                g_list_foreach (priv->nm_devices, (GFunc) nm_device_unref,
-                    NULL);
-                g_list_free (priv->nm_devices);
-                priv->nm_devices = NULL;
-        }
+        g_list_free_full (priv->nm_devices, (GDestroyNotify) nm_device_unref);
 
         if (priv->cancellable != NULL)  {
                 g_object_unref (priv->cancellable);
index 0ff9aea..3a65b4d 100644 (file)
@@ -206,7 +206,8 @@ gupnp_resource_factory_create_device_proxy
  * @element: The #xmlNode ponting to the right service element
  * @location: The location of the service description file
  * @udn: The UDN of the device the service is contained in
- * @service_type: The service type
+ * @service_type: (allow-none): The service type, or %NULL to use service
+ * type from @element
  * @url_base: The URL base for this service, or %NULL if none
  *
  * Create a #GUPnPServiceProxy for the service with element @element, as
@@ -225,6 +226,7 @@ gupnp_resource_factory_create_service_proxy
                                  const char           *location,
                                  const SoupURI        *url_base)
 {
+        char              *type_from_xml = NULL;
         GUPnPServiceProxy *proxy;
         GType              proxy_type = GUPNP_TYPE_SERVICE_PROXY;
 
@@ -235,6 +237,13 @@ gupnp_resource_factory_create_service_proxy
         g_return_val_if_fail (location != NULL, NULL);
         g_return_val_if_fail (url_base != NULL, NULL);
 
+        if (!service_type) {
+                type_from_xml =
+                    xml_util_get_child_element_content_glib (element,
+                                                             "serviceType");
+                service_type = type_from_xml;
+        }
+
         if (service_type) {
                 gpointer value;
 
@@ -254,6 +263,8 @@ gupnp_resource_factory_create_service_proxy
                               "element", element,
                               NULL);
 
+        g_free (type_from_xml);
+
         return proxy;
 }
 
index 1e46798..fe6affc 100644 (file)
@@ -481,6 +481,8 @@ gupnp_root_device_class_init (GUPnPRootDeviceClass *klass)
          * GUPnPRootDevice:description-doc:
          *
          * Device description document. Constructor property.
+         *
+         * Since: 0.13.0
          **/
         g_object_class_install_property
                 (object_class,
@@ -500,6 +502,8 @@ gupnp_root_device_class_init (GUPnPRootDeviceClass *klass)
          *
          * The path to device description document. This could either be an
          * absolute path or path relative to GUPnPRootDevice:description-dir.
+         *
+         * Since: 0.13.0
          **/
         g_object_class_install_property
                 (object_class,
@@ -706,6 +710,8 @@ gupnp_root_device_get_description_dir (GUPnPRootDevice *root_device)
  * Get the #GSSDPResourceGroup used by @root_device.
  *
  * Returns: (transfer none): The #GSSDPResourceGroup of @root_device.
+ *
+ * Since: 0.19.2
  **/
 GSSDPResourceGroup *
 gupnp_root_device_get_ssdp_resource_group (GUPnPRootDevice *root_device)
index 1da6c19..7e84303 100644 (file)
@@ -77,12 +77,18 @@ typedef struct {
         GUPnPServiceIntrospectionCallback callback;
         gpointer                          user_data;
 
+        GCancellable                     *cancellable;
+        gulong                            cancelled_id;
+
         SoupMessage                      *message;
 } GetSCPDURLData;
 
 static void
 get_scpd_url_data_free (GetSCPDURLData *data)
 {
+        if (data->cancellable)
+                g_object_unref (data->cancellable);
+
         g_slice_free (GetSCPDURLData, data);
 }
 
@@ -187,6 +193,10 @@ gupnp_service_info_dispose (GObject *object)
 
                         data = info->priv->pending_gets->data;
 
+                        if (data->cancellable)
+                                g_cancellable_disconnect (data->cancellable,
+                                                          data->cancelled_id);
+
                         soup_session_cancel_message (session,
                                                      data->message,
                                                      SOUP_STATUS_CANCELLED);
@@ -649,6 +659,12 @@ got_scpd_url (G_GNUC_UNUSED SoupSession *session,
         } else
                 error = _gupnp_error_new_server_error (msg);
 
+        /* prevent the callback from canceling the cancellable
+         * (and so freeing data just before we do) */
+        if (data->cancellable)
+                g_cancellable_disconnect (data->cancellable,
+                                          data->cancelled_id);
+
         data->info->priv->pending_gets =
                 g_list_remove (data->info->priv->pending_gets, data);
 
@@ -663,6 +679,38 @@ got_scpd_url (G_GNUC_UNUSED SoupSession *session,
         get_scpd_url_data_free (data);
 }
 
+static void
+cancellable_cancelled_cb (GCancellable *cancellable,
+                          gpointer user_data)
+{
+        GUPnPServiceInfo *info;
+        GetSCPDURLData *data;
+        SoupSession *session;
+        GError *error;
+
+        data = user_data;
+        info = data->info;
+
+        session = gupnp_context_get_session (info->priv->context);
+        soup_session_cancel_message (session,
+                                     data->message,
+                                     SOUP_STATUS_CANCELLED);
+
+        info->priv->pending_gets =
+                g_list_remove (info->priv->pending_gets, data);
+
+        error = g_error_new (G_IO_ERROR,
+                             G_IO_ERROR_CANCELLED,
+                             "The call was canceled");
+
+        data->callback (data->info,
+                        NULL,
+                        error,
+                        data->user_data);
+
+        get_scpd_url_data_free (data);
+}
+
 /**
  * gupnp_service_info_get_introspection_async:
  * @info: A #GUPnPServiceInfo
@@ -679,6 +727,35 @@ gupnp_service_info_get_introspection_async
                                  GUPnPServiceIntrospectionCallback callback,
                                  gpointer                          user_data)
 {
+        gupnp_service_info_get_introspection_async_full (info,
+                                                         callback,
+                                                         NULL,
+                                                         user_data);
+}
+
+/**
+ * gupnp_service_info_get_introspection_async_full:
+ * @info: A #GUPnPServiceInfo
+ * @callback: (scope async) : callback to be called when introspection object is ready.
+ * @cancellable: GCancellable that can be used to cancel the call, or %NULL.
+ * @user_data: user_data to be passed to the callback.
+ *
+ * Note that introspection object is created from the information in service
+ * description document (SCPD) provided by the service so it can not be created
+ * if the service does not provide an SCPD.
+ *
+ * If @cancellable is used to cancel the call, @callback will be called with
+ * error code %G_IO_ERROR_CANCELLED.
+ *
+ * Since: 0.20.9.
+ **/
+void
+gupnp_service_info_get_introspection_async_full
+                                (GUPnPServiceInfo                 *info,
+                                 GUPnPServiceIntrospectionCallback callback,
+                                 GCancellable                     *cancellable,
+                                 gpointer                          user_data)
+{
         GetSCPDURLData *data;
         char *scpd_url;
         SoupSession *session;
@@ -729,4 +806,14 @@ gupnp_service_info_get_introspection_async
                                     data->message,
                                     (SoupSessionCallback) got_scpd_url,
                                     data);
+
+        data->cancellable = cancellable;
+        if (data->cancellable) {
+                g_object_ref (cancellable);
+                data->cancelled_id = g_cancellable_connect
+                                (data->cancellable,
+                                 G_CALLBACK (cancellable_cancelled_cb),
+                                 data,
+                                 NULL);
+        }
 }
index c81c29e..3fe2b3e 100644 (file)
@@ -133,6 +133,13 @@ gupnp_service_info_get_introspection_async
                                GUPnPServiceIntrospectionCallback callback,
                                gpointer                          user_data);
 
+void
+gupnp_service_info_get_introspection_async_full
+                              (GUPnPServiceInfo                 *info,
+                               GUPnPServiceIntrospectionCallback callback,
+                               GCancellable                     *cancellable,
+                               gpointer                          user_data);
+
 G_END_DECLS
 
 #endif /* __GUPNP_SERVICE_INFO_H__ */
index ebcc7a2..4453495 100644 (file)
@@ -95,10 +95,8 @@ gupnp_service_state_variable_info_free
                 g_value_unset (&variable->maximum);
                 g_value_unset (&variable->step);
         }
-        g_list_foreach (variable->allowed_values,
-                         (GFunc) g_free,
-                         NULL);
-        g_list_free (variable->allowed_values);
+
+        g_list_free_full (variable->allowed_values, g_free);
 
         g_slice_free (GUPnPServiceStateVariableInfo, variable);
 }
@@ -164,12 +162,8 @@ gupnp_service_action_info_free (GUPnPServiceActionInfo *action_info)
         GList *iter;
 
         g_free (action_info->name);
-
-        for (iter = action_info->arguments; iter; iter = iter->next) {
-                gupnp_service_action_arg_info_free (
-                                (GUPnPServiceActionArgInfo *) iter->data);
-        }
-        g_list_free (action_info->arguments);
+        g_list_free_full (action_info->arguments,
+                          (GDestroyNotify) gupnp_service_action_arg_info_free);
         g_slice_free (GUPnPServiceActionInfo, action_info);
 }
 
@@ -180,23 +174,19 @@ gupnp_service_introspection_finalize (GObject *object)
 
         introspection = GUPNP_SERVICE_INTROSPECTION (object);
 
-        if (introspection->priv->variables) {
-                g_list_foreach (introspection->priv->variables,
-                                (GFunc) gupnp_service_state_variable_info_free,
-                                NULL);
-                g_list_free (introspection->priv->variables);
-        }
+        g_list_free_full (introspection->priv->variables,
+                          (GDestroyNotify) gupnp_service_state_variable_info_free);
 
-        if (introspection->priv->actions) {
-                g_list_foreach (introspection->priv->actions,
-                                (GFunc) gupnp_service_action_info_free,
-                                NULL);
-                g_list_free (introspection->priv->actions);
-        }
+        g_list_free_full (introspection->priv->actions,
+                          (GDestroyNotify) gupnp_service_action_info_free);
 
+        /* Contents don't need to be freed, they were owned by priv->variables
+         */
         if (introspection->priv->variable_names)
                 g_list_free (introspection->priv->variable_names);
 
+        /* Contents don't need to be freed, they were owned by priv->actions
+         */
         if (introspection->priv->action_names)
                 g_list_free (introspection->priv->action_names);
 }
index 6a06598..7a48ac9 100644 (file)
@@ -94,13 +94,15 @@ struct _GUPnPServiceProxyAction {
 };
 
 typedef struct {
-        GType type;
+        GType type;       /* type of the variable this notification is for */
 
-        GList *callbacks;
+        GList *callbacks; /* list of CallbackData */
+        GList *next_emit; /* pointer into callbacks as which callback to call next*/
 } NotifyData;
 
 typedef struct {
         GUPnPServiceProxyNotifyCallback callback;
+        GDestroyNotify notify;
         gpointer user_data;
 } CallbackData;
 
@@ -133,9 +135,19 @@ gupnp_service_proxy_action_free (GUPnPServiceProxyAction *action)
 }
 
 static void
+callback_data_free (CallbackData *data)
+{
+        if (data->notify)
+                data->notify (data->user_data);
+
+        g_slice_free (CallbackData, data);
+}
+
+static void
 notify_data_free (NotifyData *data)
 {
-        g_list_free (data->callbacks);
+        g_list_free_full (data->callbacks,
+                          (GDestroyNotify) callback_data_free);
 
         g_slice_free (NotifyData, data);
 }
@@ -282,12 +294,9 @@ gupnp_service_proxy_dispose (GObject *object)
                 proxy->priv->notify_idle_src = NULL;
         }
 
-        while (proxy->priv->pending_notifies) {
-                emit_notify_data_free (proxy->priv->pending_notifies->data);
-                proxy->priv->pending_notifies =
-                        g_list_delete_link (proxy->priv->pending_notifies,
-                                            proxy->priv->pending_notifies);
-        }
+        g_list_free_full (proxy->priv->pending_notifies,
+                          (GDestroyNotify) emit_notify_data_free);
+        proxy->priv->pending_notifies = NULL;
 
         /* Call super */
         object_class = G_OBJECT_CLASS (gupnp_service_proxy_parent_class);
@@ -370,7 +379,7 @@ gupnp_service_proxy_class_init (GUPnPServiceProxyClass *klass)
  * gupnp_service_proxy_send_action:
  * @proxy: A #GUPnPServiceProxy
  * @action: An action
- * @error: The location where to store any error, or %NULL
+ * @error: (allow-none): The location where to store any error, or %NULL
  * @...: tuples of in parameter name, in parameter type, and in parameter
  * value, followed by %NULL, and then tuples of out parameter name,
  * out parameter type, and out parameter value location, terminated with %NULL
@@ -462,7 +471,7 @@ stop_main_loop (G_GNUC_UNUSED GUPnPServiceProxy       *proxy,
 /* Initializes hash table to hold arg names as keys and GValues of
  * given type and value.
  */
-#define VAR_ARGS_TO_IN_HASH_TABLE(var_args, hash) \
+#define VAR_ARGS_TO_IN_LIST(var_args, names, values) \
         G_STMT_START { \
                 const gchar *arg_name = va_arg (var_args, const gchar *); \
          \
@@ -477,7 +486,8 @@ stop_main_loop (G_GNUC_UNUSED GUPnPServiceProxy       *proxy,
                                               G_VALUE_NOCOPY_CONTENTS, \
                                               &error); \
                         if (error == NULL) { \
-                                g_hash_table_insert (hash, g_strdup (arg_name), value); \
+                                names = g_list_prepend (names, g_strdup (arg_name)); \
+                                values = g_list_prepend (values, value); \
                         } else { \
                                 g_warning ("Failed to collect value of type %s for %s: %s", \
                                            g_type_name (type), \
@@ -487,6 +497,8 @@ stop_main_loop (G_GNUC_UNUSED GUPnPServiceProxy       *proxy,
                         } \
                         arg_name = va_arg (var_args, const gchar *); \
                 } \
+                names = g_list_reverse (names); \
+                values = g_list_reverse (values); \
         } G_STMT_END
 
 /* Puts values stored in hash table with GValues into var args.
@@ -538,7 +550,7 @@ value_free (gpointer data)
  * gupnp_service_proxy_send_action_valist:
  * @proxy: A #GUPnPServiceProxy
  * @action: An action
- * @error: The location where to store any error, or %NULL
+ * @error: (allow-none): The location where to store any error, or %NULL
  * @var_args: va_list of tuples of in parameter name, in parameter type, and in
  * parameter value, followed by %NULL, and then tuples of out parameter name,
  * out parameter type, and out parameter value location
@@ -553,20 +565,22 @@ gupnp_service_proxy_send_action_valist (GUPnPServiceProxy *proxy,
                                         GError           **error,
                                         va_list            var_args)
 {
-        GHashTable *in_hash;
-        GHashTable *out_hash;
+        GList *in_names = NULL, *in_values = NULL;
+        GHashTable *out_hash = NULL;
         va_list var_args_copy;
         gboolean result;
         GError *local_error;
+        GMainLoop *main_loop;
+        GUPnPServiceProxyAction *handle;
 
         g_return_val_if_fail (GUPNP_IS_SERVICE_PROXY (proxy), FALSE);
         g_return_val_if_fail (action, FALSE);
 
-        in_hash = g_hash_table_new_full (g_str_hash,
-                                         g_str_equal,
-                                         g_free,
-                                         value_free);
-        VAR_ARGS_TO_IN_HASH_TABLE (var_args, in_hash);
+
+        main_loop = g_main_loop_new (g_main_context_get_thread_default (),
+                                     TRUE);
+
+        VAR_ARGS_TO_IN_LIST (var_args, in_names, in_values);
         G_VA_COPY (var_args_copy, var_args);
         out_hash = g_hash_table_new_full (g_str_hash,
                                           g_str_equal,
@@ -606,7 +620,8 @@ gupnp_service_proxy_send_action_valist (GUPnPServiceProxy *proxy,
         }
 out:
         va_end (var_args_copy);
-        g_hash_table_unref (in_hash);
+        g_list_free_full (in_names, g_free);
+        g_list_free_full (in_values, value_free);
         g_hash_table_unref (out_hash);
 
         return result;
@@ -616,7 +631,7 @@ out:
  * gupnp_service_proxy_send_action_hash:
  * @proxy: A #GUPnPServiceProxy
  * @action: An action
- * @error: The location where to store any error, or %NULL
+ * @error: (allow-none): The location where to store any error, or %NULL
  * @in_hash: (element-type utf8 GValue) (transfer none): A #GHashTable of in
  * parameter name and #GValue pairs
  * @out_hash: (inout) (element-type utf8 GValue) (transfer full): A #GHashTable
@@ -625,7 +640,13 @@ out:
  * See gupnp_service_proxy_send_action(); this version takes a pair of
  * #GHashTable<!-- -->s for runtime determined parameter lists.
  *
+ * Do not use this function in newly written code; it cannot guarantee the
+ * order of arguments and thus breaks interaction with many devices.
+ *
  * Return value: %TRUE if sending the action was succesful.
+ *
+ * Deprecated: 0.20.9: Use gupnp_service_proxy_send_action() or
+ * gupnp_service_proxy_send_action_list()
  **/
 gboolean
 gupnp_service_proxy_send_action_hash (GUPnPServiceProxy *proxy,
@@ -643,11 +664,13 @@ gupnp_service_proxy_send_action_hash (GUPnPServiceProxy *proxy,
         main_loop = g_main_loop_new (g_main_context_get_thread_default (),
                                      TRUE);
 
+        G_GNUC_BEGIN_IGNORE_DEPRECATIONS
         handle = gupnp_service_proxy_begin_action_hash (proxy,
                                                         action,
                                                         stop_main_loop,
                                                         main_loop,
                                                         in_hash);
+        G_GNUC_END_IGNORE_DEPRECATIONS
         if (!handle) {
                 g_main_loop_unref (main_loop);
 
@@ -671,9 +694,9 @@ gupnp_service_proxy_send_action_hash (GUPnPServiceProxy *proxy,
 
 /**
  * gupnp_service_proxy_send_action_list:
- * @proxy: (transfer none) : A #GUPnPServiceProxy
+ * @proxy: A #GUPnPServiceProxy
  * @action: An action
- * @error: The location where to store any error, or %NULL
+ * @error: (allow-none): The location where to store any error, or %NULL
  * @in_names: (element-type utf8) (transfer none): #GList of 'in' parameter
  * names (as strings)
  * @in_values: (element-type GValue) (transfer none): #GList of values (as
@@ -689,6 +712,8 @@ gupnp_service_proxy_send_action_hash (GUPnPServiceProxy *proxy,
  * #gupnp_service_proxy_end_action_list.
  *
  * Return value: %TRUE if sending the action was succesful.
+ *
+ * Since: 0.13.3
  **/
 gboolean
 gupnp_service_proxy_send_action_list (GUPnPServiceProxy *proxy,
@@ -964,6 +989,16 @@ write_in_parameter (const char *arg_name,
         xml_util_end_element (msg_str, arg_name);
 }
 
+static gboolean
+action_error_idle_cb (gpointer user_data)
+{
+        GUPnPServiceProxyAction *action = (GUPnPServiceProxyAction *) user_data;
+
+        action->callback (action->proxy, action, action->user_data);
+
+        return FALSE;
+}
+
 /**
  * gupnp_service_proxy_begin_action_valist:
  * @proxy: A #GUPnPServiceProxy
@@ -989,24 +1024,21 @@ gupnp_service_proxy_begin_action_valist
                                     va_list                         var_args)
 {
         GUPnPServiceProxyAction *ret;
-        GHashTable *in_hash;
+        GList *in_names = NULL, *in_values = NULL;
 
         g_return_val_if_fail (GUPNP_IS_SERVICE_PROXY (proxy), NULL);
         g_return_val_if_fail (action, NULL);
         g_return_val_if_fail (callback, NULL);
 
-
-        in_hash = g_hash_table_new_full (g_str_hash,
-                                         g_str_equal,
-                                         g_free,
-                                         value_free);
-        VAR_ARGS_TO_IN_HASH_TABLE (var_args, in_hash);
-        ret = gupnp_service_proxy_begin_action_hash (proxy,
+        VAR_ARGS_TO_IN_LIST (var_args, in_names, in_values);
+        ret = gupnp_service_proxy_begin_action_list (proxy,
                                                      action,
+                                                     in_names,
+                                                     in_values,
                                                      callback,
-                                                     user_data,
-                                                     in_hash);
-        g_hash_table_unref (in_hash);
+                                                     user_data);
+        g_list_free_full (in_names, g_free);
+        g_list_free_full (in_values, value_free);
 
         return ret;
 }
@@ -1027,8 +1059,10 @@ gupnp_service_proxy_begin_action_valist
  * in-parameter names, types and values.
  *
  * Return value: (transfer none): A #GUPnPServiceProxyAction handle. This will
- * be freed when calling #gupnp_service_proxy_cancel_action or
- * #gupnp_service_proxy_end_action_list.
+ * be freed when calling gupnp_service_proxy_cancel_action() or
+ * gupnp_service_proxy_end_action_list().
+ *
+ * Since: 0.13.3
  **/
 GUPnPServiceProxyAction *
 gupnp_service_proxy_begin_action_list
@@ -1054,7 +1088,7 @@ gupnp_service_proxy_begin_action_list
         ret = begin_action_msg (proxy, action, callback, user_data);
 
         if (ret->error) {
-                callback (proxy, ret, user_data);
+                g_idle_add (action_error_idle_cb, ret);
 
                 return ret;
         }
@@ -1090,9 +1124,16 @@ gupnp_service_proxy_begin_action_list
  * See gupnp_service_proxy_begin_action(); this version takes a #GHashTable
  * for runtime generated parameter lists.
  *
+ * Do not use this function in newly written code; it cannot guarantee the
+ * order of arguments and thus breaks interaction with many devices.
+ *
  * Return value: (transfer none): A #GUPnPServiceProxyAction handle. This will
  * be freed when calling gupnp_service_proxy_cancel_action() or
  * gupnp_service_proxy_end_action_hash().
+ *
+ * Deprecated: 0.20.9: Use gupnp_service_proxy_send_action() or
+ * gupnp_service_proxy_send_action_list()
+ *
  **/
 GUPnPServiceProxyAction *
 gupnp_service_proxy_begin_action_hash
@@ -1112,7 +1153,7 @@ gupnp_service_proxy_begin_action_hash
         ret = begin_action_msg (proxy, action, callback, user_data);
 
         if (ret->error) {
-                callback (proxy, ret, user_data);
+                g_idle_add (action_error_idle_cb, ret);
 
                 return ret;
         }
@@ -1130,14 +1171,14 @@ gupnp_service_proxy_begin_action_hash
  * gupnp_service_proxy_end_action:
  * @proxy: A #GUPnPServiceProxy
  * @action: A #GUPnPServiceProxyAction handle
- * @error: The location where to store any error, or %NULL
+ * @error: (allow-none): The location where to store any error, or %NULL
  * @...: tuples of out parameter name, out parameter type, and out parameter
  * value location, terminated with %NULL. The out parameter values should be
  * freed after use
  *
  * Retrieves the result of @action. The out parameters in @Varargs will be
  * filled in, and if an error occurred, @error will be set. In case of
- * a UPnPError the error code will be the same in @error.
+ * an UPnP error the error code will be the same in @error.
  *
  * Return value: %TRUE on success.
  **/
@@ -1316,7 +1357,7 @@ read_out_parameter (const char *arg_name,
  * gupnp_service_proxy_end_action_valist:
  * @proxy: A #GUPnPServiceProxy
  * @action: A #GUPnPServiceProxyAction handle
- * @error: The location where to store any error, or %NULL
+ * @error: (allow-none): The location where to store any error, or %NULL
  * @var_args: A va_list of tuples of out parameter name, out parameter type,
  * and out parameter value location. The out parameter values should be
  * freed after use
@@ -1367,7 +1408,7 @@ gupnp_service_proxy_end_action_valist (GUPnPServiceProxy       *proxy,
  * gupnp_service_proxy_end_action_list:
  * @proxy: A #GUPnPServiceProxy
  * @action: A #GUPnPServiceProxyAction handle
- * @error: The location where to store any error, or %NULL
+ * @error: (allow-none): The location where to store any error, or %NULL
  * @out_names: (element-type utf8) (transfer none): #GList of 'out' parameter
  * names (as strings)
  * @out_types: (element-type GType) (transfer none): #GList of types (as #GType)
@@ -1404,11 +1445,7 @@ gupnp_service_proxy_end_action_list (GUPnPServiceProxy       *proxy,
 
         /* Check for saved error from begin_action() */
         if (action->error) {
-                if (error)
-                        *error = action->error;
-                else
-                        g_error_free (action->error);
-
+                g_propagate_error (error, action->error);
                 gupnp_service_proxy_action_free (action);
 
                 return FALSE;
@@ -1475,11 +1512,7 @@ gupnp_service_proxy_end_action_hash (GUPnPServiceProxy       *proxy,
 
         /* Check for saved error from begin_action() */
         if (action->error) {
-                if (error)
-                        *error = action->error;
-                else
-                        g_error_free (action->error);
-
+                g_propagate_error (error, action->error);
                 gupnp_service_proxy_action_free (action);
 
                 return FALSE;
@@ -1539,7 +1572,7 @@ gupnp_service_proxy_cancel_action (GUPnPServiceProxy       *proxy,
 }
 
 /**
- * gupnp_service_proxy_add_notify:
+ * gupnp_service_proxy_add_notify: (skip)
  * @proxy: A #GUPnPServiceProxy
  * @variable: The variable to add notification for
  * @type: The type of the variable
@@ -1557,6 +1590,39 @@ gupnp_service_proxy_add_notify (GUPnPServiceProxy              *proxy,
                                 GType                           type,
                                 GUPnPServiceProxyNotifyCallback callback,
                                 gpointer                        user_data)
+
+{
+        return gupnp_service_proxy_add_notify_full (proxy,
+                                                    variable,
+                                                    type,
+                                                    callback,
+                                                    user_data,
+                                                    NULL);
+}
+
+/**
+ * gupnp_service_proxy_add_notify_full: (rename-to gupnp_service_proxy_add_notify)
+ * @proxy: A #GUPnPServiceProxy
+ * @variable: The variable to add notification for
+ * @type: The type of the variable
+ * @callback: (scope notified): The callback to call when @variable changes
+ * @user_data: User data for @callback
+ * @notify: (allow-none): Function to call when the notification is removed, or %NULL
+ *
+ * Sets up @callback to be called whenever a change notification for
+ * @variable is recieved.
+ *
+ * Since: 0.20.12
+ *
+ * Return value: %TRUE on success.
+ **/
+gboolean
+gupnp_service_proxy_add_notify_full (GUPnPServiceProxy              *proxy,
+                                     const char                     *variable,
+                                     GType                           type,
+                                     GUPnPServiceProxyNotifyCallback callback,
+                                     gpointer                        user_data,
+                                     GDestroyNotify                  notify)
 {
         NotifyData *data;
         CallbackData *callback_data;
@@ -1574,6 +1640,7 @@ gupnp_service_proxy_add_notify (GUPnPServiceProxy              *proxy,
 
                 data->type       = type;
                 data->callbacks  = NULL;
+                data->next_emit   = NULL;
 
                 g_hash_table_insert (proxy->priv->notify_hash,
                                      g_strdup (variable),
@@ -1596,13 +1663,48 @@ gupnp_service_proxy_add_notify (GUPnPServiceProxy              *proxy,
 
         callback_data->callback  = callback;
         callback_data->user_data = user_data;
+        callback_data->notify    = notify;
 
         data->callbacks = g_list_append (data->callbacks, callback_data);
 
+        if (data->next_emit == NULL)
+                data->next_emit = g_list_last (data->callbacks);
+
         return TRUE;
 }
 
 /**
+ * gupnp_service_proxy_add_raw_notify:
+ * @proxy: A #GUPnPServiceProxy
+ * @callback: (scope notified): The callback to call when the peer issues any
+ * variable notification.
+ * @user_data: User data for @callback
+ * @notify: (allow-none): A #GDestroyNotify for @user_data
+ *
+ * Get a notification for anything that happens on the peer. @value in
+ * @callback will be of type #G_TYPE_POINTER and contain the pre-parsed
+ * #xmlDoc. Do NOT free or modify this document.
+ *
+ * Return value: %TRUE on success.
+ *
+ * Since: 0.20.12
+ **/
+gboolean
+gupnp_service_proxy_add_raw_notify (GUPnPServiceProxy              *proxy,
+                                    GUPnPServiceProxyNotifyCallback callback,
+                                    gpointer                        user_data,
+                                    GDestroyNotify                  notify)
+{
+        return gupnp_service_proxy_add_notify_full (proxy,
+                                                    "*",
+                                                    G_TYPE_NONE,
+                                                    callback,
+                                                    user_data,
+                                                    notify);
+}
+
+
+/**
  * gupnp_service_proxy_remove_notify:
  * @proxy: A #GUPnPServiceProxy
  * @variable: The variable to add notification for
@@ -1611,9 +1713,10 @@ gupnp_service_proxy_add_notify (GUPnPServiceProxy              *proxy,
  *
  * Cancels the variable change notification for @callback and @user_data.
  *
- * This function must not be called directly or indirectly from a
- * #GUPnPServiceProxyNotifyCallback associated with this service proxy, even
- * if it is for another variable.
+ * Up to version 0.20.9 this function must not be called directlya or
+ * indirectly from a #GUPnPServiceProxyNotifyCallback associated with this
+ * service proxy, even if it is for another variable. In later versions such
+ * calls are allowed.
  *
  * Return value: %TRUE on success.
  **/
@@ -1650,8 +1753,12 @@ gupnp_service_proxy_remove_notify (GUPnPServiceProxy              *proxy,
 
                 if (callback_data->callback  == callback &&
                     callback_data->user_data == user_data) {
+
                         /* Gotcha! */
-                        g_slice_free (CallbackData, callback_data);
+                        callback_data_free (callback_data);
+
+                        if (data->next_emit == l)
+                                data->next_emit = data->next_emit->next;
 
                         data->callbacks =
                                 g_list_delete_link (data->callbacks, l);
@@ -1673,6 +1780,31 @@ gupnp_service_proxy_remove_notify (GUPnPServiceProxy              *proxy,
         return found;
 }
 
+/**
+ * gupnp_service_proxy_remove_raw_notify:
+ * @proxy: A #GUPnPServiceProxy
+ * @callback: (scope call): The callback to call when @variable changes
+ * @user_data: User data for @callback
+ *
+ * Cancels the variable change notification for @callback and @user_data.
+ *
+ * This function must not be called directly or indirectly from a
+ * #GUPnPServiceProxyNotifyCallback associated with this service proxy, even
+ * if it is for another variable.
+ *
+ * Return value: %TRUE on success.
+ **/
+gboolean
+gupnp_service_proxy_remove_raw_notify (GUPnPServiceProxy              *proxy,
+                                       GUPnPServiceProxyNotifyCallback callback,
+                                       gpointer                        user_data)
+{
+        return gupnp_service_proxy_remove_notify (proxy,
+                                                  "*",
+                                                  callback,
+                                                  user_data);
+}
+
 static void
 emit_notification (GUPnPServiceProxy *proxy,
                    xmlNode           *var_node)
@@ -1694,11 +1826,13 @@ emit_notification (GUPnPServiceProxy *proxy,
                 return;
         }
 
-        /* Call callbacks */
-        for (l = data->callbacks; l; l = l->next) {
+        /* Call callbacks. Note that data->next_emit may change if
+         * callback calls remove_notify() or add_notify() */
+        for (l = data->callbacks; l; l = data->next_emit) {
                 CallbackData *callback_data;
 
                 callback_data = l->data;
+                data->next_emit = l->next;
 
                 callback_data->callback (proxy,
                                          (const char *) var_node->name,
@@ -1714,6 +1848,7 @@ static void
 emit_notifications_for_doc (GUPnPServiceProxy *proxy,
                             xmlDoc            *doc)
 {
+        NotifyData *data = NULL;
         xmlNode *node;
 
         node = xmlDocGetRootElement (doc);
@@ -1734,6 +1869,26 @@ emit_notifications_for_doc (GUPnPServiceProxy *proxy,
                                 emit_notification (proxy, var_node);
                 }
         }
+
+        data = g_hash_table_lookup (proxy->priv->notify_hash, "*");
+        if (data != NULL) {
+                GValue value = {0, };
+                GList *it = NULL;
+
+                g_value_init (&value, G_TYPE_POINTER);
+                g_value_set_pointer (&value, doc);
+
+                for (it = data->callbacks; it != NULL; it = it->next) {
+                        CallbackData *callback_data = it->data;
+
+                        callback_data->callback (proxy,
+                                                 "*",
+                                                 &value,
+                                                 callback_data->user_data);
+                }
+
+                g_value_unset (&value);
+        }
 }
 
 /* Emit pending notifications. See comment below on why we do this. */
@@ -1786,13 +1941,9 @@ emit_notifications (gpointer user_data)
         }
 
         /* Cleanup */
-        while (proxy->priv->pending_notifies != NULL) {
-                emit_notify_data_free (proxy->priv->pending_notifies->data);
-
-                proxy->priv->pending_notifies =
-                        g_list_delete_link (proxy->priv->pending_notifies,
-                                            proxy->priv->pending_notifies);
-        }
+        g_list_free_full (proxy->priv->pending_notifies,
+                          (GDestroyNotify) emit_notify_data_free);
+        proxy->priv->pending_notifies = NULL;
 
         proxy->priv->notify_idle_src = NULL;
 
index a11057a..be7d240 100644 (file)
@@ -130,13 +130,15 @@ gupnp_service_proxy_send_action_valist
                                     GError                        **error,
                                     va_list                         var_args);
 
+#ifndef GUPNP_DISABLE_DEPRECATED
 gboolean
 gupnp_service_proxy_send_action_hash
                                    (GUPnPServiceProxy              *proxy,
                                     const char                     *action,
                                     GError                        **error,
                                     GHashTable                     *in_hash,
-                                    GHashTable                     *out_hash);
+                                    GHashTable                     *out_hash) G_GNUC_DEPRECATED;
+#endif
 
 
 gboolean
@@ -174,13 +176,15 @@ gupnp_service_proxy_begin_action_list
                                     GUPnPServiceProxyActionCallback callback,
                                     gpointer                        user_data);
 
+#ifndef GUPNP_DISABLE_DEPRECATED
 GUPnPServiceProxyAction *
 gupnp_service_proxy_begin_action_hash
                                    (GUPnPServiceProxy              *proxy,
                                     const char                     *action,
                                     GUPnPServiceProxyActionCallback callback,
                                     gpointer                        user_data,
-                                    GHashTable                     *hash);
+                                    GHashTable                     *hash) G_GNUC_DEPRECATED;
+#endif
 
 gboolean
 gupnp_service_proxy_end_action     (GUPnPServiceProxy              *proxy,
@@ -223,11 +227,31 @@ gupnp_service_proxy_add_notify     (GUPnPServiceProxy              *proxy,
                                     gpointer                        user_data);
 
 gboolean
+gupnp_service_proxy_add_notify_full (GUPnPServiceProxy              *proxy,
+                                     const char                     *variable,
+                                     GType                           type,
+                                     GUPnPServiceProxyNotifyCallback callback,
+                                     gpointer                        user_data,
+                                     GDestroyNotify                  notify);
+
+gboolean
+gupnp_service_proxy_add_raw_notify (GUPnPServiceProxy              *proxy,
+                                    GUPnPServiceProxyNotifyCallback callback,
+                                    gpointer                        user_data,
+                                    GDestroyNotify                  notify);
+
+gboolean
 gupnp_service_proxy_remove_notify  (GUPnPServiceProxy              *proxy,
                                     const char                     *variable,
                                     GUPnPServiceProxyNotifyCallback callback,
                                     gpointer                        user_data);
 
+gboolean
+gupnp_service_proxy_remove_raw_notify
+                                   (GUPnPServiceProxy              *proxy,
+                                    GUPnPServiceProxyNotifyCallback callback,
+                                    gpointer                        user_data);
+
 void
 gupnp_service_proxy_set_subscribed (GUPnPServiceProxy              *proxy,
                                     gboolean                        subscribed);
index 459ed77..d971118 100644 (file)
 #include <gmodule.h>
 #include <libsoup/soup-date.h>
 #include <string.h>
+
 #include "gupnp-service.h"
 #include "gupnp-root-device.h"
 #include "gupnp-context-private.h"
 #include "gupnp-marshal.h"
 #include "gupnp-error.h"
+#include "gupnp-acl.h"
 #include "http-headers.h"
 #include "gena-protocol.h"
 #include "xml-util.h"
@@ -166,11 +168,7 @@ subscription_data_free (SubscriptionData *data)
         }
        
         /* Further cleanup */
-        while (data->callbacks) {
-                g_free (data->callbacks->data);
-                data->callbacks = g_list_delete_link (data->callbacks,
-                                                      data->callbacks);
-        }
+        g_list_free_full (data->callbacks, g_free);
 
         g_free (data->sid);
 
@@ -425,8 +423,10 @@ gupnp_service_action_get_valist (GUPnPServiceAction *action,
  * A variant of #gupnp_service_action_get that uses #GList instead of varargs.
  *
  * Return value: (element-type GValue) (transfer full): The values as #GList of
- * #GValue. #g_list_free the returned list and #g_value_unset and #g_slice_free
+ * #GValue. g_list_free() the returned list and g_value_unset() and g_slice_free()
  * each element.
+ *
+ * Since: 0.13.3
  **/
 GList *
 gupnp_service_action_get_values (GUPnPServiceAction *action,
@@ -497,19 +497,19 @@ gupnp_service_action_get_value (GUPnPServiceAction *action,
 }
 
 /**
- * gupnp_service_action_get_gvalue:
+ * gupnp_service_action_get_gvalue: (rename-to gupnp_service_action_get_value)
  * @action: A #GUPnPServiceAction
  * @argument: The name of the argument to retrieve
  * @type: The type of argument to retrieve
  *
  * Retrieves the value of @argument into a GValue of type @type and returns it.
  * The method exists only and only to satify PyGI, please use
- * #gupnp_service_action_get_value and ignore this if possible.
+ * gupnp_service_action_get_value() and ignore this if possible.
  *
  * Return value: (transfer full): Value as #GValue associated with @action.
- * #g_value_unset and #g_slice_free it after usage.
+ * g_value_unset() and g_slice_free() it after usage.
  *
- * Rename To: gupnp_service_action_get_value
+ * Since: 0.13.3
  **/
 GValue *
 gupnp_service_action_get_gvalue (GUPnPServiceAction *action,
@@ -533,6 +533,8 @@ gupnp_service_action_get_gvalue (GUPnPServiceAction *action,
  * Get the number of IN arguments from the @action and return it.
  *
  * Return value: The number of IN arguments from the @action.
+ *
+ * Since: 0.17.0
  */
 guint
 gupnp_service_action_get_argument_count (GUPnPServiceAction *action)
@@ -615,6 +617,8 @@ gupnp_service_action_set_valist (GUPnPServiceAction *action,
  * #GValues) that line up with @arg_names.
  *
  * Sets the specified action return values.
+ *
+ * Since: 0.13.3
  **/
 void
 gupnp_service_action_set_values (GUPnPServiceAction *action,
@@ -791,6 +795,8 @@ gupnp_service_action_return_error (GUPnPServiceAction *action,
  *
  * Return value: (transfer full): #SoupMessage associated with @action. Unref
  * after using it.
+ *
+ * Since: 0.13.0
  **/
 SoupMessage *
 gupnp_service_action_get_message (GUPnPServiceAction *action)
@@ -1302,6 +1308,8 @@ subscription_server_handler (G_GNUC_UNUSED SoupServer        *server,
                              gpointer                         user_data)
 {
         GUPnPService *service;
+        GUPnPContext *context;
+        GUPnPAcl *acl;
         const char *callback, *nt, *sid;
 
         service = GUPNP_SERVICE (user_data);
@@ -1432,7 +1440,7 @@ gupnp_service_constructor (GType                  type,
         GObject *object;
         GUPnPServiceInfo *info;
         GUPnPContext *context;
-        SoupServer *server;
+        AclServerHandler *handler;
         char *url;
         char *path;
 
@@ -1443,7 +1451,7 @@ gupnp_service_constructor (GType                  type,
                                             n_construct_params,
                                             construct_params);
 
-        info    = GUPNP_SERVICE_INFO (object);
+        info = GUPNP_SERVICE_INFO (object);
 
         /* Get introspection and save state variable names */
         gupnp_service_info_get_introspection_async (info,
@@ -1452,21 +1460,28 @@ gupnp_service_constructor (GType                  type,
 
         /* Get server */
         context = gupnp_service_info_get_context (info);
-        server = gupnp_context_get_server (context);
 
         /* Run listener on controlURL */
         url = gupnp_service_info_get_control_url (info);
         path = path_from_url (url);
-        soup_server_add_handler (server, path,
-                                 control_server_handler, object, NULL);
+        handler = acl_server_handler_new (GUPNP_SERVICE (object),
+                                          context,
+                                          control_server_handler,
+                                          g_object_ref (object),
+                                          g_object_unref);
+        _gupnp_context_add_server_handler_with_data (context, path, handler);
         g_free (path);
         g_free (url);
 
         /* Run listener on eventSubscriptionURL */
         url = gupnp_service_info_get_event_subscription_url (info);
         path = path_from_url (url);
-        soup_server_add_handler (server, path,
-                                 subscription_server_handler, object, NULL);
+        handler = acl_server_handler_new (GUPNP_SERVICE (object),
+                                          context,
+                                          subscription_server_handler,
+                                          g_object_ref (object),
+                                          g_object_unref);
+        _gupnp_context_add_server_handler_with_data (context, path, handler);
         g_free (path);
         g_free (url);
 
@@ -1553,7 +1568,6 @@ gupnp_service_dispose (GObject *object)
         GObjectClass *object_class;
         GUPnPServiceInfo *info;
         GUPnPContext *context;
-        SoupServer *server;
         char *url;
         char *path;
 
@@ -1562,19 +1576,18 @@ gupnp_service_dispose (GObject *object)
         /* Get server */
         info = GUPNP_SERVICE_INFO (service);
         context = gupnp_service_info_get_context (info);
-        server = gupnp_context_get_server (context);
 
         /* Remove listener on controlURL */
         url = gupnp_service_info_get_control_url (info);
         path = path_from_url (url);
-        soup_server_remove_handler (server, path);
+        gupnp_context_remove_server_handler (context, path);
         g_free (path);
         g_free (url);
 
         /* Remove listener on eventSubscriptionURL */
         url = gupnp_service_info_get_event_subscription_url (info);
         path = path_from_url (url);
-        soup_server_remove_handler (server, path);
+        gupnp_context_remove_server_handler (context, path);
         g_free (path);
         g_free (url);
 
@@ -1617,12 +1630,7 @@ gupnp_service_finalize (GObject *object)
         g_hash_table_destroy (service->priv->subscriptions);
 
         /* Free state variable list */
-        while (service->priv->state_variables) {
-                g_free (service->priv->state_variables->data);
-                service->priv->state_variables =
-                        g_list_delete_link (service->priv->state_variables,
-                                            service->priv->state_variables);
-        }
+        g_list_free_full (service->priv->state_variables, g_free);
 
         /* Free notify queue */
         while ((data = g_queue_pop_head (service->priv->notify_queue)))
@@ -1840,23 +1848,20 @@ notify_got_response (G_GNUC_UNUSED SoupSession *session,
         } else {
                 /* Other failure: Try next callback or signal failure. */
                 if (data->callbacks->next) {
-                        SoupURI *uri;
-                        SoupSession *service_session;
+                        SoupBuffer *buffer;
+                        guint8 *property_set;
+                        gsize length;
 
                         /* Call next callback */
                         data->callbacks = data->callbacks->next;
 
-                        uri = soup_uri_new (data->callbacks->data);
-                        soup_message_set_uri (msg, uri);
-                        soup_uri_free (uri);
-
-                        /* And re-queue */
-                        data->pending_messages = 
-                                g_list_prepend (data->pending_messages, msg);
-
-                        service_session = gupnp_service_get_session (data->service);
-
-                        soup_session_requeue_message (service_session, msg);
+                        /* Get property-set from old message */
+                        buffer = soup_message_body_flatten (msg->request_body);
+                        soup_buffer_get_data (buffer,
+                                              (const guint8 **) &property_set,
+                                              &length);
+                        notify_subscriber (NULL, data, property_set);
+                        soup_buffer_free (buffer);
                 } else {
                         /* Emit 'notify-failed' signal */
                         GError *error;
index 599bd2e..67f96a2 100644 (file)
@@ -27,6 +27,8 @@
  * of entries that will be used to filter networks.
  * The #GUPnPWhiteList could be enabled or not. If it's enabled but the entries
  * list is empty, it behaves as disabled.
+ *
+ * Since: 0.20.5
  */
 
 #include <string.h>
@@ -143,6 +145,8 @@ gupnp_white_list_class_init (GUPnPWhiteListClass *klass)
          * GUPnPWhiteList:enabled:
          *
          * Whether this white list is active or not.
+         *
+         * Since: 0.20.5
          **/
         g_object_class_install_property
                 (object_class,
@@ -157,11 +161,11 @@ gupnp_white_list_class_init (GUPnPWhiteListClass *klass)
                           G_PARAM_STATIC_STRINGS));
 
         /**
-         * GUPnPWhiteList:entries:
+         * GUPnPWhiteList:entries: (type GList(utf8))
          *
          * Whether this white list is active or not.
-         * Type: GList
-         * Transfer: none
+         *
+         * Since: 0.20.5
          **/
         g_object_class_install_property
                 (object_class,
@@ -182,6 +186,8 @@ gupnp_white_list_class_init (GUPnPWhiteListClass *klass)
  * The white list is disabled by default.
  *
  * Returns: (transfer full): A new #GUPnPWhiteList object.
+ *
+ * Since: 0.20.5
  **/
 GUPnPWhiteList *
 gupnp_white_list_new (void)
@@ -195,7 +201,9 @@ gupnp_white_list_new (void)
  * @enable:  %TRUE to enable @white_list, %FALSE otherwise
  *
  * Enable or disable the #GUPnPWhiteList to perform the network filtering.
-**/
+ *
+ * Since: 0.20.5
+ **/
 void
 gupnp_white_list_set_enabled (GUPnPWhiteList *white_list, gboolean enable)
 {
@@ -212,6 +220,8 @@ gupnp_white_list_set_enabled (GUPnPWhiteList *white_list, gboolean enable)
  * Return the status of the #GUPnPWhiteList
  *
  * Return value: %TRUE if @white_list is enabled, %FALSE otherwise.
+ *
+ * Since: 0.20.5
  **/
 gboolean
 gupnp_white_list_get_enabled (GUPnPWhiteList *white_list)
@@ -228,6 +238,8 @@ gupnp_white_list_get_enabled (GUPnPWhiteList *white_list)
  * Return the state of the entries list of #GUPnPWhiteList
  *
  * Return value: %TRUE if @white_list is empty, %FALSE otherwise.
+ *
+ * Since: 0.20.5
  **/
 gboolean
 gupnp_white_list_is_empty (GUPnPWhiteList *white_list)
@@ -247,6 +259,8 @@ gupnp_white_list_is_empty (GUPnPWhiteList *white_list)
  * if @entry already exists, it won't be added a second time.
  *
  * Return value: %TRUE if @entry is added, %FALSE otherwise.
+ *
+ * Since: 0.20.5
  **/
 gboolean
 gupnp_white_list_add_entry (GUPnPWhiteList *white_list, gchar* entry)
@@ -272,6 +286,29 @@ gupnp_white_list_add_entry (GUPnPWhiteList *white_list, gchar* entry)
 }
 
 /**
+ * gupnp_white_list_add_entryv:
+ * @white_list: A #GUPnPWhiteList
+ * @entries: (array zero-terminated=1): A %NULL-terminated list of strings
+ *
+ * Add a list of entries to a #GUPnPWhiteList. This is a helper function to
+ * directly add a %NULL-terminated array of string usually aquired from
+ * commandline args.
+ *
+ * Since: 0.20.8
+ */
+void
+gupnp_white_list_add_entryv (GUPnPWhiteList *white_list, gchar **entries)
+{
+        gchar * const * iter = entries;
+
+        g_return_if_fail (GUPNP_IS_WHITE_LIST (white_list));
+        g_return_if_fail ((entries != NULL));
+
+        for (; *iter != NULL; iter++)
+                gupnp_white_list_add_entry (white_list, *iter);
+ }
+
+/**
  * gupnp_white_list_remove_entry:
  * @white_list: A #GUPnPWhiteList
  * @entry: A value to remove from the filter list.
@@ -280,6 +317,8 @@ gupnp_white_list_add_entry (GUPnPWhiteList *white_list, gchar* entry)
  * filter networks.
  *
  * Return value: %TRUE if @entry is removed, %FALSE otherwise.
+ *
+ * Since: 0.20.5
  **/
 gboolean
 gupnp_white_list_remove_entry (GUPnPWhiteList *white_list, gchar* entry)
@@ -297,7 +336,7 @@ gupnp_white_list_remove_entry (GUPnPWhiteList *white_list, gchar* entry)
 
         if (s_entry != NULL) {
                 priv->entries = g_list_remove_link (priv->entries, s_entry);
-               g_list_free_full (s_entry, g_free);
+                g_list_free_full (s_entry, g_free);
                 g_object_notify (G_OBJECT (white_list), "entries");
         }
 
@@ -313,6 +352,8 @@ gupnp_white_list_remove_entry (GUPnPWhiteList *white_list, gchar* entry)
  * Return value: (element-type utf8) (transfer none):  a #GList of entries
  * used to filter networks, interfaces,... or %NULL.
  * Do not modify or free the list nor its elements.
+ *
+ * Since: 0.20.5
  **/
 GList *
 gupnp_white_list_get_entries (GUPnPWhiteList *white_list)
@@ -329,7 +370,9 @@ gupnp_white_list_get_entries (GUPnPWhiteList *white_list)
  * Remove all entries from #GList that compose the white list.
  * The list is now empty. Even if #GUPnPWhiteList is enabled, it will have the
  * same behavior as if it was disabled.
-**/
+ *
+ * Since: 0.20.5
+ **/
 void
 gupnp_white_list_clear (GUPnPWhiteList *white_list)
 {
@@ -355,6 +398,8 @@ gupnp_white_list_clear (GUPnPWhiteList *white_list)
  *
  * Return value: %TRUE if @context is matching the @white_list criterias,
  * %FALSE otherwise.
+ *
+ * Since: 0.20.5
  **/
 gboolean
 gupnp_white_list_check_context (GUPnPWhiteList *white_list,
index 9b21b12..8c3ad5d 100644 (file)
@@ -87,6 +87,9 @@ gupnp_white_list_is_empty       (GUPnPWhiteList *white_list);
 gboolean
 gupnp_white_list_add_entry      (GUPnPWhiteList *white_list,
                                  gchar* entry);
+void
+gupnp_white_list_add_entryv     (GUPnPWhiteList *white_list,
+                                 gchar** entries);
 
 gboolean
 gupnp_white_list_remove_entry   (GUPnPWhiteList *white_list,
index fae4fa1..9c4740a 100644 (file)
@@ -28,6 +28,8 @@
  *
  * GObject wrapper for xmlDoc, so that we can use refcounting and weak
  * references.
+ *
+ * Since: 0.13.0
  */
 
 #include <string.h>
@@ -73,6 +75,8 @@ gupnp_xml_doc_class_init (GUPnPXMLDocClass *klass)
  * Create a new #GUPnPXMLDoc for @xml_doc.
  *
  * Return value: A new #GUPnPXMLDoc, or %NULL on an error
+ *
+ * Since: 0.13.0
  **/
 GUPnPXMLDoc *
 gupnp_xml_doc_new (xmlDoc *xml_doc)
@@ -96,6 +100,8 @@ gupnp_xml_doc_new (xmlDoc *xml_doc)
  * Create a new #GUPnPXMLDoc for the XML document at @path.
  *
  * Return value: A new #GUPnPXMLDoc, or %NULL on an error
+ *
+ * Since: 0.13.0
  **/
 GUPnPXMLDoc *
 gupnp_xml_doc_new_from_path (const char *path,
index 42ef2a8..10a3fe7 100644 (file)
@@ -19,6 +19,7 @@
  * Boston, MA 02110-1301, USA.
  */
 
+#include "gupnp-acl.h"
 #include "gupnp-context.h"
 #include "gupnp-context-manager.h"
 #include "gupnp-control-point.h"
index 0ada151..3675543 100644 (file)
@@ -1,6 +1,6 @@
 dnl -*- mode: autoconf -*-
 
-# serial 1
+# serial 2
 
 dnl Usage:
 dnl   GTK_DOC_CHECK([minimum-gtk-doc-version])
@@ -10,8 +10,24 @@ AC_DEFUN([GTK_DOC_CHECK],
   AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
   AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
 
+  ifelse([$1],[],[gtk_doc_requires="gtk-doc"],[gtk_doc_requires="gtk-doc >= $1"])
+  AC_MSG_CHECKING([for gtk-doc])
+  PKG_CHECK_EXISTS([$gtk_doc_requires],[have_gtk_doc=yes],[have_gtk_doc=no])
+  AC_MSG_RESULT($have_gtk_doc)
+
+  if test "$have_gtk_doc" = "no"; then
+      AC_MSG_WARN([
+  You will not be able to create source packages with 'make dist'
+  because $gtk_doc_requires is not found.])
+  fi
+
   dnl check for tools we added during development
-  AC_PATH_PROG([GTKDOC_CHECK],[gtkdoc-check])
+  dnl Use AC_CHECK_PROG to avoid the check target using an absolute path that
+  dnl may not be writable by the user. Currently, automake requires that the
+  dnl test name must end in '.test'.
+  dnl https://bugzilla.gnome.org/show_bug.cgi?id=701638
+  AC_CHECK_PROG([GTKDOC_CHECK],[gtkdoc-check],[gtkdoc-check.test])
+  AC_PATH_PROG([GTKDOC_CHECK_PATH],[gtkdoc-check])
   AC_PATH_PROGS([GTKDOC_REBASE],[gtkdoc-rebase],[true])
   AC_PATH_PROG([GTKDOC_MKPDF],[gtkdoc-mkpdf])
 
@@ -28,22 +44,22 @@ AC_DEFUN([GTK_DOC_CHECK],
                    [use gtk-doc to build documentation [[default=no]]]),,
     [enable_gtk_doc=no])
 
-  if test x$enable_gtk_doc = xyes; then
-    ifelse([$1],[],
-      [PKG_CHECK_EXISTS([gtk-doc],,
-                        AC_MSG_ERROR([gtk-doc not installed and --enable-gtk-doc requested]))],
-      [PKG_CHECK_EXISTS([gtk-doc >= $1],,
-                        AC_MSG_ERROR([You need to have gtk-doc >= $1 installed to build $PACKAGE_NAME]))])
-    dnl don't check for glib if we build glib
-    if test "x$PACKAGE_NAME" != "xglib"; then
-      dnl don't fail if someone does not have glib
-      PKG_CHECK_MODULES(GTKDOC_DEPS, glib-2.0 >= 2.10.0 gobject-2.0  >= 2.10.0,,)
-    fi
-  fi
-
   AC_MSG_CHECKING([whether to build gtk-doc documentation])
   AC_MSG_RESULT($enable_gtk_doc)
 
+  if test "x$enable_gtk_doc" = "xyes" && test "$have_gtk_doc" = "no"; then
+    AC_MSG_ERROR([
+  You must have $gtk_doc_requires installed to build documentation for
+  $PACKAGE_NAME. Please install gtk-doc or disable building the
+  documentation by adding '--disable-gtk-doc' to '[$]0'.])
+  fi
+
+  dnl don't check for glib if we build glib
+  if test "x$PACKAGE_NAME" != "xglib"; then
+    dnl don't fail if someone does not have glib
+    PKG_CHECK_MODULES(GTKDOC_DEPS, glib-2.0 >= 2.10.0 gobject-2.0  >= 2.10.0,,[:])
+  fi
+
   dnl enable/disable output formats
   AC_ARG_ENABLE([gtk-doc-html],
     AS_HELP_STRING([--enable-gtk-doc-html],
@@ -58,7 +74,12 @@ AC_DEFUN([GTK_DOC_CHECK],
     enable_gtk_doc_pdf=no
   fi
 
+  if test -z "$AM_DEFAULT_VERBOSITY"; then
+    AM_DEFAULT_VERBOSITY=1
+  fi
+  AC_SUBST([AM_DEFAULT_VERBOSITY])
 
+  AM_CONDITIONAL([HAVE_GTK_DOC], [test x$have_gtk_doc = xyes])
   AM_CONDITIONAL([ENABLE_GTK_DOC], [test x$enable_gtk_doc = xyes])
   AM_CONDITIONAL([GTK_DOC_BUILD_HTML], [test x$enable_gtk_doc_html = xyes])
   AM_CONDITIONAL([GTK_DOC_BUILD_PDF], [test x$enable_gtk_doc_pdf = xyes])
index 02b4bbe..d7c043f 100644 (file)
@@ -1312,7 +1312,7 @@ ia64-*-hpux*)
   rm -rf conftest*
   ;;
 
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
 s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
   # Find out which ABI we are using.
   echo 'int i;' > conftest.$ac_ext
@@ -1333,7 +1333,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
                ;;
            esac
            ;;
-         ppc64-*linux*|powerpc64-*linux*)
+         powerpc64le-*)
+           LD="${LD-ld} -m elf32lppclinux"
+           ;;
+         powerpc64-*)
            LD="${LD-ld} -m elf32ppclinux"
            ;;
          s390x-*linux*)
@@ -1352,7 +1355,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
          x86_64-*linux*)
            LD="${LD-ld} -m elf_x86_64"
            ;;
-         ppc*-*linux*|powerpc*-*linux*)
+         powerpcle-*)
+           LD="${LD-ld} -m elf64lppc"
+           ;;
+         powerpc-*)
            LD="${LD-ld} -m elf64ppc"
            ;;
          s390*-*linux*|s390*-*tpf*)
diff --git a/packaging/GUPnP.changes b/packaging/GUPnP.changes
deleted file mode 100644 (file)
index 11bc645..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-* Wed Aug 21 2013 Regis Merlino <regis.merlino@intel.com>
-- Update gupnp to 0.20.5 (fdeb6f9f)
-
-* Tue Jul 16 00:01:36 UTC 2013 - tracy.graydon@intel.com
-- Stripped old yaml cruft out of spec file 
-
-* Tue Jun 11 2013 Regis Merlino <regis.merlino@intel.com>
-- Update gupnp to 0.20.3 (161969f)
-
-* Thu Apr 04 2013 Regis Merlino <regis.merlino@intel.com>
-- Fix browsing of WMP DMS running on Windows 7
-
-* Wed Mar 20 2013 Regis Merlino <regis.merlino@intel.com>
-- Submit version 0.20.1 of GUPnP (4186015)
-
-* Tue Nov 27 10:22:57 CET 2012 - Mark Ryan <mark.d.ryan@intel.com>
-- Submit version 0.19.1 (24bd15c) of GUPnP
-
-* Wed Sep 12 13:42:24 CEST 2012 - Mark Ryan <mark.d.ryan@intel.com>
-- Submit version 0.18.0 (fcd9eb4) of GUPnP
diff --git a/packaging/GUPnP.spec b/packaging/GUPnP.spec
deleted file mode 100644 (file)
index bde84c1..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-# 
-# Do NOT Edit the Auto-generated Part!
-# Generated by: spectacle version 0.22
-# 
-# >> macros
-# << macros
-
-Name:       gupnp
-Summary:    GUPnP is an framework for creating UPnP devices & control points
-Version:    0.20.5
-Release:    1
-Group:      System/Libraries
-License:    LGPLv2+
-URL:        http://www.gupnp.org/
-Source0:    http://download.gnome.org/sources/%{name}/0.20/%{name}-%{version}.tar.bz2
-Requires(post): /sbin/ldconfig
-Requires(postun): /sbin/ldconfig
-BuildRequires:  pkgconfig(glib-2.0)
-BuildRequires:  pkgconfig(gio-2.0)
-BuildRequires:  pkgconfig(gmodule-2.0)
-BuildRequires:  pkgconfig(gssdp-1.0)
-BuildRequires:  pkgconfig(libsoup-2.4)
-BuildRequires:  pkgconfig(libxml-2.0)
-BuildRequires:  pkgconfig(uuid)
-
-
-%description
-GUPnP is an 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.
-
-
-
-%package devel
-Summary:    Development package for gupnp
-Group:      Development/Libraries
-Requires:   %{name} = %{version}-%{release}
-
-%description devel
-Files for development with gupnp.
-
-
-%prep
-%setup -q -n %{name}-%{version}
-
-# >> setup
-# << setup
-
-%build
-# >> build pre
-# << build pre
-
-%configure --disable-static
-make %{?jobs:-j%jobs}
-
-# >> build post
-# << build post
-%install
-rm -rf %{buildroot}
-# >> install pre
-# << install pre
-%make_install
-
-# >> install post
-rm -rf  $RPM_BUILD_ROOT%{_datadir}/gtk-doc
-# << install post
-
-
-
-%post -p /sbin/ldconfig
-
-%postun -p /sbin/ldconfig
-
-
-
-
-
-%files
-%defattr(-,root,root,-)
-# >> files
-%doc AUTHORS COPYING README
-%{_libdir}/*.so.*
-# << files
-
-
-%files devel
-%defattr(-,root,root,-)
-# >> files devel
-%{_libdir}/pkgconfig/gupnp-1.0.pc
-%{_libdir}/*.so
-%{_includedir}/gupnp-1.0
-%{_bindir}/gupnp-binding-tool
-# << files devel
-
-
index 9f8fcb1..1c9f138 100644 (file)
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \  ]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -56,7 +83,8 @@ noinst_PROGRAMS = test-browsing$(EXEEXT) test-proxy$(EXEEXT) \
        test-server$(EXEEXT) test-introspection$(EXEEXT) \
        test-white-list$(EXEEXT)
 subdir = tests
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+       $(top_srcdir)/build-aux/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/gtk-doc.m4 \
        $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
@@ -78,6 +106,7 @@ test_browsing_DEPENDENCIES = $(top_builddir)/libgupnp/libgupnp-1.0.la \
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 am_test_introspection_OBJECTS = test-introspection.$(OBJEXT)
 test_introspection_OBJECTS = $(am_test_introspection_OBJECTS)
 test_introspection_DEPENDENCIES =  \
@@ -99,6 +128,18 @@ test_white_list_OBJECTS = $(am_test_white_list_OBJECTS)
 test_white_list_DEPENDENCIES =  \
        $(top_builddir)/libgupnp/libgupnp-1.0.la $(am__DEPENDENCIES_1) \
        $(am__DEPENDENCIES_1)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
 am__depfiles_maybe = depfiles
@@ -111,33 +152,30 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(test_browsing_SOURCES) $(test_introspection_SOURCES) \
        $(test_proxy_SOURCES) $(test_server_SOURCES) \
        $(test_white_list_SOURCES)
 DIST_SOURCES = $(test_browsing_SOURCES) $(test_introspection_SOURCES) \
        $(test_proxy_SOURCES) $(test_server_SOURCES) \
        $(test_white_list_SOURCES)
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-       html-recursive info-recursive install-data-recursive \
-       install-dvi-recursive install-exec-recursive \
-       install-html-recursive install-info-recursive \
-       install-pdf-recursive install-ps-recursive install-recursive \
-       installcheck-recursive installdirs-recursive pdf-recursive \
-       ps-recursive uninstall-recursive
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+       ctags-recursive dvi-recursive html-recursive info-recursive \
+       install-data-recursive install-dvi-recursive \
+       install-exec-recursive install-html-recursive \
+       install-info-recursive install-pdf-recursive \
+       install-ps-recursive install-recursive installcheck-recursive \
+       installdirs-recursive pdf-recursive ps-recursive \
+       tags-recursive uninstall-recursive
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -145,9 +183,29 @@ am__can_run_installinfo = \
   esac
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-       $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
        distdir
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DIST_SUBDIRS = $(SUBDIRS)
@@ -204,17 +262,17 @@ ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
 FGREP = @FGREP@
-GIO_CFLAGS = @GIO_CFLAGS@
-GIO_LIBS = @GIO_LIBS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
 GREP = @GREP@
 GTHREAD_CFLAGS = @GTHREAD_CFLAGS@
 GTHREAD_LIBS = @GTHREAD_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
+HAVE_IFADDRS_H = @HAVE_IFADDRS_H@
 HAVE_NETLINK = @HAVE_NETLINK@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -267,6 +325,7 @@ SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
 USE_NETLINK = @USE_NETLINK@
+UUID_LIBS = @UUID_LIBS@
 VAPIGEN = @VAPIGEN@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
@@ -399,18 +458,23 @@ clean-noinstPROGRAMS:
        list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
        echo " rm -f" $$list; \
        rm -f $$list
+
 test-browsing$(EXEEXT): $(test_browsing_OBJECTS) $(test_browsing_DEPENDENCIES) $(EXTRA_test_browsing_DEPENDENCIES) 
        @rm -f test-browsing$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_browsing_OBJECTS) $(test_browsing_LDADD) $(LIBS)
+
 test-introspection$(EXEEXT): $(test_introspection_OBJECTS) $(test_introspection_DEPENDENCIES) $(EXTRA_test_introspection_DEPENDENCIES) 
        @rm -f test-introspection$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_introspection_OBJECTS) $(test_introspection_LDADD) $(LIBS)
+
 test-proxy$(EXEEXT): $(test_proxy_OBJECTS) $(test_proxy_DEPENDENCIES) $(EXTRA_test_proxy_DEPENDENCIES) 
        @rm -f test-proxy$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_proxy_OBJECTS) $(test_proxy_LDADD) $(LIBS)
+
 test-server$(EXEEXT): $(test_server_OBJECTS) $(test_server_DEPENDENCIES) $(EXTRA_test_server_DEPENDENCIES) 
        @rm -f test-server$(EXEEXT)
        $(AM_V_CCLD)$(test_server_LINK) $(test_server_OBJECTS) $(test_server_LDADD) $(LIBS)
+
 test-white-list$(EXEEXT): $(test_white_list_OBJECTS) $(test_white_list_DEPENDENCIES) $(EXTRA_test_white_list_DEPENDENCIES) 
        @rm -f test-white-list$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_white_list_OBJECTS) $(test_white_list_LDADD) $(LIBS)
@@ -432,14 +496,14 @@ distclean-compile:
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@@ -455,22 +519,25 @@ clean-libtool:
        -rm -rf .libs _libs
 
 # This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
-       @fail= failcom='exit 1'; \
-       for f in x $$MAKEFLAGS; do \
-         case $$f in \
-           *=* | --[!k]*);; \
-           *k*) failcom='fail=yes';; \
-         esac; \
-       done; \
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+       @fail=; \
+       if $(am__make_keepgoing); then \
+         failcom='fail=yes'; \
+       else \
+         failcom='exit 1'; \
+       fi; \
        dot_seen=no; \
        target=`echo $@ | sed s/-recursive//`; \
-       list='$(SUBDIRS)'; for subdir in $$list; do \
+       case "$@" in \
+         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+         *) list='$(SUBDIRS)' ;; \
+       esac; \
+       for subdir in $$list; do \
          echo "Making $$target in $$subdir"; \
          if test "$$subdir" = "."; then \
            dot_seen=yes; \
@@ -485,57 +552,12 @@ $(RECURSIVE_TARGETS):
          $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
        fi; test -z "$$fail"
 
-$(RECURSIVE_CLEAN_TARGETS):
-       @fail= failcom='exit 1'; \
-       for f in x $$MAKEFLAGS; do \
-         case $$f in \
-           *=* | --[!k]*);; \
-           *k*) failcom='fail=yes';; \
-         esac; \
-       done; \
-       dot_seen=no; \
-       case "$@" in \
-         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-         *) list='$(SUBDIRS)' ;; \
-       esac; \
-       rev=''; for subdir in $$list; do \
-         if test "$$subdir" = "."; then :; else \
-           rev="$$subdir $$rev"; \
-         fi; \
-       done; \
-       rev="$$rev ."; \
-       target=`echo $@ | sed s/-recursive//`; \
-       for subdir in $$rev; do \
-         echo "Making $$target in $$subdir"; \
-         if test "$$subdir" = "."; then \
-           local_target="$$target-am"; \
-         else \
-           local_target="$$target"; \
-         fi; \
-         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-         || eval $$failcom; \
-       done && test -z "$$fail"
-tags-recursive:
-       list='$(SUBDIRS)'; for subdir in $$list; do \
-         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-       done
-ctags-recursive:
-       list='$(SUBDIRS)'; for subdir in $$list; do \
-         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-       done
+ID: $(am__tagged_files)
+       $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-       unique=`for i in $$list; do \
-           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-         done | \
-         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-             END { if (nonempty) { for (i in files) print i; }; }'`; \
-       mkid -fID $$unique
-tags: TAGS
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-               $(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
        set x; \
        here=`pwd`; \
        if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -551,12 +573,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
              set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
          fi; \
        done; \
-       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-       unique=`for i in $$list; do \
-           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-         done | \
-         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       $(am__define_uniq_tagged_files); \
        shift; \
        if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
          test -n "$$unique" || unique=$$empty_fix; \
@@ -568,15 +585,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
              $$unique; \
          fi; \
        fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-               $(TAGS_FILES) $(LISP)
-       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-       unique=`for i in $$list; do \
-           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-         done | \
-         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-             END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       $(am__define_uniq_tagged_files); \
        test -z "$(CTAGS_ARGS)$$unique" \
          || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
             $$unique
@@ -585,6 +598,21 @@ GTAGS:
        here=`$(am__cd) $(top_builddir) && pwd` \
          && $(am__cd) $(top_srcdir) \
          && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+       list='$(am__tagged_files)'; \
+       case "$(srcdir)" in \
+         [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+         *) sdir=$(subdir)/$(srcdir) ;; \
+       esac; \
+       for i in $$list; do \
+         if test -f "$$i"; then \
+           echo "$(subdir)/$$i"; \
+         else \
+           echo "$$sdir/$$i"; \
+         fi; \
+       done >> $(top_builddir)/cscope.files
 
 distclean-tags:
        -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -753,12 +781,11 @@ ps-am:
 
 uninstall-am:
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
-       install-am install-strip tags-recursive
+.MAKE: $(am__recursive_targets) install-am install-strip
 
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-       all all-am check check-am clean clean-generic clean-libtool \
-       clean-noinstPROGRAMS ctags ctags-recursive distclean \
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+       check-am clean clean-generic clean-libtool \
+       clean-noinstPROGRAMS cscopelist-am ctags ctags-am distclean \
        distclean-compile distclean-generic distclean-libtool \
        distclean-tags distdir dvi dvi-am html html-am info info-am \
        install install-am install-data install-data-am install-dvi \
@@ -768,8 +795,8 @@ uninstall-am:
        install-strip installcheck installcheck-am installdirs \
        installdirs-am maintainer-clean maintainer-clean-generic \
        mostlyclean mostlyclean-compile mostlyclean-generic \
-       mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
-       uninstall uninstall-am
+       mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
+       uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
index 2602a00..24f56a6 100644 (file)
@@ -16,4 +16,4 @@ AM_CFLAGS = \
            -I $(top_srcdir) \
            -DDATA_PATH="\"$(srcdir)/data\""
 
-EXTRA_DIST=data/random4k.bin data/ServiceBgo69762.xml data/TestBgo696762.xml
+EXTRA_DIST=data/random4k.bin data/TestService.xml data/TestDevice.xml
index f527241..a57755d 100644 (file)
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \  ]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -53,7 +80,9 @@ host_triplet = @host@
 target_triplet = @target@
 check_PROGRAMS = test-context$(EXEEXT) test-bugs$(EXEEXT)
 subdir = tests/gtest
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+       $(top_srcdir)/build-aux/depcomp \
+       $(top_srcdir)/build-aux/test-driver
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/gtk-doc.m4 \
        $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
@@ -75,11 +104,24 @@ test_bugs_DEPENDENCIES = $(top_builddir)/libgupnp/libgupnp-1.0.la \
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
+am__v_lt_1 = 
 am_test_context_OBJECTS = test-context.$(OBJEXT)
 test_context_OBJECTS = $(am_test_context_OBJECTS)
 test_context_LDADD = $(LDADD)
 test_context_DEPENDENCIES = $(top_builddir)/libgupnp/libgupnp-1.0.la \
        $(am__DEPENDENCIES_1)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
 am__depfiles_maybe = depfiles
@@ -92,20 +134,16 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC    " $@;
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
 LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
 AM_V_CCLD = $(am__v_CCLD_@AM_V@)
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD  " $@;
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(test_bugs_SOURCES) $(test_context_SOURCES)
 DIST_SOURCES = $(test_bugs_SOURCES) $(test_context_SOURCES)
 am__can_run_installinfo = \
@@ -113,10 +151,229 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
-am__tty_colors = \
-red=; grn=; lgn=; blu=; std=
+am__tty_colors_dummy = \
+  mgn= red= grn= lgn= blu= brg= std=; \
+  am__color_tests=no
+am__tty_colors = { \
+  $(am__tty_colors_dummy); \
+  if test "X$(AM_COLOR_TESTS)" = Xno; then \
+    am__color_tests=no; \
+  elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
+    am__color_tests=yes; \
+  elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
+    am__color_tests=yes; \
+  fi; \
+  if test $$am__color_tests = yes; then \
+    red='\e[0;31m'; \
+    grn='\e[0;32m'; \
+    lgn='\e[1;32m'; \
+    blu='\e[1;34m'; \
+    mgn='\e[0;35m'; \
+    brg='\e[1m'; \
+    std='\e[m'; \
+  fi; \
+}
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
+am__recheck_rx = ^[    ]*:recheck:[    ]*
+am__global_test_result_rx = ^[         ]*:global-test-result:[         ]*
+am__copy_in_global_log_rx = ^[         ]*:copy-in-global-log:[         ]*
+# A command that, given a newline-separated list of test names on the
+# standard input, print the name of the tests that are to be re-run
+# upon "make recheck".
+am__list_recheck_tests = $(AWK) '{ \
+  recheck = 1; \
+  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+    { \
+      if (rc < 0) \
+        { \
+          if ((getline line2 < ($$0 ".log")) < 0) \
+           recheck = 0; \
+          break; \
+        } \
+      else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
+        { \
+          recheck = 0; \
+          break; \
+        } \
+      else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
+        { \
+          break; \
+        } \
+    }; \
+  if (recheck) \
+    print $$0; \
+  close ($$0 ".trs"); \
+  close ($$0 ".log"); \
+}'
+# A command that, given a newline-separated list of test names on the
+# standard input, create the global log from their .trs and .log files.
+am__create_global_log = $(AWK) ' \
+function fatal(msg) \
+{ \
+  print "fatal: making $@: " msg | "cat >&2"; \
+  exit 1; \
+} \
+function rst_section(header) \
+{ \
+  print header; \
+  len = length(header); \
+  for (i = 1; i <= len; i = i + 1) \
+    printf "="; \
+  printf "\n\n"; \
+} \
+{ \
+  copy_in_global_log = 1; \
+  global_test_result = "RUN"; \
+  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+    { \
+      if (rc < 0) \
+         fatal("failed to read from " $$0 ".trs"); \
+      if (line ~ /$(am__global_test_result_rx)/) \
+        { \
+          sub("$(am__global_test_result_rx)", "", line); \
+          sub("[       ]*$$", "", line); \
+          global_test_result = line; \
+        } \
+      else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
+        copy_in_global_log = 0; \
+    }; \
+  if (copy_in_global_log) \
+    { \
+      rst_section(global_test_result ": " $$0); \
+      while ((rc = (getline line < ($$0 ".log"))) != 0) \
+      { \
+        if (rc < 0) \
+          fatal("failed to read from " $$0 ".log"); \
+        print line; \
+      }; \
+      printf "\n"; \
+    }; \
+  close ($$0 ".trs"); \
+  close ($$0 ".log"); \
+}'
+# Restructured Text title.
+am__rst_title = { sed 's/.*/   &   /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
+# Solaris 10 'make', and several other traditional 'make' implementations,
+# pass "-e" to $(SHELL), and POSIX 2008 even requires this.  Work around it
+# by disabling -e (using the XSI extension "set +e") if it's set.
+am__sh_e_setup = case $$- in *e*) set +e;; esac
+# Default flags passed to test drivers.
+am__common_driver_flags = \
+  --color-tests "$$am__color_tests" \
+  --enable-hard-errors "$$am__enable_hard_errors" \
+  --expect-failure "$$am__expect_failure"
+# To be inserted before the command running the test.  Creates the
+# directory for the log if needed.  Stores in $dir the directory
+# containing $f, in $tst the test, in $log the log.  Executes the
+# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
+# passes TESTS_ENVIRONMENT.  Set up options for the wrapper that
+# will run the test scripts (or their associated LOG_COMPILER, if
+# thy have one).
+am__check_pre = \
+$(am__sh_e_setup);                                     \
+$(am__vpath_adj_setup) $(am__vpath_adj)                        \
+$(am__tty_colors);                                     \
+srcdir=$(srcdir); export srcdir;                       \
+case "$@" in                                           \
+  */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;;   \
+    *) am__odir=.;;                                    \
+esac;                                                  \
+test "x$$am__odir" = x"." || test -d "$$am__odir"      \
+  || $(MKDIR_P) "$$am__odir" || exit $$?;              \
+if test -f "./$$f"; then dir=./;                       \
+elif test -f "$$f"; then dir=;                         \
+else dir="$(srcdir)/"; fi;                             \
+tst=$$dir$$f; log='$@';                                \
+if test -n '$(DISABLE_HARD_ERRORS)'; then              \
+  am__enable_hard_errors=no;                           \
+else                                                   \
+  am__enable_hard_errors=yes;                          \
+fi;                                                    \
+case " $(XFAIL_TESTS) " in                             \
+  *[\ \        ]$$f[\ \        ]* | *[\ \      ]$$dir$$f[\ \   ]*) \
+    am__expect_failure=yes;;                           \
+  *)                                                   \
+    am__expect_failure=no;;                            \
+esac;                                                  \
+$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
+# A shell command to get the names of the tests scripts with any registered
+# extension removed (i.e., equivalently, the names of the test logs, with
+# the '.log' extension removed).  The result is saved in the shell variable
+# '$bases'.  This honors runtime overriding of TESTS and TEST_LOGS.  Sadly,
+# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
+# since that might cause problem with VPATH rewrites for suffix-less tests.
+# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
+am__set_TESTS_bases = \
+  bases='$(TEST_LOGS)'; \
+  bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
+  bases=`echo $$bases`
+RECHECK_LOGS = $(TEST_LOGS)
+AM_RECURSIVE_TARGETS = check recheck
+TEST_SUITE_LOG = test-suite.log
+TEST_EXTENSIONS = @EXEEXT@ .test
+LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver
+LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS)
+am__set_b = \
+  case '$@' in \
+    */*) \
+      case '$*' in \
+        */*) b='$*';; \
+          *) b=`echo '$@' | sed 's/\.log$$//'`; \
+       esac;; \
+    *) \
+      b='$*';; \
+  esac
+am__test_logs1 = $(TESTS:=.log)
+am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log)
+TEST_LOGS = $(am__test_logs2:.test.log=.log)
+TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver
+TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
+       $(TEST_LOG_FLAGS)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
@@ -145,17 +402,17 @@ ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
 FGREP = @FGREP@
-GIO_CFLAGS = @GIO_CFLAGS@
-GIO_LIBS = @GIO_LIBS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
 GREP = @GREP@
 GTHREAD_CFLAGS = @GTHREAD_CFLAGS@
 GTHREAD_LIBS = @GTHREAD_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
+HAVE_IFADDRS_H = @HAVE_IFADDRS_H@
 HAVE_NETLINK = @HAVE_NETLINK@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -208,6 +465,7 @@ SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
 USE_NETLINK = @USE_NETLINK@
+UUID_LIBS = @UUID_LIBS@
 VAPIGEN = @VAPIGEN@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
@@ -281,11 +539,11 @@ AM_CFLAGS = \
            -I $(top_srcdir) \
            -DDATA_PATH="\"$(srcdir)/data\""
 
-EXTRA_DIST = data/random4k.bin data/ServiceBgo69762.xml data/TestBgo696762.xml
+EXTRA_DIST = data/random4k.bin data/TestService.xml data/TestDevice.xml
 all: all-am
 
 .SUFFIXES:
-.SUFFIXES: .c .lo .o .obj
+.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs
 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
        @for dep in $?; do \
          case '$(am__configure_deps)' in \
@@ -325,9 +583,11 @@ clean-checkPROGRAMS:
        list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
        echo " rm -f" $$list; \
        rm -f $$list
+
 test-bugs$(EXEEXT): $(test_bugs_OBJECTS) $(test_bugs_DEPENDENCIES) $(EXTRA_test_bugs_DEPENDENCIES) 
        @rm -f test-bugs$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_bugs_OBJECTS) $(test_bugs_LDADD) $(LIBS)
+
 test-context$(EXEEXT): $(test_context_OBJECTS) $(test_context_DEPENDENCIES) $(EXTRA_test_context_DEPENDENCIES) 
        @rm -f test-context$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_context_OBJECTS) $(test_context_LDADD) $(LIBS)
@@ -346,14 +606,14 @@ distclean-compile:
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
 
 .c.obj:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@@ -368,26 +628,15 @@ mostlyclean-libtool:
 clean-libtool:
        -rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-       unique=`for i in $$list; do \
-           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-         done | \
-         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-             END { if (nonempty) { for (i in files) print i; }; }'`; \
-       mkid -fID $$unique
-tags: TAGS
-
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-               $(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+       $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
        set x; \
        here=`pwd`; \
-       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-       unique=`for i in $$list; do \
-           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-         done | \
-         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       $(am__define_uniq_tagged_files); \
        shift; \
        if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
          test -n "$$unique" || unique=$$empty_fix; \
@@ -399,15 +648,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
              $$unique; \
          fi; \
        fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-               $(TAGS_FILES) $(LISP)
-       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-       unique=`for i in $$list; do \
-           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-         done | \
-         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-             END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       $(am__define_uniq_tagged_files); \
        test -z "$(CTAGS_ARGS)$$unique" \
          || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
             $$unique
@@ -416,102 +661,194 @@ GTAGS:
        here=`$(am__cd) $(top_builddir) && pwd` \
          && $(am__cd) $(top_srcdir) \
          && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+       list='$(am__tagged_files)'; \
+       case "$(srcdir)" in \
+         [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+         *) sdir=$(subdir)/$(srcdir) ;; \
+       esac; \
+       for i in $$list; do \
+         if test -f "$$i"; then \
+           echo "$(subdir)/$$i"; \
+         else \
+           echo "$$sdir/$$i"; \
+         fi; \
+       done >> $(top_builddir)/cscope.files
 
 distclean-tags:
        -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
-check-TESTS: $(TESTS)
-       @failed=0; all=0; xfail=0; xpass=0; skip=0; \
-       srcdir=$(srcdir); export srcdir; \
-       list=' $(TESTS) '; \
-       $(am__tty_colors); \
-       if test -n "$$list"; then \
-         for tst in $$list; do \
-           if test -f ./$$tst; then dir=./; \
-           elif test -f $$tst; then dir=; \
-           else dir="$(srcdir)/"; fi; \
-           if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
-             all=`expr $$all + 1`; \
-             case " $(XFAIL_TESTS) " in \
-             *[\ \     ]$$tst[\ \      ]*) \
-               xpass=`expr $$xpass + 1`; \
-               failed=`expr $$failed + 1`; \
-               col=$$red; res=XPASS; \
-             ;; \
-             *) \
-               col=$$grn; res=PASS; \
-             ;; \
-             esac; \
-           elif test $$? -ne 77; then \
-             all=`expr $$all + 1`; \
-             case " $(XFAIL_TESTS) " in \
-             *[\ \     ]$$tst[\ \      ]*) \
-               xfail=`expr $$xfail + 1`; \
-               col=$$lgn; res=XFAIL; \
-             ;; \
-             *) \
-               failed=`expr $$failed + 1`; \
-               col=$$red; res=FAIL; \
-             ;; \
-             esac; \
-           else \
-             skip=`expr $$skip + 1`; \
-             col=$$blu; res=SKIP; \
-           fi; \
-           echo "$${col}$$res$${std}: $$tst"; \
-         done; \
-         if test "$$all" -eq 1; then \
-           tests="test"; \
-           All=""; \
-         else \
-           tests="tests"; \
-           All="All "; \
+# Recover from deleted '.trs' file; this should ensure that
+# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
+# both 'foo.log' and 'foo.trs'.  Break the recipe in two subshells
+# to avoid problems with "make -n".
+.log.trs:
+       rm -f $< $@
+       $(MAKE) $(AM_MAKEFLAGS) $<
+
+# Leading 'am--fnord' is there to ensure the list of targets does not
+# expand to empty, as could happen e.g. with make check TESTS=''.
+am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
+am--force-recheck:
+       @:
+
+$(TEST_SUITE_LOG): $(TEST_LOGS)
+       @$(am__set_TESTS_bases); \
+       am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
+       redo_bases=`for i in $$bases; do \
+                     am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
+                   done`; \
+       if test -n "$$redo_bases"; then \
+         redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
+         redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
+         if $(am__make_dryrun); then :; else \
+           rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
          fi; \
-         if test "$$failed" -eq 0; then \
-           if test "$$xfail" -eq 0; then \
-             banner="$$All$$all $$tests passed"; \
-           else \
-             if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \
-             banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \
-           fi; \
-         else \
-           if test "$$xpass" -eq 0; then \
-             banner="$$failed of $$all $$tests failed"; \
+       fi; \
+       if test -n "$$am__remaking_logs"; then \
+         echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
+              "recursion detected" >&2; \
+       else \
+         am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
+       fi; \
+       if $(am__make_dryrun); then :; else \
+         st=0;  \
+         errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
+         for i in $$redo_bases; do \
+           test -f $$i.trs && test -r $$i.trs \
+             || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
+           test -f $$i.log && test -r $$i.log \
+             || { echo "$$errmsg $$i.log" >&2; st=1; }; \
+         done; \
+         test $$st -eq 0 || exit 1; \
+       fi
+       @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
+       ws='[   ]'; \
+       results=`for b in $$bases; do echo $$b.trs; done`; \
+       test -n "$$results" || results=/dev/null; \
+       all=`  grep "^$$ws*:test-result:"           $$results | wc -l`; \
+       pass=` grep "^$$ws*:test-result:$$ws*PASS"  $$results | wc -l`; \
+       fail=` grep "^$$ws*:test-result:$$ws*FAIL"  $$results | wc -l`; \
+       skip=` grep "^$$ws*:test-result:$$ws*SKIP"  $$results | wc -l`; \
+       xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
+       xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
+       error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
+       if test `expr $$fail + $$xpass + $$error` -eq 0; then \
+         success=true; \
+       else \
+         success=false; \
+       fi; \
+       br='==================='; br=$$br$$br$$br$$br; \
+       result_count () \
+       { \
+           if test x"$$1" = x"--maybe-color"; then \
+             maybe_colorize=yes; \
+           elif test x"$$1" = x"--no-color"; then \
+             maybe_colorize=no; \
            else \
-             if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \
-             banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \
+             echo "$@: invalid 'result_count' usage" >&2; exit 4; \
            fi; \
-         fi; \
-         dashes="$$banner"; \
-         skipped=""; \
-         if test "$$skip" -ne 0; then \
-           if test "$$skip" -eq 1; then \
-             skipped="($$skip test was not run)"; \
+           shift; \
+           desc=$$1 count=$$2; \
+           if test $$maybe_colorize = yes && test $$count -gt 0; then \
+             color_start=$$3 color_end=$$std; \
            else \
-             skipped="($$skip tests were not run)"; \
+             color_start= color_end=; \
            fi; \
-           test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
-             dashes="$$skipped"; \
-         fi; \
-         report=""; \
-         if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
-           report="Please report to $(PACKAGE_BUGREPORT)"; \
-           test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
-             dashes="$$report"; \
-         fi; \
-         dashes=`echo "$$dashes" | sed s/./=/g`; \
-         if test "$$failed" -eq 0; then \
-           col="$$grn"; \
-         else \
-           col="$$red"; \
-         fi; \
-         echo "$${col}$$dashes$${std}"; \
-         echo "$${col}$$banner$${std}"; \
-         test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \
-         test -z "$$report" || echo "$${col}$$report$${std}"; \
-         echo "$${col}$$dashes$${std}"; \
-         test "$$failed" -eq 0; \
-       else :; fi
+           echo "$${color_start}# $$desc $$count$${color_end}"; \
+       }; \
+       create_testsuite_report () \
+       { \
+         result_count $$1 "TOTAL:" $$all   "$$brg"; \
+         result_count $$1 "PASS: " $$pass  "$$grn"; \
+         result_count $$1 "SKIP: " $$skip  "$$blu"; \
+         result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
+         result_count $$1 "FAIL: " $$fail  "$$red"; \
+         result_count $$1 "XPASS:" $$xpass "$$red"; \
+         result_count $$1 "ERROR:" $$error "$$mgn"; \
+       }; \
+       {                                                               \
+         echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" |       \
+           $(am__rst_title);                                           \
+         create_testsuite_report --no-color;                           \
+         echo;                                                         \
+         echo ".. contents:: :depth: 2";                               \
+         echo;                                                         \
+         for b in $$bases; do echo $$b; done                           \
+           | $(am__create_global_log);                                 \
+       } >$(TEST_SUITE_LOG).tmp || exit 1;                             \
+       mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG);                     \
+       if $$success; then                                              \
+         col="$$grn";                                                  \
+        else                                                           \
+         col="$$red";                                                  \
+         test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG);               \
+       fi;                                                             \
+       echo "$${col}$$br$${std}";                                      \
+       echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}";   \
+       echo "$${col}$$br$${std}";                                      \
+       create_testsuite_report --maybe-color;                          \
+       echo "$$col$$br$$std";                                          \
+       if $$success; then :; else                                      \
+         echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}";         \
+         if test -n "$(PACKAGE_BUGREPORT)"; then                       \
+           echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \
+         fi;                                                           \
+         echo "$$col$$br$$std";                                        \
+       fi;                                                             \
+       $$success || exit 1
+
+check-TESTS:
+       @list='$(RECHECK_LOGS)';           test -z "$$list" || rm -f $$list
+       @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
+       @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+       @set +e; $(am__set_TESTS_bases); \
+       log_list=`for i in $$bases; do echo $$i.log; done`; \
+       trs_list=`for i in $$bases; do echo $$i.trs; done`; \
+       log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
+       $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
+       exit $$?;
+recheck: all $(check_PROGRAMS)
+       @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+       @set +e; $(am__set_TESTS_bases); \
+       bases=`for i in $$bases; do echo $$i; done \
+                | $(am__list_recheck_tests)` || exit 1; \
+       log_list=`for i in $$bases; do echo $$i.log; done`; \
+       log_list=`echo $$log_list`; \
+       $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
+               am__force_recheck=am--force-recheck \
+               TEST_LOGS="$$log_list"; \
+       exit $$?
+test-context.log: test-context$(EXEEXT)
+       @p='test-context$(EXEEXT)'; \
+       b='test-context'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-bugs.log: test-bugs$(EXEEXT)
+       @p='test-bugs$(EXEEXT)'; \
+       b='test-bugs'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+.test.log:
+       @p='$<'; \
+       $(am__set_b); \
+       $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+@am__EXEEXT_TRUE@.test$(EXEEXT).log:
+@am__EXEEXT_TRUE@      @p='$<'; \
+@am__EXEEXT_TRUE@      $(am__set_b); \
+@am__EXEEXT_TRUE@      $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+@am__EXEEXT_TRUE@      --log-file $$b.log --trs-file $$b.trs \
+@am__EXEEXT_TRUE@      $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+@am__EXEEXT_TRUE@      "$$tst" $(AM_TESTS_FD_REDIRECT)
 
 distdir: $(DISTFILES)
        @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
@@ -569,6 +906,9 @@ install-strip:
            "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
        fi
 mostlyclean-generic:
+       -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
+       -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
+       -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
 
 clean-generic:
 
@@ -652,9 +992,9 @@ uninstall-am:
 
 .MAKE: check-am install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \
-       clean-checkPROGRAMS clean-generic clean-libtool ctags \
-       distclean distclean-compile distclean-generic \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am clean \
+       clean-checkPROGRAMS clean-generic clean-libtool cscopelist-am \
+       ctags ctags-am distclean distclean-compile distclean-generic \
        distclean-libtool distclean-tags distdir dvi dvi-am html \
        html-am info info-am install install-am install-data \
        install-data-am install-dvi install-dvi-am install-exec \
@@ -664,7 +1004,7 @@ uninstall-am:
        installcheck-am installdirs maintainer-clean \
        maintainer-clean-generic mostlyclean mostlyclean-compile \
        mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-       tags uninstall uninstall-am
+       recheck tags tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/tests/gtest/data/TestBgo696762.xml b/tests/gtest/data/TestBgo696762.xml
deleted file mode 100644 (file)
index a0c0711..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<root xmlns="urn:schemas-upnp-org:device-1-0">
-<specVersion>
-<major>1</major>
-<minor>0</minor>
-</specVersion>
-<device>
-<deviceType>urn:test-gupnp-org:device:TestBgo696762:1</deviceType>
-<friendlyName>Regression Test for bgo#696762</friendlyName>
-<modelURL>https://bugzilla.gnome.org/show_bug.cgi?id=696762</modelURL>
-<UDN>uuid:1234</UDN>
-<serviceList>
-<service>
-<serviceType>urn:test-gupnp-org:service:bgo696762:1</serviceType>
-<serviceId>urn:test-gupnp-org:serviceId:bgo696762:1</serviceId>
-<SCPDURL>/ServiceBgo69762.xml</SCPDURL>
-<controlURL>/ServiceBgo69762/Control</controlURL>
-<eventSubURL>/ServiceBgo69762/Event</eventSubURL>
-</service>
-</serviceList>
-</device>
-</root>
diff --git a/tests/gtest/data/TestDevice.xml b/tests/gtest/data/TestDevice.xml
new file mode 100644 (file)
index 0000000..d210ee2
--- /dev/null
@@ -0,0 +1,28 @@
+<root xmlns="urn:schemas-upnp-org:device-1-0">
+<specVersion>
+<major>1</major>
+<minor>0</minor>
+</specVersion>
+<device>
+<deviceType>urn:test-gupnp-org:device:TestDevice:1</deviceType>
+<friendlyName>GUPnP Regression Test Device</friendlyName>
+<modelURL>http://gupnp.org/</modelURL>
+<UDN>uuid:1234</UDN>
+<serviceList>
+<service>
+<serviceType>urn:test-gupnp-org:service:TestService:1</serviceType>
+<serviceId>urn:test-gupnp-org:serviceId:TestService:1</serviceId>
+<SCPDURL>/TestService.xml</SCPDURL>
+<controlURL>/TestService/Control</controlURL>
+<eventSubURL>/TestService/Event</eventSubURL>
+</service>
+</serviceList>
+<deviceList>
+<device>
+<deviceType>urn:test-gupnp-org:device:TestSubDevice:1</deviceType>
+<friendlyName>Regression Test subdevice</friendlyName>
+<UDN>uuid:5678</UDN>
+</device>
+</deviceList>
+</device>
+</root>
similarity index 96%
rename from tests/gtest/data/ServiceBgo69762.xml
rename to tests/gtest/data/TestService.xml
index f2a0e38..8f02269 100644 (file)
       <name>A_ARG_TYPE_Count</name>
       <dataType>ui4</dataType>
     </stateVariable>
+    <stateVariable sendEvents="yes">
+      <name>evented_variable</name>
+      <dataType>string</dataType>
+    </stateVariable>
   </serviceStateTable>
   <actionList>
     <action>
index 7161e63..38dc08d 100644 (file)
@@ -44,10 +44,43 @@ struct _GUPnPServiceAction {
         guint         argument_count;
 };
 
-typedef struct _TestBgo696762Data {
+
+typedef struct _TestBgo678701Service {
+    GUPnPServiceProxy parent_instance;
+}TestBgo678701Service;
+
+typedef struct _TestBgo678701ServiceClass
+{
+    GUPnPServiceProxyClass parent_class;
+}TestBgo678701ServiceClass;
+
+G_DEFINE_TYPE(TestBgo678701Service, test_bgo_678701_service, GUPNP_TYPE_SERVICE_PROXY);
+static void test_bgo_678701_service_class_init (TestBgo678701ServiceClass *klass) {}
+static void test_bgo_678701_service_init (TestBgo678701Service *self) {}
+
+typedef struct _TestBgo678701Device {
+    GUPnPDeviceProxy parent_instance;
+}TestBgo678701Device;
+
+typedef struct _TestBgo678701DeviceClass
+{
+    GUPnPDeviceProxyClass parent_class;
+}TestBgo678701DeviceClass;
+
+G_DEFINE_TYPE(TestBgo678701Device, test_bgo_678701_device, GUPNP_TYPE_DEVICE_PROXY);
+static void test_bgo_678701_device_class_init (TestBgo678701DeviceClass *klass) {}
+static void test_bgo_678701_device_init (TestBgo678701Device *self) {}
+
+
+typedef struct _TestServiceProxyData {
     GMainLoop *loop;
     GUPnPServiceProxy *proxy;
-} TestBgo696762Data;
+} TestServiceProxyData;
+
+typedef struct _TestBgo678701Data {
+    GMainLoop *loop;
+    GUPnPDeviceProxy *proxy;
+} TestBgo678701Data;
 
 static void
 test_bgo_696762_on_browse_call (G_GNUC_UNUSED GUPnPService *service,
@@ -86,31 +119,88 @@ test_bgo_696762_on_browse (G_GNUC_UNUSED GUPnPServiceProxy       *proxy,
                            G_GNUC_UNUSED GUPnPServiceProxyAction *action,
                            gpointer                               user_data)
 {
-    TestBgo696762Data *data = (TestBgo696762Data *) user_data;
+    TestServiceProxyData *data = (TestServiceProxyData *) user_data;
 
     g_main_loop_quit (data->loop);
 }
 
 static void
-test_bgo_696762_on_sp_available (G_GNUC_UNUSED GUPnPControlPoint *cp,
-                                 GUPnPServiceProxy               *proxy,
+test_on_sp_available (G_GNUC_UNUSED GUPnPControlPoint *cp,
+                      GUPnPServiceProxy               *proxy,
+                      gpointer                         user_data)
+{
+    TestServiceProxyData *data = (TestServiceProxyData *) user_data;
+
+    data->proxy = g_object_ref (proxy);
+
+    g_main_loop_quit (data->loop);
+}
+
+static void
+test_bgo_678701_on_dp_available (G_GNUC_UNUSED GUPnPControlPoint *cp,
+                                 GUPnPDeviceProxy               *proxy,
                                  gpointer                         user_data)
 {
-    TestBgo696762Data *data = (TestBgo696762Data *) user_data;
+    TestBgo678701Data *data = (TestBgo678701Data *) user_data;
 
     data->proxy = g_object_ref (proxy);
 
     g_main_loop_quit (data->loop);
 }
 
+void
+test_bgo_690400_notify (GUPnPServiceProxy *proxy,
+                        const char *variable,
+                        GValue *value,
+                        gpointer user_data)
+{
+    TestServiceProxyData *data = (TestServiceProxyData *) user_data;
+
+    gupnp_service_proxy_remove_notify (data->proxy,
+                                       "evented_variable",
+                                       test_bgo_690400_notify,
+                                       user_data);
+}
+
+void
+test_bgo_690400_notify_too (GUPnPServiceProxy *proxy,
+                            const char *variable,
+                            GValue *value,
+                            gpointer user_data)
+{
+    TestServiceProxyData *data = (TestServiceProxyData *) user_data;
+
+    g_main_loop_quit (data->loop);
+}
+
+static void
+test_bgo_690400_query_variable (GUPnPService *service,
+                                gchar        *variable,
+                                GValue       *value,
+                                gpointer      user_data)
+{
+    g_value_init (value, G_TYPE_STRING);
+    g_value_set_string (value, "New Value");
+}
+
 static gboolean
-test_bgo_696762_on_timeout (G_GNUC_UNUSED gpointer user_data)
+test_on_timeout (G_GNUC_UNUSED gpointer user_data)
 {
     g_assert_not_reached ();
 
     return FALSE;
 }
 
+static void
+test_run_loop (GMainLoop *loop)
+{
+    guint timeout_id = 0;
+
+    timeout_id = g_timeout_add_seconds (2, test_on_timeout, NULL);
+    g_main_loop_run (loop);
+    g_source_remove (timeout_id);
+}
+
 /* Test if a call on a service proxy keeps argument order */
 static void
 test_bgo_696762 (void)
@@ -118,9 +208,8 @@ test_bgo_696762 (void)
     GUPnPContext *context = NULL;
     GError *error = NULL;
     GUPnPControlPoint *cp = NULL;
-    guint timeout_id = 0;
     GUPnPRootDevice *rd;
-    TestBgo696762Data data = { NULL, NULL };
+    TestServiceProxyData data = { NULL, NULL };
     GUPnPServiceInfo *info = NULL;
 
     data.loop = g_main_loop_new (NULL, FALSE);
@@ -130,28 +219,26 @@ test_bgo_696762 (void)
     g_assert (error == NULL);
 
     cp = gupnp_control_point_new (context,
-                                  "urn:test-gupnp-org:service:bgo696762:1");
+                                  "urn:test-gupnp-org:service:TestService:1");
 
     gssdp_resource_browser_set_active (GSSDP_RESOURCE_BROWSER (cp), TRUE);
 
     g_signal_connect (G_OBJECT (cp),
                       "service-proxy-available",
-                      G_CALLBACK (test_bgo_696762_on_sp_available),
+                      G_CALLBACK (test_on_sp_available),
                       &data);
 
 
-    rd = gupnp_root_device_new (context, "TestBgo696762.xml", DATA_PATH);
+    rd = gupnp_root_device_new (context, "TestDevice.xml", DATA_PATH);
     gupnp_root_device_set_available (rd, TRUE);
     info = gupnp_device_info_get_service (GUPNP_DEVICE_INFO (rd),
-                                          "urn:test-gupnp-org:service:bgo696762:1");
+                                          "urn:test-gupnp-org:service:TestService:1");
     g_signal_connect (G_OBJECT (info),
                       "action-invoked::Browse",
                       G_CALLBACK (test_bgo_696762_on_browse_call),
                       &data);
 
-    timeout_id = g_timeout_add_seconds (2, test_bgo_696762_on_timeout, &(data.loop));
-    g_main_loop_run (data.loop);
-    g_source_remove (timeout_id);
+    test_run_loop (data.loop);
     g_assert (data.proxy != NULL);
 
     gupnp_service_proxy_begin_action (data.proxy,
@@ -166,9 +253,131 @@ test_bgo_696762 (void)
                                       "SortCriteria", G_TYPE_STRING, "",
                                       NULL);
 
-    timeout_id = g_timeout_add_seconds (2, test_bgo_696762_on_timeout, &(data.loop));
-    g_main_loop_run (data.loop);
-    g_source_remove (timeout_id);
+    test_run_loop (data.loop);
+
+    g_main_loop_unref (data.loop);
+    g_object_unref (data.proxy);
+    g_object_unref (cp);
+    g_object_unref (rd);
+    g_object_unref (context);
+}
+
+/* Test that proxies created by ResourceFactory are of the GType
+ * set with gupnp_resource_factory_register_resource_proxy_type().
+ * https://bugzilla.gnome.org/show_bug.cgi?id=678701 */
+static void
+test_bgo_678701 (void)
+{
+    GUPnPContext *context = NULL;
+    GError *error = NULL;
+    GUPnPControlPoint *cp = NULL;
+    TestBgo678701Data data = { NULL, NULL };
+    GUPnPRootDevice *rd;
+    GUPnPServiceInfo *info = NULL;
+    GUPnPDeviceInfo *dev_info = NULL;
+    GUPnPResourceFactory *factory;
+
+    data.loop = g_main_loop_new (NULL, FALSE);
+
+    context = gupnp_context_new (NULL, "lo", 0, &error);
+    g_assert (context != NULL);
+    g_assert (error == NULL);
+
+    factory = gupnp_resource_factory_get_default ();
+    gupnp_resource_factory_register_resource_proxy_type (factory,
+                                                         "urn:test-gupnp-org:service:TestService:1",
+                                                         test_bgo_678701_service_get_type ());
+    gupnp_resource_factory_register_resource_proxy_type (factory,
+                                                         "urn:test-gupnp-org:device:TestSubDevice:1",
+                                                         test_bgo_678701_device_get_type ());
+
+    rd = gupnp_root_device_new (context, "TestDevice.xml", DATA_PATH);
+    gupnp_root_device_set_available (rd, TRUE);
+
+    cp = gupnp_control_point_new (context,
+                                  "urn:test-gupnp-org:device:TestDevice:1");
+    gssdp_resource_browser_set_active (GSSDP_RESOURCE_BROWSER (cp), TRUE);
+    g_signal_connect (G_OBJECT (cp),
+                      "device-proxy-available",
+                      G_CALLBACK (test_bgo_678701_on_dp_available),
+                      &data);
+
+    test_run_loop (data.loop);
+    g_assert (data.proxy != NULL);
+
+    info = gupnp_device_info_get_service (GUPNP_DEVICE_INFO (data.proxy),
+                                          "urn:test-gupnp-org:service:TestService:1");
+    g_assert_cmpstr(G_OBJECT_TYPE_NAME (info), ==, "TestBgo678701Service");
+
+    dev_info = gupnp_device_info_get_device (GUPNP_DEVICE_INFO (data.proxy),
+                                          "urn:test-gupnp-org:device:TestSubDevice:1");
+    g_assert_cmpstr(G_OBJECT_TYPE_NAME (dev_info), ==, "TestBgo678701Device");
+
+    g_main_loop_unref (data.loop);
+    g_object_unref (data.proxy);
+    g_object_unref (cp);
+    g_object_unref (rd);
+    g_object_unref (context);
+}
+
+/* Test that removing a notify-callback from the callback itself works
+ * https://bugzilla.gnome.org/show_bug.cgi?id=678701 */
+static void
+test_bgo_690400 (void)
+{
+    GUPnPContext *context = NULL;
+    GError *error = NULL;
+    GUPnPControlPoint *cp = NULL;
+    TestServiceProxyData data = { NULL, NULL };
+    GUPnPRootDevice *rd;
+    GUPnPServiceInfo *service;
+
+    data.loop = g_main_loop_new (NULL, FALSE);
+
+    context = gupnp_context_new (NULL, "lo", 0, &error);
+    g_assert (context != NULL);
+    g_assert (error == NULL);
+
+    cp = gupnp_control_point_new (context,
+                                  "urn:test-gupnp-org:service:TestService:1");
+    gssdp_resource_browser_set_active (GSSDP_RESOURCE_BROWSER (cp), TRUE);
+
+    g_signal_connect (G_OBJECT (cp),
+                      "service-proxy-available",
+                      G_CALLBACK (test_on_sp_available),
+                      &data);
+
+    rd = gupnp_root_device_new (context, "TestDevice.xml", DATA_PATH);
+    service = gupnp_device_info_get_service (GUPNP_DEVICE_INFO (rd),
+                                             "urn:test-gupnp-org:service:TestService:1");
+    g_signal_connect (service, "query-variable",
+                      G_CALLBACK (test_bgo_690400_query_variable), NULL);
+    gupnp_root_device_set_available (rd, TRUE);
+
+    test_run_loop (data.loop);
+    g_assert (data.proxy != NULL);
+
+    gupnp_service_proxy_add_notify (data.proxy,
+                                    "evented_variable",
+                                    G_TYPE_STRING,
+                                    (GUPnPServiceProxyNotifyCallback)test_bgo_690400_notify,
+                                    &data);
+    gupnp_service_proxy_add_notify (data.proxy,
+                                    "evented_variable",
+                                    G_TYPE_STRING,
+                                    (GUPnPServiceProxyNotifyCallback)test_bgo_690400_notify_too,
+                                    &data);
+
+    gupnp_service_proxy_set_subscribed (data.proxy, TRUE);
+
+    test_run_loop (data.loop);
+
+    g_main_loop_unref (data.loop);
+    g_object_unref (data.proxy);
+    g_object_unref (cp);
+    g_object_unref (rd);
+    g_object_unref (service);
+    g_object_unref (context);
 }
 
 int
@@ -178,6 +387,8 @@ main (int argc, char *argv[]) {
 #endif
     g_test_init (&argc, &argv, NULL);
     g_test_add_func ("/bugs/696762", test_bgo_696762);
+    g_test_add_func ("/bugs/678701", test_bgo_678701);
+    g_test_add_func ("/bugs/690400", test_bgo_690400);
 
     return g_test_run ();
 }
index 0a6ca16..6d56ed5 100644 (file)
@@ -30,6 +30,8 @@
 
 GMainLoop *main_loop;
 
+static GCancellable *cancellable;
+
 static gboolean async = FALSE;
 static GOptionEntry entries[] =
 {
@@ -41,7 +43,13 @@ static GOptionEntry entries[] =
 static void
 interrupt_signal_handler (G_GNUC_UNUSED int signum)
 {
-        g_main_loop_quit (main_loop);
+        if (!async || g_cancellable_is_cancelled (cancellable)) {
+                g_main_loop_quit (main_loop);
+        } else {
+                g_print ("Canceling all introspection calls. "
+                         "Press ^C again to quit.\n");
+                g_cancellable_cancel (cancellable);
+        }
 }
 
 static void
@@ -202,9 +210,10 @@ service_proxy_available_cb (G_GNUC_UNUSED GUPnPControlPoint *cp,
         info = GUPNP_SERVICE_INFO (proxy);
 
         if (async) {
-                gupnp_service_info_get_introspection_async (info,
-                                                            got_introspection,
-                                                            NULL);
+                gupnp_service_info_get_introspection_async_full (info,
+                                                                 got_introspection,
+                                                                 cancellable,
+                                                                 NULL);
         } else {
                 introspection =
                         gupnp_service_info_get_introspection (info, &error);
@@ -270,6 +279,8 @@ main (int argc, char **argv)
                 return EXIT_FAILURE;
         }
 
+        cancellable = g_cancellable_new ();
+
         /* We're interested in everything */
         cp = gupnp_control_point_new (context, "ssdp:all");
 
index 8c1544e..ade8dec 100644 (file)
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \  ]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -53,8 +80,8 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = tools
-DIST_COMMON = $(dist_bin_SCRIPTS) $(srcdir)/Makefile.am \
-       $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+       $(dist_bin_SCRIPTS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/gtk-doc.m4 \
        $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
@@ -96,12 +123,18 @@ am__uninstall_files_from_dir = { \
   }
 am__installdirs = "$(DESTDIR)$(bindir)"
 SCRIPTS = $(dist_bin_SCRIPTS)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 AM_V_GEN = $(am__v_GEN_@AM_V@)
 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
 am__can_run_installinfo = \
@@ -109,6 +142,7 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
@@ -137,17 +171,17 @@ ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
 FGREP = @FGREP@
-GIO_CFLAGS = @GIO_CFLAGS@
-GIO_LIBS = @GIO_LIBS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
 GREP = @GREP@
 GTHREAD_CFLAGS = @GTHREAD_CFLAGS@
 GTHREAD_LIBS = @GTHREAD_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
+HAVE_IFADDRS_H = @HAVE_IFADDRS_H@
 HAVE_NETLINK = @HAVE_NETLINK@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -200,6 +234,7 @@ SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
 USE_NETLINK = @USE_NETLINK@
+UUID_LIBS = @UUID_LIBS@
 VAPIGEN = @VAPIGEN@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
@@ -333,11 +368,11 @@ mostlyclean-libtool:
 
 clean-libtool:
        -rm -rf .libs _libs
-tags: TAGS
-TAGS:
+tags TAGS:
+
+ctags CTAGS:
 
-ctags: CTAGS
-CTAGS:
+cscope cscopelist:
 
 
 distdir: $(DISTFILES)
@@ -476,16 +511,17 @@ uninstall-am: uninstall-dist_binSCRIPTS
 .MAKE: install-am install-strip
 
 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
-       distclean distclean-generic distclean-libtool distdir dvi \
-       dvi-am html html-am info info-am install install-am \
-       install-data install-data-am install-dist_binSCRIPTS \
-       install-dvi install-dvi-am install-exec install-exec-am \
-       install-html install-html-am install-info install-info-am \
-       install-man install-pdf install-pdf-am install-ps \
-       install-ps-am install-strip installcheck installcheck-am \
-       installdirs maintainer-clean maintainer-clean-generic \
-       mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
-       ps ps-am uninstall uninstall-am uninstall-dist_binSCRIPTS
+       cscopelist-am ctags-am distclean distclean-generic \
+       distclean-libtool distdir dvi dvi-am html html-am info info-am \
+       install install-am install-data install-data-am \
+       install-dist_binSCRIPTS install-dvi install-dvi-am \
+       install-exec install-exec-am install-html install-html-am \
+       install-info install-info-am install-man install-pdf \
+       install-pdf-am install-ps install-ps-am install-strip \
+       installcheck installcheck-am installdirs maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-generic \
+       mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \
+       uninstall-am uninstall-dist_binSCRIPTS
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
index a8ab94c..ee4dc8c 100644 (file)
@@ -23,6 +23,7 @@ ServiceIntrospection
     .get_state_variable nullable=true unowned=true
     .scpd skip
 ServiceProxy
+    .add_notify skip=false
     .begin_action skip=false
     .end_action_hash skip
     .end_action_list skip
index e3e24d1..7a94da1 100644 (file)
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \  ]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -53,7 +80,7 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = vala
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/gtk-doc.m4 \
        $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/libtool.m4 \
@@ -66,12 +93,18 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
 AM_V_GEN = $(am__v_GEN_@AM_V@)
 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN   " $@;
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
 AM_V_at = $(am__v_at_@AM_V@)
 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
 am__v_at_0 = @
+am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
 am__can_run_installinfo = \
@@ -108,6 +141,7 @@ am__uninstall_files_from_dir = { \
   }
 am__installdirs = "$(DESTDIR)$(vapidir)"
 DATA = $(vapi_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
@@ -136,17 +170,17 @@ ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
 FGREP = @FGREP@
-GIO_CFLAGS = @GIO_CFLAGS@
-GIO_LIBS = @GIO_LIBS@
 GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
 GREP = @GREP@
 GTHREAD_CFLAGS = @GTHREAD_CFLAGS@
 GTHREAD_LIBS = @GTHREAD_LIBS@
 GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@
 GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
 GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
 GTKDOC_MKPDF = @GTKDOC_MKPDF@
 GTKDOC_REBASE = @GTKDOC_REBASE@
+HAVE_IFADDRS_H = @HAVE_IFADDRS_H@
 HAVE_NETLINK = @HAVE_NETLINK@
 HTML_DIR = @HTML_DIR@
 INSTALL = @INSTALL@
@@ -199,6 +233,7 @@ SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRIP = @STRIP@
 USE_NETLINK = @USE_NETLINK@
+UUID_LIBS = @UUID_LIBS@
 VAPIGEN = @VAPIGEN@
 VERSION = @VERSION@
 abs_builddir = @abs_builddir@
@@ -321,11 +356,11 @@ uninstall-vapiDATA:
        @list='$(vapi_DATA)'; test -n "$(vapidir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
        dir='$(DESTDIR)$(vapidir)'; $(am__uninstall_files_from_dir)
-tags: TAGS
-TAGS:
+tags TAGS:
+
+ctags CTAGS:
 
-ctags: CTAGS
-CTAGS:
+cscope cscopelist:
 
 
 distdir: $(DISTFILES)
@@ -465,16 +500,16 @@ uninstall-am: uninstall-vapiDATA
 .MAKE: install-am install-strip
 
 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
-       distclean distclean-generic distclean-libtool distdir dvi \
-       dvi-am html html-am info info-am install install-am \
-       install-data install-data-am install-dvi install-dvi-am \
-       install-exec install-exec-am install-html install-html-am \
-       install-info install-info-am install-man install-pdf \
-       install-pdf-am install-ps install-ps-am install-strip \
-       install-vapiDATA installcheck installcheck-am installdirs \
-       maintainer-clean maintainer-clean-generic mostlyclean \
-       mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-       uninstall uninstall-am uninstall-vapiDATA
+       cscopelist-am ctags-am distclean distclean-generic \
+       distclean-libtool distdir dvi dvi-am html html-am info info-am \
+       install install-am install-data install-data-am install-dvi \
+       install-dvi-am install-exec install-exec-am install-html \
+       install-html-am install-info install-info-am install-man \
+       install-pdf install-pdf-am install-ps install-ps-am \
+       install-strip install-vapiDATA installcheck installcheck-am \
+       installdirs maintainer-clean maintainer-clean-generic \
+       mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+       ps ps-am tags-am uninstall uninstall-am uninstall-vapiDATA
 
 @HAVE_INTROSPECTION_TRUE@@HAVE_VAPIGEN_TRUE@gupnp-1.0.vapi: gupnp-1.0.stamp
 @HAVE_INTROSPECTION_TRUE@@HAVE_VAPIGEN_TRUE@   @true