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,
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
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
======================
`configure' also accepts some other, not widely useful, options. Run
`configure --help' for more details.
-
-# 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@
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 \
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;; \
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)
&& 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,'; \
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$$'
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@
SHELL = @SHELL@
STRIP = @STRIP@
USE_NETLINK = @USE_NETLINK@
+UUID_LIBS = @UUID_LIBS@
VAPIGEN = @VAPIGEN@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
$(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
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; \
$(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 \
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; \
$$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
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)
|| 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
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*) \
*.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 \
&& $(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'
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.
-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.
-# 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)
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
])
# 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
#
# 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,
# 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
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
# _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
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],
# 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
: > 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
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
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}
# 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
# 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='\'
# 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
# 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.
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"])`
# 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],
# 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])
# -----------------------------------------------
# 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
# 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
[_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.
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.
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],
# 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]),
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
]
)
-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.
_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
# 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],
$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
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],
# --------------------
# 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)
# ------------------------
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)
# -------------------
# 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='
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
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}
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
_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.
# 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
# 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
--- /dev/null
+#! /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:
#! /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
# 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,.*/,,'`
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."
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
# 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}
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:*:*)
i*:CYGWIN*:*)
echo ${UNAME_MACHINE}-pc-cygwin
exit ;;
+ *:MINGW64*:*)
+ echo ${UNAME_MACHINE}-pc-mingw64
+ exit ;;
*:MINGW*:*)
echo ${UNAME_MACHINE}-pc-mingw32
exit ;;
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
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
#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.
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 ;;
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]*:*)
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:*:*)
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_
#! /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/>.
# 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.
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."
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*)
-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
;;
| 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 \
| 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 \
| 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 \
| 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-* \
| 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-* \
| 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-* \
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)
basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
;;
msys)
- basic_machine=i386-pc
+ basic_machine=i686-pc
os=-msys
;;
mvs)
basic_machine=i586-unknown
os=-pw32
;;
- rdos)
+ rdos | rdos64)
+ basic_machine=x86_64-pc
+ os=-rdos
+ ;;
+ rdos32)
basic_machine=i386-pc
os=-rdos
;;
-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* \
-aros*)
os=-aros
;;
- -kaos*)
- os=-kaos
- ;;
-zvmoe)
os=-zvmoe
;;
c4x-* | tic4x-*)
os=-coff
;;
+ c8051-*)
+ os=-elf
+ ;;
hexagon-*)
os=-elf
;;
mips*-*)
os=-elf
;;
+ or1k-*)
+ os=-elf
+ ;;
or32-*)
os=-coff
;;
#! /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
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]
;;
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
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
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
done
"$@"
stat=$?
- if test $stat -eq 0; then :
- else
+ if test $stat -ne 0; then
rm -f "$tmpdepfile"
exit $stat
fi
;;
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
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.
## 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"
;;
"$@" -MDupdate "$tmpdepfile"
fi
stat=$?
- if test $stat -eq 0; then :
- else
+ if test $stat -ne 0; then
rm -f "$tmpdepfile"
exit $stat
fi
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
# 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"
;;
# 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
"$@" -M
fi
stat=$?
-
- if test $stat -eq 0; then :
- else
+ if test $stat -ne 0; then
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
exit $stat
fi
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"
;;
# '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
"$@" +Maked
fi
stat=$?
- if test $stat -eq 0; then :
- else
+ if test $stat -ne 0; then
rm -f "$tmpdepfile1" "$tmpdepfile2"
exit $stat
fi
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
"$@" $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
G
p
}' >> "$depfile"
+ echo >> "$depfile" # make sure the fragment doesn't end with a backslash
rm -f "$tmpdepfile"
;;
# 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"
;;
# 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
;;
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"
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 |
#!/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
# 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
-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
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
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
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
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
# 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
#
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
#! /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
# 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 $?
;;
-*)
- 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)
--- /dev/null
+#! /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:
/* 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
#! /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>.
#
# 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/'
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
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
PKG_CONFIG_LIBDIR
PKG_CONFIG_PATH
PKG_CONFIG
+UUID_LIBS
OTOOL64
OTOOL
LIPO
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
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
LIBGUPNP_LIBS
GTHREAD_CFLAGS
GTHREAD_LIBS
-GIO_CFLAGS
-GIO_LIBS
CONNMAN_CFLAGS
CONNMAN_LIBS
GTKDOC_DEPS_CFLAGS
# 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]...
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
--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]
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
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.
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 $@
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
{ $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='
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
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.
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
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.
{ $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.
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."
# Define the identity of the package.
PACKAGE='gupnp'
- VERSION='0.20.5'
+ VERSION='0.20.12'
cat >>confdefs.h <<_ACEOF
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
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; }
+# 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.
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
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"
_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
# 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
: > 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
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
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}
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];
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];
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];
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];
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];
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
;;
esac
;;
- ppc64-*linux*|powerpc64-*linux*)
+ powerpc64le-*)
+ LD="${LD-ld} -m elf32lppclinux"
+ ;;
+ powerpc64-*)
LD="${LD-ld} -m elf32ppclinux"
;;
s390x-*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*)
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
+
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.
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
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
_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
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=
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
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
_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
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
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
;;
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; }
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
$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=
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='#'
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
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
# 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
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\\"
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
# 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.
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" ||
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/])
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")
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>
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])
],[])
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])
-# 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@
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 \
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 = \
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@
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@
SHELL = @SHELL@
STRIP = @STRIP@
USE_NETLINK = @USE_NETLINK@
+UUID_LIBS = @UUID_LIBS@
VAPIGEN = @VAPIGEN@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
$(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
clean-libtool:
-rm -rf .libs _libs
-tags: TAGS
-TAGS:
+tags TAGS:
+
+ctags CTAGS:
-ctags: CTAGS
-CTAGS:
+cscope cscopelist:
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
.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 \
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 \
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 \
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 \
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:
#
# 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)/
<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"/>
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>
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
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
<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
<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>
#include <libgupnp/gupnp.h>
+gupnp_acl_get_type
gupnp_context_get_type
gupnp_context_manager_get_type
gupnp_control_point_get_type
gupnp_time_tz_get_type
gupnp_uri_get_type
gupnp_uuid_get_type
+gupnp_white_list_get_type
--- /dev/null
+<!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
<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: <= 604800</p>
<p>Default value: 1800</p>
</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
<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
<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
<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
<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 <dlna:X_DLNACAP> 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 <dlna:X_DLNACAP>
-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 <dlna:X_DLNACAP> 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 <dlna:X_DLNACAP>
+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 <dlna:X_DLNADOC>
-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 <dlna:X_DLNADOC>
-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 <dlna:X_DLNADOC>
+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
<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
<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
<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
<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
<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
<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
<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
<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
<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
--- /dev/null
+<!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
<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>
</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
<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>
</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
<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>
</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
<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
<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>
</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
<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
<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
</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
</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
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,
</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, &ip, &error);</pre>
<p>
</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
<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
</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
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
<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
<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
<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
</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>
</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:
</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
<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>
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>
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>
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
<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 "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="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 "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="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 "scpd" 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 "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="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 "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="struct GUPnPDevice" link="GUPnPDevice.html#GUPnPDevice-struct"/>
- <keyword type="property" name="The "root-device" 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 "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="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 "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="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 "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="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 "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="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>
<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
</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
<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">
<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">
<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">
<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
<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">
</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
<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">
</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
<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">
</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
<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>
</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
<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.
</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 */
<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>
</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>
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>
</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>
</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
+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
{
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
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;
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
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 */
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;
}
.listing_frame {
/* tango:sky blue 1 */
border: solid 1px #729fcf;
+ border: solid 1px rgba(114, 159, 207, 0.2);
padding: 0px;
}
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;
<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>
</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
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);
…
-# 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@
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 \
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 $@
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
$(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 = \
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)
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@
SHELL = @SHELL@
STRIP = @STRIP@
USE_NETLINK = @USE_NETLINK@
+UUID_LIBS = @UUID_LIBS@
VAPIGEN = @VAPIGEN@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
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)
@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 $@ $<
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; \
$$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
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
.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.
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;
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:
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;
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;
}
} else if (g_str_equal (argv[1], "toggle")) {
mode = TOGGLE;
} else {
- usage ();
+ usage (optionContext);
return EXIT_FAILURE;
}
#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,
"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 */
int
main (G_GNUC_UNUSED int argc, G_GNUC_UNUSED char **argv)
{
+ GOptionContext *optionContext;
GMainLoop *main_loop;
GError *error = NULL;
GUPnPContext *context;
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);
$(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
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)
#### 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 \
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 \
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 \
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 \
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:
#
# 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)/
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@
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@
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
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 \
gupnp.h
introspection_sources = $(libgupnpinc_HEADERS) \
+ gupnp-acl.c \
gupnp-context.c \
gupnp-context-manager.c \
gupnp-control-point.c \
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 \
-# 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@
@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 \
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 \
@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)
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
$(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 = \
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)
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@
SHELL = @SHELL@
STRIP = @STRIP@
USE_NETLINK = @USE_NETLINK@
+UUID_LIBS = @UUID_LIBS@
VAPIGEN = @VAPIGEN@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
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)
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 \
gupnp.h
introspection_sources = $(libgupnpinc_HEADERS) \
+ gupnp-acl.c \
gupnp-context.c \
gupnp-context-manager.c \
gupnp-control-point.c \
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 \
$(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=; \
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)
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@
@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 $@ $<
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; \
$$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
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
.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
--- /dev/null
+/*
+ * 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
--- /dev/null
+/*
+ * 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);
+}
--- /dev/null
+/*
+ * 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
/**
* 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,
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 {
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;
}
* 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 *
* 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)
#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
* 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;
}
* 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)
* 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,
* 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,
*
* 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)
#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__ */
#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>
#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);
char *default_language;
GList *host_path_datas;
+
+ GUPnPAcl *acl;
};
enum {
PROP_SERVER,
PROP_SESSION,
PROP_SUBSCRIPTION_TIMEOUT,
- PROP_DEFAULT_LANGUAGE
+ PROP_DEFAULT_LANGUAGE,
+ PROP_ACL
};
typedef struct {
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;
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;
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 */
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)
{
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));
* 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,
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));
}
/**
*
* 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)
data->default_language = g_strdup (language);
-
- if (old_language != NULL)
- g_free (old_language);
+ g_free (old_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,
(GFunc) host_path_data_set_language,
(gpointer) language);
- if (old_language != NULL)
- g_free (old_language);
+ g_free (old_language);
}
/**
*
* Returns: (transfer none): The default content of the Content-Language
* header.
+ *
+ * Since: 0.17.0
*/
const char *
gupnp_context_get_default_language (GUPnPContext *context)
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");
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 *
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);
}
* 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,
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);
+}
#include <libsoup/soup-server.h>
#include <libsoup/soup-session.h>
+#include "gupnp-acl.h"
+
G_BEGIN_DECLS
GType
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__ */
"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 |
}
/* Cleanup */
- while (icons) {
- icon_free (icons->data);
- icons = g_list_delete_link (icons, icons);
- }
+ g_list_free_full (icons, (GDestroyNotify) icon_free);
return ret;
}
* Returns: (transfer full) (element-type utf8): a #GList of newly allocated strings or
* %NULL if the device description doesn't contain the <dlna:X_DLNADOC>
* element.
+ *
+ * Since: 0.20.4
**/
GList *
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 */
* Returns: (transfer full) (element-type utf8): a #GList of newly allocated strings or
* %NULL if the device description doesn't contain the <dlna:X_DLNACAP>
* element.
+ *
+ * Since: 0.13.0
**/
GList *
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,
* 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>
#include <errno.h>
#include <string.h>
+#include <glib.h>
+#include <gio/gio.h>
+
#include "gupnp-linux-context-manager.h"
#include "gupnp-context.h"
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;
};
else
old_essid = NULL;
#endif
- if (old_essid)
- g_free (old_essid);
+ g_free (old_essid);
}
static void
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
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
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;
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);
}
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
}
/* 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);
}
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)
{
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)
{
(((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)
#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)
{
return TRUE;
}
+/* public helper function to determine runtime-fallback depending on netlink
+ * availability. */
gboolean
gupnp_linux_context_manager_is_available (void)
{
return TRUE;
}
+/* GObject virtual functions */
+
static void
gupnp_linux_context_manager_init (GUPnPLinuxContextManager *self)
{
(GDestroyNotify) network_device_free);
}
+/* Constructor, kicks off bootstrapping */
static void
gupnp_linux_context_manager_constructed (GObject *object)
{
#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
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);
* @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
const char *location,
const SoupURI *url_base)
{
+ char *type_from_xml = NULL;
GUPnPServiceProxy *proxy;
GType proxy_type = GUPNP_TYPE_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;
"element", element,
NULL);
+ g_free (type_from_xml);
+
return proxy;
}
* GUPnPRootDevice:description-doc:
*
* Device description document. Constructor property.
+ *
+ * Since: 0.13.0
**/
g_object_class_install_property
(object_class,
*
* 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,
* 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)
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);
}
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);
} 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);
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
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;
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);
+ }
}
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__ */
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);
}
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);
}
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);
}
};
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;
}
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);
}
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);
* 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
/* 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 *); \
\
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), \
} \
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.
* 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
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,
}
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;
* 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
* 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,
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);
/**
* 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
* #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,
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
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;
}
* 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
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;
}
* 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
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;
}
* 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.
**/
* 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
* 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)
/* 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;
/* 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;
}
/**
- * 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
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;
data->type = type;
data->callbacks = NULL;
+ data->next_emit = NULL;
g_hash_table_insert (proxy->priv->notify_hash,
g_strdup (variable),
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
*
* 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.
**/
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);
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)
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,
emit_notifications_for_doc (GUPnPServiceProxy *proxy,
xmlDoc *doc)
{
+ NotifyData *data = NULL;
xmlNode *node;
node = xmlDocGetRootElement (doc);
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. */
}
/* 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;
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
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,
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);
#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"
}
/* 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);
* 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,
}
/**
- * 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,
* 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)
* #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,
*
* Return value: (transfer full): #SoupMessage associated with @action. Unref
* after using it.
+ *
+ * Since: 0.13.0
**/
SoupMessage *
gupnp_service_action_get_message (GUPnPServiceAction *action)
gpointer user_data)
{
GUPnPService *service;
+ GUPnPContext *context;
+ GUPnPAcl *acl;
const char *callback, *nt, *sid;
service = GUPNP_SERVICE (user_data);
GObject *object;
GUPnPServiceInfo *info;
GUPnPContext *context;
- SoupServer *server;
+ AclServerHandler *handler;
char *url;
char *path;
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,
/* 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);
GObjectClass *object_class;
GUPnPServiceInfo *info;
GUPnPContext *context;
- SoupServer *server;
char *url;
char *path;
/* 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);
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)))
} 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;
* 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>
* GUPnPWhiteList:enabled:
*
* Whether this white list is active or not.
+ *
+ * Since: 0.20.5
**/
g_object_class_install_property
(object_class,
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,
* The white list is disabled by default.
*
* Returns: (transfer full): A new #GUPnPWhiteList object.
+ *
+ * Since: 0.20.5
**/
GUPnPWhiteList *
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)
{
* 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)
* 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)
* 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)
}
/**
+ * 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.
* 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)
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");
}
* 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)
* 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)
{
*
* 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,
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,
*
* GObject wrapper for xmlDoc, so that we can use refcounting and weak
* references.
+ *
+ * Since: 0.13.0
*/
#include <string.h>
* 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)
* 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,
* Boston, MA 02110-1301, USA.
*/
+#include "gupnp-acl.h"
#include "gupnp-context.h"
#include "gupnp-context-manager.h"
#include "gupnp-control-point.h"
dnl -*- mode: autoconf -*-
-# serial 1
+# serial 2
dnl Usage:
dnl GTK_DOC_CHECK([minimum-gtk-doc-version])
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])
[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],
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])
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
;;
esac
;;
- ppc64-*linux*|powerpc64-*linux*)
+ powerpc64le-*)
+ LD="${LD-ld} -m elf32lppclinux"
+ ;;
+ powerpc64-*)
LD="${LD-ld} -m elf32ppclinux"
;;
s390x-*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*)
+++ /dev/null
-* 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
+++ /dev/null
-#
-# 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
-
-
-# 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@
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 \
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 = \
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
$(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;; \
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)
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@
SHELL = @SHELL@
STRIP = @STRIP@
USE_NETLINK = @USE_NETLINK@
+UUID_LIBS = @UUID_LIBS@
VAPIGEN = @VAPIGEN@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
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)
@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 $@ $<
-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; \
$(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 \
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; \
$$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
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
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 \
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.
-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
-# 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@
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 \
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
$(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 = \
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@
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@
SHELL = @SHELL@
STRIP = @STRIP@
USE_NETLINK = @USE_NETLINK@
+UUID_LIBS = @UUID_LIBS@
VAPIGEN = @VAPIGEN@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
-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 \
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)
@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 $@ $<
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; \
$$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
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'`; \
"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:
.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 \
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.
+++ /dev/null
-<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>
--- /dev/null
+<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>
<name>A_ARG_TYPE_Count</name>
<dataType>ui4</dataType>
</stateVariable>
+ <stateVariable sendEvents="yes">
+ <name>evented_variable</name>
+ <dataType>string</dataType>
+ </stateVariable>
</serviceStateTable>
<actionList>
<action>
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,
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)
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);
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,
"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
#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 ();
}
GMainLoop *main_loop;
+static GCancellable *cancellable;
+
static gboolean async = FALSE;
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
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);
return EXIT_FAILURE;
}
+ cancellable = g_cancellable_new ();
+
/* We're interested in everything */
cp = gupnp_control_point_new (context, "ssdp:all");
-# 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@
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 \
}
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 = \
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@
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@
SHELL = @SHELL@
STRIP = @STRIP@
USE_NETLINK = @USE_NETLINK@
+UUID_LIBS = @UUID_LIBS@
VAPIGEN = @VAPIGEN@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
clean-libtool:
-rm -rf .libs _libs
-tags: TAGS
-TAGS:
+tags TAGS:
+
+ctags CTAGS:
-ctags: CTAGS
-CTAGS:
+cscope cscopelist:
distdir: $(DISTFILES)
.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.
.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
-# 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@
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 \
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 = \
}
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@
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@
SHELL = @SHELL@
STRIP = @STRIP@
USE_NETLINK = @USE_NETLINK@
+UUID_LIBS = @UUID_LIBS@
VAPIGEN = @VAPIGEN@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
@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)
.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