Hello community, here is the log from the commit of package gupnp for openSUSE:Factory checked in at 2016-02-18 11:06:06 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gupnp (Old) and /work/SRC/openSUSE:Factory/.gupnp.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gupnp" Changes: -------- --- /work/SRC/openSUSE:Factory/gupnp/gupnp.changes 2016-01-09 23:12:43.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.gupnp.new/gupnp.changes 2016-02-18 12:35:36.000000000 +0100 @@ -1,0 +2,14 @@ +Tue Feb 9 08:41:16 UTC 2016 - dims...@opensuse.org + +- Update to version 0.20.16: + + Don't hardcode python path in gupnp-binding-tool. + + Check for IFA_FLAGS to not bind ourselves to a recent kernel + version. + + Add missing m4 files. + + Fix issues with introspection. + + Make GUPnPServiceAction boxed. + + Some JavaScript examples. + + Distribute VAPI file in tarball. + + Bugs fixed: bgo#760217, bgo#760430, bgo#761265. + +------------------------------------------------------------------- Old: ---- gupnp-0.20.15.tar.xz New: ---- gupnp-0.20.16.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gupnp.spec ++++++ --- /var/tmp/diff_new_pack.iD4edQ/_old 2016-02-18 12:35:37.000000000 +0100 +++ /var/tmp/diff_new_pack.iD4edQ/_new 2016-02-18 12:35:37.000000000 +0100 @@ -17,7 +17,7 @@ Name: gupnp -Version: 0.20.15 +Version: 0.20.16 Release: 0 Summary: Implementation of the UPnP specification License: LGPL-2.0+ ++++++ gupnp-0.20.15.tar.xz -> gupnp-0.20.16.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gupnp-0.20.15/NEWS new/gupnp-0.20.16/NEWS --- old/gupnp-0.20.15/NEWS 2015-12-31 11:36:35.000000000 +0100 +++ new/gupnp-0.20.16/NEWS 2016-02-08 23:08:00.000000000 +0100 @@ -1,3 +1,23 @@ +0.20.16 +======= + +- Don't hardcode python path in gupnp-binding-tool +- Check for IFA_FLAGS to not bind ourselves to a recent kernel version +- Add missing m4 files +- Fix issues with introspection +- Make GUPnPServiceAction boxed +- Some JavaScript examples +- Distribute VAPI file in tarball + +Bugs fixed in this release: + - https://bugzilla.gnome.org/show_bug.cgi?id=760217 + - https://bugzilla.gnome.org/show_bug.cgi?id=760430 + - https://bugzilla.gnome.org/show_bug.cgi?id=761265 + +All contributors to this release: + - Jens Georg <m...@jensge.org> + - Ting-Wei Lan <la...@src.gnome.org> + 0.20.15 ======= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gupnp-0.20.15/configure new/gupnp-0.20.16/configure --- old/gupnp-0.20.15/configure 2015-12-31 11:38:30.000000000 +0100 +++ new/gupnp-0.20.16/configure 2016-02-08 23:10:12.000000000 +0100 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for gupnp 0.20.15. +# Generated by GNU Autoconf 2.69 for gupnp 0.20.16. # # Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=gupnp&component=gupnp>. # @@ -651,8 +651,8 @@ # Identity of this package. PACKAGE_NAME='gupnp' PACKAGE_TARNAME='gupnp' -PACKAGE_VERSION='0.20.15' -PACKAGE_STRING='gupnp 0.20.15' +PACKAGE_VERSION='0.20.16' +PACKAGE_STRING='gupnp 0.20.16' PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=gupnp&component=gupnp' PACKAGE_URL='http://www.gupnp.org/' @@ -1464,7 +1464,7 @@ # 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.15 to adapt to many kinds of systems. +\`configure' configures gupnp 0.20.16 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1535,7 +1535,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of gupnp 0.20.15:";; + short | recursive ) echo "Configuration of gupnp 0.20.16:";; esac cat <<\_ACEOF @@ -1677,7 +1677,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -gupnp configure 0.20.15 +gupnp configure 0.20.16 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2046,7 +2046,7 @@ 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.15, which was +It was created by gupnp $as_me 0.20.16, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3029,7 +3029,7 @@ # Define the identity of the package. PACKAGE='gupnp' - VERSION='0.20.15' + VERSION='0.20.16' cat >>confdefs.h <<_ACEOF @@ -15225,7 +15225,7 @@ # 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.15, which was +This file was extended by gupnp $as_me 0.20.16, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -15292,7 +15292,7 @@ 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.15 +gupnp config.status 0.20.16 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gupnp-0.20.15/configure.ac new/gupnp-0.20.16/configure.ac --- old/gupnp-0.20.15/configure.ac 2015-12-08 21:32:38.000000000 +0100 +++ new/gupnp-0.20.16/configure.ac 2016-02-05 20:56:15.000000000 +0100 @@ -1,6 +1,6 @@ AC_PREREQ([2.64]) AC_INIT([gupnp], - [0.20.15], + [0.20.16], [http://bugzilla.gnome.org/enter_bug.cgi?product=gupnp&component=gupnp], [gupnp], [http://www.gupnp.org/]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gupnp-0.20.15/doc/html/GUPnPServiceProxy.html new/gupnp-0.20.16/doc/html/GUPnPServiceProxy.html --- old/gupnp-0.20.15/doc/html/GUPnPServiceProxy.html 2015-12-31 11:47:46.000000000 +0100 +++ new/gupnp-0.20.16/doc/html/GUPnPServiceProxy.html 2016-02-08 23:11:29.000000000 +0100 @@ -492,6 +492,7 @@ <span class="type">GHashTable</span>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> +<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p> <div class="refsect3"> <a name="gupnp-service-proxy-send-action-hash.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table width="100%" border="0"> @@ -550,6 +551,7 @@ <em class="parameter"><code><span class="type">GList</span> **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> +<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p> <div class="refsect3"> <a name="gupnp-service-proxy-send-action-list.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table width="100%" border="0"> @@ -760,6 +762,7 @@ 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> +<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p> <div class="refsect3"> <a name="gupnp-service-proxy-begin-action-hash.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table width="100%" border="0"> @@ -1015,7 +1018,7 @@ <td class="parameter_name"><p>hash</p></td> <td class="parameter_description"><p> A <span class="type">GHashTable</span> of out parameter name and initialised <span class="type">GValue</span> 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> +<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="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</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> @@ -1040,6 +1043,7 @@ in <em class="parameter"><code>out_values</code></em> must be freed using <span class="type">g_list_free</span> and each element in it using <span class="type">g_value_unset</span> and <span class="type">g_slice_free</span>.</p> +<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p> <div class="refsect3"> <a name="gupnp-service-proxy-end-action-list.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table width="100%" border="0"> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gupnp-0.20.15/doc/html/annotation-glossary.html new/gupnp-0.20.16/doc/html/annotation-glossary.html --- old/gupnp-0.20.15/doc/html/annotation-glossary.html 2015-12-31 11:47:46.000000000 +0100 +++ new/gupnp-0.20.16/doc/html/annotation-glossary.html 2016-02-08 23:11:29.000000000 +0100 @@ -50,6 +50,8 @@ <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> +<dt><span class="glossterm"><a name="annotation-glossterm-out%20caller-allocates"></a>out caller-allocates</span></dt> +<dd class="glossdef"><p>Out parameter, where caller must allocate storage.</p></dd> <a name="glsP"></a><h3 class="title">P</h3> <dt><span class="glossterm"><a name="annotation-glossterm-Private"></a>Private</span></dt> <dd class="glossdef"><p>An interface that can be used within the GNOME stack itself, but that is not diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gupnp-0.20.15/doc/html/index.html new/gupnp-0.20.16/doc/html/index.html --- old/gupnp-0.20.15/doc/html/index.html 2015-12-31 11:47:46.000000000 +0100 +++ new/gupnp-0.20.16/doc/html/index.html 2016-02-08 23:11:29.000000000 +0100 @@ -14,7 +14,7 @@ <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.15 +<div><p class="releaseinfo">Version 0.20.16 </p></div> <div><p class="copyright">Copyright © 2007, 2008, 2009 OpenedHand Ltd, Nokia Corporation</p></div> <div><div class="legalnotice"> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gupnp-0.20.15/libgupnp/gupnp-linux-context-manager.c new/gupnp-0.20.16/libgupnp/gupnp-linux-context-manager.c --- old/gupnp-0.20.15/libgupnp/gupnp-linux-context-manager.c 2015-12-31 10:50:37.000000000 +0100 +++ new/gupnp-0.20.16/libgupnp/gupnp-linux-context-manager.c 2016-02-05 21:33:02.000000000 +0100 @@ -128,7 +128,9 @@ case IFA_ANYCAST: label = "IFA_ANYCAST"; break; case IFA_CACHEINFO: label = "IFA_CACHEINFO"; break; case IFA_MULTICAST: label = "IFA_MULTICAST"; break; +#if defined(IFA_FLAGS) case IFA_FLAGS: label = "IFA_FLAGS"; break; +#endif default: label = "Unknown"; break; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gupnp-0.20.15/libgupnp/gupnp-service-proxy.c new/gupnp-0.20.16/libgupnp/gupnp-service-proxy.c --- old/gupnp-0.20.15/libgupnp/gupnp-service-proxy.c 2015-08-01 13:34:17.000000000 +0200 +++ new/gupnp-0.20.16/libgupnp/gupnp-service-proxy.c 2016-02-05 23:02:54.000000000 +0100 @@ -81,6 +81,7 @@ static guint signals[LAST_SIGNAL]; struct _GUPnPServiceProxyAction { + volatile gint ref_count; GUPnPServiceProxy *proxy; SoupMessage *msg; @@ -122,19 +123,49 @@ static void unsubscribe (GUPnPServiceProxy *proxy); +static GUPnPServiceProxyAction * +gupnp_service_proxy_action_ref (GUPnPServiceProxyAction *action); + static void -gupnp_service_proxy_action_free (GUPnPServiceProxyAction *action) +gupnp_service_proxy_action_unref (GUPnPServiceProxyAction *action); + +static GUPnPServiceProxyAction * +gupnp_service_proxy_action_ref (GUPnPServiceProxyAction *action) { - action->proxy->priv->pending_actions = - g_list_remove (action->proxy->priv->pending_actions, action); + g_return_val_if_fail (action, NULL); + g_return_val_if_fail (action->ref_count > 0, NULL); - if (action->msg != NULL) - g_object_unref (action->msg); + g_atomic_int_inc (&action->ref_count); - g_slice_free (GUPnPServiceProxyAction, action); + return action; } static void +gupnp_service_proxy_action_unref (GUPnPServiceProxyAction *action) +{ + + g_return_if_fail (action); + g_return_if_fail (action->ref_count > 0); + + + if (g_atomic_int_dec_and_test (&action->ref_count)) { + if (action->proxy != NULL) { + g_object_remove_weak_pointer (G_OBJECT (action->proxy), + (gpointer *)&(action->proxy)); + action->proxy->priv->pending_actions = + g_list_remove (action->proxy->priv->pending_actions, action); + } + + if (action->msg != NULL) + g_object_unref (action->msg); + + g_slice_free (GUPnPServiceProxyAction, action); + } +} + +G_DEFINE_BOXED_TYPE (GUPnPServiceProxyAction, gupnp_service_proxy_action, gupnp_service_proxy_action_ref, gupnp_service_proxy_action_unref) + +static void callback_data_free (CallbackData *data) { if (data->notify) @@ -263,6 +294,9 @@ GUPnPServiceProxyAction *action; action = proxy->priv->pending_actions->data; + proxy->priv->pending_actions = + g_list_delete_link (proxy->priv->pending_actions, + proxy->priv->pending_actions); gupnp_service_proxy_cancel_action (proxy, action); } @@ -628,7 +662,7 @@ } /** - * gupnp_service_proxy_send_action_hash: + * gupnp_service_proxy_send_action_hash: (skip) * @proxy: A #GUPnPServiceProxy * @action: An action * @error: (allow-none): The location where to store any error, or %NULL @@ -693,7 +727,42 @@ } /** - * gupnp_service_proxy_send_action_list: + * gupnp_service_proxy_send_action_list_gi: (rename-to gupnp_service_proxy_send_action_list) + * @proxy: (transfer none) : A #GUPnPServiceProxy + * @action: An action + * @error: 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 + * #GValue) that line up with @in_names + * @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) + * that line up with @out_names + * @out_values: (element-type GValue) (transfer full) (out): #GList of values + * (as #GValue) that line up with @out_names and @out_types. + * + * The synchronous variant of #gupnp_service_proxy_begin_action_list and + * #gupnp_service_proxy_end_action_list. + * + * Return value: %TRUE if sending the action was succesful. + * + **/ +gboolean +gupnp_service_proxy_send_action_list_gi (GUPnPServiceProxy *proxy, + const char *action, + GList *in_names, + GList *in_values, + GList *out_names, + GList *out_types, + GList **out_values, + GError **error) +{ + return gupnp_service_proxy_send_action_list (proxy, action, error, in_names, in_values, out_names, out_types, out_values); +} + +/** + * gupnp_service_proxy_send_action_list: (skip) * @proxy: A #GUPnPServiceProxy * @action: An action * @error: (allow-none): The location where to store any error, or %NULL @@ -816,8 +885,10 @@ /* Create action structure */ ret = g_slice_new (GUPnPServiceProxyAction); + ret->ref_count = 1; ret->proxy = proxy; + g_object_add_weak_pointer (G_OBJECT (proxy), (gpointer *)&(ret->proxy)); ret->callback = callback; ret->user_data = user_data; @@ -1113,7 +1184,7 @@ } /** - * gupnp_service_proxy_begin_action_hash: + * gupnp_service_proxy_begin_action_hash: (skip) * @proxy: A #GUPnPServiceProxy * @action: An action * @callback: (scope async): The callback to call when sending the action has succeeded @@ -1405,7 +1476,38 @@ } /** - * gupnp_service_proxy_end_action_list: + * gupnp_service_proxy_end_action_list_gi: (rename-to gupnp_service_proxy_end_action_list) + * @proxy: A #GUPnPServiceProxy + * @action: A #GUPnPServiceProxyAction handle + * @error: 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) + * that line up with @out_names + * @out_values: (element-type GValue) (transfer full) (out): #GList of values + * (as #GValue) that line up with @out_names and @out_types. + * + * A variant of #gupnp_service_proxy_end_action that takes lists of + * out-parameter names, types and place-holders for values. The returned list + * in @out_values must be freed using #g_list_free and each element in it using + * #g_value_unset and #g_slice_free. + * + * Return value : %TRUE on success. + * + **/ +gboolean +gupnp_service_proxy_end_action_list_gi (GUPnPServiceProxy *proxy, + GUPnPServiceProxyAction *action, + GList *out_names, + GList *out_types, + GList **out_values, + GError **error) +{ + return gupnp_service_proxy_end_action_list (proxy, action, error, out_names, out_types, out_values); +} + +/** + * gupnp_service_proxy_end_action_list: (skip) * @proxy: A #GUPnPServiceProxy * @action: A #GUPnPServiceProxyAction handle * @error: (allow-none): The location where to store any error, or %NULL @@ -1422,6 +1524,7 @@ * #g_value_unset and #g_slice_free. * * Returns: %TRUE on success. + * **/ gboolean gupnp_service_proxy_end_action_list (GUPnPServiceProxy *proxy, @@ -1446,7 +1549,7 @@ /* Check for saved error from begin_action() */ if (action->error) { g_propagate_error (error, action->error); - gupnp_service_proxy_action_free (action); + gupnp_service_proxy_action_unref (action); return FALSE; } @@ -1454,7 +1557,7 @@ /* Check response for errors and do initial parsing */ response = check_action_response (proxy, action, ¶ms, error); if (response == NULL) { - gupnp_service_proxy_action_free (action); + gupnp_service_proxy_action_unref (action); return FALSE; } @@ -1477,7 +1580,7 @@ *out_values = out_values_list; /* Cleanup */ - gupnp_service_proxy_action_free (action); + gupnp_service_proxy_action_unref (action); xmlFreeDoc (response); @@ -1485,7 +1588,7 @@ } /** - * gupnp_service_proxy_end_action_hash: + * gupnp_service_proxy_end_action_hash_gi: (rename-to gupnp_service_proxy_end_action_hash) * @proxy: A #GUPnPServiceProxy * @action: A #GUPnPServiceProxyAction handle * @error: The location where to store any error, or %NULL @@ -1496,6 +1599,29 @@ * runtime generated parameter lists. * * Return value: %TRUE on success. + * + **/ +gboolean +gupnp_service_proxy_end_action_hash_gi (GUPnPServiceProxy *proxy, + GUPnPServiceProxyAction *action, + GHashTable *hash, + GError **error) +{ + return gupnp_service_proxy_end_action_hash (proxy, action, error, hash); +} + +/** + * gupnp_service_proxy_end_action_hash: + * @proxy: A #GUPnPServiceProxy + * @action: A #GUPnPServiceProxyAction handle + * @error: The location where to store any error, or %NULL + * @hash: (element-type utf8 GValue) (out caller-allocates) (transfer none): A #GHashTable of + * out parameter name and initialised #GValue pairs + * + * See gupnp_service_proxy_end_action(); this version takes a #GHashTable for + * runtime generated parameter lists. + * + * Return value: %TRUE on success. **/ gboolean gupnp_service_proxy_end_action_hash (GUPnPServiceProxy *proxy, @@ -1513,7 +1639,7 @@ /* Check for saved error from begin_action() */ if (action->error) { g_propagate_error (error, action->error); - gupnp_service_proxy_action_free (action); + gupnp_service_proxy_action_unref (action); return FALSE; } @@ -1521,7 +1647,7 @@ /* Check response for errors and do initial parsing */ response = check_action_response (proxy, action, ¶ms, error); if (response == NULL) { - gupnp_service_proxy_action_free (action); + gupnp_service_proxy_action_unref (action); return FALSE; } @@ -1530,7 +1656,7 @@ g_hash_table_foreach (hash, (GHFunc) read_out_parameter, params); /* Cleanup */ - gupnp_service_proxy_action_free (action); + gupnp_service_proxy_action_unref (action); xmlFreeDoc (response); @@ -1568,7 +1694,7 @@ if (action->error != NULL) g_error_free (action->error); - gupnp_service_proxy_action_free (action); + gupnp_service_proxy_action_unref (action); } /** diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gupnp-0.20.15/libgupnp/gupnp-service-proxy.h new/gupnp-0.20.16/libgupnp/gupnp-service-proxy.h --- old/gupnp-0.20.15/libgupnp/gupnp-service-proxy.h 2015-03-30 19:49:17.000000000 +0200 +++ new/gupnp-0.20.16/libgupnp/gupnp-service-proxy.h 2016-02-05 23:02:54.000000000 +0100 @@ -30,6 +30,9 @@ GType gupnp_service_proxy_get_type (void) G_GNUC_CONST; +GType +gupnp_service_proxy_action_get_type (void) G_GNUC_CONST; + #define GUPNP_TYPE_SERVICE_PROXY \ (gupnp_service_proxy_get_type ()) #define GUPNP_SERVICE_PROXY(obj) \ @@ -140,7 +143,6 @@ GHashTable *out_hash) G_GNUC_DEPRECATED; #endif - gboolean gupnp_service_proxy_send_action_list (GUPnPServiceProxy *proxy, const char *action, @@ -151,7 +153,15 @@ GList *out_types, GList **out_values); - +gboolean +gupnp_service_proxy_send_action_list_gi (GUPnPServiceProxy *proxy, + const char *action, + GList *in_names, + GList *in_values, + GList *out_names, + GList *out_types, + GList **out_values, + GError **error); GUPnPServiceProxyAction * gupnp_service_proxy_begin_action (GUPnPServiceProxy *proxy, const char *action, @@ -209,6 +219,22 @@ GList **out_values); gboolean +gupnp_service_proxy_end_action_list_gi + (GUPnPServiceProxy *proxy, + GUPnPServiceProxyAction *action, + GList *out_names, + GList *out_types, + GList **out_values, + GError **error); + +gboolean +gupnp_service_proxy_end_action_hash_gi + (GUPnPServiceProxy *proxy, + GUPnPServiceProxyAction *action, + GHashTable *hash, + GError **error); + +gboolean gupnp_service_proxy_end_action_hash (GUPnPServiceProxy *proxy, GUPnPServiceProxyAction *action, @@ -259,6 +285,7 @@ gboolean gupnp_service_proxy_get_subscribed (GUPnPServiceProxy *proxy); + G_END_DECLS #endif /* __GUPNP_SERVICE_PROXY_H__ */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gupnp-0.20.15/tools/gupnp-binding-tool new/gupnp-0.20.16/tools/gupnp-binding-tool --- old/gupnp-0.20.15/tools/gupnp-binding-tool 2015-03-30 19:49:17.000000000 +0200 +++ new/gupnp-0.20.16/tools/gupnp-binding-tool 2016-02-05 20:56:15.000000000 +0100 @@ -1,4 +1,4 @@ -#! /usr/bin/python +#! /usr/bin/env python # Copyright (C) 2008 OpenedHand Ltd # Copyright (C) 2008 Intel Corporation diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gupnp-0.20.15/vala/GUPnP-1.0.metadata new/gupnp-0.20.16/vala/GUPnP-1.0.metadata --- old/gupnp-0.20.15/vala/GUPnP-1.0.metadata 2015-08-01 13:34:17.000000000 +0200 +++ new/gupnp-0.20.16/vala/GUPnP-1.0.metadata 2016-02-05 23:02:54.000000000 +0100 @@ -30,9 +30,12 @@ .add_notify skip=false .begin_action skip=false .end_action_hash skip + .end_action_hash_gi skip .end_action_list skip + .end_action_list_gi skip .send_action_hash skip .send_action_list skip + .send_action_list_gi skip WhiteList .entries skip ControlError skip diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gupnp-0.20.15/vala/Makefile.am new/gupnp-0.20.16/vala/Makefile.am --- old/gupnp-0.20.15/vala/Makefile.am 2015-03-30 19:49:17.000000000 +0200 +++ new/gupnp-0.20.16/vala/Makefile.am 2016-02-05 23:09:52.000000000 +0100 @@ -16,6 +16,6 @@ vapidir = $(datadir)/vala/vapi vapi_DATA = gupnp-1.0.vapi $(srcdir)/gupnp-1.0.deps CLEANFILES = gupnp-1.0.vapi gupnp-1.0.stamp -EXTRA_DIST = gupnp-1.0.deps GUPnP-1.0.metadata gupnp-1.0-custom.vala +EXTRA_DIST = gupnp-1.0.deps GUPnP-1.0.metadata gupnp-1.0-custom.vala gupnp-1.0.vapi gupnp-1.0.stamp endif endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gupnp-0.20.15/vala/Makefile.in new/gupnp-0.20.16/vala/Makefile.in --- old/gupnp-0.20.15/vala/Makefile.in 2015-12-31 11:38:35.000000000 +0100 +++ new/gupnp-0.20.16/vala/Makefile.in 2016-02-08 23:10:15.000000000 +0100 @@ -324,7 +324,7 @@ @HAVE_INTROSPECTION_TRUE@@HAVE_VAPIGEN_TRUE@vapidir = $(datadir)/vala/vapi @HAVE_INTROSPECTION_TRUE@@HAVE_VAPIGEN_TRUE@vapi_DATA = gupnp-1.0.vapi $(srcdir)/gupnp-1.0.deps @HAVE_INTROSPECTION_TRUE@@HAVE_VAPIGEN_TRUE@CLEANFILES = gupnp-1.0.vapi gupnp-1.0.stamp -@HAVE_INTROSPECTION_TRUE@@HAVE_VAPIGEN_TRUE@EXTRA_DIST = gupnp-1.0.deps GUPnP-1.0.metadata gupnp-1.0-custom.vala +@HAVE_INTROSPECTION_TRUE@@HAVE_VAPIGEN_TRUE@EXTRA_DIST = gupnp-1.0.deps GUPnP-1.0.metadata gupnp-1.0-custom.vala gupnp-1.0.vapi gupnp-1.0.stamp all: all-am .SUFFIXES: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gupnp-0.20.15/vala/gupnp-1.0.stamp new/gupnp-0.20.16/vala/gupnp-1.0.stamp --- old/gupnp-0.20.15/vala/gupnp-1.0.stamp 1970-01-01 01:00:00.000000000 +0100 +++ new/gupnp-0.20.16/vala/gupnp-1.0.stamp 2016-02-08 23:11:08.000000000 +0100 @@ -0,0 +1 @@ +timestmap diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gupnp-0.20.15/vala/gupnp-1.0.vapi new/gupnp-0.20.16/vala/gupnp-1.0.vapi --- old/gupnp-0.20.15/vala/gupnp-1.0.vapi 1970-01-01 01:00:00.000000000 +0100 +++ new/gupnp-0.20.16/vala/gupnp-1.0.vapi 2016-02-08 23:11:08.000000000 +0100 @@ -0,0 +1,411 @@ +/* gupnp-1.0.vapi generated by vapigen, do not modify. */ + +[CCode (cprefix = "GUPnP", gir_namespace = "GUPnP", gir_version = "1.0", lower_case_cprefix = "gupnp_")] +namespace GUPnP { + [CCode (cheader_filename = "libgupnp/gupnp.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "gupnp_bin_base64_get_type ()")] + [Compact] + public class BinBase64 { + } + [CCode (cheader_filename = "libgupnp/gupnp.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "gupnp_bin_hex_get_type ()")] + [Compact] + public class BinHex { + } + [CCode (cheader_filename = "libgupnp/gupnp.h", type_id = "gupnp_context_get_type ()")] + public class Context : GSSDP.Client, GLib.Initable { + [CCode (has_construct_function = false)] + public Context (GLib.MainContext? main_context, string? iface, uint port) throws GLib.Error; + [Version (since = "0.20.11")] + public void add_server_handler (bool use_acl, string path, owned Soup.ServerCallback callback); + [Version (since = "0.20.11")] + public unowned GUPnP.Acl get_acl (); + [Version (since = "0.17.0")] + public unowned string get_default_language (); + [Version (deprecated = true, deprecated_since = "0.12.7")] + public unowned string get_host_ip (); + public uint get_port (); + public unowned Soup.Server get_server (); + [Version (since = "0.12.3")] + public unowned Soup.Session get_session (); + public uint get_subscription_timeout (); + public void host_path (string local_path, string server_path); + [Version (since = "0.13.3")] + public bool host_path_for_agent (string local_path, string server_path, GLib.Regex user_agent); + [Version (since = "0.20.11")] + public void remove_server_handler (string path); + [Version (since = "0.20.11")] + public void set_acl (GUPnP.Acl? acl); + [Version (since = "0.17.0")] + public void set_default_language (string language); + public void set_subscription_timeout (uint timeout); + public void unhost_path (string server_path); + [Version (since = "0.20.11")] + public GUPnP.Acl acl { get; set construct; } + [Version (since = "0.17.0")] + public string default_language { get; set construct; } + public uint port { get; construct; } + public Soup.Server server { get; } + public Soup.Session session { get; } + public uint subscription_timeout { get; construct; } + } + [CCode (cheader_filename = "libgupnp/gupnp.h", type_id = "gupnp_context_manager_get_type ()")] + public abstract class ContextManager : GLib.Object { + [CCode (has_construct_function = false)] + protected ContextManager (); + [Version (since = "0.17.2")] + public static GUPnP.ContextManager create (uint port); + [Version (since = "0.19.1")] + public uint get_port (); + public unowned GUPnP.WhiteList get_white_list (); + [Version (since = "0.13.0")] + public void manage_control_point (GUPnP.ControlPoint control_point); + [Version (since = "0.13.0")] + public void manage_root_device (GUPnP.RootDevice root_device); + [Version (since = "0.20.3")] + public void rescan_control_points (); + public uint port { get; construct; } + public GUPnP.WhiteList white_list { get; } + public signal void context_available (GUPnP.Context context); + public signal void context_unavailable (GUPnP.Context context); + } + [CCode (cheader_filename = "libgupnp/gupnp.h", type_id = "gupnp_control_point_get_type ()")] + public class ControlPoint : GSSDP.ResourceBrowser { + [CCode (has_construct_function = false)] + public ControlPoint (GUPnP.Context context, string target); + [CCode (has_construct_function = false)] + public ControlPoint.full (GUPnP.Context context, GUPnP.ResourceFactory factory, string target); + public unowned GUPnP.Context get_context (); + public unowned GUPnP.ResourceFactory get_resource_factory (); + public unowned GLib.List<GUPnP.DeviceProxy> list_device_proxies (); + public unowned GLib.List<GUPnP.ServiceProxy> list_service_proxies (); + public GUPnP.ResourceFactory resource_factory { get; construct; } + public virtual signal void device_proxy_available (GUPnP.DeviceProxy proxy); + public virtual signal void device_proxy_unavailable (GUPnP.DeviceProxy proxy); + public virtual signal void service_proxy_available (GUPnP.ServiceProxy proxy); + public virtual signal void service_proxy_unavailable (GUPnP.ServiceProxy proxy); + } + [CCode (cheader_filename = "libgupnp/gupnp.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "gupnp_date_get_type ()")] + [Compact] + public class Date { + } + [CCode (cheader_filename = "libgupnp/gupnp.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "gupnp_date_time_get_type ()")] + [Compact] + public class DateTime { + } + [CCode (cheader_filename = "libgupnp/gupnp.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "gupnp_date_time_tz_get_type ()")] + [Compact] + public class DateTimeTZ { + } + [CCode (cheader_filename = "libgupnp/gupnp.h", type_id = "gupnp_device_get_type ()")] + public class Device : GUPnP.DeviceInfo { + [CCode (has_construct_function = false)] + protected Device (); + [NoAccessorMethod] + public GUPnP.RootDevice root_device { owned get; construct; } + } + [CCode (cheader_filename = "libgupnp/gupnp.h", type_id = "gupnp_device_info_get_type ()")] + public abstract class DeviceInfo : GLib.Object { + [CCode (has_construct_function = false)] + protected DeviceInfo (); + public unowned GUPnP.Context get_context (); + [Version (since = "0.13.0")] + public string get_description_value (string element); + public GUPnP.DeviceInfo? get_device (string type); + public unowned string get_device_type (); + public string get_friendly_name (); + public string get_icon_url (string? requested_mime_type, int requested_depth, int requested_width, int requested_height, bool prefer_bigger, out string mime_type, out int depth, out int width, out int height); + public unowned string get_location (); + public string get_manufacturer (); + public string get_manufacturer_url (); + public string get_model_description (); + public string get_model_name (); + public string get_model_number (); + public string get_model_url (); + public string get_presentation_url (); + public unowned GUPnP.ResourceFactory get_resource_factory (); + public string get_serial_number (); + public GUPnP.ServiceInfo? get_service (string type); + public unowned string get_udn (); + public string get_upc (); + public unowned Soup.URI get_url_base (); + public GLib.List<string> list_device_types (); + public GLib.List<GUPnP.DeviceInfo> list_devices (); + [Version (since = "0.13.0")] + public GLib.List<string> list_dlna_capabilities (); + [Version (since = "0.20.4")] + public GLib.List<string> list_dlna_device_class_identifier (); + public GLib.List<string> list_service_types (); + public GLib.List<GUPnP.ServiceInfo> list_services (); + public GUPnP.Context context { get; construct; } + public string device_type { get; construct; } + public string location { get; construct; } + public GUPnP.ResourceFactory resource_factory { get; construct; } + public string udn { get; construct; } + public Soup.URI url_base { get; construct; } + } + [CCode (cheader_filename = "libgupnp/gupnp.h", type_id = "gupnp_device_proxy_get_type ()")] + public class DeviceProxy : GUPnP.DeviceInfo { + [CCode (has_construct_function = false)] + protected DeviceProxy (); + } + [CCode (cheader_filename = "libgupnp/gupnp.h", type_id = "gupnp_resource_factory_get_type ()")] + public class ResourceFactory : GLib.Object { + [CCode (has_construct_function = false)] + public ResourceFactory (); + public static unowned GUPnP.ResourceFactory get_default (); + public void register_resource_proxy_type (string upnp_type, GLib.Type type); + public void register_resource_type (string upnp_type, GLib.Type type); + public bool unregister_resource_proxy_type (string upnp_type); + public bool unregister_resource_type (string upnp_type); + } + [CCode (cheader_filename = "libgupnp/gupnp.h", type_id = "gupnp_root_device_get_type ()")] + public class RootDevice : GUPnP.Device { + [CCode (has_construct_function = false)] + public RootDevice (GUPnP.Context context, string description_path, string description_dir); + [CCode (has_construct_function = false)] + public RootDevice.full (GUPnP.Context context, GUPnP.ResourceFactory factory, GUPnP.XMLDoc description_doc, string description_path, string description_dir); + public bool get_available (); + public unowned string get_description_dir (); + public unowned string get_description_path (); + public unowned string get_relative_location (); + [Version (since = "0.19.2")] + public unowned GSSDP.ResourceGroup get_ssdp_resource_group (); + public void set_available (bool available); + public bool available { get; set; } + public string description_dir { get; construct; } + [Version (since = "0.13.0")] + public GUPnP.XMLDoc description_doc { construct; } + [Version (since = "0.13.0")] + public string description_path { get; construct; } + } + [CCode (cheader_filename = "libgupnp/gupnp.h", type_id = "gupnp_service_get_type ()")] + public class Service : GUPnP.ServiceInfo { + [CCode (has_construct_function = false)] + protected Service (); + public void freeze_notify (); + public void notify (...); + public void notify_value (string variable, GLib.Value value); + public void thaw_notify (); + [NoAccessorMethod] + public GUPnP.RootDevice root_device { owned get; construct; } + public virtual signal void action_invoked (GUPnP.ServiceAction action); + public signal void notify_failed (GLib.List<Soup.URI> callback_url, GLib.Error reason); + public virtual signal void query_variable (string variable, ref GLib.Value value); + } + [CCode (cheader_filename = "libgupnp/gupnp.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "gupnp_service_action_get_type ()")] + [Compact] + public class ServiceAction { + public void @get (...); + [Version (since = "0.17.0")] + public uint get_argument_count (); + [Version (since = "0.13.3")] + public GLib.Value? get_gvalue (string argument, GLib.Type type); + public GLib.List<string> get_locales (); + [Version (since = "0.13.0")] + public Soup.Message get_message (); + public unowned string get_name (); + public void get_value (string argument, ref GLib.Value value); + [Version (since = "0.13.3")] + public GLib.List<GLib.Value?> get_values (GLib.List<string> arg_names, GLib.List<GLib.Type?> arg_types); + public void @return (); + public void return_error (uint error_code, string error_description); + public void @set (...); + public void set_value (string argument, GLib.Value value); + [Version (since = "0.13.3")] + public void set_values (GLib.List<string> arg_names, GLib.List<GLib.Value?> arg_values); + } + [CCode (cheader_filename = "libgupnp/gupnp.h", type_id = "gupnp_service_info_get_type ()")] + public abstract class ServiceInfo : GLib.Object { + [CCode (has_construct_function = false)] + protected ServiceInfo (); + public unowned GUPnP.Context get_context (); + public string get_control_url (); + public string get_event_subscription_url (); + public string get_id (); + [Version (deprecated = true, deprecated_since = "0.20.15.")] + public GUPnP.ServiceIntrospection? get_introspection () throws GLib.Error; + public void get_introspection_async ([CCode (scope = "async")] GUPnP.ServiceIntrospectionCallback callback); + [Version (since = "0.20.9.")] + public void get_introspection_async_full ([CCode (delegate_target_pos = 2.1, scope = "async")] GUPnP.ServiceIntrospectionCallback callback, GLib.Cancellable? cancellable); + public unowned string get_location (); + public string get_scpd_url (); + public unowned string get_service_type (); + public unowned string get_udn (); + public unowned Soup.URI get_url_base (); + public GUPnP.Context context { get; construct; } + public string location { get; construct; } + public string service_type { get; construct; } + public string udn { get; construct; } + public Soup.URI url_base { get; construct; } + } + [CCode (cheader_filename = "libgupnp/gupnp.h", type_id = "gupnp_service_introspection_get_type ()")] + public class ServiceIntrospection : GLib.Object { + [CCode (has_construct_function = false)] + protected ServiceIntrospection (); + public unowned GUPnP.ServiceActionInfo? get_action (string action_name); + public unowned GUPnP.ServiceStateVariableInfo? get_state_variable (string variable_name); + public unowned GLib.List<string> list_action_names (); + public unowned GLib.List<GUPnP.ServiceActionInfo> list_actions (); + public unowned GLib.List<string> list_state_variable_names (); + public unowned GLib.List<GUPnP.ServiceStateVariableInfo> list_state_variables (); + } + [CCode (cheader_filename = "libgupnp/gupnp.h")] + public class ServiceProxy : GUPnP.ServiceInfo { + [CCode (has_construct_function = false)] + protected ServiceProxy (); + public bool add_notify (string variable, GLib.Type type, [CCode (scope = "async")] GUPnP.ServiceProxyNotifyCallback callback); + [Version (since = "0.20.12")] + public bool add_notify_full (string variable, GLib.Type type, owned GUPnP.ServiceProxyNotifyCallback callback); + [Version (since = "0.20.12")] + public bool add_raw_notify (owned GUPnP.ServiceProxyNotifyCallback callback); + public unowned GUPnP.ServiceProxyAction begin_action (string action, [CCode (delegate_target_pos = 2.5, scope = "async")] GUPnP.ServiceProxyActionCallback callback, ...); + [Version (since = "0.13.3")] + public unowned GUPnP.ServiceProxyAction begin_action_list (string action, GLib.List<string> in_names, GLib.List<GLib.Value?> in_values, [CCode (scope = "async")] GUPnP.ServiceProxyActionCallback callback); + public void cancel_action (GUPnP.ServiceProxyAction action); + public bool end_action (GUPnP.ServiceProxyAction action, ...) throws GLib.Error; + public bool end_action_hash (GUPnP.ServiceProxyAction action, [CCode (pos = -0.9)] GLib.HashTable<string,weak GLib.Value*> hash) throws GLib.Error; + public bool end_action_list (GUPnP.ServiceProxyAction action, [CCode (pos = -0.9)] GLib.List<string> out_names, [CCode (pos = -0.8)] GLib.List<GLib.Type?> out_types, [CCode (pos = -0.7)] out GLib.List<weak GLib.Value*> out_values) throws GLib.Error; + public bool get_subscribed (); + public bool remove_notify (string variable, GUPnP.ServiceProxyNotifyCallback callback); + public bool remove_raw_notify (GUPnP.ServiceProxyNotifyCallback callback); + public bool send_action (string action, ...) throws GLib.Error; + public bool send_action_hash (string action, [CCode (pos = -0.9)] GLib.HashTable<string,GLib.Value?> in_hash, [CCode (pos = -0.8)] GLib.HashTable<string,weak GLib.Value*> out_hash) throws GLib.Error; + public bool send_action_list (string action, [CCode (pos = -0.9)] GLib.List<string> in_names, [CCode (pos = -0.8)] GLib.List<weak GLib.Value?> in_values, [CCode (pos = -0.7)] GLib.List<string> out_names, [CCode (pos = -0.6)] GLib.List<GLib.Type?> out_types, [CCode (pos = -0.5)] out GLib.List<weak GLib.Value*> out_values) throws GLib.Error; + public void set_subscribed (bool subscribed); + public bool subscribed { get; set; } + public virtual signal void subscription_lost (GLib.Error reason); + } + [CCode (cheader_filename = "libgupnp/gupnp.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "gupnp_service_proxy_action_get_type ()")] + [Compact] + public class ServiceProxyAction { + } + [CCode (cheader_filename = "libgupnp/gupnp.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "gupnp_time_get_type ()")] + [Compact] + public class Time { + } + [CCode (cheader_filename = "libgupnp/gupnp.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "gupnp_time_tz_get_type ()")] + [Compact] + public class TimeTZ { + } + [CCode (cheader_filename = "libgupnp/gupnp.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "gupnp_uri_get_type ()")] + [Compact] + public class URI { + } + [CCode (cheader_filename = "libgupnp/gupnp.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "gupnp_uuid_get_type ()")] + [Compact] + public class UUID { + } + [CCode (cheader_filename = "libgupnp/gupnp.h", type_id = "gupnp_white_list_get_type ()")] + public class WhiteList : GLib.Object { + [CCode (has_construct_function = false)] + [Version (since = "0.20.5")] + public WhiteList (); + [Version (since = "0.20.5")] + public bool add_entry (string entry); + [Version (since = "0.20.8")] + public void add_entryv ([CCode (array_length = false, array_null_terminated = true)] string[] entries); + [Version (since = "0.20.5")] + public bool check_context (GUPnP.Context context); + [Version (since = "0.20.5")] + public void clear (); + [Version (since = "0.20.5")] + public bool get_enabled (); + [Version (since = "0.20.5")] + public unowned GLib.List<string> get_entries (); + [Version (since = "0.20.5")] + public bool is_empty (); + [Version (since = "0.20.5")] + public bool remove_entry (string entry); + [Version (since = "0.20.5")] + public void set_enabled (bool enable); + [Version (since = "0.20.5")] + public bool enabled { get; set construct; } + } + [CCode (cheader_filename = "libgupnp/gupnp.h", type_id = "gupnp_xml_doc_get_type ()")] + public class XMLDoc : GLib.Object { + public weak Xml.Doc doc; + [CCode (has_construct_function = false)] + [Version (since = "0.13.0")] + public XMLDoc (Xml.Doc xml_doc); + [CCode (has_construct_function = false)] + [Version (since = "0.13.0")] + public XMLDoc.from_path (string path) throws GLib.Error; + } + [CCode (cheader_filename = "libgupnp/gupnp.h", type_cname = "GUPnPAclInterface")] + public interface Acl : GLib.Object { + [Version (since = "0.20.11")] + public abstract bool can_sync (); + public abstract bool is_allowed (GUPnP.Device? device, GUPnP.Service? service, string path, string address, string? agent); + public abstract async bool is_allowed_async (GUPnP.Device? device, GUPnP.Service? service, string path, string address, string? agent, GLib.Cancellable? cancellable) throws GLib.Error; + } + [CCode (cheader_filename = "libgupnp/gupnp.h", has_type_id = false)] + public struct ServiceActionArgInfo { + public weak string name; + public GUPnP.ServiceActionArgDirection direction; + public weak string related_state_variable; + public bool retval; + } + [CCode (cheader_filename = "libgupnp/gupnp.h", has_type_id = false)] + public struct ServiceActionInfo { + public weak string name; + public weak GLib.List<GUPnP.ServiceActionArgInfo> arguments; + } + [CCode (cheader_filename = "libgupnp/gupnp.h", has_type_id = false)] + public struct ServiceStateVariableInfo { + public weak string name; + public bool send_events; + public bool is_numeric; + public GLib.Type type; + public GLib.Value default_value; + public GLib.Value minimum; + public GLib.Value maximum; + public GLib.Value step; + public weak GLib.List<string> allowed_values; + } + [CCode (cheader_filename = "libgupnp/gupnp.h", cprefix = "GUPNP_SERVICE_ACTION_ARG_DIRECTION_", has_type_id = false)] + public enum ServiceActionArgDirection { + IN, + OUT + } + [CCode (cheader_filename = "libgupnp/gupnp.h", cprefix = "GUPNP_CONTROL_ERROR_")] + public errordomain ControlError { + INVALID_ACTION, + INVALID_ARGS, + OUT_OF_SYNC, + ACTION_FAILED; + public static GLib.Quark quark (); + } + [CCode (cheader_filename = "libgupnp/gupnp.h", cprefix = "GUPNP_EVENTING_ERROR_")] + public errordomain EventingError { + SUBSCRIPTION_FAILED, + SUBSCRIPTION_LOST, + NOTIFY_FAILED; + public static GLib.Quark quark (); + } + [CCode (cheader_filename = "libgupnp/gupnp.h", cprefix = "GUPNP_SERVER_ERROR_")] + public errordomain ServerError { + INTERNAL_SERVER_ERROR, + NOT_FOUND, + NOT_IMPLEMENTED, + INVALID_RESPONSE, + INVALID_URL, + OTHER; + public static GLib.Quark quark (); + } + [CCode (cheader_filename = "libgupnp/gupnp.h", cprefix = "GUPNP_XML_ERROR_")] + public errordomain XMLError { + PARSE, + NO_NODE, + EMPTY_NODE, + INVALID_ATTRIBUTE, + OTHER; + public static GLib.Quark quark (); + } + [CCode (cheader_filename = "libgupnp/gupnp.h", instance_pos = 3.9)] + public delegate void ServiceIntrospectionCallback (GUPnP.ServiceInfo info, GUPnP.ServiceIntrospection introspection, GLib.Error error); + [CCode (cheader_filename = "libgupnp/gupnp.h", instance_pos = 2.9)] + public delegate void ServiceProxyActionCallback (GUPnP.ServiceProxy proxy, GUPnP.ServiceProxyAction action); + [CCode (cheader_filename = "libgupnp/gupnp.h", instance_pos = 3.9)] + public delegate void ServiceProxyNotifyCallback (GUPnP.ServiceProxy proxy, string variable, GLib.Value value); + [CCode (cheader_filename = "libgupnp/gupnp.h")] + public static string get_uuid (); +}