summaryrefslogtreecommitdiffstats
path: root/binding-bluetooth/lib_ofono_modem.c
diff options
context:
space:
mode:
Diffstat (limited to 'binding-bluetooth/lib_ofono_modem.c')
-rw-r--r--binding-bluetooth/lib_ofono_modem.c11664
1 files changed, 11664 insertions, 0 deletions
diff --git a/binding-bluetooth/lib_ofono_modem.c b/binding-bluetooth/lib_ofono_modem.c
new file mode 100644
index 0000000..e30eaa0
--- /dev/null
+++ b/binding-bluetooth/lib_ofono_modem.c
@@ -0,0 +1,11664 @@
+/*
+ * Generated by gdbus-codegen 2.48.1. DO NOT EDIT.
+ *
+ * The license of this code is the same as for the source it was derived from.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include "lib_ofono_modem.h"
+
+#include <string.h>
+#ifdef G_OS_UNIX
+# include <gio/gunixfdlist.h>
+#endif
+
+typedef struct
+{
+ GDBusArgInfo parent_struct;
+ gboolean use_gvariant;
+} _ExtendedGDBusArgInfo;
+
+typedef struct
+{
+ GDBusMethodInfo parent_struct;
+ const gchar *signal_name;
+ gboolean pass_fdlist;
+} _ExtendedGDBusMethodInfo;
+
+typedef struct
+{
+ GDBusSignalInfo parent_struct;
+ const gchar *signal_name;
+} _ExtendedGDBusSignalInfo;
+
+typedef struct
+{
+ GDBusPropertyInfo parent_struct;
+ const gchar *hyphen_name;
+ gboolean use_gvariant;
+} _ExtendedGDBusPropertyInfo;
+
+typedef struct
+{
+ GDBusInterfaceInfo parent_struct;
+ const gchar *hyphen_name;
+} _ExtendedGDBusInterfaceInfo;
+
+typedef struct
+{
+ const _ExtendedGDBusPropertyInfo *info;
+ guint prop_id;
+ GValue orig_value; /* the value before the change */
+} ChangedProperty;
+
+static void
+_changed_property_free (ChangedProperty *data)
+{
+ g_value_unset (&data->orig_value);
+ g_free (data);
+}
+
+static gboolean
+_g_strv_equal0 (gchar **a, gchar **b)
+{
+ gboolean ret = FALSE;
+ guint n;
+ if (a == NULL && b == NULL)
+ {
+ ret = TRUE;
+ goto out;
+ }
+ if (a == NULL || b == NULL)
+ goto out;
+ if (g_strv_length (a) != g_strv_length (b))
+ goto out;
+ for (n = 0; a[n] != NULL; n++)
+ if (g_strcmp0 (a[n], b[n]) != 0)
+ goto out;
+ ret = TRUE;
+out:
+ return ret;
+}
+
+static gboolean
+_g_variant_equal0 (GVariant *a, GVariant *b)
+{
+ gboolean ret = FALSE;
+ if (a == NULL && b == NULL)
+ {
+ ret = TRUE;
+ goto out;
+ }
+ if (a == NULL || b == NULL)
+ goto out;
+ ret = g_variant_equal (a, b);
+out:
+ return ret;
+}
+
+G_GNUC_UNUSED static gboolean
+_g_value_equal (const GValue *a, const GValue *b)
+{
+ gboolean ret = FALSE;
+ g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
+ switch (G_VALUE_TYPE (a))
+ {
+ case G_TYPE_BOOLEAN:
+ ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
+ break;
+ case G_TYPE_UCHAR:
+ ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
+ break;
+ case G_TYPE_INT:
+ ret = (g_value_get_int (a) == g_value_get_int (b));
+ break;
+ case G_TYPE_UINT:
+ ret = (g_value_get_uint (a) == g_value_get_uint (b));
+ break;
+ case G_TYPE_INT64:
+ ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
+ break;
+ case G_TYPE_UINT64:
+ ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
+ break;
+ case G_TYPE_DOUBLE:
+ {
+ /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
+ gdouble da = g_value_get_double (a);
+ gdouble db = g_value_get_double (b);
+ ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
+ }
+ break;
+ case G_TYPE_STRING:
+ ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
+ break;
+ case G_TYPE_VARIANT:
+ ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
+ break;
+ default:
+ if (G_VALUE_TYPE (a) == G_TYPE_STRV)
+ ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
+ else
+ g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
+ break;
+ }
+ return ret;
+}
+
+/* ------------------------------------------------------------------------
+ * Code for interface org.freedesktop.DBus.Introspectable
+ * ------------------------------------------------------------------------
+ */
+
+/**
+ * SECTION:OFONOMODEMOrgFreedesktopDBusIntrospectable
+ * @title: OFONOMODEMOrgFreedesktopDBusIntrospectable
+ * @short_description: Generated C code for the org.freedesktop.DBus.Introspectable D-Bus interface
+ *
+ * This section contains code for working with the <link linkend="gdbus-interface-org-freedesktop-DBus-Introspectable.top_of_page">org.freedesktop.DBus.Introspectable</link> D-Bus interface in C.
+ */
+
+/* ---- Introspection data for org.freedesktop.DBus.Introspectable ---- */
+
+static const _ExtendedGDBusArgInfo _ofono_modem_org_freedesktop_dbus_introspectable_method_info_introspect_OUT_ARG_xml =
+{
+ {
+ -1,
+ (gchar *) "xml",
+ (gchar *) "s",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo * const _ofono_modem_org_freedesktop_dbus_introspectable_method_info_introspect_OUT_ARG_pointers[] =
+{
+ &_ofono_modem_org_freedesktop_dbus_introspectable_method_info_introspect_OUT_ARG_xml,
+ NULL
+};
+
+static const _ExtendedGDBusMethodInfo _ofono_modem_org_freedesktop_dbus_introspectable_method_info_introspect =
+{
+ {
+ -1,
+ (gchar *) "Introspect",
+ NULL,
+ (GDBusArgInfo **) &_ofono_modem_org_freedesktop_dbus_introspectable_method_info_introspect_OUT_ARG_pointers,
+ NULL
+ },
+ "handle-introspect",
+ FALSE
+};
+
+static const _ExtendedGDBusMethodInfo * const _ofono_modem_org_freedesktop_dbus_introspectable_method_info_pointers[] =
+{
+ &_ofono_modem_org_freedesktop_dbus_introspectable_method_info_introspect,
+ NULL
+};
+
+static const _ExtendedGDBusInterfaceInfo _ofono_modem_org_freedesktop_dbus_introspectable_interface_info =
+{
+ {
+ -1,
+ (gchar *) "org.freedesktop.DBus.Introspectable",
+ (GDBusMethodInfo **) &_ofono_modem_org_freedesktop_dbus_introspectable_method_info_pointers,
+ NULL,
+ NULL,
+ NULL
+ },
+ "org-freedesktop-dbus-introspectable",
+};
+
+
+/**
+ * ofono_modem_org_freedesktop_dbus_introspectable_interface_info:
+ *
+ * Gets a machine-readable description of the <link linkend="gdbus-interface-org-freedesktop-DBus-Introspectable.top_of_page">org.freedesktop.DBus.Introspectable</link> D-Bus interface.
+ *
+ * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
+ */
+GDBusInterfaceInfo *
+ofono_modem_org_freedesktop_dbus_introspectable_interface_info (void)
+{
+ return (GDBusInterfaceInfo *) &_ofono_modem_org_freedesktop_dbus_introspectable_interface_info.parent_struct;
+}
+
+/**
+ * ofono_modem_org_freedesktop_dbus_introspectable_override_properties:
+ * @klass: The class structure for a #GObject<!-- -->-derived class.
+ * @property_id_begin: The property id to assign to the first overridden property.
+ *
+ * Overrides all #GObject properties in the #OFONOMODEMOrgFreedesktopDBusIntrospectable interface for a concrete class.
+ * The properties are overridden in the order they are defined.
+ *
+ * Returns: The last property id.
+ */
+guint
+ofono_modem_org_freedesktop_dbus_introspectable_override_properties (GObjectClass *klass, guint property_id_begin)
+{
+ return property_id_begin - 1;
+}
+
+
+
+/**
+ * OFONOMODEMOrgFreedesktopDBusIntrospectable:
+ *
+ * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-DBus-Introspectable.top_of_page">org.freedesktop.DBus.Introspectable</link>.
+ */
+
+/**
+ * OFONOMODEMOrgFreedesktopDBusIntrospectableIface:
+ * @parent_iface: The parent interface.
+ * @handle_introspect: Handler for the #OFONOMODEMOrgFreedesktopDBusIntrospectable::handle-introspect signal.
+ *
+ * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-DBus-Introspectable.top_of_page">org.freedesktop.DBus.Introspectable</link>.
+ */
+
+typedef OFONOMODEMOrgFreedesktopDBusIntrospectableIface OFONOMODEMOrgFreedesktopDBusIntrospectableInterface;
+G_DEFINE_INTERFACE (OFONOMODEMOrgFreedesktopDBusIntrospectable, ofono_modem_org_freedesktop_dbus_introspectable, G_TYPE_OBJECT);
+
+static void
+ofono_modem_org_freedesktop_dbus_introspectable_default_init (OFONOMODEMOrgFreedesktopDBusIntrospectableIface *iface)
+{
+ /* GObject signals for incoming D-Bus method calls: */
+ /**
+ * OFONOMODEMOrgFreedesktopDBusIntrospectable::handle-introspect:
+ * @object: A #OFONOMODEMOrgFreedesktopDBusIntrospectable.
+ * @invocation: A #GDBusMethodInvocation.
+ *
+ * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-DBus-Introspectable.Introspect">Introspect()</link> D-Bus method.
+ *
+ * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call ofono_modem_org_freedesktop_dbus_introspectable_complete_introspect() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
+ *
+ * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
+ */
+ g_signal_new ("handle-introspect",
+ G_TYPE_FROM_INTERFACE (iface),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (OFONOMODEMOrgFreedesktopDBusIntrospectableIface, handle_introspect),
+ g_signal_accumulator_true_handled,
+ NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_BOOLEAN,
+ 1,
+ G_TYPE_DBUS_METHOD_INVOCATION);
+
+}
+
+/**
+ * ofono_modem_org_freedesktop_dbus_introspectable_call_introspect:
+ * @proxy: A #OFONOMODEMOrgFreedesktopDBusIntrospectableProxy.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
+ * @user_data: User data to pass to @callback.
+ *
+ * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus-Introspectable.Introspect">Introspect()</link> D-Bus method on @proxy.
+ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
+ * You can then call ofono_modem_org_freedesktop_dbus_introspectable_call_introspect_finish() to get the result of the operation.
+ *
+ * See ofono_modem_org_freedesktop_dbus_introspectable_call_introspect_sync() for the synchronous, blocking version of this method.
+ */
+void
+ofono_modem_org_freedesktop_dbus_introspectable_call_introspect (
+ OFONOMODEMOrgFreedesktopDBusIntrospectable *proxy,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_dbus_proxy_call (G_DBUS_PROXY (proxy),
+ "Introspect",
+ g_variant_new ("()"),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ callback,
+ user_data);
+}
+
+/**
+ * ofono_modem_org_freedesktop_dbus_introspectable_call_introspect_finish:
+ * @proxy: A #OFONOMODEMOrgFreedesktopDBusIntrospectableProxy.
+ * @out_xml: (out): Return location for return parameter or %NULL to ignore.
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_modem_org_freedesktop_dbus_introspectable_call_introspect().
+ * @error: Return location for error or %NULL.
+ *
+ * Finishes an operation started with ofono_modem_org_freedesktop_dbus_introspectable_call_introspect().
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_freedesktop_dbus_introspectable_call_introspect_finish (
+ OFONOMODEMOrgFreedesktopDBusIntrospectable *proxy,
+ gchar **out_xml,
+ GAsyncResult *res,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "(s)",
+ out_xml);
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_freedesktop_dbus_introspectable_call_introspect_sync:
+ * @proxy: A #OFONOMODEMOrgFreedesktopDBusIntrospectableProxy.
+ * @out_xml: (out): Return location for return para }
/*
 * Copyright (C) 2015, 2016 "IoT.bzh"
 * Author: José Bollo <jose.bollo@iot.bzh>
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
#define _GNU_SOURCE

#include <stdint.h>
#include <stdlib.h>
#include <string.h>

/*
 * Test if 'c' is to be escaped or not.
 * Any character that is not in [-.0-9A-Z_a-z~]
 * must be escaped.
 * Note that space versus + is not managed here.
 */
static inline int should_escape(char c)
{
/* ASCII CODES OF UNESCAPED CHARS
car hx/oct  idx
'-' 2d/055  1
'.' 2e/056  2
'0' 30/060  3
...         ..
'9' 39/071  12
'A' 41/101  13
...         ..
'Z' 5a/132  38
'_' 5f/137  39
'a' 61/141  40
...         ..
'z' 7a/172  65
'~' 7e/176  66
*/
	/* [-.0-9A-Z_a-z~] */
	if (c <= 'Z') {
		/* [-.0-9A-Z] */
		if (c < '0') {
			/* [-.] */
			return c != '-' && c != '.';
		} else {
			/* [0-9A-Z] */
			return c < 'A' && c > '9';
		}
	} else {
		/* [_a-z~] */
		if (c <= 'z') {
			/* [_a-z] */
			return c < 'a' && c != '_';
		} else {
			/* [~] */
			return c != '~';
		}
	}
}

/*
 * returns the ASCII char for the hexadecimal
 * digit of the binary value 'f'.
 * returns 0 if f isn't in [0 ... 15].
 */
static inline char bin2hex(int f)
{
	if ((f & 15) != f)
		f = 0;
	else if (f < 10)
		f += '0';
	else
		f += 'A' - 10;
	return (char)f;
}

/*
 * returns the binary value for the hexadecimal
 * digit whose char is 'c'.
 * returns -1 if c isn't i n[0-9A-Fa-f]
 */
static inline int hex2bin(char c)
{
	/* [0-9A-Fa-f] */
	if (c <= 'F') {
		/* [0-9A-F] */
		if (c <= '9') {
			/* [0-9] */
			if (c >= '0') {
				return (int)(c - '0');
			}
		} else if (c >= 'A') {
			/* [A-F] */
			return (int)(c - ('A' - 10));
		}
	} else {
		/* [a-f] */
		if (c >= 'a' && c <= 'f') {
			return (int)(c - ('a' - 10));
		}
	}
	return -1;
}

/*
 * returns the length that will have the text 'itext' of length
 * 'ilen' when escaped. When 'ilen' == 0, strlen is used to
 * compute the size of 'itext'.
 */
static size_t escaped_length(const char *itext, size_t ilen)
{
	char c;
	size_t i, r;

	if (!ilen)
		ilen = strlen(itext);
	c = itext[i = r = 0];
	while (i < ilen) {
		r += c != ' ' && should_escape(c) ? 3 : 1;
		c = itext[++i];
	}
	return r;
}

/*
 * Escapes the text 'itext' of length 'ilen'.
 * When 'ilen' == 0, strlen is used to compute the size of 'itext'.
 * The escaped text is put in 'otext' of length 'olen'.
 * Returns the length of the escaped text (it can be greater than 'olen').
 * When 'olen' is greater than the needed length, an extra null terminator
 * is appened to the escaped string.
 */
static size_t escape_to(const char *itext, size_t ilen, char *otext, size_t olen)
{
	char c;
	size_t i, r;

	if (!ilen)
		ilen = strlen(itext);
	c = itext[i = r = 0];
	while (i < ilen) {
		if (c == ' ')
			c = '+';
		else if (should_escape(c)) {
			if (r < olen)
				otext[r] = '%';
			r++;
			if (r < olen)
				otext[r] = bin2hex((c >> 4) & 15);
			r++;
			c = bin2hex(c & 15);
		}
		if (r < olen)
			otext[r] = c;
		r++;
		c = itext[++i];
	}
	if (r < olen)
		otext[r] = 0;
	return r;
}

/*
 * returns the length of 'itext' of length 'ilen' that can be unescaped.
 * compute the size of 'itext' when 'ilen' == 0.
 */
static size_t unescapable_length(const char *itext, size_t ilen)
{
	char c;
	size_t i;

	c = itext[i = 0];
	while (i < ilen) {
		if (c != '%')
			i++;
		else {
			if (i + 3 > ilen
			 || hex2bin(itext[i + 1]) < 0
			 || hex2bin(itext[i + 2]) < 0)
				break;
			i += 3;
		}
		c = itext[i];
	}
	return i;
}

/*
 * returns the length that will have the text 'itext' of length
 * 'ilen' when escaped. When 'ilen' == 0, strlen is used to
 * compute the size of 'itext'.
 */
static size_t unescaped_length(const char *itext, size_t ilen)
{
	char c;
	size_t i, r;

	c = itext[i = r = 0];
	while (i < ilen) {
		i += (size_t)(1 + ((c == '%') << 1));
		r++;
		c = itext[i];
	}
	return r;
}

static size_t unescape_to(const char *itext, size_t ilen, char *otext, size_t olen)
{
	char c;
	size_t i, r;
	int h, l;

	ilen = unescapable_length(itext, ilen);
	c = itext[i = r = 0];
	while (i < ilen) {
		if (c != '%') {
			if (c == '+')
				c = ' ';
			i++;
		} else {
			if (i + 2 >= ilen)
				break;
			h = hex2bin(itext[i + 1]);
			l = hex2bin(itext[i + 2]);
			c = (char)((h << 4) | l);
			i += 3;
		}
		if (r < olen)
			otext[r] = c;
		r++;
		c = itext[i];
	}
	if (r < olen)
		otext[r] = 0;
	return r;
}

/* create an url */
char *escape_url(const char *base, const char *path, const char * const *args, size_t *length)
{
	int i;
	size_t lb, lp, lq, l, L;
	const char *null;
	char *result;

	/* ensure args */
	if (!args) {
		null = NULL;
		args = &null;
	}

	/* compute lengths */
	lb = base ? strlen(base) : 0;
	lp = path ? strlen(path) : 0;
	lq = 0;
	i = 0;
	while (args[i]) {
		lq += 1 + escaped_length(args[i], strlen(args[i]));
		i++;
		if (args[i])
			lq += 1 + escaped_length(args[i], strlen(args[i]));
		i++;
	}

	/* allocation */
	L = lb + lp + lq + 1;
	result = malloc(L + 1);
	if (result) {
		/* make the resulting url */
		l = lb;
		if (lb) {
			memcpy(result, base, lb);
			if (result[l - 1] != '/' && path && path[0] != '/')
				result[l++] = '/';
		}
		if (lp) {
			memcpy(result + l, path, lp);
			l += lp;
		}
		i = 0;
		while (args[i]) {
			if (i) {
				result[l++] = '&';
			} else if (base || path) {
				result[l] = memchr(result, '?', l) ? '&' : '?';
				l++;
			}
			l += escape_to(args[i], strlen(args[i]), result + l, L - l);
			i++;
			if (args[i]) {
				result[l++] = '=';
				l += escape_to(args[i], strlen(args[i]), result + l, L - l);
			}
			i++;
		}
		result[l] = 0;
		if (length)
			*length = l;
	}
	return result;
}

char *escape_args(const char * const *args, size_t *length)
{
	return escape_url(NULL, NULL, args, length);
}

const char *escape_str(const char* str, size_t *length)
{
	const char *a[2] = { str, NULL };
	return escape_args(a, length);
}

const char **unescape_args(const char *args)
{
	const char **r, **q;
	char c, *p;
	size_t j, z, l, n, lt;

	lt = n = 0;
	if (args[0]) {
		z = 0;
		do {
			l = strcspn(&args[z], "&=");
			j = 1 + unescaped_length(&args[z], l);
			lt += j;
			z += l;
			c = args[z++];
			if (c == '=') {
				l = strcspn(&args[z], "&");
				j = 1 + unescaped_length(&args[z], l);
				lt += j;
				z += l;
				c = args[z++];
			}
			n++;
		} while(c);
	}

	l = lt + (2 * n + 1) * sizeof(char *);
	r = malloc(l);
	if (!r)
		return r;

	q = r;
	p = (void*)&r[2 * n + 1];
	if (args[0]) {
		z = 0;
		do {
			q[0] = p;
			l = strcspn(&args[z], "&=");
			j = 1 + unescape_to(&args[z], l, p, lt);
			lt -= j;
			p += j;
			z += l;
			c = args[z++];
			if (c != '=')
				q[1] = NULL;
			else {
				q[1] = p;
				l = strcspn(&args[z], "&");
				j = 1 + unescape_to(&args[z], l, p, lt);
				lt -= j;
				p += j;
				z += l;
				c = args[z++];
			}
			q = &q[2];
		} while(c);
	}
	q[0] = NULL;
	return r;
}

char *escape(const char *text, size_t textlen, size_t *reslength)
{
	size_t len;
	char *result;

	len = 1 + escaped_length(text, textlen);
	result = malloc(len);
	if (result)
		escape_to(text, textlen, result, len);
	if (reslength)
		*reslength = len - 1;
	return result;
}

char *unescape(const char *text, size_t textlen, size_t *reslength)
{
	size_t len;
	char *result;

	len = 1 + unescaped_length(text, textlen);
	result = malloc(len);
	if (result)
		unescape_to(text, textlen, result, len);
	if (reslength)
		*reslength = len - 1;
	return result;
}

#if 0
#include <stdio.h>
int main(int ac, char **av)
{
	int i;
	char *x = escape_args((void*)++av, NULL);
	char *y = escape(x, strlen(x), NULL);
	char *z = unescape(y, strlen(y), NULL);
	const char **v = unescape_args(x);

	printf("%s\n%s\n%s\n", x, y, z);
	free(x);
	free(y);
	free(z);
	i = 0;
	while(v[i]) {
		printf("%s=%s / %s=%s\n", av[i], av[i+1], v[i], v[i+1]);
		i += 2;
	}
	free(v);
	return 0;
}
#endif
/* vim: set colorcolumn=80: */
o_property_changed_ARG_value,
+ NULL
+};
+
+static const _ExtendedGDBusSignalInfo _ofono_modem_org_ofono_modem_signal_info_property_changed =
+{
+ {
+ -1,
+ (gchar *) "PropertyChanged",
+ (GDBusArgInfo **) &_ofono_modem_org_ofono_modem_signal_info_property_changed_ARG_pointers,
+ NULL
+ },
+ "property-changed"
+};
+
+static const _ExtendedGDBusSignalInfo * const _ofono_modem_org_ofono_modem_signal_info_pointers[] =
+{
+ &_ofono_modem_org_ofono_modem_signal_info_property_changed,
+ NULL
+};
+
+static const _ExtendedGDBusInterfaceInfo _ofono_modem_org_ofono_modem_interface_info =
+{
+ {
+ -1,
+ (gchar *) "org.ofono.Modem",
+ (GDBusMethodInfo **) &_ofono_modem_org_ofono_modem_method_info_pointers,
+ (GDBusSignalInfo **) &_ofono_modem_org_ofono_modem_signal_info_pointers,
+ NULL,
+ NULL
+ },
+ "org-ofono-modem",
+};
+
+
+/**
+ * ofono_modem_org_ofono_modem_interface_info:
+ *
+ * Gets a machine-readable description of the <link linkend="gdbus-interface-org-ofono-Modem.top_of_page">org.ofono.Modem</link> D-Bus interface.
+ *
+ * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
+ */
+GDBusInterfaceInfo *
+ofono_modem_org_ofono_modem_interface_info (void)
+{
+ return (GDBusInterfaceInfo *) &_ofono_modem_org_ofono_modem_interface_info.parent_struct;
+}
+
+/**
+ * ofono_modem_org_ofono_modem_override_properties:
+ * @klass: The class structure for a #GObject<!-- -->-derived class.
+ * @property_id_begin: The property id to assign to the first overridden property.
+ *
+ * Overrides all #GObject properties in the #OFONOMODEMOrgOfonoModem interface for a concrete class.
+ * The properties are overridden in the order they are defined.
+ *
+ * Returns: The last property id.
+ */
+guint
+ofono_modem_org_ofono_modem_override_properties (GObjectClass *klass, guint property_id_begin)
+{
+ return property_id_begin - 1;
+}
+
+
+
+/**
+ * OFONOMODEMOrgOfonoModem:
+ *
+ * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-ofono-Modem.top_of_page">org.ofono.Modem</link>.
+ */
+
+/**
+ * OFONOMODEMOrgOfonoModemIface:
+ * @parent_iface: The parent interface.
+ * @handle_get_properties: Handler for the #OFONOMODEMOrgOfonoModem::handle-get-properties signal.
+ * @handle_set_property: Handler for the #OFONOMODEMOrgOfonoModem::handle-set-property signal.
+ * @property_changed: Handler for the #OFONOMODEMOrgOfonoModem::property-changed signal.
+ *
+ * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-ofono-Modem.top_of_page">org.ofono.Modem</link>.
+ */
+
+typedef OFONOMODEMOrgOfonoModemIface OFONOMODEMOrgOfonoModemInterface;
+G_DEFINE_INTERFACE (OFONOMODEMOrgOfonoModem, ofono_modem_org_ofono_modem, G_TYPE_OBJECT);
+
+static void
+ofono_modem_org_ofono_modem_default_init (OFONOMODEMOrgOfonoModemIface *iface)
+{
+ /* GObject signals for incoming D-Bus method calls: */
+ /**
+ * OFONOMODEMOrgOfonoModem::handle-get-properties:
+ * @object: A #OFONOMODEMOrgOfonoModem.
+ * @invocation: A #GDBusMethodInvocation.
+ *
+ * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-ofono-Modem.GetProperties">GetProperties()</link> D-Bus method.
+ *
+ * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call ofono_modem_org_ofono_modem_complete_get_properties() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
+ *
+ * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
+ */
+ g_signal_new ("handle-get-properties",
+ G_TYPE_FROM_INTERFACE (iface),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (OFONOMODEMOrgOfonoModemIface, handle_get_properties),
+ g_signal_accumulator_true_handled,
+ NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_BOOLEAN,
+ 1,
+ G_TYPE_DBUS_METHOD_INVOCATION);
+
+ /**
+ * OFONOMODEMOrgOfonoModem::handle-set-property:
+ * @object: A #OFONOMODEMOrgOfonoModem.
+ * @invocation: A #GDBusMethodInvocation.
+ * @arg_property: Argument passed by remote caller.
+ * @arg_value: Argument passed by remote caller.
+ *
+ * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-ofono-Modem.SetProperty">SetProperty()</link> D-Bus method.
+ *
+ * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call ofono_modem_org_ofono_modem_complete_set_property() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
+ *
+ * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
+ */
+ g_signal_new ("handle-set-property",
+ G_TYPE_FROM_INTERFACE (iface),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (OFONOMODEMOrgOfonoModemIface, handle_set_property),
+ g_signal_accumulator_true_handled,
+ NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_BOOLEAN,
+ 3,
+ G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING, G_TYPE_VARIANT);
+
+ /* GObject signals for received D-Bus signals: */
+ /**
+ * OFONOMODEMOrgOfonoModem::property-changed:
+ * @object: A #OFONOMODEMOrgOfonoModem.
+ * @arg_name: Argument.
+ * @arg_value: Argument.
+ *
+ * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-ofono-Modem.PropertyChanged">"PropertyChanged"</link> is received.
+ *
+ * On the service-side, this signal can be used with e.g. g_signal_emit_by_name() to make the object emit the D-Bus signal.
+ */
+ g_signal_new ("property-changed",
+ G_TYPE_FROM_INTERFACE (iface),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (OFONOMODEMOrgOfonoModemIface, property_changed),
+ NULL,
+ NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_NONE,
+ 2, G_TYPE_STRING, G_TYPE_VARIANT);
+
+}
+
+/**
+ * ofono_modem_org_ofono_modem_emit_property_changed:
+ * @object: A #OFONOMODEMOrgOfonoModem.
+ * @arg_name: Argument to pass with the signal.
+ * @arg_value: Argument to pass with the signal.
+ *
+ * Emits the <link linkend="gdbus-signal-org-ofono-Modem.PropertyChanged">"PropertyChanged"</link> D-Bus signal.
+ */
+void
+ofono_modem_org_ofono_modem_emit_property_changed (
+ OFONOMODEMOrgOfonoModem *object,
+ const gchar *arg_name,
+ GVariant *arg_value)
+{
+ g_signal_emit_by_name (object, "property-changed", arg_name, arg_value);
+}
+
+/**
+ * ofono_modem_org_ofono_modem_call_get_properties:
+ * @proxy: A #OFONOMODEMOrgOfonoModemProxy.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
+ * @user_data: User data to pass to @callback.
+ *
+ * Asynchronously invokes the <link linkend="gdbus-method-org-ofono-Modem.GetProperties">GetProperties()</link> D-Bus method on @proxy.
+ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
+ * You can then call ofono_modem_org_ofono_modem_call_get_properties_finish() to get the result of the operation.
+ *
+ * See ofono_modem_org_ofono_modem_call_get_properties_sync() for the synchronous, blocking version of this method.
+ */
+void
+ofono_modem_org_ofono_modem_call_get_properties (
+ OFONOMODEMOrgOfonoModem *proxy,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_dbus_proxy_call (G_DBUS_PROXY (proxy),
+ "GetProperties",
+ g_variant_new ("()"),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ callback,
+ user_data);
+}
+
+/**
+ * ofono_modem_org_ofono_modem_call_get_properties_finish:
+ * @proxy: A #OFONOMODEMOrgOfonoModemProxy.
+ * @out_properties: (out): Return location for return parameter or %NULL to ignore.
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_modem_org_ofono_modem_call_get_properties().
+ * @error: Return location for error or %NULL.
+ *
+ * Finishes an operation started with ofono_modem_org_ofono_modem_call_get_properties().
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_modem_call_get_properties_finish (
+ OFONOMODEMOrgOfonoModem *proxy,
+ GVariant **out_properties,
+ GAsyncResult *res,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "(@a{sv})",
+ out_properties);
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_modem_call_get_properties_sync:
+ * @proxy: A #OFONOMODEMOrgOfonoModemProxy.
+ * @out_properties: (out): Return location for return parameter or %NULL to ignore.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL.
+ *
+ * Synchronously invokes the <link linkend="gdbus-method-org-ofono-Modem.GetProperties">GetProperties()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ *
+ * See ofono_modem_org_ofono_modem_call_get_properties() for the asynchronous version of this method.
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_modem_call_get_properties_sync (
+ OFONOMODEMOrgOfonoModem *proxy,
+ GVariant **out_properties,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
+ "GetProperties",
+ g_variant_new ("()"),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "(@a{sv})",
+ out_properties);
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_modem_call_set_property:
+ * @proxy: A #OFONOMODEMOrgOfonoModemProxy.
+ * @arg_property: Argument to pass with the method invocation.
+ * @arg_value: Argument to pass with the method invocation.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
+ * @user_data: User data to pass to @callback.
+ *
+ * Asynchronously invokes the <link linkend="gdbus-method-org-ofono-Modem.SetProperty">SetProperty()</link> D-Bus method on @proxy.
+ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
+ * You can then call ofono_modem_org_ofono_modem_call_set_property_finish() to get the result of the operation.
+ *
+ * See ofono_modem_org_ofono_modem_call_set_property_sync() for the synchronous, blocking version of this method.
+ */
+void
+ofono_modem_org_ofono_modem_call_set_property (
+ OFONOMODEMOrgOfonoModem *proxy,
+ const gchar *arg_property,
+ GVariant *arg_value,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_dbus_proxy_call (G_DBUS_PROXY (proxy),
+ "SetProperty",
+ g_variant_new ("(s@v)",
+ arg_property,
+ arg_value),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ callback,
+ user_data);
+}
+
+/**
+ * ofono_modem_org_ofono_modem_call_set_property_finish:
+ * @proxy: A #OFONOMODEMOrgOfonoModemProxy.
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_modem_org_ofono_modem_call_set_property().
+ * @error: Return location for error or %NULL.
+ *
+ * Finishes an operation started with ofono_modem_org_ofono_modem_call_set_property().
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_modem_call_set_property_finish (
+ OFONOMODEMOrgOfonoModem *proxy,
+ GAsyncResult *res,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "()");
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_modem_call_set_property_sync:
+ * @proxy: A #OFONOMODEMOrgOfonoModemProxy.
+ * @arg_property: Argument to pass with the method invocation.
+ * @arg_value: Argument to pass with the method invocation.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL.
+ *
+ * Synchronously invokes the <link linkend="gdbus-method-org-ofono-Modem.SetProperty">SetProperty()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ *
+ * See ofono_modem_org_ofono_modem_call_set_property() for the asynchronous version of this method.
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_modem_call_set_property_sync (
+ OFONOMODEMOrgOfonoModem *proxy,
+ const gchar *arg_property,
+ GVariant *arg_value,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
+ "SetProperty",
+ g_variant_new ("(s@v)",
+ arg_property,
+ arg_value),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "()");
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_modem_complete_get_properties:
+ * @object: A #OFONOMODEMOrgOfonoModem.
+ * @invocation: (transfer full): A #GDBusMethodInvocation.
+ * @properties: Parameter to return.
+ *
+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-ofono-Modem.GetProperties">GetProperties()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ *
+ * This method will free @invocation, you cannot use it afterwards.
+ */
+void
+ofono_modem_org_ofono_modem_complete_get_properties (
+ OFONOMODEMOrgOfonoModem *object,
+ GDBusMethodInvocation *invocation,
+ GVariant *properties)
+{
+ g_dbus_method_invocation_return_value (invocation,
+ g_variant_new ("(@a{sv})",
+ properties));
+}
+
+/**
+ * ofono_modem_org_ofono_modem_complete_set_property:
+ * @object: A #OFONOMODEMOrgOfonoModem.
+ * @invocation: (transfer full): A #GDBusMethodInvocation.
+ *
+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-ofono-Modem.SetProperty">SetProperty()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ *
+ * This method will free @invocation, you cannot use it afterwards.
+ */
+void
+ofono_modem_org_ofono_modem_complete_set_property (
+ OFONOMODEMOrgOfonoModem *object,
+ GDBusMethodInvocation *invocation)
+{
+ g_dbus_method_invocation_return_value (invocation,
+ g_variant_new ("()"));
+}
+
+/* ------------------------------------------------------------------------ */
+
+/**
+ * OFONOMODEMOrgOfonoModemProxy:
+ *
+ * The #OFONOMODEMOrgOfonoModemProxy structure contains only private data and should only be accessed using the provided API.
+ */
+
+/**
+ * OFONOMODEMOrgOfonoModemProxyClass:
+ * @parent_class: The parent class.
+ *
+ * Class structure for #OFONOMODEMOrgOfonoModemProxy.
+ */
+
+struct _OFONOMODEMOrgOfonoModemProxyPrivate
+{
+ GData *qdata;
+};
+
+static void ofono_modem_org_ofono_modem_proxy_iface_init (OFONOMODEMOrgOfonoModemIface *iface);
+
+#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
+G_DEFINE_TYPE_WITH_CODE (OFONOMODEMOrgOfonoModemProxy, ofono_modem_org_ofono_modem_proxy, G_TYPE_DBUS_PROXY,
+ G_ADD_PRIVATE (OFONOMODEMOrgOfonoModemProxy)
+ G_IMPLEMENT_INTERFACE (OFONO_MODEM_TYPE_ORG_OFONO_MODEM, ofono_modem_org_ofono_modem_proxy_iface_init));
+
+#else
+G_DEFINE_TYPE_WITH_CODE (OFONOMODEMOrgOfonoModemProxy, ofono_modem_org_ofono_modem_proxy, G_TYPE_DBUS_PROXY,
+ G_IMPLEMENT_INTERFACE (OFONO_MODEM_TYPE_ORG_OFONO_MODEM, ofono_modem_org_ofono_modem_proxy_iface_init));
+
+#endif
+static void
+ofono_modem_org_ofono_modem_proxy_finalize (GObject *object)
+{
+ OFONOMODEMOrgOfonoModemProxy *proxy = OFONO_MODEM_ORG_OFONO_MODEM_PROXY (object);
+ g_datalist_clear (&proxy->priv->qdata);
+ G_OBJECT_CLASS (ofono_modem_org_ofono_modem_proxy_parent_class)->finalize (object);
+}
+
+static void
+ofono_modem_org_ofono_modem_proxy_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec G_GNUC_UNUSED)
+{
+}
+
+static void
+ofono_modem_org_ofono_modem_proxy_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec G_GNUC_UNUSED)
+{
+}
+
+static void
+ofono_modem_org_ofono_modem_proxy_g_signal (GDBusProxy *proxy,
+ const gchar *sender_name G_GNUC_UNUSED,
+ const gchar *signal_name,
+ GVariant *parameters)
+{
+ _ExtendedGDBusSignalInfo *info;
+ GVariantIter iter;
+ GVariant *child;
+ GValue *paramv;
+ guint num_params;
+ guint n;
+ guint signal_id;
+ info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_ofono_modem_org_ofono_modem_interface_info.parent_struct, signal_name);
+ if (info == NULL)
+ return;
+ num_params = g_variant_n_children (parameters);
+ paramv = g_new0 (GValue, num_params + 1);
+ g_value_init (&paramv[0], OFONO_MODEM_TYPE_ORG_OFONO_MODEM);
+ g_value_set_object (&paramv[0], proxy);
+ g_variant_iter_init (&iter, parameters);
+ n = 1;
+ while ((child = g_variant_iter_next_value (&iter)) != NULL)
+ {
+ _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
+ if (arg_info->use_gvariant)
+ {
+ g_value_init (&paramv[n], G_TYPE_VARIANT);
+ g_value_set_variant (&paramv[n], child);
+ n++;
+ }
+ else
+ g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
+ g_variant_unref (child);
+ }
+ signal_id = g_signal_lookup (info->signal_name, OFONO_MODEM_TYPE_ORG_OFONO_MODEM);
+ g_signal_emitv (paramv, signal_id, 0, NULL);
+ for (n = 0; n < num_params + 1; n++)
+ g_value_unset (&paramv[n]);
+ g_free (paramv);
+}
+
+static void
+ofono_modem_org_ofono_modem_proxy_g_properties_changed (GDBusProxy *_proxy,
+ GVariant *changed_properties,
+ const gchar *const *invalidated_properties)
+{
+ OFONOMODEMOrgOfonoModemProxy *proxy = OFONO_MODEM_ORG_OFONO_MODEM_PROXY (_proxy);
+ guint n;
+ const gchar *key;
+ GVariantIter *iter;
+ _ExtendedGDBusPropertyInfo *info;
+ g_variant_get (changed_properties, "a{sv}", &iter);
+ while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
+ {
+ info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_ofono_modem_org_ofono_modem_interface_info.parent_struct, key);
+ g_datalist_remove_data (&proxy->priv->qdata, key);
+ if (info != NULL)
+ g_object_notify (G_OBJECT (proxy), info->hyphen_name);
+ }
+ g_variant_iter_free (iter);
+ for (n = 0; invalidated_properties[n] != NULL; n++)
+ {
+ info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_ofono_modem_org_ofono_modem_interface_info.parent_struct, invalidated_properties[n]);
+ g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
+ if (info != NULL)
+ g_object_notify (G_OBJECT (proxy), info->hyphen_name);
+ }
+}
+
+static void
+ofono_modem_org_ofono_modem_proxy_init (OFONOMODEMOrgOfonoModemProxy *proxy)
+{
+#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
+ proxy->priv = ofono_modem_org_ofono_modem_proxy_get_instance_private (proxy);
+#else
+ proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, OFONO_MODEM_TYPE_ORG_OFONO_MODEM_PROXY, OFONOMODEMOrgOfonoModemProxyPrivate);
+#endif
+
+ g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), ofono_modem_org_ofono_modem_interface_info ());
+}
+
+static void
+ofono_modem_org_ofono_modem_proxy_class_init (OFONOMODEMOrgOfonoModemProxyClass *klass)
+{
+ GObjectClass *gobject_class;
+ GDBusProxyClass *proxy_class;
+
+ gobject_class = G_OBJECT_CLASS (klass);
+ gobject_class->finalize = ofono_modem_org_ofono_modem_proxy_finalize;
+ gobject_class->get_property = ofono_modem_org_ofono_modem_proxy_get_property;
+ gobject_class->set_property = ofono_modem_org_ofono_modem_proxy_set_property;
+
+ proxy_class = G_DBUS_PROXY_CLASS (klass);
+ proxy_class->g_signal = ofono_modem_org_ofono_modem_proxy_g_signal;
+ proxy_class->g_properties_changed = ofono_modem_org_ofono_modem_proxy_g_properties_changed;
+
+#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
+ g_type_class_add_private (klass, sizeof (OFONOMODEMOrgOfonoModemProxyPrivate));
+#endif
+}
+
+static void
+ofono_modem_org_ofono_modem_proxy_iface_init (OFONOMODEMOrgOfonoModemIface *iface)
+{
+}
+
+/**
+ * ofono_modem_org_ofono_modem_proxy_new:
+ * @connection: A #GDBusConnection.
+ * @flags: Flags from the #GDBusProxyFlags enumeration.
+ * @name: (allow-none): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
+ * @object_path: An object path.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
+ * @user_data: User data to pass to @callback.
+ *
+ * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-ofono-Modem.top_of_page">org.ofono.Modem</link>. See g_dbus_proxy_new() for more details.
+ *
+ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
+ * You can then call ofono_modem_org_ofono_modem_proxy_new_finish() to get the result of the operation.
+ *
+ * See ofono_modem_org_ofono_modem_proxy_new_sync() for the synchronous, blocking version of this constructor.
+ */
+void
+ofono_modem_org_ofono_modem_proxy_new (
+ GDBusConnection *connection,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_async_initable_new_async (OFONO_MODEM_TYPE_ORG_OFONO_MODEM_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.ofono.Modem", NULL);
+}
+
+/**
+ * ofono_modem_org_ofono_modem_proxy_new_finish:
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_modem_org_ofono_modem_proxy_new().
+ * @error: Return location for error or %NULL
+ *
+ * Finishes an operation started with ofono_modem_org_ofono_modem_proxy_new().
+ *
+ * Returns: (transfer full) (type OFONOMODEMOrgOfonoModemProxy): The constructed proxy object or %NULL if @error is set.
+ */
+OFONOMODEMOrgOfonoModem *
+ofono_modem_org_ofono_modem_proxy_new_finish (
+ GAsyncResult *res,
+ GError **error)
+{
+ GObject *ret;
+ GObject *source_object;
+ source_object = g_async_result_get_source_object (res);
+ ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
+ g_object_unref (source_object);
+ if (ret != NULL)
+ return OFONO_MODEM_ORG_OFONO_MODEM (ret);
+ else
+ return NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_modem_proxy_new_sync:
+ * @connection: A #GDBusConnection.
+ * @flags: Flags from the #GDBusProxyFlags enumeration.
+ * @name: (allow-none): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
+ * @object_path: An object path.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL
+ *
+ * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-ofono-Modem.top_of_page">org.ofono.Modem</link>. See g_dbus_proxy_new_sync() for more details.
+ *
+ * The calling thread is blocked until a reply is received.
+ *
+ * See ofono_modem_org_ofono_modem_proxy_new() for the asynchronous version of this constructor.
+ *
+ * Returns: (transfer full) (type OFONOMODEMOrgOfonoModemProxy): The constructed proxy object or %NULL if @error is set.
+ */
+OFONOMODEMOrgOfonoModem *
+ofono_modem_org_ofono_modem_proxy_new_sync (
+ GDBusConnection *connection,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GInitable *ret;
+ ret = g_initable_new (OFONO_MODEM_TYPE_ORG_OFONO_MODEM_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.ofono.Modem", NULL);
+ if (ret != NULL)
+ return OFONO_MODEM_ORG_OFONO_MODEM (ret);
+ else
+ return NULL;
+}
+
+
+/**
+ * ofono_modem_org_ofono_modem_proxy_new_for_bus:
+ * @bus_type: A #GBusType.
+ * @flags: Flags from the #GDBusProxyFlags enumeration.
+ * @name: A bus name (well-known or unique).
+ * @object_path: An object path.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
+ * @user_data: User data to pass to @callback.
+ *
+ * Like ofono_modem_org_ofono_modem_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
+ *
+ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
+ * You can then call ofono_modem_org_ofono_modem_proxy_new_for_bus_finish() to get the result of the operation.
+ *
+ * See ofono_modem_org_ofono_modem_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
+ */
+void
+ofono_modem_org_ofono_modem_proxy_new_for_bus (
+ GBusType bus_type,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_async_initable_new_async (OFONO_MODEM_TYPE_ORG_OFONO_MODEM_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.ofono.Modem", NULL);
+}
+
+/**
+ * ofono_modem_org_ofono_modem_proxy_new_for_bus_finish:
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_modem_org_ofono_modem_proxy_new_for_bus().
+ * @error: Return location for error or %NULL
+ *
+ * Finishes an operation started with ofono_modem_org_ofono_modem_proxy_new_for_bus().
+ *
+ * Returns: (transfer full) (type OFONOMODEMOrgOfonoModemProxy): The constructed proxy object or %NULL if @error is set.
+ */
+OFONOMODEMOrgOfonoModem *
+ofono_modem_org_ofono_modem_proxy_new_for_bus_finish (
+ GAsyncResult *res,
+ GError **error)
+{
+ GObject *ret;
+ GObject *source_object;
+ source_object = g_async_result_get_source_object (res);
+ ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
+ g_object_unref (source_object);
+ if (ret != NULL)
+ return OFONO_MODEM_ORG_OFONO_MODEM (ret);
+ else
+ return NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_modem_proxy_new_for_bus_sync:
+ * @bus_type: A #GBusType.
+ * @flags: Flags from the #GDBusProxyFlags enumeration.
+ * @name: A bus name (well-known or unique).
+ * @object_path: An object path.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL
+ *
+ * Like ofono_modem_org_ofono_modem_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
+ *
+ * The calling thread is blocked until a reply is received.
+ *
+ * See ofono_modem_org_ofono_modem_proxy_new_for_bus() for the asynchronous version of this constructor.
+ *
+ * Returns: (transfer full) (type OFONOMODEMOrgOfonoModemProxy): The constructed proxy object or %NULL if @error is set.
+ */
+OFONOMODEMOrgOfonoModem *
+ofono_modem_org_ofono_modem_proxy_new_for_bus_sync (
+ GBusType bus_type,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GInitable *ret;
+ ret = g_initable_new (OFONO_MODEM_TYPE_ORG_OFONO_MODEM_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.ofono.Modem", NULL);
+ if (ret != NULL)
+ return OFONO_MODEM_ORG_OFONO_MODEM (ret);
+ else
+ return NULL;
+}
+
+
+/* ------------------------------------------------------------------------ */
+
+/**
+ * OFONOMODEMOrgOfonoModemSkeleton:
+ *
+ * The #OFONOMODEMOrgOfonoModemSkeleton structure contains only private data and should only be accessed using the provided API.
+ */
+
+/**
+ * OFONOMODEMOrgOfonoModemSkeletonClass:
+ * @parent_class: The parent class.
+ *
+ * Class structure for #OFONOMODEMOrgOfonoModemSkeleton.
+ */
+
+struct _OFONOMODEMOrgOfonoModemSkeletonPrivate
+{
+ GValue *properties;
+ GList *changed_properties;
+ GSource *changed_properties_idle_source;
+ GMainContext *context;
+ GMutex lock;
+};
+
+static void
+_ofono_modem_org_ofono_modem_skeleton_handle_method_call (
+ GDBusConnection *connection G_GNUC_UNUSED,
+ const gchar *sender G_GNUC_UNUSED,
+ const gchar *object_path G_GNUC_UNUSED,
+ const gchar *interface_name,
+ const gchar *method_name,
+ GVariant *parameters,
+ GDBusMethodInvocation *invocation,
+ gpointer user_data)
+{
+ OFONOMODEMOrgOfonoModemSkeleton *skeleton = OFONO_MODEM_ORG_OFONO_MODEM_SKELETON (user_data);
+ _ExtendedGDBusMethodInfo *info;
+ GVariantIter iter;
+ GVariant *child;
+ GValue *paramv;
+ guint num_params;
+ guint num_extra;
+ guint n;
+ guint signal_id;
+ GValue return_value = G_VALUE_INIT;
+ info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
+ g_assert (info != NULL);
+ num_params = g_variant_n_children (parameters);
+ num_extra = info->pass_fdlist ? 3 : 2; paramv = g_new0 (GValue, num_params + num_extra);
+ n = 0;
+ g_value_init (&paramv[n], OFONO_MODEM_TYPE_ORG_OFONO_MODEM);
+ g_value_set_object (&paramv[n++], skeleton);
+ g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
+ g_value_set_object (&paramv[n++], invocation);
+ if (info->pass_fdlist)
+ {
+#ifdef G_OS_UNIX
+ g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
+ g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
+#else
+ g_assert_not_reached ();
+#endif
+ }
+ g_variant_iter_init (&iter, parameters);
+ while ((child = g_variant_iter_next_value (&iter)) != NULL)
+ {
+ _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
+ if (arg_info->use_gvariant)
+ {
+ g_value_init (&paramv[n], G_TYPE_VARIANT);
+ g_value_set_variant (&paramv[n], child);
+ n++;
+ }
+ else
+ g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
+ g_variant_unref (child);
+ }
+ signal_id = g_signal_lookup (info->signal_name, OFONO_MODEM_TYPE_ORG_OFONO_MODEM);
+ g_value_init (&return_value, G_TYPE_BOOLEAN);
+ g_signal_emitv (paramv, signal_id, 0, &return_value);
+ if (!g_value_get_boolean (&return_value))
+ g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD, "Method %s is not implemented on interface %s", method_name, interface_name);
+ g_value_unset (&return_value);
+ for (n = 0; n < num_params + num_extra; n++)
+ g_value_unset (&paramv[n]);
+ g_free (paramv);
+}
+
+static GVariant *
+_ofono_modem_org_ofono_modem_skeleton_handle_get_property (
+ GDBusConnection *connection G_GNUC_UNUSED,
+ const gchar *sender G_GNUC_UNUSED,
+ const gchar *object_path G_GNUC_UNUSED,
+ const gchar *interface_name G_GNUC_UNUSED,
+ const gchar *property_name,
+ GError **error,
+ gpointer user_data)
+{
+ OFONOMODEMOrgOfonoModemSkeleton *skeleton = OFONO_MODEM_ORG_OFONO_MODEM_SKELETON (user_data);
+ GValue value = G_VALUE_INIT;
+ GParamSpec *pspec;
+ _ExtendedGDBusPropertyInfo *info;
+ GVariant *ret;
+ ret = NULL;
+ info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_ofono_modem_org_ofono_modem_interface_info.parent_struct, property_name);
+ g_assert (info != NULL);
+ pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
+ if (pspec == NULL)
+ {
+ g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
+ }
+ else
+ {
+ g_value_init (&value, pspec->value_type);
+ g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
+ ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
+ g_value_unset (&value);
+ }
+ return ret;
+}
+
+static gboolean
+_ofono_modem_org_ofono_modem_skeleton_handle_set_property (
+ GDBusConnection *connection G_GNUC_UNUSED,
+ const gchar *sender G_GNUC_UNUSED,
+ const gchar *object_path G_GNUC_UNUSED,
+ const gchar *interface_name G_GNUC_UNUSED,
+ const gchar *property_name,
+ GVariant *variant,
+ GError **error,
+ gpointer user_data)
+{
+ OFONOMODEMOrgOfonoModemSkeleton *skeleton = OFONO_MODEM_ORG_OFONO_MODEM_SKELETON (user_data);
+ GValue value = G_VALUE_INIT;
+ GParamSpec *pspec;
+ _ExtendedGDBusPropertyInfo *info;
+ gboolean ret;
+ ret = FALSE;
+ info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_ofono_modem_org_ofono_modem_interface_info.parent_struct, property_name);
+ g_assert (info != NULL);
+ pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
+ if (pspec == NULL)
+ {
+ g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
+ }
+ else
+ {
+ if (info->use_gvariant)
+ g_value_set_variant (&value, variant);
+ else
+ g_dbus_gvariant_to_gvalue (variant, &value);
+ g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
+ g_value_unset (&value);
+ ret = TRUE;
+ }
+ return ret;
+}
+
+static const GDBusInterfaceVTable _ofono_modem_org_ofono_modem_skeleton_vtable =
+{
+ _ofono_modem_org_ofono_modem_skeleton_handle_method_call,
+ _ofono_modem_org_ofono_modem_skeleton_handle_get_property,
+ _ofono_modem_org_ofono_modem_skeleton_handle_set_property,
+ {NULL}
+};
+
+static GDBusInterfaceInfo *
+ofono_modem_org_ofono_modem_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
+{
+ return ofono_modem_org_ofono_modem_interface_info ();
+}
+
+static GDBusInterfaceVTable *
+ofono_modem_org_ofono_modem_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
+{
+ return (GDBusInterfaceVTable *) &_ofono_modem_org_ofono_modem_skeleton_vtable;
+}
+
+static GVariant *
+ofono_modem_org_ofono_modem_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
+{
+ OFONOMODEMOrgOfonoModemSkeleton *skeleton = OFONO_MODEM_ORG_OFONO_MODEM_SKELETON (_skeleton);
+
+ GVariantBuilder builder;
+ guint n;
+ g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}"));
+ if (_ofono_modem_org_ofono_modem_interface_info.parent_struct.properties == NULL)
+ goto out;
+ for (n = 0; _ofono_modem_org_ofono_modem_interface_info.parent_struct.properties[n] != NULL; n++)
+ {
+ GDBusPropertyInfo *info = _ofono_modem_org_ofono_modem_interface_info.parent_struct.properties[n];
+ if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
+ {
+ GVariant *value;
+ value = _ofono_modem_org_ofono_modem_skeleton_handle_get_property (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)), NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.ofono.Modem", info->name, NULL, skeleton);
+ if (value != NULL)
+ {
+ g_variant_take_ref (value);
+ g_variant_builder_add (&builder, "{sv}", info->name, value);
+ g_variant_unref (value);
+ }
+ }
+ }
+out:
+ return g_variant_builder_end (&builder);
+}
+
+static void
+ofono_modem_org_ofono_modem_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton)
+{
+}
+
+static void
+_ofono_modem_org_ofono_modem_on_signal_property_changed (
+ OFONOMODEMOrgOfonoModem *object,
+ const gchar *arg_name,
+ GVariant *arg_value)
+{
+ OFONOMODEMOrgOfonoModemSkeleton *skeleton = OFONO_MODEM_ORG_OFONO_MODEM_SKELETON (object);
+
+ GList *connections, *l;
+ GVariant *signal_variant;
+ connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
+
+ signal_variant = g_variant_ref_sink (g_variant_new ("(s@v)",
+ arg_name,
+ arg_value));
+ for (l = connections; l != NULL; l = l->next)
+ {
+ GDBusConnection *connection = l->data;
+ g_dbus_connection_emit_signal (connection,
+ NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.ofono.Modem", "PropertyChanged",
+ signal_variant, NULL);
+ }
+ g_variant_unref (signal_variant);
+ g_list_free_full (connections, g_object_unref);
+}
+
+static void ofono_modem_org_ofono_modem_skeleton_iface_init (OFONOMODEMOrgOfonoModemIface *iface);
+#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
+G_DEFINE_TYPE_WITH_CODE (OFONOMODEMOrgOfonoModemSkeleton, ofono_modem_org_ofono_modem_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
+ G_ADD_PRIVATE (OFONOMODEMOrgOfonoModemSkeleton)
+ G_IMPLEMENT_INTERFACE (OFONO_MODEM_TYPE_ORG_OFONO_MODEM, ofono_modem_org_ofono_modem_skeleton_iface_init));
+
+#else
+G_DEFINE_TYPE_WITH_CODE (OFONOMODEMOrgOfonoModemSkeleton, ofono_modem_org_ofono_modem_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
+ G_IMPLEMENT_INTERFACE (OFONO_MODEM_TYPE_ORG_OFONO_MODEM, ofono_modem_org_ofono_modem_skeleton_iface_init));
+
+#endif
+static void
+ofono_modem_org_ofono_modem_skeleton_finalize (GObject *object)
+{
+ OFONOMODEMOrgOfonoModemSkeleton *skeleton = OFONO_MODEM_ORG_OFONO_MODEM_SKELETON (object);
+ g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
+ if (skeleton->priv->changed_properties_idle_source != NULL)
+ g_source_destroy (skeleton->priv->changed_properties_idle_source);
+ g_main_context_unref (skeleton->priv->context);
+ g_mutex_clear (&skeleton->priv->lock);
+ G_OBJECT_CLASS (ofono_modem_org_ofono_modem_skeleton_parent_class)->finalize (object);
+}
+
+static void
+ofono_modem_org_ofono_modem_skeleton_init (OFONOMODEMOrgOfonoModemSkeleton *skeleton)
+{
+#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
+ skeleton->priv = ofono_modem_org_ofono_modem_skeleton_get_instance_private (skeleton);
+#else
+ skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, OFONO_MODEM_TYPE_ORG_OFONO_MODEM_SKELETON, OFONOMODEMOrgOfonoModemSkeletonPrivate);
+#endif
+
+ g_mutex_init (&skeleton->priv->lock);
+ skeleton->priv->context = g_main_context_ref_thread_default ();
+}
+
+static void
+ofono_modem_org_ofono_modem_skeleton_class_init (OFONOMODEMOrgOfonoModemSkeletonClass *klass)
+{
+ GObjectClass *gobject_class;
+ GDBusInterfaceSkeletonClass *skeleton_class;
+
+ gobject_class = G_OBJECT_CLASS (klass);
+ gobject_class->finalize = ofono_modem_org_ofono_modem_skeleton_finalize;
+
+ skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
+ skeleton_class->get_info = ofono_modem_org_ofono_modem_skeleton_dbus_interface_get_info;
+ skeleton_class->get_properties = ofono_modem_org_ofono_modem_skeleton_dbus_interface_get_properties;
+ skeleton_class->flush = ofono_modem_org_ofono_modem_skeleton_dbus_interface_flush;
+ skeleton_class->get_vtable = ofono_modem_org_ofono_modem_skeleton_dbus_interface_get_vtable;
+
+#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
+ g_type_class_add_private (klass, sizeof (OFONOMODEMOrgOfonoModemSkeletonPrivate));
+#endif
+}
+
+static void
+ofono_modem_org_ofono_modem_skeleton_iface_init (OFONOMODEMOrgOfonoModemIface *iface)
+{
+ iface->property_changed = _ofono_modem_org_ofono_modem_on_signal_property_changed;
+}
+
+/**
+ * ofono_modem_org_ofono_modem_skeleton_new:
+ *
+ * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-ofono-Modem.top_of_page">org.ofono.Modem</link>.
+ *
+ * Returns: (transfer full) (type OFONOMODEMOrgOfonoModemSkeleton): The skeleton object.
+ */
+OFONOMODEMOrgOfonoModem *
+ofono_modem_org_ofono_modem_skeleton_new (void)
+{
+ return OFONO_MODEM_ORG_OFONO_MODEM (g_object_new (OFONO_MODEM_TYPE_ORG_OFONO_MODEM_SKELETON, NULL));
+}
+
+/* ------------------------------------------------------------------------
+ * Code for interface org.ofono.NetworkTime
+ * ------------------------------------------------------------------------
+ */
+
+/**
+ * SECTION:OFONOMODEMOrgOfonoNetworkTime
+ * @title: OFONOMODEMOrgOfonoNetworkTime
+ * @short_description: Generated C code for the org.ofono.NetworkTime D-Bus interface
+ *
+ * This section contains code for working with the <link linkend="gdbus-interface-org-ofono-NetworkTime.top_of_page">org.ofono.NetworkTime</link> D-Bus interface in C.
+ */
+
+/* ---- Introspection data for org.ofono.NetworkTime ---- */
+
+static const _ExtendedGDBusArgInfo _ofono_modem_org_ofono_network_time_method_info_get_network_time_OUT_ARG_time =
+{
+ {
+ -1,
+ (gchar *) "time",
+ (gchar *) "a{sv}",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo * const _ofono_modem_org_ofono_network_time_method_info_get_network_time_OUT_ARG_pointers[] =
+{
+ &_ofono_modem_org_ofono_network_time_method_info_get_network_time_OUT_ARG_time,
+ NULL
+};
+
+static const _ExtendedGDBusMethodInfo _ofono_modem_org_ofono_network_time_method_info_get_network_time =
+{
+ {
+ -1,
+ (gchar *) "GetNetworkTime",
+ NULL,
+ (GDBusArgInfo **) &_ofono_modem_org_ofono_network_time_method_info_get_network_time_OUT_ARG_pointers,
+ NULL
+ },
+ "handle-get-network-time",
+ FALSE
+};
+
+static const _ExtendedGDBusMethodInfo * const _ofono_modem_org_ofono_network_time_method_info_pointers[] =
+{
+ &_ofono_modem_org_ofono_network_time_method_info_get_network_time,
+ NULL
+};
+
+static const _ExtendedGDBusArgInfo _ofono_modem_org_ofono_network_time_signal_info_network_time_changed_ARG_time =
+{
+ {
+ -1,
+ (gchar *) "time",
+ (gchar *) "a{sv}",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo * const _ofono_modem_org_ofono_network_time_signal_info_network_time_changed_ARG_pointers[] =
+{
+ &_ofono_modem_org_ofono_network_time_signal_info_network_time_changed_ARG_time,
+ NULL
+};
+
+static const _ExtendedGDBusSignalInfo _ofono_modem_org_ofono_network_time_signal_info_network_time_changed =
+{
+ {
+ -1,
+ (gchar *) "NetworkTimeChanged",
+ (GDBusArgInfo **) &_ofono_modem_org_ofono_network_time_signal_info_network_time_changed_ARG_pointers,
+ NULL
+ },
+ "network-time-changed"
+};
+
+static const _ExtendedGDBusSignalInfo * const _ofono_modem_org_ofono_network_time_signal_info_pointers[] =
+{
+ &_ofono_modem_org_ofono_network_time_signal_info_network_time_changed,
+ NULL
+};
+
+static const _ExtendedGDBusInterfaceInfo _ofono_modem_org_ofono_network_time_interface_info =
+{
+ {
+ -1,
+ (gchar *) "org.ofono.NetworkTime",
+ (GDBusMethodInfo **) &_ofono_modem_org_ofono_network_time_method_info_pointers,
+ (GDBusSignalInfo **) &_ofono_modem_org_ofono_network_time_signal_info_pointers,
+ NULL,
+ NULL
+ },
+ "org-ofono-network-time",
+};
+
+
+/**
+ * ofono_modem_org_ofono_network_time_interface_info:
+ *
+ * Gets a machine-readable description of the <link linkend="gdbus-interface-org-ofono-NetworkTime.top_of_page">org.ofono.NetworkTime</link> D-Bus interface.
+ *
+ * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
+ */
+GDBusInterfaceInfo *
+ofono_modem_org_ofono_network_time_interface_info (void)
+{
+ return (GDBusInterfaceInfo *) &_ofono_modem_org_ofono_network_time_interface_info.parent_struct;
+}
+
+/**
+ * ofono_modem_org_ofono_network_time_override_properties:
+ * @klass: The class structure for a #GObject<!-- -->-derived class.
+ * @property_id_begin: The property id to assign to the first overridden property.
+ *
+ * Overrides all #GObject properties in the #OFONOMODEMOrgOfonoNetworkTime interface for a concrete class.
+ * The properties are overridden in the order they are defined.
+ *
+ * Returns: The last property id.
+ */
+guint
+ofono_modem_org_ofono_network_time_override_properties (GObjectClass *klass, guint property_id_begin)
+{
+ return property_id_begin - 1;
+}
+
+
+
+/**
+ * OFONOMODEMOrgOfonoNetworkTime:
+ *
+ * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-ofono-NetworkTime.top_of_page">org.ofono.NetworkTime</link>.
+ */
+
+/**
+ * OFONOMODEMOrgOfonoNetworkTimeIface:
+ * @parent_iface: The parent interface.
+ * @handle_get_network_time: Handler for the #OFONOMODEMOrgOfonoNetworkTime::handle-get-network-time signal.
+ * @network_time_changed: Handler for the #OFONOMODEMOrgOfonoNetworkTime::network-time-changed signal.
+ *
+ * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-ofono-NetworkTime.top_of_page">org.ofono.NetworkTime</link>.
+ */
+
+typedef OFONOMODEMOrgOfonoNetworkTimeIface OFONOMODEMOrgOfonoNetworkTimeInterface;
+G_DEFINE_INTERFACE (OFONOMODEMOrgOfonoNetworkTime, ofono_modem_org_ofono_network_time, G_TYPE_OBJECT);
+
+static void
+ofono_modem_org_ofono_network_time_default_init (OFONOMODEMOrgOfonoNetworkTimeIface *iface)
+{
+ /* GObject signals for incoming D-Bus method calls: */
+ /**
+ * OFONOMODEMOrgOfonoNetworkTime::handle-get-network-time:
+ * @object: A #OFONOMODEMOrgOfonoNetworkTime.
+ * @invocation: A #GDBusMethodInvocation.
+ *
+ * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-ofono-NetworkTime.GetNetworkTime">GetNetworkTime()</link> D-Bus method.
+ *
+ * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call ofono_modem_org_ofono_network_time_complete_get_network_time() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
+ *
+ * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
+ */
+ g_signal_new ("handle-get-network-time",
+ G_TYPE_FROM_INTERFACE (iface),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (OFONOMODEMOrgOfonoNetworkTimeIface, handle_get_network_time),
+ g_signal_accumulator_true_handled,
+ NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_BOOLEAN,
+ 1,
+ G_TYPE_DBUS_METHOD_INVOCATION);
+
+ /* GObject signals for received D-Bus signals: */
+ /**
+ * OFONOMODEMOrgOfonoNetworkTime::network-time-changed:
+ * @object: A #OFONOMODEMOrgOfonoNetworkTime.
+ * @arg_time: Argument.
+ *
+ * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-ofono-NetworkTime.NetworkTimeChanged">"NetworkTimeChanged"</link> is received.
+ *
+ * On the service-side, this signal can be used with e.g. g_signal_emit_by_name() to make the object emit the D-Bus signal.
+ */
+ g_signal_new ("network-time-changed",
+ G_TYPE_FROM_INTERFACE (iface),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (OFONOMODEMOrgOfonoNetworkTimeIface, network_time_changed),
+ NULL,
+ NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_NONE,
+ 1, G_TYPE_VARIANT);
+
+}
+
+/**
+ * ofono_modem_org_ofono_network_time_emit_network_time_changed:
+ * @object: A #OFONOMODEMOrgOfonoNetworkTime.
+ * @arg_time: Argument to pass with the signal.
+ *
+ * Emits the <link linkend="gdbus-signal-org-ofono-NetworkTime.NetworkTimeChanged">"NetworkTimeChanged"</link> D-Bus signal.
+ */
+void
+ofono_modem_org_ofono_network_time_emit_network_time_changed (
+ OFONOMODEMOrgOfonoNetworkTime *object,
+ GVariant *arg_time)
+{
+ g_signal_emit_by_name (object, "network-time-changed", arg_time);
+}
+
+/**
+ * ofono_modem_org_ofono_network_time_call_get_network_time:
+ * @proxy: A #OFONOMODEMOrgOfonoNetworkTimeProxy.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
+ * @user_data: User data to pass to @callback.
+ *
+ * Asynchronously invokes the <link linkend="gdbus-method-org-ofono-NetworkTime.GetNetworkTime">GetNetworkTime()</link> D-Bus method on @proxy.
+ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
+ * You can then call ofono_modem_org_ofono_network_time_call_get_network_time_finish() to get the result of the operation.
+ *
+ * See ofono_modem_org_ofono_network_time_call_get_network_time_sync() for the synchronous, blocking version of this method.
+ */
+void
+ofono_modem_org_ofono_network_time_call_get_network_time (
+ OFONOMODEMOrgOfonoNetworkTime *proxy,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_dbus_proxy_call (G_DBUS_PROXY (proxy),
+ "GetNetworkTime",
+ g_variant_new ("()"),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ callback,
+ user_data);
+}
+
+/**
+ * ofono_modem_org_ofono_network_time_call_get_network_time_finish:
+ * @proxy: A #OFONOMODEMOrgOfonoNetworkTimeProxy.
+ * @out_time: (out): Return location for return parameter or %NULL to ignore.
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_modem_org_ofono_network_time_call_get_network_time().
+ * @error: Return location for error or %NULL.
+ *
+ * Finishes an operation started with ofono_modem_org_ofono_network_time_call_get_network_time().
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_network_time_call_get_network_time_finish (
+ OFONOMODEMOrgOfonoNetworkTime *proxy,
+ GVariant **out_time,
+ GAsyncResult *res,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "(@a{sv})",
+ out_time);
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_network_time_call_get_network_time_sync:
+ * @proxy: A #OFONOMODEMOrgOfonoNetworkTimeProxy.
+ * @out_time: (out): Return location for return parameter or %NULL to ignore.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL.
+ *
+ * Synchronously invokes the <link linkend="gdbus-method-org-ofono-NetworkTime.GetNetworkTime">GetNetworkTime()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ *
+ * See ofono_modem_org_ofono_network_time_call_get_network_time() for the asynchronous version of this method.
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_network_time_call_get_network_time_sync (
+ OFONOMODEMOrgOfonoNetworkTime *proxy,
+ GVariant **out_time,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
+ "GetNetworkTime",
+ g_variant_new ("()"),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "(@a{sv})",
+ out_time);
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_network_time_complete_get_network_time:
+ * @object: A #OFONOMODEMOrgOfonoNetworkTime.
+ * @invocation: (transfer full): A #GDBusMethodInvocation.
+ * @time: Parameter to return.
+ *
+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-ofono-NetworkTime.GetNetworkTime">GetNetworkTime()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ *
+ * This method will free @invocation, you cannot use it afterwards.
+ */
+void
+ofono_modem_org_ofono_network_time_complete_get_network_time (
+ OFONOMODEMOrgOfonoNetworkTime *object,
+ GDBusMethodInvocation *invocation,
+ GVariant *time)
+{
+ g_dbus_method_invocation_return_value (invocation,
+ g_variant_new ("(@a{sv})",
+ time));
+}
+
+/* ------------------------------------------------------------------------ */
+
+/**
+ * OFONOMODEMOrgOfonoNetworkTimeProxy:
+ *
+ * The #OFONOMODEMOrgOfonoNetworkTimeProxy structure contains only private data and should only be accessed using the provided API.
+ */
+
+/**
+ * OFONOMODEMOrgOfonoNetworkTimeProxyClass:
+ * @parent_class: The parent class.
+ *
+ * Class structure for #OFONOMODEMOrgOfonoNetworkTimeProxy.
+ */
+
+struct _OFONOMODEMOrgOfonoNetworkTimeProxyPrivate
+{
+ GData *qdata;
+};
+
+static void ofono_modem_org_ofono_network_time_proxy_iface_init (OFONOMODEMOrgOfonoNetworkTimeIface *iface);
+
+#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
+G_DEFINE_TYPE_WITH_CODE (OFONOMODEMOrgOfonoNetworkTimeProxy, ofono_modem_org_ofono_network_time_proxy, G_TYPE_DBUS_PROXY,
+ G_ADD_PRIVATE (OFONOMODEMOrgOfonoNetworkTimeProxy)
+ G_IMPLEMENT_INTERFACE (OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME, ofono_modem_org_ofono_network_time_proxy_iface_init));
+
+#else
+G_DEFINE_TYPE_WITH_CODE (OFONOMODEMOrgOfonoNetworkTimeProxy, ofono_modem_org_ofono_network_time_proxy, G_TYPE_DBUS_PROXY,
+ G_IMPLEMENT_INTERFACE (OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME, ofono_modem_org_ofono_network_time_proxy_iface_init));
+
+#endif
+static void
+ofono_modem_org_ofono_network_time_proxy_finalize (GObject *object)
+{
+ OFONOMODEMOrgOfonoNetworkTimeProxy *proxy = OFONO_MODEM_ORG_OFONO_NETWORK_TIME_PROXY (object);
+ g_datalist_clear (&proxy->priv->qdata);
+ G_OBJECT_CLASS (ofono_modem_org_ofono_network_time_proxy_parent_class)->finalize (object);
+}
+
+static void
+ofono_modem_org_ofono_network_time_proxy_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec G_GNUC_UNUSED)
+{
+}
+
+static void
+ofono_modem_org_ofono_network_time_proxy_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec G_GNUC_UNUSED)
+{
+}
+
+static void
+ofono_modem_org_ofono_network_time_proxy_g_signal (GDBusProxy *proxy,
+ const gchar *sender_name G_GNUC_UNUSED,
+ const gchar *signal_name,
+ GVariant *parameters)
+{
+ _ExtendedGDBusSignalInfo *info;
+ GVariantIter iter;
+ GVariant *child;
+ GValue *paramv;
+ guint num_params;
+ guint n;
+ guint signal_id;
+ info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_ofono_modem_org_ofono_network_time_interface_info.parent_struct, signal_name);
+ if (info == NULL)
+ return;
+ num_params = g_variant_n_children (parameters);
+ paramv = g_new0 (GValue, num_params + 1);
+ g_value_init (&paramv[0], OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME);
+ g_value_set_object (&paramv[0], proxy);
+ g_variant_iter_init (&iter, parameters);
+ n = 1;
+ while ((child = g_variant_iter_next_value (&iter)) != NULL)
+ {
+ _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
+ if (arg_info->use_gvariant)
+ {
+ g_value_init (&paramv[n], G_TYPE_VARIANT);
+ g_value_set_variant (&paramv[n], child);
+ n++;
+ }
+ else
+ g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
+ g_variant_unref (child);
+ }
+ signal_id = g_signal_lookup (info->signal_name, OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME);
+ g_signal_emitv (paramv, signal_id, 0, NULL);
+ for (n = 0; n < num_params + 1; n++)
+ g_value_unset (&paramv[n]);
+ g_free (paramv);
+}
+
+static void
+ofono_modem_org_ofono_network_time_proxy_g_properties_changed (GDBusProxy *_proxy,
+ GVariant *changed_properties,
+ const gchar *const *invalidated_properties)
+{
+ OFONOMODEMOrgOfonoNetworkTimeProxy *proxy = OFONO_MODEM_ORG_OFONO_NETWORK_TIME_PROXY (_proxy);
+ guint n;
+ const gchar *key;
+ GVariantIter *iter;
+ _ExtendedGDBusPropertyInfo *info;
+ g_variant_get (changed_properties, "a{sv}", &iter);
+ while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
+ {
+ info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_ofono_modem_org_ofono_network_time_interface_info.parent_struct, key);
+ g_datalist_remove_data (&proxy->priv->qdata, key);
+ if (info != NULL)
+ g_object_notify (G_OBJECT (proxy), info->hyphen_name);
+ }
+ g_variant_iter_free (iter);
+ for (n = 0; invalidated_properties[n] != NULL; n++)
+ {
+ info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_ofono_modem_org_ofono_network_time_interface_info.parent_struct, invalidated_properties[n]);
+ g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
+ if (info != NULL)
+ g_object_notify (G_OBJECT (proxy), info->hyphen_name);
+ }
+}
+
+static void
+ofono_modem_org_ofono_network_time_proxy_init (OFONOMODEMOrgOfonoNetworkTimeProxy *proxy)
+{
+#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
+ proxy->priv = ofono_modem_org_ofono_network_time_proxy_get_instance_private (proxy);
+#else
+ proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME_PROXY, OFONOMODEMOrgOfonoNetworkTimeProxyPrivate);
+#endif
+
+ g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), ofono_modem_org_ofono_network_time_interface_info ());
+}
+
+static void
+ofono_modem_org_ofono_network_time_proxy_class_init (OFONOMODEMOrgOfonoNetworkTimeProxyClass *klass)
+{
+ GObjectClass *gobject_class;
+ GDBusProxyClass *proxy_class;
+
+ gobject_class = G_OBJECT_CLASS (klass);
+ gobject_class->finalize = ofono_modem_org_ofono_network_time_proxy_finalize;
+ gobject_class->get_property = ofono_modem_org_ofono_network_time_proxy_get_property;
+ gobject_class->set_property = ofono_modem_org_ofono_network_time_proxy_set_property;
+
+ proxy_class = G_DBUS_PROXY_CLASS (klass);
+ proxy_class->g_signal = ofono_modem_org_ofono_network_time_proxy_g_signal;
+ proxy_class->g_properties_changed = ofono_modem_org_ofono_network_time_proxy_g_properties_changed;
+
+#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
+ g_type_class_add_private (klass, sizeof (OFONOMODEMOrgOfonoNetworkTimeProxyPrivate));
+#endif
+}
+
+static void
+ofono_modem_org_ofono_network_time_proxy_iface_init (OFONOMODEMOrgOfonoNetworkTimeIface *iface)
+{
+}
+
+/**
+ * ofono_modem_org_ofono_network_time_proxy_new:
+ * @connection: A #GDBusConnection.
+ * @flags: Flags from the #GDBusProxyFlags enumeration.
+ * @name: (allow-none): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
+ * @object_path: An object path.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
+ * @user_data: User data to pass to @callback.
+ *
+ * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-ofono-NetworkTime.top_of_page">org.ofono.NetworkTime</link>. See g_dbus_proxy_new() for more details.
+ *
+ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
+ * You can then call ofono_modem_org_ofono_network_time_proxy_new_finish() to get the result of the operation.
+ *
+ * See ofono_modem_org_ofono_network_time_proxy_new_sync() for the synchronous, blocking version of this constructor.
+ */
+void
+ofono_modem_org_ofono_network_time_proxy_new (
+ GDBusConnection *connection,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_async_initable_new_async (OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.ofono.NetworkTime", NULL);
+}
+
+/**
+ * ofono_modem_org_ofono_network_time_proxy_new_finish:
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_modem_org_ofono_network_time_proxy_new().
+ * @error: Return location for error or %NULL
+ *
+ * Finishes an operation started with ofono_modem_org_ofono_network_time_proxy_new().
+ *
+ * Returns: (transfer full) (type OFONOMODEMOrgOfonoNetworkTimeProxy): The constructed proxy object or %NULL if @error is set.
+ */
+OFONOMODEMOrgOfonoNetworkTime *
+ofono_modem_org_ofono_network_time_proxy_new_finish (
+ GAsyncResult *res,
+ GError **error)
+{
+ GObject *ret;
+ GObject *source_object;
+ source_object = g_async_result_get_source_object (res);
+ ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
+ g_object_unref (source_object);
+ if (ret != NULL)
+ return OFONO_MODEM_ORG_OFONO_NETWORK_TIME (ret);
+ else
+ return NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_network_time_proxy_new_sync:
+ * @connection: A #GDBusConnection.
+ * @flags: Flags from the #GDBusProxyFlags enumeration.
+ * @name: (allow-none): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
+ * @object_path: An object path.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL
+ *
+ * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-ofono-NetworkTime.top_of_page">org.ofono.NetworkTime</link>. See g_dbus_proxy_new_sync() for more details.
+ *
+ * The calling thread is blocked until a reply is received.
+ *
+ * See ofono_modem_org_ofono_network_time_proxy_new() for the asynchronous version of this constructor.
+ *
+ * Returns: (transfer full) (type OFONOMODEMOrgOfonoNetworkTimeProxy): The constructed proxy object or %NULL if @error is set.
+ */
+OFONOMODEMOrgOfonoNetworkTime *
+ofono_modem_org_ofono_network_time_proxy_new_sync (
+ GDBusConnection *connection,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GInitable *ret;
+ ret = g_initable_new (OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.ofono.NetworkTime", NULL);
+ if (ret != NULL)
+ return OFONO_MODEM_ORG_OFONO_NETWORK_TIME (ret);
+ else
+ return NULL;
+}
+
+
+/**
+ * ofono_modem_org_ofono_network_time_proxy_new_for_bus:
+ * @bus_type: A #GBusType.
+ * @flags: Flags from the #GDBusProxyFlags enumeration.
+ * @name: A bus name (well-known or unique).
+ * @object_path: An object path.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
+ * @user_data: User data to pass to @callback.
+ *
+ * Like ofono_modem_org_ofono_network_time_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
+ *
+ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
+ * You can then call ofono_modem_org_ofono_network_time_proxy_new_for_bus_finish() to get the result of the operation.
+ *
+ * See ofono_modem_org_ofono_network_time_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
+ */
+void
+ofono_modem_org_ofono_network_time_proxy_new_for_bus (
+ GBusType bus_type,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_async_initable_new_async (OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.ofono.NetworkTime", NULL);
+}
+
+/**
+ * ofono_modem_org_ofono_network_time_proxy_new_for_bus_finish:
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_modem_org_ofono_network_time_proxy_new_for_bus().
+ * @error: Return location for error or %NULL
+ *
+ * Finishes an operation started with ofono_modem_org_ofono_network_time_proxy_new_for_bus().
+ *
+ * Returns: (transfer full) (type OFONOMODEMOrgOfonoNetworkTimeProxy): The constructed proxy object or %NULL if @error is set.
+ */
+OFONOMODEMOrgOfonoNetworkTime *
+ofono_modem_org_ofono_network_time_proxy_new_for_bus_finish (
+ GAsyncResult *res,
+ GError **error)
+{
+ GObject *ret;
+ GObject *source_object;
+ source_object = g_async_result_get_source_object (res);
+ ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
+ g_object_unref (source_object);
+ if (ret != NULL)
+ return OFONO_MODEM_ORG_OFONO_NETWORK_TIME (ret);
+ else
+ return NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_network_time_proxy_new_for_bus_sync:
+ * @bus_type: A #GBusType.
+ * @flags: Flags from the #GDBusProxyFlags enumeration.
+ * @name: A bus name (well-known or unique).
+ * @object_path: An object path.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL
+ *
+ * Like ofono_modem_org_ofono_network_time_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
+ *
+ * The calling thread is blocked until a reply is received.
+ *
+ * See ofono_modem_org_ofono_network_time_proxy_new_for_bus() for the asynchronous version of this constructor.
+ *
+ * Returns: (transfer full) (type OFONOMODEMOrgOfonoNetworkTimeProxy): The constructed proxy object or %NULL if @error is set.
+ */
+OFONOMODEMOrgOfonoNetworkTime *
+ofono_modem_org_ofono_network_time_proxy_new_for_bus_sync (
+ GBusType bus_type,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GInitable *ret;
+ ret = g_initable_new (OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.ofono.NetworkTime", NULL);
+ if (ret != NULL)
+ return OFONO_MODEM_ORG_OFONO_NETWORK_TIME (ret);
+ else
+ return NULL;
+}
+
+
+/* ------------------------------------------------------------------------ */
+
+/**
+ * OFONOMODEMOrgOfonoNetworkTimeSkeleton:
+ *
+ * The #OFONOMODEMOrgOfonoNetworkTimeSkeleton structure contains only private data and should only be accessed using the provided API.
+ */
+
+/**
+ * OFONOMODEMOrgOfonoNetworkTimeSkeletonClass:
+ * @parent_class: The parent class.
+ *
+ * Class structure for #OFONOMODEMOrgOfonoNetworkTimeSkeleton.
+ */
+
+struct _OFONOMODEMOrgOfonoNetworkTimeSkeletonPrivate
+{
+ GValue *properties;
+ GList *changed_properties;
+ GSource *changed_properties_idle_source;
+ GMainContext *context;
+ GMutex lock;
+};
+
+static void
+_ofono_modem_org_ofono_network_time_skeleton_handle_method_call (
+ GDBusConnection *connection G_GNUC_UNUSED,
+ const gchar *sender G_GNUC_UNUSED,
+ const gchar *object_path G_GNUC_UNUSED,
+ const gchar *interface_name,
+ const gchar *method_name,
+ GVariant *parameters,
+ GDBusMethodInvocation *invocation,
+ gpointer user_data)
+{
+ OFONOMODEMOrgOfonoNetworkTimeSkeleton *skeleton = OFONO_MODEM_ORG_OFONO_NETWORK_TIME_SKELETON (user_data);
+ _ExtendedGDBusMethodInfo *info;
+ GVariantIter iter;
+ GVariant *child;
+ GValue *paramv;
+ guint num_params;
+ guint num_extra;
+ guint n;
+ guint signal_id;
+ GValue return_value = G_VALUE_INIT;
+ info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
+ g_assert (info != NULL);
+ num_params = g_variant_n_children (parameters);
+ num_extra = info->pass_fdlist ? 3 : 2; paramv = g_new0 (GValue, num_params + num_extra);
+ n = 0;
+ g_value_init (&paramv[n], OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME);
+ g_value_set_object (&paramv[n++], skeleton);
+ g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
+ g_value_set_object (&paramv[n++], invocation);
+ if (info->pass_fdlist)
+ {
+#ifdef G_OS_UNIX
+ g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
+ g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
+#else
+ g_assert_not_reached ();
+#endif
+ }
+ g_variant_iter_init (&iter, parameters);
+ while ((child = g_variant_iter_next_value (&iter)) != NULL)
+ {
+ _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
+ if (arg_info->use_gvariant)
+ {
+ g_value_init (&paramv[n], G_TYPE_VARIANT);
+ g_value_set_variant (&paramv[n], child);
+ n++;
+ }
+ else
+ g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
+ g_variant_unref (child);
+ }
+ signal_id = g_signal_lookup (info->signal_name, OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME);
+ g_value_init (&return_value, G_TYPE_BOOLEAN);
+ g_signal_emitv (paramv, signal_id, 0, &return_value);
+ if (!g_value_get_boolean (&return_value))
+ g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD, "Method %s is not implemented on interface %s", method_name, interface_name);
+ g_value_unset (&return_value);
+ for (n = 0; n < num_params + num_extra; n++)
+ g_value_unset (&paramv[n]);
+ g_free (paramv);
+}
+
+static GVariant *
+_ofono_modem_org_ofono_network_time_skeleton_handle_get_property (
+ GDBusConnection *connection G_GNUC_UNUSED,
+ const gchar *sender G_GNUC_UNUSED,
+ const gchar *object_path G_GNUC_UNUSED,
+ const gchar *interface_name G_GNUC_UNUSED,
+ const gchar *property_name,
+ GError **error,
+ gpointer user_data)
+{
+ OFONOMODEMOrgOfonoNetworkTimeSkeleton *skeleton = OFONO_MODEM_ORG_OFONO_NETWORK_TIME_SKELETON (user_data);
+ GValue value = G_VALUE_INIT;
+ GParamSpec *pspec;
+ _ExtendedGDBusPropertyInfo *info;
+ GVariant *ret;
+ ret = NULL;
+ info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_ofono_modem_org_ofono_network_time_interface_info.parent_struct, property_name);
+ g_assert (info != NULL);
+ pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
+ if (pspec == NULL)
+ {
+ g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
+ }
+ else
+ {
+ g_value_init (&value, pspec->value_type);
+ g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
+ ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
+ g_value_unset (&value);
+ }
+ return ret;
+}
+
+static gboolean
+_ofono_modem_org_ofono_network_time_skeleton_handle_set_property (
+ GDBusConnection *connection G_GNUC_UNUSED,
+ const gchar *sender G_GNUC_UNUSED,
+ const gchar *object_path G_GNUC_UNUSED,
+ const gchar *interface_name G_GNUC_UNUSED,
+ const gchar *property_name,
+ GVariant *variant,
+ GError **error,
+ gpointer user_data)
+{
+ OFONOMODEMOrgOfonoNetworkTimeSkeleton *skeleton = OFONO_MODEM_ORG_OFONO_NETWORK_TIME_SKELETON (user_data);
+ GValue value = G_VALUE_INIT;
+ GParamSpec *pspec;
+ _ExtendedGDBusPropertyInfo *info;
+ gboolean ret;
+ ret = FALSE;
+ info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_ofono_modem_org_ofono_network_time_interface_info.parent_struct, property_name);
+ g_assert (info != NULL);
+ pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
+ if (pspec == NULL)
+ {
+ g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
+ }
+ else
+ {
+ if (info->use_gvariant)
+ g_value_set_variant (&value, variant);
+ else
+ g_dbus_gvariant_to_gvalue (variant, &value);
+ g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
+ g_value_unset (&value);
+ ret = TRUE;
+ }
+ return ret;
+}
+
+static const GDBusInterfaceVTable _ofono_modem_org_ofono_network_time_skeleton_vtable =
+{
+ _ofono_modem_org_ofono_network_time_skeleton_handle_method_call,
+ _ofono_modem_org_ofono_network_time_skeleton_handle_get_property,
+ _ofono_modem_org_ofono_network_time_skeleton_handle_set_property,
+ {NULL}
+};
+
+static GDBusInterfaceInfo *
+ofono_modem_org_ofono_network_time_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
+{
+ return ofono_modem_org_ofono_network_time_interface_info ();
+}
+
+static GDBusInterfaceVTable *
+ofono_modem_org_ofono_network_time_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
+{
+ return (GDBusInterfaceVTable *) &_ofono_modem_org_ofono_network_time_skeleton_vtable;
+}
+
+static GVariant *
+ofono_modem_org_ofono_network_time_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
+{
+ OFONOMODEMOrgOfonoNetworkTimeSkeleton *skeleton = OFONO_MODEM_ORG_OFONO_NETWORK_TIME_SKELETON (_skeleton);
+
+ GVariantBuilder builder;
+ guint n;
+ g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}"));
+ if (_ofono_modem_org_ofono_network_time_interface_info.parent_struct.properties == NULL)
+ goto out;
+ for (n = 0; _ofono_modem_org_ofono_network_time_interface_info.parent_struct.properties[n] != NULL; n++)
+ {
+ GDBusPropertyInfo *info = _ofono_modem_org_ofono_network_time_interface_info.parent_struct.properties[n];
+ if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
+ {
+ GVariant *value;
+ value = _ofono_modem_org_ofono_network_time_skeleton_handle_get_property (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)), NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.ofono.NetworkTime", info->name, NULL, skeleton);
+ if (value != NULL)
+ {
+ g_variant_take_ref (value);
+ g_variant_builder_add (&builder, "{sv}", info->name, value);
+ g_variant_unref (value);
+ }
+ }
+ }
+out:
+ return g_variant_builder_end (&builder);
+}
+
+static void
+ofono_modem_org_ofono_network_time_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton)
+{
+}
+
+static void
+_ofono_modem_org_ofono_network_time_on_signal_network_time_changed (
+ OFONOMODEMOrgOfonoNetworkTime *object,
+ GVariant *arg_time)
+{
+ OFONOMODEMOrgOfonoNetworkTimeSkeleton *skeleton = OFONO_MODEM_ORG_OFONO_NETWORK_TIME_SKELETON (object);
+
+ GList *connections, *l;
+ GVariant *signal_variant;
+ connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
+
+ signal_variant = g_variant_ref_sink (g_variant_new ("(@a{sv})",
+ arg_time));
+ for (l = connections; l != NULL; l = l->next)
+ {
+ GDBusConnection *connection = l->data;
+ g_dbus_connection_emit_signal (connection,
+ NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.ofono.NetworkTime", "NetworkTimeChanged",
+ signal_variant, NULL);
+ }
+ g_variant_unref (signal_variant);
+ g_list_free_full (connections, g_object_unref);
+}
+
+static void ofono_modem_org_ofono_network_time_skeleton_iface_init (OFONOMODEMOrgOfonoNetworkTimeIface *iface);
+#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
+G_DEFINE_TYPE_WITH_CODE (OFONOMODEMOrgOfonoNetworkTimeSkeleton, ofono_modem_org_ofono_network_time_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
+ G_ADD_PRIVATE (OFONOMODEMOrgOfonoNetworkTimeSkeleton)
+ G_IMPLEMENT_INTERFACE (OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME, ofono_modem_org_ofono_network_time_skeleton_iface_init));
+
+#else
+G_DEFINE_TYPE_WITH_CODE (OFONOMODEMOrgOfonoNetworkTimeSkeleton, ofono_modem_org_ofono_network_time_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
+ G_IMPLEMENT_INTERFACE (OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME, ofono_modem_org_ofono_network_time_skeleton_iface_init));
+
+#endif
+static void
+ofono_modem_org_ofono_network_time_skeleton_finalize (GObject *object)
+{
+ OFONOMODEMOrgOfonoNetworkTimeSkeleton *skeleton = OFONO_MODEM_ORG_OFONO_NETWORK_TIME_SKELETON (object);
+ g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
+ if (skeleton->priv->changed_properties_idle_source != NULL)
+ g_source_destroy (skeleton->priv->changed_properties_idle_source);
+ g_main_context_unref (skeleton->priv->context);
+ g_mutex_clear (&skeleton->priv->lock);
+ G_OBJECT_CLASS (ofono_modem_org_ofono_network_time_skeleton_parent_class)->finalize (object);
+}
+
+static void
+ofono_modem_org_ofono_network_time_skeleton_init (OFONOMODEMOrgOfonoNetworkTimeSkeleton *skeleton)
+{
+#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
+ skeleton->priv = ofono_modem_org_ofono_network_time_skeleton_get_instance_private (skeleton);
+#else
+ skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME_SKELETON, OFONOMODEMOrgOfonoNetworkTimeSkeletonPrivate);
+#endif
+
+ g_mutex_init (&skeleton->priv->lock);
+ skeleton->priv->context = g_main_context_ref_thread_default ();
+}
+
+static void
+ofono_modem_org_ofono_network_time_skeleton_class_init (OFONOMODEMOrgOfonoNetworkTimeSkeletonClass *klass)
+{
+ GObjectClass *gobject_class;
+ GDBusInterfaceSkeletonClass *skeleton_class;
+
+ gobject_class = G_OBJECT_CLASS (klass);
+ gobject_class->finalize = ofono_modem_org_ofono_network_time_skeleton_finalize;
+
+ skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
+ skeleton_class->get_info = ofono_modem_org_ofono_network_time_skeleton_dbus_interface_get_info;
+ skeleton_class->get_properties = ofono_modem_org_ofono_network_time_skeleton_dbus_interface_get_properties;
+ skeleton_class->flush = ofono_modem_org_ofono_network_time_skeleton_dbus_interface_flush;
+ skeleton_class->get_vtable = ofono_modem_org_ofono_network_time_skeleton_dbus_interface_get_vtable;
+
+#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
+ g_type_class_add_private (klass, sizeof (OFONOMODEMOrgOfonoNetworkTimeSkeletonPrivate));
+#endif
+}
+
+static void
+ofono_modem_org_ofono_network_time_skeleton_iface_init (OFONOMODEMOrgOfonoNetworkTimeIface *iface)
+{
+ iface->network_time_changed = _ofono_modem_org_ofono_network_time_on_signal_network_time_changed;
+}
+
+/**
+ * ofono_modem_org_ofono_network_time_skeleton_new:
+ *
+ * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-ofono-NetworkTime.top_of_page">org.ofono.NetworkTime</link>.
+ *
+ * Returns: (transfer full) (type OFONOMODEMOrgOfonoNetworkTimeSkeleton): The skeleton object.
+ */
+OFONOMODEMOrgOfonoNetworkTime *
+ofono_modem_org_ofono_network_time_skeleton_new (void)
+{
+ return OFONO_MODEM_ORG_OFONO_NETWORK_TIME (g_object_new (OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME_SKELETON, NULL));
+}
+
+/* ------------------------------------------------------------------------
+ * Code for interface org.ofono.NetworkRegistration
+ * ------------------------------------------------------------------------
+ */
+
+/**
+ * SECTION:OFONOMODEMOrgOfonoNetworkRegistration
+ * @title: OFONOMODEMOrgOfonoNetworkRegistration
+ * @short_description: Generated C code for the org.ofono.NetworkRegistration D-Bus interface
+ *
+ * This section contains code for working with the <link linkend="gdbus-interface-org-ofono-NetworkRegistration.top_of_page">org.ofono.NetworkRegistration</link> D-Bus interface in C.
+ */
+
+/* ---- Introspection data for org.ofono.NetworkRegistration ---- */
+
+static const _ExtendedGDBusArgInfo _ofono_modem_org_ofono_network_registration_method_info_get_properties_OUT_ARG_properties =
+{
+ {
+ -1,
+ (gchar *) "properties",
+ (gchar *) "a{sv}",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo * const _ofono_modem_org_ofono_network_registration_method_info_get_properties_OUT_ARG_pointers[] =
+{
+ &_ofono_modem_org_ofono_network_registration_method_info_get_properties_OUT_ARG_properties,
+ NULL
+};
+
+static const _ExtendedGDBusMethodInfo _ofono_modem_org_ofono_network_registration_method_info_get_properties =
+{
+ {
+ -1,
+ (gchar *) "GetProperties",
+ NULL,
+ (GDBusArgInfo **) &_ofono_modem_org_ofono_network_registration_method_info_get_properties_OUT_ARG_pointers,
+ NULL
+ },
+ "handle-get-properties",
+ FALSE
+};
+
+static const _ExtendedGDBusMethodInfo _ofono_modem_org_ofono_network_registration_method_info_register =
+{
+ {
+ -1,
+ (gchar *) "Register",
+ NULL,
+ NULL,
+ NULL
+ },
+ "handle-register",
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo _ofono_modem_org_ofono_network_registration_method_info_get_operators_OUT_ARG_operators_with_properties =
+{
+ {
+ -1,
+ (gchar *) "operators_with_properties",
+ (gchar *) "a(oa{sv})",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo * const _ofono_modem_org_ofono_network_registration_method_info_get_operators_OUT_ARG_pointers[] =
+{
+ &_ofono_modem_org_ofono_network_registration_method_info_get_operators_OUT_ARG_operators_with_properties,
+ NULL
+};
+
+static const _ExtendedGDBusMethodInfo _ofono_modem_org_ofono_network_registration_method_info_get_operators =
+{
+ {
+ -1,
+ (gchar *) "GetOperators",
+ NULL,
+ (GDBusArgInfo **) &_ofono_modem_org_ofono_network_registration_method_info_get_operators_OUT_ARG_pointers,
+ NULL
+ },
+ "handle-get-operators",
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo _ofono_modem_org_ofono_network_registration_method_info_scan_OUT_ARG_operators_with_properties =
+{
+ {
+ -1,
+ (gchar *) "operators_with_properties",
+ (gchar *) "a(oa{sv})",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo * const _ofono_modem_org_ofono_network_registration_method_info_scan_OUT_ARG_pointers[] =
+{
+ &_ofono_modem_org_ofono_network_registration_method_info_scan_OUT_ARG_operators_with_properties,
+ NULL
+};
+
+static const _ExtendedGDBusMethodInfo _ofono_modem_org_ofono_network_registration_method_info_scan =
+{
+ {
+ -1,
+ (gchar *) "Scan",
+ NULL,
+ (GDBusArgInfo **) &_ofono_modem_org_ofono_network_registration_method_info_scan_OUT_ARG_pointers,
+ NULL
+ },
+ "handle-scan",
+ FALSE
+};
+
+static const _ExtendedGDBusMethodInfo * const _ofono_modem_org_ofono_network_registration_method_info_pointers[] =
+{
+ &_ofono_modem_org_ofono_network_registration_method_info_get_properties,
+ &_ofono_modem_org_ofono_network_registration_method_info_register,
+ &_ofono_modem_org_ofono_network_registration_method_info_get_operators,
+ &_ofono_modem_org_ofono_network_registration_method_info_scan,
+ NULL
+};
+
+static const _ExtendedGDBusArgInfo _ofono_modem_org_ofono_network_registration_signal_info_property_changed_ARG_name =
+{
+ {
+ -1,
+ (gchar *) "name",
+ (gchar *) "s",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo _ofono_modem_org_ofono_network_registration_signal_info_property_changed_ARG_value =
+{
+ {
+ -1,
+ (gchar *) "value",
+ (gchar *) "v",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo * const _ofono_modem_org_ofono_network_registration_signal_info_property_changed_ARG_pointers[] =
+{
+ &_ofono_modem_org_ofono_network_registration_signal_info_property_changed_ARG_name,
+ &_ofono_modem_org_ofono_network_registration_signal_info_property_changed_ARG_value,
+ NULL
+};
+
+static const _ExtendedGDBusSignalInfo _ofono_modem_org_ofono_network_registration_signal_info_property_changed =
+{
+ {
+ -1,
+ (gchar *) "PropertyChanged",
+ (GDBusArgInfo **) &_ofono_modem_org_ofono_network_registration_signal_info_property_changed_ARG_pointers,
+ NULL
+ },
+ "property-changed"
+};
+
+static const _ExtendedGDBusSignalInfo * const _ofono_modem_org_ofono_network_registration_signal_info_pointers[] =
+{
+ &_ofono_modem_org_ofono_network_registration_signal_info_property_changed,
+ NULL
+};
+
+static const _ExtendedGDBusInterfaceInfo _ofono_modem_org_ofono_network_registration_interface_info =
+{
+ {
+ -1,
+ (gchar *) "org.ofono.NetworkRegistration",
+ (GDBusMethodInfo **) &_ofono_modem_org_ofono_network_registration_method_info_pointers,
+ (GDBusSignalInfo **) &_ofono_modem_org_ofono_network_registration_signal_info_pointers,
+ NULL,
+ NULL
+ },
+ "org-ofono-network-registration",
+};
+
+
+/**
+ * ofono_modem_org_ofono_network_registration_interface_info:
+ *
+ * Gets a machine-readable description of the <link linkend="gdbus-interface-org-ofono-NetworkRegistration.top_of_page">org.ofono.NetworkRegistration</link> D-Bus interface.
+ *
+ * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
+ */
+GDBusInterfaceInfo *
+ofono_modem_org_ofono_network_registration_interface_info (void)
+{
+ return (GDBusInterfaceInfo *) &_ofono_modem_org_ofono_network_registration_interface_info.parent_struct;
+}
+
+/**
+ * ofono_modem_org_ofono_network_registration_override_properties:
+ * @klass: The class structure for a #GObject<!-- -->-derived class.
+ * @property_id_begin: The property id to assign to the first overridden property.
+ *
+ * Overrides all #GObject properties in the #OFONOMODEMOrgOfonoNetworkRegistration interface for a concrete class.
+ * The properties are overridden in the order they are defined.
+ *
+ * Returns: The last property id.
+ */
+guint
+ofono_modem_org_ofono_network_registration_override_properties (GObjectClass *klass, guint property_id_begin)
+{
+ return property_id_begin - 1;
+}
+
+
+
+/**
+ * OFONOMODEMOrgOfonoNetworkRegistration:
+ *
+ * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-ofono-NetworkRegistration.top_of_page">org.ofono.NetworkRegistration</link>.
+ */
+
+/**
+ * OFONOMODEMOrgOfonoNetworkRegistrationIface:
+ * @parent_iface: The parent interface.
+ * @handle_get_operators: Handler for the #OFONOMODEMOrgOfonoNetworkRegistration::handle-get-operators signal.
+ * @handle_get_properties: Handler for the #OFONOMODEMOrgOfonoNetworkRegistration::handle-get-properties signal.
+ * @handle_register: Handler for the #OFONOMODEMOrgOfonoNetworkRegistration::handle-register signal.
+ * @handle_scan: Handler for the #OFONOMODEMOrgOfonoNetworkRegistration::handle-scan signal.
+ * @property_changed: Handler for the #OFONOMODEMOrgOfonoNetworkRegistration::property-changed signal.
+ *
+ * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-ofono-NetworkRegistration.top_of_page">org.ofono.NetworkRegistration</link>.
+ */
+
+typedef OFONOMODEMOrgOfonoNetworkRegistrationIface OFONOMODEMOrgOfonoNetworkRegistrationInterface;
+G_DEFINE_INTERFACE (OFONOMODEMOrgOfonoNetworkRegistration, ofono_modem_org_ofono_network_registration, G_TYPE_OBJECT);
+
+static void
+ofono_modem_org_ofono_network_registration_default_init (OFONOMODEMOrgOfonoNetworkRegistrationIface *iface)
+{
+ /* GObject signals for incoming D-Bus method calls: */
+ /**
+ * OFONOMODEMOrgOfonoNetworkRegistration::handle-get-properties:
+ * @object: A #OFONOMODEMOrgOfonoNetworkRegistration.
+ * @invocation: A #GDBusMethodInvocation.
+ *
+ * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-ofono-NetworkRegistration.GetProperties">GetProperties()</link> D-Bus method.
+ *
+ * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call ofono_modem_org_ofono_network_registration_complete_get_properties() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
+ *
+ * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
+ */
+ g_signal_new ("handle-get-properties",
+ G_TYPE_FROM_INTERFACE (iface),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (OFONOMODEMOrgOfonoNetworkRegistrationIface, handle_get_properties),
+ g_signal_accumulator_true_handled,
+ NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_BOOLEAN,
+ 1,
+ G_TYPE_DBUS_METHOD_INVOCATION);
+
+ /**
+ * OFONOMODEMOrgOfonoNetworkRegistration::handle-register:
+ * @object: A #OFONOMODEMOrgOfonoNetworkRegistration.
+ * @invocation: A #GDBusMethodInvocation.
+ *
+ * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-ofono-NetworkRegistration.Register">Register()</link> D-Bus method.
+ *
+ * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call ofono_modem_org_ofono_network_registration_complete_register() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
+ *
+ * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
+ */
+ g_signal_new ("handle-register",
+ G_TYPE_FROM_INTERFACE (iface),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (OFONOMODEMOrgOfonoNetworkRegistrationIface, handle_register),
+ g_signal_accumulator_true_handled,
+ NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_BOOLEAN,
+ 1,
+ G_TYPE_DBUS_METHOD_INVOCATION);
+
+ /**
+ * OFONOMODEMOrgOfonoNetworkRegistration::handle-get-operators:
+ * @object: A #OFONOMODEMOrgOfonoNetworkRegistration.
+ * @invocation: A #GDBusMethodInvocation.
+ *
+ * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-ofono-NetworkRegistration.GetOperators">GetOperators()</link> D-Bus method.
+ *
+ * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call ofono_modem_org_ofono_network_registration_complete_get_operators() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
+ *
+ * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
+ */
+ g_signal_new ("handle-get-operators",
+ G_TYPE_FROM_INTERFACE (iface),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (OFONOMODEMOrgOfonoNetworkRegistrationIface, handle_get_operators),
+ g_signal_accumulator_true_handled,
+ NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_BOOLEAN,
+ 1,
+ G_TYPE_DBUS_METHOD_INVOCATION);
+
+ /**
+ * OFONOMODEMOrgOfonoNetworkRegistration::handle-scan:
+ * @object: A #OFONOMODEMOrgOfonoNetworkRegistration.
+ * @invocation: A #GDBusMethodInvocation.
+ *
+ * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-ofono-NetworkRegistration.Scan">Scan()</link> D-Bus method.
+ *
+ * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call ofono_modem_org_ofono_network_registration_complete_scan() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
+ *
+ * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
+ */
+ g_signal_new ("handle-scan",
+ G_TYPE_FROM_INTERFACE (iface),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (OFONOMODEMOrgOfonoNetworkRegistrationIface, handle_scan),
+ g_signal_accumulator_true_handled,
+ NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_BOOLEAN,
+ 1,
+ G_TYPE_DBUS_METHOD_INVOCATION);
+
+ /* GObject signals for received D-Bus signals: */
+ /**
+ * OFONOMODEMOrgOfonoNetworkRegistration::property-changed:
+ * @object: A #OFONOMODEMOrgOfonoNetworkRegistration.
+ * @arg_name: Argument.
+ * @arg_value: Argument.
+ *
+ * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-ofono-NetworkRegistration.PropertyChanged">"PropertyChanged"</link> is received.
+ *
+ * On the service-side, this signal can be used with e.g. g_signal_emit_by_name() to make the object emit the D-Bus signal.
+ */
+ g_signal_new ("property-changed",
+ G_TYPE_FROM_INTERFACE (iface),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (OFONOMODEMOrgOfonoNetworkRegistrationIface, property_changed),
+ NULL,
+ NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_NONE,
+ 2, G_TYPE_STRING, G_TYPE_VARIANT);
+
+}
+
+/**
+ * ofono_modem_org_ofono_network_registration_emit_property_changed:
+ * @object: A #OFONOMODEMOrgOfonoNetworkRegistration.
+ * @arg_name: Argument to pass with the signal.
+ * @arg_value: Argument to pass with the signal.
+ *
+ * Emits the <link linkend="gdbus-signal-org-ofono-NetworkRegistration.PropertyChanged">"PropertyChanged"</link> D-Bus signal.
+ */
+void
+ofono_modem_org_ofono_network_registration_emit_property_changed (
+ OFONOMODEMOrgOfonoNetworkRegistration *object,
+ const gchar *arg_name,
+ GVariant *arg_value)
+{
+ g_signal_emit_by_name (object, "property-changed", arg_name, arg_value);
+}
+
+/**
+ * ofono_modem_org_ofono_network_registration_call_get_properties:
+ * @proxy: A #OFONOMODEMOrgOfonoNetworkRegistrationProxy.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
+ * @user_data: User data to pass to @callback.
+ *
+ * Asynchronously invokes the <link linkend="gdbus-method-org-ofono-NetworkRegistration.GetProperties">GetProperties()</link> D-Bus method on @proxy.
+ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
+ * You can then call ofono_modem_org_ofono_network_registration_call_get_properties_finish() to get the result of the operation.
+ *
+ * See ofono_modem_org_ofono_network_registration_call_get_properties_sync() for the synchronous, blocking version of this method.
+ */
+void
+ofono_modem_org_ofono_network_registration_call_get_properties (
+ OFONOMODEMOrgOfonoNetworkRegistration *proxy,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_dbus_proxy_call (G_DBUS_PROXY (proxy),
+ "GetProperties",
+ g_variant_new ("()"),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ callback,
+ user_data);
+}
+
+/**
+ * ofono_modem_org_ofono_network_registration_call_get_properties_finish:
+ * @proxy: A #OFONOMODEMOrgOfonoNetworkRegistrationProxy.
+ * @out_properties: (out): Return location for return parameter or %NULL to ignore.
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_modem_org_ofono_network_registration_call_get_properties().
+ * @error: Return location for error or %NULL.
+ *
+ * Finishes an operation started with ofono_modem_org_ofono_network_registration_call_get_properties().
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_network_registration_call_get_properties_finish (
+ OFONOMODEMOrgOfonoNetworkRegistration *proxy,
+ GVariant **out_properties,
+ GAsyncResult *res,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "(@a{sv})",
+ out_properties);
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_network_registration_call_get_properties_sync:
+ * @proxy: A #OFONOMODEMOrgOfonoNetworkRegistrationProxy.
+ * @out_properties: (out): Return location for return parameter or %NULL to ignore.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL.
+ *
+ * Synchronously invokes the <link linkend="gdbus-method-org-ofono-NetworkRegistration.GetProperties">GetProperties()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ *
+ * See ofono_modem_org_ofono_network_registration_call_get_properties() for the asynchronous version of this method.
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_network_registration_call_get_properties_sync (
+ OFONOMODEMOrgOfonoNetworkRegistration *proxy,
+ GVariant **out_properties,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
+ "GetProperties",
+ g_variant_new ("()"),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "(@a{sv})",
+ out_properties);
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_network_registration_call_register:
+ * @proxy: A #OFONOMODEMOrgOfonoNetworkRegistrationProxy.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
+ * @user_data: User data to pass to @callback.
+ *
+ * Asynchronously invokes the <link linkend="gdbus-method-org-ofono-NetworkRegistration.Register">Register()</link> D-Bus method on @proxy.
+ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
+ * You can then call ofono_modem_org_ofono_network_registration_call_register_finish() to get the result of the operation.
+ *
+ * See ofono_modem_org_ofono_network_registration_call_register_sync() for the synchronous, blocking version of this method.
+ */
+void
+ofono_modem_org_ofono_network_registration_call_register (
+ OFONOMODEMOrgOfonoNetworkRegistration *proxy,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_dbus_proxy_call (G_DBUS_PROXY (proxy),
+ "Register",
+ g_variant_new ("()"),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ callback,
+ user_data);
+}
+
+/**
+ * ofono_modem_org_ofono_network_registration_call_register_finish:
+ * @proxy: A #OFONOMODEMOrgOfonoNetworkRegistrationProxy.
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_modem_org_ofono_network_registration_call_register().
+ * @error: Return location for error or %NULL.
+ *
+ * Finishes an operation started with ofono_modem_org_ofono_network_registration_call_register().
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_network_registration_call_register_finish (
+ OFONOMODEMOrgOfonoNetworkRegistration *proxy,
+ GAsyncResult *res,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "()");
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_network_registration_call_register_sync:
+ * @proxy: A #OFONOMODEMOrgOfonoNetworkRegistrationProxy.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL.
+ *
+ * Synchronously invokes the <link linkend="gdbus-method-org-ofono-NetworkRegistration.Register">Register()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ *
+ * See ofono_modem_org_ofono_network_registration_call_register() for the asynchronous version of this method.
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_network_registration_call_register_sync (
+ OFONOMODEMOrgOfonoNetworkRegistration *proxy,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
+ "Register",
+ g_variant_new ("()"),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "()");
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_network_registration_call_get_operators:
+ * @proxy: A #OFONOMODEMOrgOfonoNetworkRegistrationProxy.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
+ * @user_data: User data to pass to @callback.
+ *
+ * Asynchronously invokes the <link linkend="gdbus-method-org-ofono-NetworkRegistration.GetOperators">GetOperators()</link> D-Bus method on @proxy.
+ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
+ * You can then call ofono_modem_org_ofono_network_registration_call_get_operators_finish() to get the result of the operation.
+ *
+ * See ofono_modem_org_ofono_network_registration_call_get_operators_sync() for the synchronous, blocking version of this method.
+ */
+void
+ofono_modem_org_ofono_network_registration_call_get_operators (
+ OFONOMODEMOrgOfonoNetworkRegistration *proxy,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_dbus_proxy_call (G_DBUS_PROXY (proxy),
+ "GetOperators",
+ g_variant_new ("()"),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ callback,
+ user_data);
+}
+
+/**
+ * ofono_modem_org_ofono_network_registration_call_get_operators_finish:
+ * @proxy: A #OFONOMODEMOrgOfonoNetworkRegistrationProxy.
+ * @out_operators_with_properties: (out): Return location for return parameter or %NULL to ignore.
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_modem_org_ofono_network_registration_call_get_operators().
+ * @error: Return location for error or %NULL.
+ *
+ * Finishes an operation started with ofono_modem_org_ofono_network_registration_call_get_operators().
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_network_registration_call_get_operators_finish (
+ OFONOMODEMOrgOfonoNetworkRegistration *proxy,
+ GVariant **out_operators_with_properties,
+ GAsyncResult *res,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "(@a(oa{sv}))",
+ out_operators_with_properties);
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_network_registration_call_get_operators_sync:
+ * @proxy: A #OFONOMODEMOrgOfonoNetworkRegistrationProxy.
+ * @out_operators_with_properties: (out): Return location for return parameter or %NULL to ignore.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL.
+ *
+ * Synchronously invokes the <link linkend="gdbus-method-org-ofono-NetworkRegistration.GetOperators">GetOperators()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ *
+ * See ofono_modem_org_ofono_network_registration_call_get_operators() for the asynchronous version of this method.
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_network_registration_call_get_operators_sync (
+ OFONOMODEMOrgOfonoNetworkRegistration *proxy,
+ GVariant **out_operators_with_properties,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
+ "GetOperators",
+ g_variant_new ("()"),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "(@a(oa{sv}))",
+ out_operators_with_properties);
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_network_registration_call_scan:
+ * @proxy: A #OFONOMODEMOrgOfonoNetworkRegistrationProxy.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
+ * @user_data: User data to pass to @callback.
+ *
+ * Asynchronously invokes the <link linkend="gdbus-method-org-ofono-NetworkRegistration.Scan">Scan()</link> D-Bus method on @proxy.
+ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
+ * You can then call ofono_modem_org_ofono_network_registration_call_scan_finish() to get the result of the operation.
+ *
+ * See ofono_modem_org_ofono_network_registration_call_scan_sync() for the synchronous, blocking version of this method.
+ */
+void
+ofono_modem_org_ofono_network_registration_call_scan (
+ OFONOMODEMOrgOfonoNetworkRegistration *proxy,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_dbus_proxy_call (G_DBUS_PROXY (proxy),
+ "Scan",
+ g_variant_new ("()"),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ callback,
+ user_data);
+}
+
+/**
+ * ofono_modem_org_ofono_network_registration_call_scan_finish:
+ * @proxy: A #OFONOMODEMOrgOfonoNetworkRegistrationProxy.
+ * @out_operators_with_properties: (out): Return location for return parameter or %NULL to ignore.
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_modem_org_ofono_network_registration_call_scan().
+ * @error: Return location for error or %NULL.
+ *
+ * Finishes an operation started with ofono_modem_org_ofono_network_registration_call_scan().
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_network_registration_call_scan_finish (
+ OFONOMODEMOrgOfonoNetworkRegistration *proxy,
+ GVariant **out_operators_with_properties,
+ GAsyncResult *res,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "(@a(oa{sv}))",
+ out_operators_with_properties);
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_network_registration_call_scan_sync:
+ * @proxy: A #OFONOMODEMOrgOfonoNetworkRegistrationProxy.
+ * @out_operators_with_properties: (out): Return location for return parameter or %NULL to ignore.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL.
+ *
+ * Synchronously invokes the <link linkend="gdbus-method-org-ofono-NetworkRegistration.Scan">Scan()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ *
+ * See ofono_modem_org_ofono_network_registration_call_scan() for the asynchronous version of this method.
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_network_registration_call_scan_sync (
+ OFONOMODEMOrgOfonoNetworkRegistration *proxy,
+ GVariant **out_operators_with_properties,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
+ "Scan",
+ g_variant_new ("()"),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "(@a(oa{sv}))",
+ out_operators_with_properties);
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_network_registration_complete_get_properties:
+ * @object: A #OFONOMODEMOrgOfonoNetworkRegistration.
+ * @invocation: (transfer full): A #GDBusMethodInvocation.
+ * @properties: Parameter to return.
+ *
+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-ofono-NetworkRegistration.GetProperties">GetProperties()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ *
+ * This method will free @invocation, you cannot use it afterwards.
+ */
+void
+ofono_modem_org_ofono_network_registration_complete_get_properties (
+ OFONOMODEMOrgOfonoNetworkRegistration *object,
+ GDBusMethodInvocation *invocation,
+ GVariant *properties)
+{
+ g_dbus_method_invocation_return_value (invocation,
+ g_variant_new ("(@a{sv})",
+ properties));
+}
+
+/**
+ * ofono_modem_org_ofono_network_registration_complete_register:
+ * @object: A #OFONOMODEMOrgOfonoNetworkRegistration.
+ * @invocation: (transfer full): A #GDBusMethodInvocation.
+ *
+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-ofono-NetworkRegistration.Register">Register()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ *
+ * This method will free @invocation, you cannot use it afterwards.
+ */
+void
+ofono_modem_org_ofono_network_registration_complete_register (
+ OFONOMODEMOrgOfonoNetworkRegistration *object,
+ GDBusMethodInvocation *invocation)
+{
+ g_dbus_method_invocation_return_value (invocation,
+ g_variant_new ("()"));
+}
+
+/**
+ * ofono_modem_org_ofono_network_registration_complete_get_operators:
+ * @object: A #OFONOMODEMOrgOfonoNetworkRegistration.
+ * @invocation: (transfer full): A #GDBusMethodInvocation.
+ * @operators_with_properties: Parameter to return.
+ *
+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-ofono-NetworkRegistration.GetOperators">GetOperators()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ *
+ * This method will free @invocation, you cannot use it afterwards.
+ */
+void
+ofono_modem_org_ofono_network_registration_complete_get_operators (
+ OFONOMODEMOrgOfonoNetworkRegistration *object,
+ GDBusMethodInvocation *invocation,
+ GVariant *operators_with_properties)
+{
+ g_dbus_method_invocation_return_value (invocation,
+ g_variant_new ("(@a(oa{sv}))",
+ operators_with_properties));
+}
+
+/**
+ * ofono_modem_org_ofono_network_registration_complete_scan:
+ * @object: A #OFONOMODEMOrgOfonoNetworkRegistration.
+ * @invocation: (transfer full): A #GDBusMethodInvocation.
+ * @operators_with_properties: Parameter to return.
+ *
+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-ofono-NetworkRegistration.Scan">Scan()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ *
+ * This method will free @invocation, you cannot use it afterwards.
+ */
+void
+ofono_modem_org_ofono_network_registration_complete_scan (
+ OFONOMODEMOrgOfonoNetworkRegistration *object,
+ GDBusMethodInvocation *invocation,
+ GVariant *operators_with_properties)
+{
+ g_dbus_method_invocation_return_value (invocation,
+ g_variant_new ("(@a(oa{sv}))",
+ operators_with_properties));
+}
+
+/* ------------------------------------------------------------------------ */
+
+/**
+ * OFONOMODEMOrgOfonoNetworkRegistrationProxy:
+ *
+ * The #OFONOMODEMOrgOfonoNetworkRegistrationProxy structure contains only private data and should only be accessed using the provided API.
+ */
+
+/**
+ * OFONOMODEMOrgOfonoNetworkRegistrationProxyClass:
+ * @parent_class: The parent class.
+ *
+ * Class structure for #OFONOMODEMOrgOfonoNetworkRegistrationProxy.
+ */
+
+struct _OFONOMODEMOrgOfonoNetworkRegistrationProxyPrivate
+{
+ GData *qdata;
+};
+
+static void ofono_modem_org_ofono_network_registration_proxy_iface_init (OFONOMODEMOrgOfonoNetworkRegistrationIface *iface);
+
+#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
+G_DEFINE_TYPE_WITH_CODE (OFONOMODEMOrgOfonoNetworkRegistrationProxy, ofono_modem_org_ofono_network_registration_proxy, G_TYPE_DBUS_PROXY,
+ G_ADD_PRIVATE (OFONOMODEMOrgOfonoNetworkRegistrationProxy)
+ G_IMPLEMENT_INTERFACE (OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION, ofono_modem_org_ofono_network_registration_proxy_iface_init));
+
+#else
+G_DEFINE_TYPE_WITH_CODE (OFONOMODEMOrgOfonoNetworkRegistrationProxy, ofono_modem_org_ofono_network_registration_proxy, G_TYPE_DBUS_PROXY,
+ G_IMPLEMENT_INTERFACE (OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION, ofono_modem_org_ofono_network_registration_proxy_iface_init));
+
+#endif
+static void
+ofono_modem_org_ofono_network_registration_proxy_finalize (GObject *object)
+{
+ OFONOMODEMOrgOfonoNetworkRegistrationProxy *proxy = OFONO_MODEM_ORG_OFONO_NETWORK_REGISTRATION_PROXY (object);
+ g_datalist_clear (&proxy->priv->qdata);
+ G_OBJECT_CLASS (ofono_modem_org_ofono_network_registration_proxy_parent_class)->finalize (object);
+}
+
+static void
+ofono_modem_org_ofono_network_registration_proxy_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec G_GNUC_UNUSED)
+{
+}
+
+static void
+ofono_modem_org_ofono_network_registration_proxy_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec G_GNUC_UNUSED)
+{
+}
+
+static void
+ofono_modem_org_ofono_network_registration_proxy_g_signal (GDBusProxy *proxy,
+ const gchar *sender_name G_GNUC_UNUSED,
+ const gchar *signal_name,
+ GVariant *parameters)
+{
+ _ExtendedGDBusSignalInfo *info;
+ GVariantIter iter;
+ GVariant *child;
+ GValue *paramv;
+ guint num_params;
+ guint n;
+ guint signal_id;
+ info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_ofono_modem_org_ofono_network_registration_interface_info.parent_struct, signal_name);
+ if (info == NULL)
+ return;
+ num_params = g_variant_n_children (parameters);
+ paramv = g_new0 (GValue, num_params + 1);
+ g_value_init (&paramv[0], OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION);
+ g_value_set_object (&paramv[0], proxy);
+ g_variant_iter_init (&iter, parameters);
+ n = 1;
+ while ((child = g_variant_iter_next_value (&iter)) != NULL)
+ {
+ _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
+ if (arg_info->use_gvariant)
+ {
+ g_value_init (&paramv[n], G_TYPE_VARIANT);
+ g_value_set_variant (&paramv[n], child);
+ n++;
+ }
+ else
+ g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
+ g_variant_unref (child);
+ }
+ signal_id = g_signal_lookup (info->signal_name, OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION);
+ g_signal_emitv (paramv, signal_id, 0, NULL);
+ for (n = 0; n < num_params + 1; n++)
+ g_value_unset (&paramv[n]);
+ g_free (paramv);
+}
+
+static void
+ofono_modem_org_ofono_network_registration_proxy_g_properties_changed (GDBusProxy *_proxy,
+ GVariant *changed_properties,
+ const gchar *const *invalidated_properties)
+{
+ OFONOMODEMOrgOfonoNetworkRegistrationProxy *proxy = OFONO_MODEM_ORG_OFONO_NETWORK_REGISTRATION_PROXY (_proxy);
+ guint n;
+ const gchar *key;
+ GVariantIter *iter;
+ _ExtendedGDBusPropertyInfo *info;
+ g_variant_get (changed_properties, "a{sv}", &iter);
+ while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
+ {
+ info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_ofono_modem_org_ofono_network_registration_interface_info.parent_struct, key);
+ g_datalist_remove_data (&proxy->priv->qdata, key);
+ if (info != NULL)
+ g_object_notify (G_OBJECT (proxy), info->hyphen_name);
+ }
+ g_variant_iter_free (iter);
+ for (n = 0; invalidated_properties[n] != NULL; n++)
+ {
+ info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_ofono_modem_org_ofono_network_registration_interface_info.parent_struct, invalidated_properties[n]);
+ g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
+ if (info != NULL)
+ g_object_notify (G_OBJECT (proxy), info->hyphen_name);
+ }
+}
+
+static void
+ofono_modem_org_ofono_network_registration_proxy_init (OFONOMODEMOrgOfonoNetworkRegistrationProxy *proxy)
+{
+#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
+ proxy->priv = ofono_modem_org_ofono_network_registration_proxy_get_instance_private (proxy);
+#else
+ proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION_PROXY, OFONOMODEMOrgOfonoNetworkRegistrationProxyPrivate);
+#endif
+
+ g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), ofono_modem_org_ofono_network_registration_interface_info ());
+}
+
+static void
+ofono_modem_org_ofono_network_registration_proxy_class_init (OFONOMODEMOrgOfonoNetworkRegistrationProxyClass *klass)
+{
+ GObjectClass *gobject_class;
+ GDBusProxyClass *proxy_class;
+
+ gobject_class = G_OBJECT_CLASS (klass);
+ gobject_class->finalize = ofono_modem_org_ofono_network_registration_proxy_finalize;
+ gobject_class->get_property = ofono_modem_org_ofono_network_registration_proxy_get_property;
+ gobject_class->set_property = ofono_modem_org_ofono_network_registration_proxy_set_property;
+
+ proxy_class = G_DBUS_PROXY_CLASS (klass);
+ proxy_class->g_signal = ofono_modem_org_ofono_network_registration_proxy_g_signal;
+ proxy_class->g_properties_changed = ofono_modem_org_ofono_network_registration_proxy_g_properties_changed;
+
+#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
+ g_type_class_add_private (klass, sizeof (OFONOMODEMOrgOfonoNetworkRegistrationProxyPrivate));
+#endif
+}
+
+static void
+ofono_modem_org_ofono_network_registration_proxy_iface_init (OFONOMODEMOrgOfonoNetworkRegistrationIface *iface)
+{
+}
+
+/**
+ * ofono_modem_org_ofono_network_registration_proxy_new:
+ * @connection: A #GDBusConnection.
+ * @flags: Flags from the #GDBusProxyFlags enumeration.
+ * @name: (allow-none): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
+ * @object_path: An object path.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
+ * @user_data: User data to pass to @callback.
+ *
+ * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-ofono-NetworkRegistration.top_of_page">org.ofono.NetworkRegistration</link>. See g_dbus_proxy_new() for more details.
+ *
+ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
+ * You can then call ofono_modem_org_ofono_network_registration_proxy_new_finish() to get the result of the operation.
+ *
+ * See ofono_modem_org_ofono_network_registration_proxy_new_sync() for the synchronous, blocking version of this constructor.
+ */
+void
+ofono_modem_org_ofono_network_registration_proxy_new (
+ GDBusConnection *connection,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_async_initable_new_async (OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.ofono.NetworkRegistration", NULL);
+}
+
+/**
+ * ofono_modem_org_ofono_network_registration_proxy_new_finish:
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_modem_org_ofono_network_registration_proxy_new().
+ * @error: Return location for error or %NULL
+ *
+ * Finishes an operation started with ofono_modem_org_ofono_network_registration_proxy_new().
+ *
+ * Returns: (transfer full) (type OFONOMODEMOrgOfonoNetworkRegistrationProxy): The constructed proxy object or %NULL if @error is set.
+ */
+OFONOMODEMOrgOfonoNetworkRegistration *
+ofono_modem_org_ofono_network_registration_proxy_new_finish (
+ GAsyncResult *res,
+ GError **error)
+{
+ GObject *ret;
+ GObject *source_object;
+ source_object = g_async_result_get_source_object (res);
+ ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
+ g_object_unref (source_object);
+ if (ret != NULL)
+ return OFONO_MODEM_ORG_OFONO_NETWORK_REGISTRATION (ret);
+ else
+ return NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_network_registration_proxy_new_sync:
+ * @connection: A #GDBusConnection.
+ * @flags: Flags from the #GDBusProxyFlags enumeration.
+ * @name: (allow-none): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
+ * @object_path: An object path.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL
+ *
+ * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-ofono-NetworkRegistration.top_of_page">org.ofono.NetworkRegistration</link>. See g_dbus_proxy_new_sync() for more details.
+ *
+ * The calling thread is blocked until a reply is received.
+ *
+ * See ofono_modem_org_ofono_network_registration_proxy_new() for the asynchronous version of this constructor.
+ *
+ * Returns: (transfer full) (type OFONOMODEMOrgOfonoNetworkRegistrationProxy): The constructed proxy object or %NULL if @error is set.
+ */
+OFONOMODEMOrgOfonoNetworkRegistration *
+ofono_modem_org_ofono_network_registration_proxy_new_sync (
+ GDBusConnection *connection,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GInitable *ret;
+ ret = g_initable_new (OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.ofono.NetworkRegistration", NULL);
+ if (ret != NULL)
+ return OFONO_MODEM_ORG_OFONO_NETWORK_REGISTRATION (ret);
+ else
+ return NULL;
+}
+
+
+/**
+ * ofono_modem_org_ofono_network_registration_proxy_new_for_bus:
+ * @bus_type: A #GBusType.
+ * @flags: Flags from the #GDBusProxyFlags enumeration.
+ * @name: A bus name (well-known or unique).
+ * @object_path: An object path.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
+ * @user_data: User data to pass to @callback.
+ *
+ * Like ofono_modem_org_ofono_network_registration_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
+ *
+ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
+ * You can then call ofono_modem_org_ofono_network_registration_proxy_new_for_bus_finish() to get the result of the operation.
+ *
+ * See ofono_modem_org_ofono_network_registration_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
+ */
+void
+ofono_modem_org_ofono_network_registration_proxy_new_for_bus (
+ GBusType bus_type,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_async_initable_new_async (OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.ofono.NetworkRegistration", NULL);
+}
+
+/**
+ * ofono_modem_org_ofono_network_registration_proxy_new_for_bus_finish:
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_modem_org_ofono_network_registration_proxy_new_for_bus().
+ * @error: Return location for error or %NULL
+ *
+ * Finishes an operation started with ofono_modem_org_ofono_network_registration_proxy_new_for_bus().
+ *
+ * Returns: (transfer full) (type OFONOMODEMOrgOfonoNetworkRegistrationProxy): The constructed proxy object or %NULL if @error is set.
+ */
+OFONOMODEMOrgOfonoNetworkRegistration *
+ofono_modem_org_ofono_network_registration_proxy_new_for_bus_finish (
+ GAsyncResult *res,
+ GError **error)
+{
+ GObject *ret;
+ GObject *source_object;
+ source_object = g_async_result_get_source_object (res);
+ ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
+ g_object_unref (source_object);
+ if (ret != NULL)
+ return OFONO_MODEM_ORG_OFONO_NETWORK_REGISTRATION (ret);
+ else
+ return NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_network_registration_proxy_new_for_bus_sync:
+ * @bus_type: A #GBusType.
+ * @flags: Flags from the #GDBusProxyFlags enumeration.
+ * @name: A bus name (well-known or unique).
+ * @object_path: An object path.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL
+ *
+ * Like ofono_modem_org_ofono_network_registration_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
+ *
+ * The calling thread is blocked until a reply is received.
+ *
+ * See ofono_modem_org_ofono_network_registration_proxy_new_for_bus() for the asynchronous version of this constructor.
+ *
+ * Returns: (transfer full) (type OFONOMODEMOrgOfonoNetworkRegistrationProxy): The constructed proxy object or %NULL if @error is set.
+ */
+OFONOMODEMOrgOfonoNetworkRegistration *
+ofono_modem_org_ofono_network_registration_proxy_new_for_bus_sync (
+ GBusType bus_type,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GInitable *ret;
+ ret = g_initable_new (OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.ofono.NetworkRegistration", NULL);
+ if (ret != NULL)
+ return OFONO_MODEM_ORG_OFONO_NETWORK_REGISTRATION (ret);
+ else
+ return NULL;
+}
+
+
+/* ------------------------------------------------------------------------ */
+
+/**
+ * OFONOMODEMOrgOfonoNetworkRegistrationSkeleton:
+ *
+ * The #OFONOMODEMOrgOfonoNetworkRegistrationSkeleton structure contains only private data and should only be accessed using the provided API.
+ */
+
+/**
+ * OFONOMODEMOrgOfonoNetworkRegistrationSkeletonClass:
+ * @parent_class: The parent class.
+ *
+ * Class structure for #OFONOMODEMOrgOfonoNetworkRegistrationSkeleton.
+ */
+
+struct _OFONOMODEMOrgOfonoNetworkRegistrationSkeletonPrivate
+{
+ GValue *properties;
+ GList *changed_properties;
+ GSource *changed_properties_idle_source;
+ GMainContext *context;
+ GMutex lock;
+};
+
+static void
+_ofono_modem_org_ofono_network_registration_skeleton_handle_method_call (
+ GDBusConnection *connection G_GNUC_UNUSED,
+ const gchar *sender G_GNUC_UNUSED,
+ const gchar *object_path G_GNUC_UNUSED,
+ const gchar *interface_name,
+ const gchar *method_name,
+ GVariant *parameters,
+ GDBusMethodInvocation *invocation,
+ gpointer user_data)
+{
+ OFONOMODEMOrgOfonoNetworkRegistrationSkeleton *skeleton = OFONO_MODEM_ORG_OFONO_NETWORK_REGISTRATION_SKELETON (user_data);
+ _ExtendedGDBusMethodInfo *info;
+ GVariantIter iter;
+ GVariant *child;
+ GValue *paramv;
+ guint num_params;
+ guint num_extra;
+ guint n;
+ guint signal_id;
+ GValue return_value = G_VALUE_INIT;
+ info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
+ g_assert (info != NULL);
+ num_params = g_variant_n_children (parameters);
+ num_extra = info->pass_fdlist ? 3 : 2; paramv = g_new0 (GValue, num_params + num_extra);
+ n = 0;
+ g_value_init (&paramv[n], OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION);
+ g_value_set_object (&paramv[n++], skeleton);
+ g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
+ g_value_set_object (&paramv[n++], invocation);
+ if (info->pass_fdlist)
+ {
+#ifdef G_OS_UNIX
+ g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
+ g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
+#else
+ g_assert_not_reached ();
+#endif
+ }
+ g_variant_iter_init (&iter, parameters);
+ while ((child = g_variant_iter_next_value (&iter)) != NULL)
+ {
+ _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
+ if (arg_info->use_gvariant)
+ {
+ g_value_init (&paramv[n], G_TYPE_VARIANT);
+ g_value_set_variant (&paramv[n], child);
+ n++;
+ }
+ else
+ g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
+ g_variant_unref (child);
+ }
+ signal_id = g_signal_lookup (info->signal_name, OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION);
+ g_value_init (&return_value, G_TYPE_BOOLEAN);
+ g_signal_emitv (paramv, signal_id, 0, &return_value);
+ if (!g_value_get_boolean (&return_value))
+ g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD, "Method %s is not implemented on interface %s", method_name, interface_name);
+ g_value_unset (&return_value);
+ for (n = 0; n < num_params + num_extra; n++)
+ g_value_unset (&paramv[n]);
+ g_free (paramv);
+}
+
+static GVariant *
+_ofono_modem_org_ofono_network_registration_skeleton_handle_get_property (
+ GDBusConnection *connection G_GNUC_UNUSED,
+ const gchar *sender G_GNUC_UNUSED,
+ const gchar *object_path G_GNUC_UNUSED,
+ const gchar *interface_name G_GNUC_UNUSED,
+ const gchar *property_name,
+ GError **error,
+ gpointer user_data)
+{
+ OFONOMODEMOrgOfonoNetworkRegistrationSkeleton *skeleton = OFONO_MODEM_ORG_OFONO_NETWORK_REGISTRATION_SKELETON (user_data);
+ GValue value = G_VALUE_INIT;
+ GParamSpec *pspec;
+ _ExtendedGDBusPropertyInfo *info;
+ GVariant *ret;
+ ret = NULL;
+ info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_ofono_modem_org_ofono_network_registration_interface_info.parent_struct, property_name);
+ g_assert (info != NULL);
+ pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
+ if (pspec == NULL)
+ {
+ g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
+ }
+ else
+ {
+ g_value_init (&value, pspec->value_type);
+ g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
+ ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
+ g_value_unset (&value);
+ }
+ return ret;
+}
+
+static gboolean
+_ofono_modem_org_ofono_network_registration_skeleton_handle_set_property (
+ GDBusConnection *connection G_GNUC_UNUSED,
+ const gchar *sender G_GNUC_UNUSED,
+ const gchar *object_path G_GNUC_UNUSED,
+ const gchar *interface_name G_GNUC_UNUSED,
+ const gchar *property_name,
+ GVariant *variant,
+ GError **error,
+ gpointer user_data)
+{
+ OFONOMODEMOrgOfonoNetworkRegistrationSkeleton *skeleton = OFONO_MODEM_ORG_OFONO_NETWORK_REGISTRATION_SKELETON (user_data);
+ GValue value = G_VALUE_INIT;
+ GParamSpec *pspec;
+ _ExtendedGDBusPropertyInfo *info;
+ gboolean ret;
+ ret = FALSE;
+ info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_ofono_modem_org_ofono_network_registration_interface_info.parent_struct, property_name);
+ g_assert (info != NULL);
+ pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
+ if (pspec == NULL)
+ {
+ g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
+ }
+ else
+ {
+ if (info->use_gvariant)
+ g_value_set_variant (&value, variant);
+ else
+ g_dbus_gvariant_to_gvalue (variant, &value);
+ g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
+ g_value_unset (&value);
+ ret = TRUE;
+ }
+ return ret;
+}
+
+static const GDBusInterfaceVTable _ofono_modem_org_ofono_network_registration_skeleton_vtable =
+{
+ _ofono_modem_org_ofono_network_registration_skeleton_handle_method_call,
+ _ofono_modem_org_ofono_network_registration_skeleton_handle_get_property,
+ _ofono_modem_org_ofono_network_registration_skeleton_handle_set_property,
+ {NULL}
+};
+
+static GDBusInterfaceInfo *
+ofono_modem_org_ofono_network_registration_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
+{
+ return ofono_modem_org_ofono_network_registration_interface_info ();
+}
+
+static GDBusInterfaceVTable *
+ofono_modem_org_ofono_network_registration_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
+{
+ return (GDBusInterfaceVTable *) &_ofono_modem_org_ofono_network_registration_skeleton_vtable;
+}
+
+static GVariant *
+ofono_modem_org_ofono_network_registration_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
+{
+ OFONOMODEMOrgOfonoNetworkRegistrationSkeleton *skeleton = OFONO_MODEM_ORG_OFONO_NETWORK_REGISTRATION_SKELETON (_skeleton);
+
+ GVariantBuilder builder;
+ guint n;
+ g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}"));
+ if (_ofono_modem_org_ofono_network_registration_interface_info.parent_struct.properties == NULL)
+ goto out;
+ for (n = 0; _ofono_modem_org_ofono_network_registration_interface_info.parent_struct.properties[n] != NULL; n++)
+ {
+ GDBusPropertyInfo *info = _ofono_modem_org_ofono_network_registration_interface_info.parent_struct.properties[n];
+ if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
+ {
+ GVariant *value;
+ value = _ofono_modem_org_ofono_network_registration_skeleton_handle_get_property (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)), NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.ofono.NetworkRegistration", info->name, NULL, skeleton);
+ if (value != NULL)
+ {
+ g_variant_take_ref (value);
+ g_variant_builder_add (&builder, "{sv}", info->name, value);
+ g_variant_unref (value);
+ }
+ }
+ }
+out:
+ return g_variant_builder_end (&builder);
+}
+
+static void
+ofono_modem_org_ofono_network_registration_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton)
+{
+}
+
+static void
+_ofono_modem_org_ofono_network_registration_on_signal_property_changed (
+ OFONOMODEMOrgOfonoNetworkRegistration *object,
+ const gchar *arg_name,
+ GVariant *arg_value)
+{
+ OFONOMODEMOrgOfonoNetworkRegistrationSkeleton *skeleton = OFONO_MODEM_ORG_OFONO_NETWORK_REGISTRATION_SKELETON (object);
+
+ GList *connections, *l;
+ GVariant *signal_variant;
+ connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
+
+ signal_variant = g_variant_ref_sink (g_variant_new ("(s@v)",
+ arg_name,
+ arg_value));
+ for (l = connections; l != NULL; l = l->next)
+ {
+ GDBusConnection *connection = l->data;
+ g_dbus_connection_emit_signal (connection,
+ NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.ofono.NetworkRegistration", "PropertyChanged",
+ signal_variant, NULL);
+ }
+ g_variant_unref (signal_variant);
+ g_list_free_full (connections, g_object_unref);
+}
+
+static void ofono_modem_org_ofono_network_registration_skeleton_iface_init (OFONOMODEMOrgOfonoNetworkRegistrationIface *iface);
+#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
+G_DEFINE_TYPE_WITH_CODE (OFONOMODEMOrgOfonoNetworkRegistrationSkeleton, ofono_modem_org_ofono_network_registration_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
+ G_ADD_PRIVATE (OFONOMODEMOrgOfonoNetworkRegistrationSkeleton)
+ G_IMPLEMENT_INTERFACE (OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION, ofono_modem_org_ofono_network_registration_skeleton_iface_init));
+
+#else
+G_DEFINE_TYPE_WITH_CODE (OFONOMODEMOrgOfonoNetworkRegistrationSkeleton, ofono_modem_org_ofono_network_registration_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
+ G_IMPLEMENT_INTERFACE (OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION, ofono_modem_org_ofono_network_registration_skeleton_iface_init));
+
+#endif
+static void
+ofono_modem_org_ofono_network_registration_skeleton_finalize (GObject *object)
+{
+ OFONOMODEMOrgOfonoNetworkRegistrationSkeleton *skeleton = OFONO_MODEM_ORG_OFONO_NETWORK_REGISTRATION_SKELETON (object);
+ g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
+ if (skeleton->priv->changed_properties_idle_source != NULL)
+ g_source_destroy (skeleton->priv->changed_properties_idle_source);
+ g_main_context_unref (skeleton->priv->context);
+ g_mutex_clear (&skeleton->priv->lock);
+ G_OBJECT_CLASS (ofono_modem_org_ofono_network_registration_skeleton_parent_class)->finalize (object);
+}
+
+static void
+ofono_modem_org_ofono_network_registration_skeleton_init (OFONOMODEMOrgOfonoNetworkRegistrationSkeleton *skeleton)
+{
+#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
+ skeleton->priv = ofono_modem_org_ofono_network_registration_skeleton_get_instance_private (skeleton);
+#else
+ skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION_SKELETON, OFONOMODEMOrgOfonoNetworkRegistrationSkeletonPrivate);
+#endif
+
+ g_mutex_init (&skeleton->priv->lock);
+ skeleton->priv->context = g_main_context_ref_thread_default ();
+}
+
+static void
+ofono_modem_org_ofono_network_registration_skeleton_class_init (OFONOMODEMOrgOfonoNetworkRegistrationSkeletonClass *klass)
+{
+ GObjectClass *gobject_class;
+ GDBusInterfaceSkeletonClass *skeleton_class;
+
+ gobject_class = G_OBJECT_CLASS (klass);
+ gobject_class->finalize = ofono_modem_org_ofono_network_registration_skeleton_finalize;
+
+ skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
+ skeleton_class->get_info = ofono_modem_org_ofono_network_registration_skeleton_dbus_interface_get_info;
+ skeleton_class->get_properties = ofono_modem_org_ofono_network_registration_skeleton_dbus_interface_get_properties;
+ skeleton_class->flush = ofono_modem_org_ofono_network_registration_skeleton_dbus_interface_flush;
+ skeleton_class->get_vtable = ofono_modem_org_ofono_network_registration_skeleton_dbus_interface_get_vtable;
+
+#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
+ g_type_class_add_private (klass, sizeof (OFONOMODEMOrgOfonoNetworkRegistrationSkeletonPrivate));
+#endif
+}
+
+static void
+ofono_modem_org_ofono_network_registration_skeleton_iface_init (OFONOMODEMOrgOfonoNetworkRegistrationIface *iface)
+{
+ iface->property_changed = _ofono_modem_org_ofono_network_registration_on_signal_property_changed;
+}
+
+/**
+ * ofono_modem_org_ofono_network_registration_skeleton_new:
+ *
+ * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-ofono-NetworkRegistration.top_of_page">org.ofono.NetworkRegistration</link>.
+ *
+ * Returns: (transfer full) (type OFONOMODEMOrgOfonoNetworkRegistrationSkeleton): The skeleton object.
+ */
+OFONOMODEMOrgOfonoNetworkRegistration *
+ofono_modem_org_ofono_network_registration_skeleton_new (void)
+{
+ return OFONO_MODEM_ORG_OFONO_NETWORK_REGISTRATION (g_object_new (OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION_SKELETON, NULL));
+}
+
+/* ------------------------------------------------------------------------
+ * Code for interface org.ofono.Handsfree
+ * ------------------------------------------------------------------------
+ */
+
+/**
+ * SECTION:OFONOMODEMOrgOfonoHandsfree
+ * @title: OFONOMODEMOrgOfonoHandsfree
+ * @short_description: Generated C code for the org.ofono.Handsfree D-Bus interface
+ *
+ * This section contains code for working with the <link linkend="gdbus-interface-org-ofono-Handsfree.top_of_page">org.ofono.Handsfree</link> D-Bus interface in C.
+ */
+
+/* ---- Introspection data for org.ofono.Handsfree ---- */
+
+static const _ExtendedGDBusArgInfo _ofono_modem_org_ofono_handsfree_method_info_get_properties_OUT_ARG_properties =
+{
+ {
+ -1,
+ (gchar *) "properties",
+ (gchar *) "a{sv}",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo * const _ofono_modem_org_ofono_handsfree_method_info_get_properties_OUT_ARG_pointers[] =
+{
+ &_ofono_modem_org_ofono_handsfree_method_info_get_properties_OUT_ARG_properties,
+ NULL
+};
+
+static const _ExtendedGDBusMethodInfo _ofono_modem_org_ofono_handsfree_method_info_get_properties =
+{
+ {
+ -1,
+ (gchar *) "GetProperties",
+ NULL,
+ (GDBusArgInfo **) &_ofono_modem_org_ofono_handsfree_method_info_get_properties_OUT_ARG_pointers,
+ NULL
+ },
+ "handle-get-properties",
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo _ofono_modem_org_ofono_handsfree_method_info_set_property_IN_ARG_property =
+{
+ {
+ -1,
+ (gchar *) "property",
+ (gchar *) "s",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo _ofono_modem_org_ofono_handsfree_method_info_set_property_IN_ARG_value =
+{
+ {
+ -1,
+ (gchar *) "value",
+ (gchar *) "v",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo * const _ofono_modem_org_ofono_handsfree_method_info_set_property_IN_ARG_pointers[] =
+{
+ &_ofono_modem_org_ofono_handsfree_method_info_set_property_IN_ARG_property,
+ &_ofono_modem_org_ofono_handsfree_method_info_set_property_IN_ARG_value,
+ NULL
+};
+
+static const _ExtendedGDBusMethodInfo _ofono_modem_org_ofono_handsfree_method_info_set_property =
+{
+ {
+ -1,
+ (gchar *) "SetProperty",
+ (GDBusArgInfo **) &_ofono_modem_org_ofono_handsfree_method_info_set_property_IN_ARG_pointers,
+ NULL,
+ NULL
+ },
+ "handle-set-property",
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo _ofono_modem_org_ofono_handsfree_method_info_request_phone_number_OUT_ARG_number =
+{
+ {
+ -1,
+ (gchar *) "number",
+ (gchar *) "s",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo * const _ofono_modem_org_ofono_handsfree_method_info_request_phone_number_OUT_ARG_pointers[] =
+{
+ &_ofono_modem_org_ofono_handsfree_method_info_request_phone_number_OUT_ARG_number,
+ NULL
+};
+
+static const _ExtendedGDBusMethodInfo _ofono_modem_org_ofono_handsfree_method_info_request_phone_number =
+{
+ {
+ -1,
+ (gchar *) "RequestPhoneNumber",
+ NULL,
+ (GDBusArgInfo **) &_ofono_modem_org_ofono_handsfree_method_info_request_phone_number_OUT_ARG_pointers,
+ NULL
+ },
+ "handle-request-phone-number",
+ FALSE
+};
+
+static const _ExtendedGDBusMethodInfo * const _ofono_modem_org_ofono_handsfree_method_info_pointers[] =
+{
+ &_ofono_modem_org_ofono_handsfree_method_info_get_properties,
+ &_ofono_modem_org_ofono_handsfree_method_info_set_property,
+ &_ofono_modem_org_ofono_handsfree_method_info_request_phone_number,
+ NULL
+};
+
+static const _ExtendedGDBusArgInfo _ofono_modem_org_ofono_handsfree_signal_info_property_changed_ARG_name =
+{
+ {
+ -1,
+ (gchar *) "name",
+ (gchar *) "s",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo _ofono_modem_org_ofono_handsfree_signal_info_property_changed_ARG_value =
+{
+ {
+ -1,
+ (gchar *) "value",
+ (gchar *) "v",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo * const _ofono_modem_org_ofono_handsfree_signal_info_property_changed_ARG_pointers[] =
+{
+ &_ofono_modem_org_ofono_handsfree_signal_info_property_changed_ARG_name,
+ &_ofono_modem_org_ofono_handsfree_signal_info_property_changed_ARG_value,
+ NULL
+};
+
+static const _ExtendedGDBusSignalInfo _ofono_modem_org_ofono_handsfree_signal_info_property_changed =
+{
+ {
+ -1,
+ (gchar *) "PropertyChanged",
+ (GDBusArgInfo **) &_ofono_modem_org_ofono_handsfree_signal_info_property_changed_ARG_pointers,
+ NULL
+ },
+ "property-changed"
+};
+
+static const _ExtendedGDBusSignalInfo * const _ofono_modem_org_ofono_handsfree_signal_info_pointers[] =
+{
+ &_ofono_modem_org_ofono_handsfree_signal_info_property_changed,
+ NULL
+};
+
+static const _ExtendedGDBusInterfaceInfo _ofono_modem_org_ofono_handsfree_interface_info =
+{
+ {
+ -1,
+ (gchar *) "org.ofono.Handsfree",
+ (GDBusMethodInfo **) &_ofono_modem_org_ofono_handsfree_method_info_pointers,
+ (GDBusSignalInfo **) &_ofono_modem_org_ofono_handsfree_signal_info_pointers,
+ NULL,
+ NULL
+ },
+ "org-ofono-handsfree",
+};
+
+
+/**
+ * ofono_modem_org_ofono_handsfree_interface_info:
+ *
+ * Gets a machine-readable description of the <link linkend="gdbus-interface-org-ofono-Handsfree.top_of_page">org.ofono.Handsfree</link> D-Bus interface.
+ *
+ * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
+ */
+GDBusInterfaceInfo *
+ofono_modem_org_ofono_handsfree_interface_info (void)
+{
+ return (GDBusInterfaceInfo *) &_ofono_modem_org_ofono_handsfree_interface_info.parent_struct;
+}
+
+/**
+ * ofono_modem_org_ofono_handsfree_override_properties:
+ * @klass: The class structure for a #GObject<!-- -->-derived class.
+ * @property_id_begin: The property id to assign to the first overridden property.
+ *
+ * Overrides all #GObject properties in the #OFONOMODEMOrgOfonoHandsfree interface for a concrete class.
+ * The properties are overridden in the order they are defined.
+ *
+ * Returns: The last property id.
+ */
+guint
+ofono_modem_org_ofono_handsfree_override_properties (GObjectClass *klass, guint property_id_begin)
+{
+ return property_id_begin - 1;
+}
+
+
+
+/**
+ * OFONOMODEMOrgOfonoHandsfree:
+ *
+ * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-ofono-Handsfree.top_of_page">org.ofono.Handsfree</link>.
+ */
+
+/**
+ * OFONOMODEMOrgOfonoHandsfreeIface:
+ * @parent_iface: The parent interface.
+ * @handle_get_properties: Handler for the #OFONOMODEMOrgOfonoHandsfree::handle-get-properties signal.
+ * @handle_request_phone_number: Handler for the #OFONOMODEMOrgOfonoHandsfree::handle-request-phone-number signal.
+ * @handle_set_property: Handler for the #OFONOMODEMOrgOfonoHandsfree::handle-set-property signal.
+ * @property_changed: Handler for the #OFONOMODEMOrgOfonoHandsfree::property-changed signal.
+ *
+ * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-ofono-Handsfree.top_of_page">org.ofono.Handsfree</link>.
+ */
+
+typedef OFONOMODEMOrgOfonoHandsfreeIface OFONOMODEMOrgOfonoHandsfreeInterface;
+G_DEFINE_INTERFACE (OFONOMODEMOrgOfonoHandsfree, ofono_modem_org_ofono_handsfree, G_TYPE_OBJECT);
+
+static void
+ofono_modem_org_ofono_handsfree_default_init (OFONOMODEMOrgOfonoHandsfreeIface *iface)
+{
+ /* GObject signals for incoming D-Bus method calls: */
+ /**
+ * OFONOMODEMOrgOfonoHandsfree::handle-get-properties:
+ * @object: A #OFONOMODEMOrgOfonoHandsfree.
+ * @invocation: A #GDBusMethodInvocation.
+ *
+ * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-ofono-Handsfree.GetProperties">GetProperties()</link> D-Bus method.
+ *
+ * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call ofono_modem_org_ofono_handsfree_complete_get_properties() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
+ *
+ * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
+ */
+ g_signal_new ("handle-get-properties",
+ G_TYPE_FROM_INTERFACE (iface),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (OFONOMODEMOrgOfonoHandsfreeIface, handle_get_properties),
+ g_signal_accumulator_true_handled,
+ NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_BOOLEAN,
+ 1,
+ G_TYPE_DBUS_METHOD_INVOCATION);
+
+ /**
+ * OFONOMODEMOrgOfonoHandsfree::handle-set-property:
+ * @object: A #OFONOMODEMOrgOfonoHandsfree.
+ * @invocation: A #GDBusMethodInvocation.
+ * @arg_property: Argument passed by remote caller.
+ * @arg_value: Argument passed by remote caller.
+ *
+ * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-ofono-Handsfree.SetProperty">SetProperty()</link> D-Bus method.
+ *
+ * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call ofono_modem_org_ofono_handsfree_complete_set_property() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
+ *
+ * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
+ */
+ g_signal_new ("handle-set-property",
+ G_TYPE_FROM_INTERFACE (iface),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (OFONOMODEMOrgOfonoHandsfreeIface, handle_set_property),
+ g_signal_accumulator_true_handled,
+ NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_BOOLEAN,
+ 3,
+ G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING, G_TYPE_VARIANT);
+
+ /**
+ * OFONOMODEMOrgOfonoHandsfree::handle-request-phone-number:
+ * @object: A #OFONOMODEMOrgOfonoHandsfree.
+ * @invocation: A #GDBusMethodInvocation.
+ *
+ * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-ofono-Handsfree.RequestPhoneNumber">RequestPhoneNumber()</link> D-Bus method.
+ *
+ * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call ofono_modem_org_ofono_handsfree_complete_request_phone_number() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
+ *
+ * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
+ */
+ g_signal_new ("handle-request-phone-number",
+ G_TYPE_FROM_INTERFACE (iface),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (OFONOMODEMOrgOfonoHandsfreeIface, handle_request_phone_number),
+ g_signal_accumulator_true_handled,
+ NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_BOOLEAN,
+ 1,
+ G_TYPE_DBUS_METHOD_INVOCATION);
+
+ /* GObject signals for received D-Bus signals: */
+ /**
+ * OFONOMODEMOrgOfonoHandsfree::property-changed:
+ * @object: A #OFONOMODEMOrgOfonoHandsfree.
+ * @arg_name: Argument.
+ * @arg_value: Argument.
+ *
+ * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-ofono-Handsfree.PropertyChanged">"PropertyChanged"</link> is received.
+ *
+ * On the service-side, this signal can be used with e.g. g_signal_emit_by_name() to make the object emit the D-Bus signal.
+ */
+ g_signal_new ("property-changed",
+ G_TYPE_FROM_INTERFACE (iface),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (OFONOMODEMOrgOfonoHandsfreeIface, property_changed),
+ NULL,
+ NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_NONE,
+ 2, G_TYPE_STRING, G_TYPE_VARIANT);
+
+}
+
+/**
+ * ofono_modem_org_ofono_handsfree_emit_property_changed:
+ * @object: A #OFONOMODEMOrgOfonoHandsfree.
+ * @arg_name: Argument to pass with the signal.
+ * @arg_value: Argument to pass with the signal.
+ *
+ * Emits the <link linkend="gdbus-signal-org-ofono-Handsfree.PropertyChanged">"PropertyChanged"</link> D-Bus signal.
+ */
+void
+ofono_modem_org_ofono_handsfree_emit_property_changed (
+ OFONOMODEMOrgOfonoHandsfree *object,
+ const gchar *arg_name,
+ GVariant *arg_value)
+{
+ g_signal_emit_by_name (object, "property-changed", arg_name, arg_value);
+}
+
+/**
+ * ofono_modem_org_ofono_handsfree_call_get_properties:
+ * @proxy: A #OFONOMODEMOrgOfonoHandsfreeProxy.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
+ * @user_data: User data to pass to @callback.
+ *
+ * Asynchronously invokes the <link linkend="gdbus-method-org-ofono-Handsfree.GetProperties">GetProperties()</link> D-Bus method on @proxy.
+ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
+ * You can then call ofono_modem_org_ofono_handsfree_call_get_properties_finish() to get the result of the operation.
+ *
+ * See ofono_modem_org_ofono_handsfree_call_get_properties_sync() for the synchronous, blocking version of this method.
+ */
+void
+ofono_modem_org_ofono_handsfree_call_get_properties (
+ OFONOMODEMOrgOfonoHandsfree *proxy,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_dbus_proxy_call (G_DBUS_PROXY (proxy),
+ "GetProperties",
+ g_variant_new ("()"),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ callback,
+ user_data);
+}
+
+/**
+ * ofono_modem_org_ofono_handsfree_call_get_properties_finish:
+ * @proxy: A #OFONOMODEMOrgOfonoHandsfreeProxy.
+ * @out_properties: (out): Return location for return parameter or %NULL to ignore.
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_modem_org_ofono_handsfree_call_get_properties().
+ * @error: Return location for error or %NULL.
+ *
+ * Finishes an operation started with ofono_modem_org_ofono_handsfree_call_get_properties().
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_handsfree_call_get_properties_finish (
+ OFONOMODEMOrgOfonoHandsfree *proxy,
+ GVariant **out_properties,
+ GAsyncResult *res,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "(@a{sv})",
+ out_properties);
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_handsfree_call_get_properties_sync:
+ * @proxy: A #OFONOMODEMOrgOfonoHandsfreeProxy.
+ * @out_properties: (out): Return location for return parameter or %NULL to ignore.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL.
+ *
+ * Synchronously invokes the <link linkend="gdbus-method-org-ofono-Handsfree.GetProperties">GetProperties()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ *
+ * See ofono_modem_org_ofono_handsfree_call_get_properties() for the asynchronous version of this method.
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_handsfree_call_get_properties_sync (
+ OFONOMODEMOrgOfonoHandsfree *proxy,
+ GVariant **out_properties,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
+ "GetProperties",
+ g_variant_new ("()"),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "(@a{sv})",
+ out_properties);
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_handsfree_call_set_property:
+ * @proxy: A #OFONOMODEMOrgOfonoHandsfreeProxy.
+ * @arg_property: Argument to pass with the method invocation.
+ * @arg_value: Argument to pass with the method invocation.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
+ * @user_data: User data to pass to @callback.
+ *
+ * Asynchronously invokes the <link linkend="gdbus-method-org-ofono-Handsfree.SetProperty">SetProperty()</link> D-Bus method on @proxy.
+ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
+ * You can then call ofono_modem_org_ofono_handsfree_call_set_property_finish() to get the result of the operation.
+ *
+ * See ofono_modem_org_ofono_handsfree_call_set_property_sync() for the synchronous, blocking version of this method.
+ */
+void
+ofono_modem_org_ofono_handsfree_call_set_property (
+ OFONOMODEMOrgOfonoHandsfree *proxy,
+ const gchar *arg_property,
+ GVariant *arg_value,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_dbus_proxy_call (G_DBUS_PROXY (proxy),
+ "SetProperty",
+ g_variant_new ("(s@v)",
+ arg_property,
+ arg_value),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ callback,
+ user_data);
+}
+
+/**
+ * ofono_modem_org_ofono_handsfree_call_set_property_finish:
+ * @proxy: A #OFONOMODEMOrgOfonoHandsfreeProxy.
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_modem_org_ofono_handsfree_call_set_property().
+ * @error: Return location for error or %NULL.
+ *
+ * Finishes an operation started with ofono_modem_org_ofono_handsfree_call_set_property().
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_handsfree_call_set_property_finish (
+ OFONOMODEMOrgOfonoHandsfree *proxy,
+ GAsyncResult *res,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "()");
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_handsfree_call_set_property_sync:
+ * @proxy: A #OFONOMODEMOrgOfonoHandsfreeProxy.
+ * @arg_property: Argument to pass with the method invocation.
+ * @arg_value: Argument to pass with the method invocation.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL.
+ *
+ * Synchronously invokes the <link linkend="gdbus-method-org-ofono-Handsfree.SetProperty">SetProperty()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ *
+ * See ofono_modem_org_ofono_handsfree_call_set_property() for the asynchronous version of this method.
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_handsfree_call_set_property_sync (
+ OFONOMODEMOrgOfonoHandsfree *proxy,
+ const gchar *arg_property,
+ GVariant *arg_value,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
+ "SetProperty",
+ g_variant_new ("(s@v)",
+ arg_property,
+ arg_value),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "()");
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_handsfree_call_request_phone_number:
+ * @proxy: A #OFONOMODEMOrgOfonoHandsfreeProxy.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
+ * @user_data: User data to pass to @callback.
+ *
+ * Asynchronously invokes the <link linkend="gdbus-method-org-ofono-Handsfree.RequestPhoneNumber">RequestPhoneNumber()</link> D-Bus method on @proxy.
+ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
+ * You can then call ofono_modem_org_ofono_handsfree_call_request_phone_number_finish() to get the result of the operation.
+ *
+ * See ofono_modem_org_ofono_handsfree_call_request_phone_number_sync() for the synchronous, blocking version of this method.
+ */
+void
+ofono_modem_org_ofono_handsfree_call_request_phone_number (
+ OFONOMODEMOrgOfonoHandsfree *proxy,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_dbus_proxy_call (G_DBUS_PROXY (proxy),
+ "RequestPhoneNumber",
+ g_variant_new ("()"),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ callback,
+ user_data);
+}
+
+/**
+ * ofono_modem_org_ofono_handsfree_call_request_phone_number_finish:
+ * @proxy: A #OFONOMODEMOrgOfonoHandsfreeProxy.
+ * @out_number: (out): Return location for return parameter or %NULL to ignore.
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_modem_org_ofono_handsfree_call_request_phone_number().
+ * @error: Return location for error or %NULL.
+ *
+ * Finishes an operation started with ofono_modem_org_ofono_handsfree_call_request_phone_number().
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_handsfree_call_request_phone_number_finish (
+ OFONOMODEMOrgOfonoHandsfree *proxy,
+ gchar **out_number,
+ GAsyncResult *res,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "(s)",
+ out_number);
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_handsfree_call_request_phone_number_sync:
+ * @proxy: A #OFONOMODEMOrgOfonoHandsfreeProxy.
+ * @out_number: (out): Return location for return parameter or %NULL to ignore.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL.
+ *
+ * Synchronously invokes the <link linkend="gdbus-method-org-ofono-Handsfree.RequestPhoneNumber">RequestPhoneNumber()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ *
+ * See ofono_modem_org_ofono_handsfree_call_request_phone_number() for the asynchronous version of this method.
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_handsfree_call_request_phone_number_sync (
+ OFONOMODEMOrgOfonoHandsfree *proxy,
+ gchar **out_number,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
+ "RequestPhoneNumber",
+ g_variant_new ("()"),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "(s)",
+ out_number);
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_handsfree_complete_get_properties:
+ * @object: A #OFONOMODEMOrgOfonoHandsfree.
+ * @invocation: (transfer full): A #GDBusMethodInvocation.
+ * @properties: Parameter to return.
+ *
+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-ofono-Handsfree.GetProperties">GetProperties()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ *
+ * This method will free @invocation, you cannot use it afterwards.
+ */
+void
+ofono_modem_org_ofono_handsfree_complete_get_properties (
+ OFONOMODEMOrgOfonoHandsfree *object,
+ GDBusMethodInvocation *invocation,
+ GVariant *properties)
+{
+ g_dbus_method_invocation_return_value (invocation,
+ g_variant_new ("(@a{sv})",
+ properties));
+}
+
+/**
+ * ofono_modem_org_ofono_handsfree_complete_set_property:
+ * @object: A #OFONOMODEMOrgOfonoHandsfree.
+ * @invocation: (transfer full): A #GDBusMethodInvocation.
+ *
+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-ofono-Handsfree.SetProperty">SetProperty()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ *
+ * This method will free @invocation, you cannot use it afterwards.
+ */
+void
+ofono_modem_org_ofono_handsfree_complete_set_property (
+ OFONOMODEMOrgOfonoHandsfree *object,
+ GDBusMethodInvocation *invocation)
+{
+ g_dbus_method_invocation_return_value (invocation,
+ g_variant_new ("()"));
+}
+
+/**
+ * ofono_modem_org_ofono_handsfree_complete_request_phone_number:
+ * @object: A #OFONOMODEMOrgOfonoHandsfree.
+ * @invocation: (transfer full): A #GDBusMethodInvocation.
+ * @number: Parameter to return.
+ *
+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-ofono-Handsfree.RequestPhoneNumber">RequestPhoneNumber()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ *
+ * This method will free @invocation, you cannot use it afterwards.
+ */
+void
+ofono_modem_org_ofono_handsfree_complete_request_phone_number (
+ OFONOMODEMOrgOfonoHandsfree *object,
+ GDBusMethodInvocation *invocation,
+ const gchar *number)
+{
+ g_dbus_method_invocation_return_value (invocation,
+ g_variant_new ("(s)",
+ number));
+}
+
+/* ------------------------------------------------------------------------ */
+
+/**
+ * OFONOMODEMOrgOfonoHandsfreeProxy:
+ *
+ * The #OFONOMODEMOrgOfonoHandsfreeProxy structure contains only private data and should only be accessed using the provided API.
+ */
+
+/**
+ * OFONOMODEMOrgOfonoHandsfreeProxyClass:
+ * @parent_class: The parent class.
+ *
+ * Class structure for #OFONOMODEMOrgOfonoHandsfreeProxy.
+ */
+
+struct _OFONOMODEMOrgOfonoHandsfreeProxyPrivate
+{
+ GData *qdata;
+};
+
+static void ofono_modem_org_ofono_handsfree_proxy_iface_init (OFONOMODEMOrgOfonoHandsfreeIface *iface);
+
+#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
+G_DEFINE_TYPE_WITH_CODE (OFONOMODEMOrgOfonoHandsfreeProxy, ofono_modem_org_ofono_handsfree_proxy, G_TYPE_DBUS_PROXY,
+ G_ADD_PRIVATE (OFONOMODEMOrgOfonoHandsfreeProxy)
+ G_IMPLEMENT_INTERFACE (OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE, ofono_modem_org_ofono_handsfree_proxy_iface_init));
+
+#else
+G_DEFINE_TYPE_WITH_CODE (OFONOMODEMOrgOfonoHandsfreeProxy, ofono_modem_org_ofono_handsfree_proxy, G_TYPE_DBUS_PROXY,
+ G_IMPLEMENT_INTERFACE (OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE, ofono_modem_org_ofono_handsfree_proxy_iface_init));
+
+#endif
+static void
+ofono_modem_org_ofono_handsfree_proxy_finalize (GObject *object)
+{
+ OFONOMODEMOrgOfonoHandsfreeProxy *proxy = OFONO_MODEM_ORG_OFONO_HANDSFREE_PROXY (object);
+ g_datalist_clear (&proxy->priv->qdata);
+ G_OBJECT_CLASS (ofono_modem_org_ofono_handsfree_proxy_parent_class)->finalize (object);
+}
+
+static void
+ofono_modem_org_ofono_handsfree_proxy_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec G_GNUC_UNUSED)
+{
+}
+
+static void
+ofono_modem_org_ofono_handsfree_proxy_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec G_GNUC_UNUSED)
+{
+}
+
+static void
+ofono_modem_org_ofono_handsfree_proxy_g_signal (GDBusProxy *proxy,
+ const gchar *sender_name G_GNUC_UNUSED,
+ const gchar *signal_name,
+ GVariant *parameters)
+{
+ _ExtendedGDBusSignalInfo *info;
+ GVariantIter iter;
+ GVariant *child;
+ GValue *paramv;
+ guint num_params;
+ guint n;
+ guint signal_id;
+ info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_ofono_modem_org_ofono_handsfree_interface_info.parent_struct, signal_name);
+ if (info == NULL)
+ return;
+ num_params = g_variant_n_children (parameters);
+ paramv = g_new0 (GValue, num_params + 1);
+ g_value_init (&paramv[0], OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE);
+ g_value_set_object (&paramv[0], proxy);
+ g_variant_iter_init (&iter, parameters);
+ n = 1;
+ while ((child = g_variant_iter_next_value (&iter)) != NULL)
+ {
+ _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
+ if (arg_info->use_gvariant)
+ {
+ g_value_init (&paramv[n], G_TYPE_VARIANT);
+ g_value_set_variant (&paramv[n], child);
+ n++;
+ }
+ else
+ g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
+ g_variant_unref (child);
+ }
+ signal_id = g_signal_lookup (info->signal_name, OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE);
+ g_signal_emitv (paramv, signal_id, 0, NULL);
+ for (n = 0; n < num_params + 1; n++)
+ g_value_unset (&paramv[n]);
+ g_free (paramv);
+}
+
+static void
+ofono_modem_org_ofono_handsfree_proxy_g_properties_changed (GDBusProxy *_proxy,
+ GVariant *changed_properties,
+ const gchar *const *invalidated_properties)
+{
+ OFONOMODEMOrgOfonoHandsfreeProxy *proxy = OFONO_MODEM_ORG_OFONO_HANDSFREE_PROXY (_proxy);
+ guint n;
+ const gchar *key;
+ GVariantIter *iter;
+ _ExtendedGDBusPropertyInfo *info;
+ g_variant_get (changed_properties, "a{sv}", &iter);
+ while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
+ {
+ info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_ofono_modem_org_ofono_handsfree_interface_info.parent_struct, key);
+ g_datalist_remove_data (&proxy->priv->qdata, key);
+ if (info != NULL)
+ g_object_notify (G_OBJECT (proxy), info->hyphen_name);
+ }
+ g_variant_iter_free (iter);
+ for (n = 0; invalidated_properties[n] != NULL; n++)
+ {
+ info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_ofono_modem_org_ofono_handsfree_interface_info.parent_struct, invalidated_properties[n]);
+ g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
+ if (info != NULL)
+ g_object_notify (G_OBJECT (proxy), info->hyphen_name);
+ }
+}
+
+static void
+ofono_modem_org_ofono_handsfree_proxy_init (OFONOMODEMOrgOfonoHandsfreeProxy *proxy)
+{
+#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
+ proxy->priv = ofono_modem_org_ofono_handsfree_proxy_get_instance_private (proxy);
+#else
+ proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE_PROXY, OFONOMODEMOrgOfonoHandsfreeProxyPrivate);
+#endif
+
+ g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), ofono_modem_org_ofono_handsfree_interface_info ());
+}
+
+static void
+ofono_modem_org_ofono_handsfree_proxy_class_init (OFONOMODEMOrgOfonoHandsfreeProxyClass *klass)
+{
+ GObjectClass *gobject_class;
+ GDBusProxyClass *proxy_class;
+
+ gobject_class = G_OBJECT_CLASS (klass);
+ gobject_class->finalize = ofono_modem_org_ofono_handsfree_proxy_finalize;
+ gobject_class->get_property = ofono_modem_org_ofono_handsfree_proxy_get_property;
+ gobject_class->set_property = ofono_modem_org_ofono_handsfree_proxy_set_property;
+
+ proxy_class = G_DBUS_PROXY_CLASS (klass);
+ proxy_class->g_signal = ofono_modem_org_ofono_handsfree_proxy_g_signal;
+ proxy_class->g_properties_changed = ofono_modem_org_ofono_handsfree_proxy_g_properties_changed;
+
+#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
+ g_type_class_add_private (klass, sizeof (OFONOMODEMOrgOfonoHandsfreeProxyPrivate));
+#endif
+}
+
+static void
+ofono_modem_org_ofono_handsfree_proxy_iface_init (OFONOMODEMOrgOfonoHandsfreeIface *iface)
+{
+}
+
+/**
+ * ofono_modem_org_ofono_handsfree_proxy_new:
+ * @connection: A #GDBusConnection.
+ * @flags: Flags from the #GDBusProxyFlags enumeration.
+ * @name: (allow-none): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
+ * @object_path: An object path.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
+ * @user_data: User data to pass to @callback.
+ *
+ * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-ofono-Handsfree.top_of_page">org.ofono.Handsfree</link>. See g_dbus_proxy_new() for more details.
+ *
+ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
+ * You can then call ofono_modem_org_ofono_handsfree_proxy_new_finish() to get the result of the operation.
+ *
+ * See ofono_modem_org_ofono_handsfree_proxy_new_sync() for the synchronous, blocking version of this constructor.
+ */
+void
+ofono_modem_org_ofono_handsfree_proxy_new (
+ GDBusConnection *connection,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_async_initable_new_async (OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.ofono.Handsfree", NULL);
+}
+
+/**
+ * ofono_modem_org_ofono_handsfree_proxy_new_finish:
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_modem_org_ofono_handsfree_proxy_new().
+ * @error: Return location for error or %NULL
+ *
+ * Finishes an operation started with ofono_modem_org_ofono_handsfree_proxy_new().
+ *
+ * Returns: (transfer full) (type OFONOMODEMOrgOfonoHandsfreeProxy): The constructed proxy object or %NULL if @error is set.
+ */
+OFONOMODEMOrgOfonoHandsfree *
+ofono_modem_org_ofono_handsfree_proxy_new_finish (
+ GAsyncResult *res,
+ GError **error)
+{
+ GObject *ret;
+ GObject *source_object;
+ source_object = g_async_result_get_source_object (res);
+ ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
+ g_object_unref (source_object);
+ if (ret != NULL)
+ return OFONO_MODEM_ORG_OFONO_HANDSFREE (ret);
+ else
+ return NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_handsfree_proxy_new_sync:
+ * @connection: A #GDBusConnection.
+ * @flags: Flags from the #GDBusProxyFlags enumeration.
+ * @name: (allow-none): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
+ * @object_path: An object path.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL
+ *
+ * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-ofono-Handsfree.top_of_page">org.ofono.Handsfree</link>. See g_dbus_proxy_new_sync() for more details.
+ *
+ * The calling thread is blocked until a reply is received.
+ *
+ * See ofono_modem_org_ofono_handsfree_proxy_new() for the asynchronous version of this constructor.
+ *
+ * Returns: (transfer full) (type OFONOMODEMOrgOfonoHandsfreeProxy): The constructed proxy object or %NULL if @error is set.
+ */
+OFONOMODEMOrgOfonoHandsfree *
+ofono_modem_org_ofono_handsfree_proxy_new_sync (
+ GDBusConnection *connection,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GInitable *ret;
+ ret = g_initable_new (OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.ofono.Handsfree", NULL);
+ if (ret != NULL)
+ return OFONO_MODEM_ORG_OFONO_HANDSFREE (ret);
+ else
+ return NULL;
+}
+
+
+/**
+ * ofono_modem_org_ofono_handsfree_proxy_new_for_bus:
+ * @bus_type: A #GBusType.
+ * @flags: Flags from the #GDBusProxyFlags enumeration.
+ * @name: A bus name (well-known or unique).
+ * @object_path: An object path.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
+ * @user_data: User data to pass to @callback.
+ *
+ * Like ofono_modem_org_ofono_handsfree_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
+ *
+ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
+ * You can then call ofono_modem_org_ofono_handsfree_proxy_new_for_bus_finish() to get the result of the operation.
+ *
+ * See ofono_modem_org_ofono_handsfree_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
+ */
+void
+ofono_modem_org_ofono_handsfree_proxy_new_for_bus (
+ GBusType bus_type,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_async_initable_new_async (OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.ofono.Handsfree", NULL);
+}
+
+/**
+ * ofono_modem_org_ofono_handsfree_proxy_new_for_bus_finish:
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_modem_org_ofono_handsfree_proxy_new_for_bus().
+ * @error: Return location for error or %NULL
+ *
+ * Finishes an operation started with ofono_modem_org_ofono_handsfree_proxy_new_for_bus().
+ *
+ * Returns: (transfer full) (type OFONOMODEMOrgOfonoHandsfreeProxy): The constructed proxy object or %NULL if @error is set.
+ */
+OFONOMODEMOrgOfonoHandsfree *
+ofono_modem_org_ofono_handsfree_proxy_new_for_bus_finish (
+ GAsyncResult *res,
+ GError **error)
+{
+ GObject *ret;
+ GObject *source_object;
+ source_object = g_async_result_get_source_object (res);
+ ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
+ g_object_unref (source_object);
+ if (ret != NULL)
+ return OFONO_MODEM_ORG_OFONO_HANDSFREE (ret);
+ else
+ return NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_handsfree_proxy_new_for_bus_sync:
+ * @bus_type: A #GBusType.
+ * @flags: Flags from the #GDBusProxyFlags enumeration.
+ * @name: A bus name (well-known or unique).
+ * @object_path: An object path.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL
+ *
+ * Like ofono_modem_org_ofono_handsfree_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
+ *
+ * The calling thread is blocked until a reply is received.
+ *
+ * See ofono_modem_org_ofono_handsfree_proxy_new_for_bus() for the asynchronous version of this constructor.
+ *
+ * Returns: (transfer full) (type OFONOMODEMOrgOfonoHandsfreeProxy): The constructed proxy object or %NULL if @error is set.
+ */
+OFONOMODEMOrgOfonoHandsfree *
+ofono_modem_org_ofono_handsfree_proxy_new_for_bus_sync (
+ GBusType bus_type,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GInitable *ret;
+ ret = g_initable_new (OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.ofono.Handsfree", NULL);
+ if (ret != NULL)
+ return OFONO_MODEM_ORG_OFONO_HANDSFREE (ret);
+ else
+ return NULL;
+}
+
+
+/* ------------------------------------------------------------------------ */
+
+/**
+ * OFONOMODEMOrgOfonoHandsfreeSkeleton:
+ *
+ * The #OFONOMODEMOrgOfonoHandsfreeSkeleton structure contains only private data and should only be accessed using the provided API.
+ */
+
+/**
+ * OFONOMODEMOrgOfonoHandsfreeSkeletonClass:
+ * @parent_class: The parent class.
+ *
+ * Class structure for #OFONOMODEMOrgOfonoHandsfreeSkeleton.
+ */
+
+struct _OFONOMODEMOrgOfonoHandsfreeSkeletonPrivate
+{
+ GValue *properties;
+ GList *changed_properties;
+ GSource *changed_properties_idle_source;
+ GMainContext *context;
+ GMutex lock;
+};
+
+static void
+_ofono_modem_org_ofono_handsfree_skeleton_handle_method_call (
+ GDBusConnection *connection G_GNUC_UNUSED,
+ const gchar *sender G_GNUC_UNUSED,
+ const gchar *object_path G_GNUC_UNUSED,
+ const gchar *interface_name,
+ const gchar *method_name,
+ GVariant *parameters,
+ GDBusMethodInvocation *invocation,
+ gpointer user_data)
+{
+ OFONOMODEMOrgOfonoHandsfreeSkeleton *skeleton = OFONO_MODEM_ORG_OFONO_HANDSFREE_SKELETON (user_data);
+ _ExtendedGDBusMethodInfo *info;
+ GVariantIter iter;
+ GVariant *child;
+ GValue *paramv;
+ guint num_params;
+ guint num_extra;
+ guint n;
+ guint signal_id;
+ GValue return_value = G_VALUE_INIT;
+ info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
+ g_assert (info != NULL);
+ num_params = g_variant_n_children (parameters);
+ num_extra = info->pass_fdlist ? 3 : 2; paramv = g_new0 (GValue, num_params + num_extra);
+ n = 0;
+ g_value_init (&paramv[n], OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE);
+ g_value_set_object (&paramv[n++], skeleton);
+ g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
+ g_value_set_object (&paramv[n++], invocation);
+ if (info->pass_fdlist)
+ {
+#ifdef G_OS_UNIX
+ g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
+ g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
+#else
+ g_assert_not_reached ();
+#endif
+ }
+ g_variant_iter_init (&iter, parameters);
+ while ((child = g_variant_iter_next_value (&iter)) != NULL)
+ {
+ _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
+ if (arg_info->use_gvariant)
+ {
+ g_value_init (&paramv[n], G_TYPE_VARIANT);
+ g_value_set_variant (&paramv[n], child);
+ n++;
+ }
+ else
+ g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
+ g_variant_unref (child);
+ }
+ signal_id = g_signal_lookup (info->signal_name, OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE);
+ g_value_init (&return_value, G_TYPE_BOOLEAN);
+ g_signal_emitv (paramv, signal_id, 0, &return_value);
+ if (!g_value_get_boolean (&return_value))
+ g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD, "Method %s is not implemented on interface %s", method_name, interface_name);
+ g_value_unset (&return_value);
+ for (n = 0; n < num_params + num_extra; n++)
+ g_value_unset (&paramv[n]);
+ g_free (paramv);
+}
+
+static GVariant *
+_ofono_modem_org_ofono_handsfree_skeleton_handle_get_property (
+ GDBusConnection *connection G_GNUC_UNUSED,
+ const gchar *sender G_GNUC_UNUSED,
+ const gchar *object_path G_GNUC_UNUSED,
+ const gchar *interface_name G_GNUC_UNUSED,
+ const gchar *property_name,
+ GError **error,
+ gpointer user_data)
+{
+ OFONOMODEMOrgOfonoHandsfreeSkeleton *skeleton = OFONO_MODEM_ORG_OFONO_HANDSFREE_SKELETON (user_data);
+ GValue value = G_VALUE_INIT;
+ GParamSpec *pspec;
+ _ExtendedGDBusPropertyInfo *info;
+ GVariant *ret;
+ ret = NULL;
+ info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_ofono_modem_org_ofono_handsfree_interface_info.parent_struct, property_name);
+ g_assert (info != NULL);
+ pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
+ if (pspec == NULL)
+ {
+ g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
+ }
+ else
+ {
+ g_value_init (&value, pspec->value_type);
+ g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
+ ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
+ g_value_unset (&value);
+ }
+ return ret;
+}
+
+static gboolean
+_ofono_modem_org_ofono_handsfree_skeleton_handle_set_property (
+ GDBusConnection *connection G_GNUC_UNUSED,
+ const gchar *sender G_GNUC_UNUSED,
+ const gchar *object_path G_GNUC_UNUSED,
+ const gchar *interface_name G_GNUC_UNUSED,
+ const gchar *property_name,
+ GVariant *variant,
+ GError **error,
+ gpointer user_data)
+{
+ OFONOMODEMOrgOfonoHandsfreeSkeleton *skeleton = OFONO_MODEM_ORG_OFONO_HANDSFREE_SKELETON (user_data);
+ GValue value = G_VALUE_INIT;
+ GParamSpec *pspec;
+ _ExtendedGDBusPropertyInfo *info;
+ gboolean ret;
+ ret = FALSE;
+ info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_ofono_modem_org_ofono_handsfree_interface_info.parent_struct, property_name);
+ g_assert (info != NULL);
+ pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
+ if (pspec == NULL)
+ {
+ g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
+ }
+ else
+ {
+ if (info->use_gvariant)
+ g_value_set_variant (&value, variant);
+ else
+ g_dbus_gvariant_to_gvalue (variant, &value);
+ g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
+ g_value_unset (&value);
+ ret = TRUE;
+ }
+ return ret;
+}
+
+static const GDBusInterfaceVTable _ofono_modem_org_ofono_handsfree_skeleton_vtable =
+{
+ _ofono_modem_org_ofono_handsfree_skeleton_handle_method_call,
+ _ofono_modem_org_ofono_handsfree_skeleton_handle_get_property,
+ _ofono_modem_org_ofono_handsfree_skeleton_handle_set_property,
+ {NULL}
+};
+
+static GDBusInterfaceInfo *
+ofono_modem_org_ofono_handsfree_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
+{
+ return ofono_modem_org_ofono_handsfree_interface_info ();
+}
+
+static GDBusInterfaceVTable *
+ofono_modem_org_ofono_handsfree_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
+{
+ return (GDBusInterfaceVTable *) &_ofono_modem_org_ofono_handsfree_skeleton_vtable;
+}
+
+static GVariant *
+ofono_modem_org_ofono_handsfree_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
+{
+ OFONOMODEMOrgOfonoHandsfreeSkeleton *skeleton = OFONO_MODEM_ORG_OFONO_HANDSFREE_SKELETON (_skeleton);
+
+ GVariantBuilder builder;
+ guint n;
+ g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}"));
+ if (_ofono_modem_org_ofono_handsfree_interface_info.parent_struct.properties == NULL)
+ goto out;
+ for (n = 0; _ofono_modem_org_ofono_handsfree_interface_info.parent_struct.properties[n] != NULL; n++)
+ {
+ GDBusPropertyInfo *info = _ofono_modem_org_ofono_handsfree_interface_info.parent_struct.properties[n];
+ if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
+ {
+ GVariant *value;
+ value = _ofono_modem_org_ofono_handsfree_skeleton_handle_get_property (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)), NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.ofono.Handsfree", info->name, NULL, skeleton);
+ if (value != NULL)
+ {
+ g_variant_take_ref (value);
+ g_variant_builder_add (&builder, "{sv}", info->name, value);
+ g_variant_unref (value);
+ }
+ }
+ }
+out:
+ return g_variant_builder_end (&builder);
+}
+
+static void
+ofono_modem_org_ofono_handsfree_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton)
+{
+}
+
+static void
+_ofono_modem_org_ofono_handsfree_on_signal_property_changed (
+ OFONOMODEMOrgOfonoHandsfree *object,
+ const gchar *arg_name,
+ GVariant *arg_value)
+{
+ OFONOMODEMOrgOfonoHandsfreeSkeleton *skeleton = OFONO_MODEM_ORG_OFONO_HANDSFREE_SKELETON (object);
+
+ GList *connections, *l;
+ GVariant *signal_variant;
+ connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
+
+ signal_variant = g_variant_ref_sink (g_variant_new ("(s@v)",
+ arg_name,
+ arg_value));
+ for (l = connections; l != NULL; l = l->next)
+ {
+ GDBusConnection *connection = l->data;
+ g_dbus_connection_emit_signal (connection,
+ NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.ofono.Handsfree", "PropertyChanged",
+ signal_variant, NULL);
+ }
+ g_variant_unref (signal_variant);
+ g_list_free_full (connections, g_object_unref);
+}
+
+static void ofono_modem_org_ofono_handsfree_skeleton_iface_init (OFONOMODEMOrgOfonoHandsfreeIface *iface);
+#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
+G_DEFINE_TYPE_WITH_CODE (OFONOMODEMOrgOfonoHandsfreeSkeleton, ofono_modem_org_ofono_handsfree_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
+ G_ADD_PRIVATE (OFONOMODEMOrgOfonoHandsfreeSkeleton)
+ G_IMPLEMENT_INTERFACE (OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE, ofono_modem_org_ofono_handsfree_skeleton_iface_init));
+
+#else
+G_DEFINE_TYPE_WITH_CODE (OFONOMODEMOrgOfonoHandsfreeSkeleton, ofono_modem_org_ofono_handsfree_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
+ G_IMPLEMENT_INTERFACE (OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE, ofono_modem_org_ofono_handsfree_skeleton_iface_init));
+
+#endif
+static void
+ofono_modem_org_ofono_handsfree_skeleton_finalize (GObject *object)
+{
+ OFONOMODEMOrgOfonoHandsfreeSkeleton *skeleton = OFONO_MODEM_ORG_OFONO_HANDSFREE_SKELETON (object);
+ g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
+ if (skeleton->priv->changed_properties_idle_source != NULL)
+ g_source_destroy (skeleton->priv->changed_properties_idle_source);
+ g_main_context_unref (skeleton->priv->context);
+ g_mutex_clear (&skeleton->priv->lock);
+ G_OBJECT_CLASS (ofono_modem_org_ofono_handsfree_skeleton_parent_class)->finalize (object);
+}
+
+static void
+ofono_modem_org_ofono_handsfree_skeleton_init (OFONOMODEMOrgOfonoHandsfreeSkeleton *skeleton)
+{
+#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
+ skeleton->priv = ofono_modem_org_ofono_handsfree_skeleton_get_instance_private (skeleton);
+#else
+ skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE_SKELETON, OFONOMODEMOrgOfonoHandsfreeSkeletonPrivate);
+#endif
+
+ g_mutex_init (&skeleton->priv->lock);
+ skeleton->priv->context = g_main_context_ref_thread_default ();
+}
+
+static void
+ofono_modem_org_ofono_handsfree_skeleton_class_init (OFONOMODEMOrgOfonoHandsfreeSkeletonClass *klass)
+{
+ GObjectClass *gobject_class;
+ GDBusInterfaceSkeletonClass *skeleton_class;
+
+ gobject_class = G_OBJECT_CLASS (klass);
+ gobject_class->finalize = ofono_modem_org_ofono_handsfree_skeleton_finalize;
+
+ skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
+ skeleton_class->get_info = ofono_modem_org_ofono_handsfree_skeleton_dbus_interface_get_info;
+ skeleton_class->get_properties = ofono_modem_org_ofono_handsfree_skeleton_dbus_interface_get_properties;
+ skeleton_class->flush = ofono_modem_org_ofono_handsfree_skeleton_dbus_interface_flush;
+ skeleton_class->get_vtable = ofono_modem_org_ofono_handsfree_skeleton_dbus_interface_get_vtable;
+
+#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
+ g_type_class_add_private (klass, sizeof (OFONOMODEMOrgOfonoHandsfreeSkeletonPrivate));
+#endif
+}
+
+static void
+ofono_modem_org_ofono_handsfree_skeleton_iface_init (OFONOMODEMOrgOfonoHandsfreeIface *iface)
+{
+ iface->property_changed = _ofono_modem_org_ofono_handsfree_on_signal_property_changed;
+}
+
+/**
+ * ofono_modem_org_ofono_handsfree_skeleton_new:
+ *
+ * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-ofono-Handsfree.top_of_page">org.ofono.Handsfree</link>.
+ *
+ * Returns: (transfer full) (type OFONOMODEMOrgOfonoHandsfreeSkeleton): The skeleton object.
+ */
+OFONOMODEMOrgOfonoHandsfree *
+ofono_modem_org_ofono_handsfree_skeleton_new (void)
+{
+ return OFONO_MODEM_ORG_OFONO_HANDSFREE (g_object_new (OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE_SKELETON, NULL));
+}
+
+/* ------------------------------------------------------------------------
+ * Code for interface org.ofono.CallVolume
+ * ------------------------------------------------------------------------
+ */
+
+/**
+ * SECTION:OFONOMODEMOrgOfonoCallVolume
+ * @title: OFONOMODEMOrgOfonoCallVolume
+ * @short_description: Generated C code for the org.ofono.CallVolume D-Bus interface
+ *
+ * This section contains code for working with the <link linkend="gdbus-interface-org-ofono-CallVolume.top_of_page">org.ofono.CallVolume</link> D-Bus interface in C.
+ */
+
+/* ---- Introspection data for org.ofono.CallVolume ---- */
+
+static const _ExtendedGDBusArgInfo _ofono_modem_org_ofono_call_volume_method_info_get_properties_OUT_ARG_properties =
+{
+ {
+ -1,
+ (gchar *) "properties",
+ (gchar *) "a{sv}",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo * const _ofono_modem_org_ofono_call_volume_method_info_get_properties_OUT_ARG_pointers[] =
+{
+ &_ofono_modem_org_ofono_call_volume_method_info_get_properties_OUT_ARG_properties,
+ NULL
+};
+
+static const _ExtendedGDBusMethodInfo _ofono_modem_org_ofono_call_volume_method_info_get_properties =
+{
+ {
+ -1,
+ (gchar *) "GetProperties",
+ NULL,
+ (GDBusArgInfo **) &_ofono_modem_org_ofono_call_volume_method_info_get_properties_OUT_ARG_pointers,
+ NULL
+ },
+ "handle-get-properties",
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo _ofono_modem_org_ofono_call_volume_method_info_set_property_IN_ARG_property =
+{
+ {
+ -1,
+ (gchar *) "property",
+ (gchar *) "s",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo _ofono_modem_org_ofono_call_volume_method_info_set_property_IN_ARG_value =
+{
+ {
+ -1,
+ (gchar *) "value",
+ (gchar *) "v",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo * const _ofono_modem_org_ofono_call_volume_method_info_set_property_IN_ARG_pointers[] =
+{
+ &_ofono_modem_org_ofono_call_volume_method_info_set_property_IN_ARG_property,
+ &_ofono_modem_org_ofono_call_volume_method_info_set_property_IN_ARG_value,
+ NULL
+};
+
+static const _ExtendedGDBusMethodInfo _ofono_modem_org_ofono_call_volume_method_info_set_property =
+{
+ {
+ -1,
+ (gchar *) "SetProperty",
+ (GDBusArgInfo **) &_ofono_modem_org_ofono_call_volume_method_info_set_property_IN_ARG_pointers,
+ NULL,
+ NULL
+ },
+ "handle-set-property",
+ FALSE
+};
+
+static const _ExtendedGDBusMethodInfo * const _ofono_modem_org_ofono_call_volume_method_info_pointers[] =
+{
+ &_ofono_modem_org_ofono_call_volume_method_info_get_properties,
+ &_ofono_modem_org_ofono_call_volume_method_info_set_property,
+ NULL
+};
+
+static const _ExtendedGDBusArgInfo _ofono_modem_org_ofono_call_volume_signal_info_property_changed_ARG_property =
+{
+ {
+ -1,
+ (gchar *) "property",
+ (gchar *) "s",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo _ofono_modem_org_ofono_call_volume_signal_info_property_changed_ARG_value =
+{
+ {
+ -1,
+ (gchar *) "value",
+ (gchar *) "v",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo * const _ofono_modem_org_ofono_call_volume_signal_info_property_changed_ARG_pointers[] =
+{
+ &_ofono_modem_org_ofono_call_volume_signal_info_property_changed_ARG_property,
+ &_ofono_modem_org_ofono_call_volume_signal_info_property_changed_ARG_value,
+ NULL
+};
+
+static const _ExtendedGDBusSignalInfo _ofono_modem_org_ofono_call_volume_signal_info_property_changed =
+{
+ {
+ -1,
+ (gchar *) "PropertyChanged",
+ (GDBusArgInfo **) &_ofono_modem_org_ofono_call_volume_signal_info_property_changed_ARG_pointers,
+ NULL
+ },
+ "property-changed"
+};
+
+static const _ExtendedGDBusSignalInfo * const _ofono_modem_org_ofono_call_volume_signal_info_pointers[] =
+{
+ &_ofono_modem_org_ofono_call_volume_signal_info_property_changed,
+ NULL
+};
+
+static const _ExtendedGDBusInterfaceInfo _ofono_modem_org_ofono_call_volume_interface_info =
+{
+ {
+ -1,
+ (gchar *) "org.ofono.CallVolume",
+ (GDBusMethodInfo **) &_ofono_modem_org_ofono_call_volume_method_info_pointers,
+ (GDBusSignalInfo **) &_ofono_modem_org_ofono_call_volume_signal_info_pointers,
+ NULL,
+ NULL
+ },
+ "org-ofono-call-volume",
+};
+
+
+/**
+ * ofono_modem_org_ofono_call_volume_interface_info:
+ *
+ * Gets a machine-readable description of the <link linkend="gdbus-interface-org-ofono-CallVolume.top_of_page">org.ofono.CallVolume</link> D-Bus interface.
+ *
+ * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
+ */
+GDBusInterfaceInfo *
+ofono_modem_org_ofono_call_volume_interface_info (void)
+{
+ return (GDBusInterfaceInfo *) &_ofono_modem_org_ofono_call_volume_interface_info.parent_struct;
+}
+
+/**
+ * ofono_modem_org_ofono_call_volume_override_properties:
+ * @klass: The class structure for a #GObject<!-- -->-derived class.
+ * @property_id_begin: The property id to assign to the first overridden property.
+ *
+ * Overrides all #GObject properties in the #OFONOMODEMOrgOfonoCallVolume interface for a concrete class.
+ * The properties are overridden in the order they are defined.
+ *
+ * Returns: The last property id.
+ */
+guint
+ofono_modem_org_ofono_call_volume_override_properties (GObjectClass *klass, guint property_id_begin)
+{
+ return property_id_begin - 1;
+}
+
+
+
+/**
+ * OFONOMODEMOrgOfonoCallVolume:
+ *
+ * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-ofono-CallVolume.top_of_page">org.ofono.CallVolume</link>.
+ */
+
+/**
+ * OFONOMODEMOrgOfonoCallVolumeIface:
+ * @parent_iface: The parent interface.
+ * @handle_get_properties: Handler for the #OFONOMODEMOrgOfonoCallVolume::handle-get-properties signal.
+ * @handle_set_property: Handler for the #OFONOMODEMOrgOfonoCallVolume::handle-set-property signal.
+ * @property_changed: Handler for the #OFONOMODEMOrgOfonoCallVolume::property-changed signal.
+ *
+ * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-ofono-CallVolume.top_of_page">org.ofono.CallVolume</link>.
+ */
+
+typedef OFONOMODEMOrgOfonoCallVolumeIface OFONOMODEMOrgOfonoCallVolumeInterface;
+G_DEFINE_INTERFACE (OFONOMODEMOrgOfonoCallVolume, ofono_modem_org_ofono_call_volume, G_TYPE_OBJECT);
+
+static void
+ofono_modem_org_ofono_call_volume_default_init (OFONOMODEMOrgOfonoCallVolumeIface *iface)
+{
+ /* GObject signals for incoming D-Bus method calls: */
+ /**
+ * OFONOMODEMOrgOfonoCallVolume::handle-get-properties:
+ * @object: A #OFONOMODEMOrgOfonoCallVolume.
+ * @invocation: A #GDBusMethodInvocation.
+ *
+ * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-ofono-CallVolume.GetProperties">GetProperties()</link> D-Bus method.
+ *
+ * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call ofono_modem_org_ofono_call_volume_complete_get_properties() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
+ *
+ * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
+ */
+ g_signal_new ("handle-get-properties",
+ G_TYPE_FROM_INTERFACE (iface),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (OFONOMODEMOrgOfonoCallVolumeIface, handle_get_properties),
+ g_signal_accumulator_true_handled,
+ NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_BOOLEAN,
+ 1,
+ G_TYPE_DBUS_METHOD_INVOCATION);
+
+ /**
+ * OFONOMODEMOrgOfonoCallVolume::handle-set-property:
+ * @object: A #OFONOMODEMOrgOfonoCallVolume.
+ * @invocation: A #GDBusMethodInvocation.
+ * @arg_property: Argument passed by remote caller.
+ * @arg_value: Argument passed by remote caller.
+ *
+ * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-ofono-CallVolume.SetProperty">SetProperty()</link> D-Bus method.
+ *
+ * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call ofono_modem_org_ofono_call_volume_complete_set_property() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
+ *
+ * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
+ */
+ g_signal_new ("handle-set-property",
+ G_TYPE_FROM_INTERFACE (iface),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (OFONOMODEMOrgOfonoCallVolumeIface, handle_set_property),
+ g_signal_accumulator_true_handled,
+ NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_BOOLEAN,
+ 3,
+ G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING, G_TYPE_VARIANT);
+
+ /* GObject signals for received D-Bus signals: */
+ /**
+ * OFONOMODEMOrgOfonoCallVolume::property-changed:
+ * @object: A #OFONOMODEMOrgOfonoCallVolume.
+ * @arg_property: Argument.
+ * @arg_value: Argument.
+ *
+ * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-ofono-CallVolume.PropertyChanged">"PropertyChanged"</link> is received.
+ *
+ * On the service-side, this signal can be used with e.g. g_signal_emit_by_name() to make the object emit the D-Bus signal.
+ */
+ g_signal_new ("property-changed",
+ G_TYPE_FROM_INTERFACE (iface),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (OFONOMODEMOrgOfonoCallVolumeIface, property_changed),
+ NULL,
+ NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_NONE,
+ 2, G_TYPE_STRING, G_TYPE_VARIANT);
+
+}
+
+/**
+ * ofono_modem_org_ofono_call_volume_emit_property_changed:
+ * @object: A #OFONOMODEMOrgOfonoCallVolume.
+ * @arg_property: Argument to pass with the signal.
+ * @arg_value: Argument to pass with the signal.
+ *
+ * Emits the <link linkend="gdbus-signal-org-ofono-CallVolume.PropertyChanged">"PropertyChanged"</link> D-Bus signal.
+ */
+void
+ofono_modem_org_ofono_call_volume_emit_property_changed (
+ OFONOMODEMOrgOfonoCallVolume *object,
+ const gchar *arg_property,
+ GVariant *arg_value)
+{
+ g_signal_emit_by_name (object, "property-changed", arg_property, arg_value);
+}
+
+/**
+ * ofono_modem_org_ofono_call_volume_call_get_properties:
+ * @proxy: A #OFONOMODEMOrgOfonoCallVolumeProxy.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
+ * @user_data: User data to pass to @callback.
+ *
+ * Asynchronously invokes the <link linkend="gdbus-method-org-ofono-CallVolume.GetProperties">GetProperties()</link> D-Bus method on @proxy.
+ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
+ * You can then call ofono_modem_org_ofono_call_volume_call_get_properties_finish() to get the result of the operation.
+ *
+ * See ofono_modem_org_ofono_call_volume_call_get_properties_sync() for the synchronous, blocking version of this method.
+ */
+void
+ofono_modem_org_ofono_call_volume_call_get_properties (
+ OFONOMODEMOrgOfonoCallVolume *proxy,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_dbus_proxy_call (G_DBUS_PROXY (proxy),
+ "GetProperties",
+ g_variant_new ("()"),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ callback,
+ user_data);
+}
+
+/**
+ * ofono_modem_org_ofono_call_volume_call_get_properties_finish:
+ * @proxy: A #OFONOMODEMOrgOfonoCallVolumeProxy.
+ * @out_properties: (out): Return location for return parameter or %NULL to ignore.
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_modem_org_ofono_call_volume_call_get_properties().
+ * @error: Return location for error or %NULL.
+ *
+ * Finishes an operation started with ofono_modem_org_ofono_call_volume_call_get_properties().
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_call_volume_call_get_properties_finish (
+ OFONOMODEMOrgOfonoCallVolume *proxy,
+ GVariant **out_properties,
+ GAsyncResult *res,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "(@a{sv})",
+ out_properties);
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_call_volume_call_get_properties_sync:
+ * @proxy: A #OFONOMODEMOrgOfonoCallVolumeProxy.
+ * @out_properties: (out): Return location for return parameter or %NULL to ignore.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL.
+ *
+ * Synchronously invokes the <link linkend="gdbus-method-org-ofono-CallVolume.GetProperties">GetProperties()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ *
+ * See ofono_modem_org_ofono_call_volume_call_get_properties() for the asynchronous version of this method.
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_call_volume_call_get_properties_sync (
+ OFONOMODEMOrgOfonoCallVolume *proxy,
+ GVariant **out_properties,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
+ "GetProperties",
+ g_variant_new ("()"),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "(@a{sv})",
+ out_properties);
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_call_volume_call_set_property:
+ * @proxy: A #OFONOMODEMOrgOfonoCallVolumeProxy.
+ * @arg_property: Argument to pass with the method invocation.
+ * @arg_value: Argument to pass with the method invocation.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
+ * @user_data: User data to pass to @callback.
+ *
+ * Asynchronously invokes the <link linkend="gdbus-method-org-ofono-CallVolume.SetProperty">SetProperty()</link> D-Bus method on @proxy.
+ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
+ * You can then call ofono_modem_org_ofono_call_volume_call_set_property_finish() to get the result of the operation.
+ *
+ * See ofono_modem_org_ofono_call_volume_call_set_property_sync() for the synchronous, blocking version of this method.
+ */
+void
+ofono_modem_org_ofono_call_volume_call_set_property (
+ OFONOMODEMOrgOfonoCallVolume *proxy,
+ const gchar *arg_property,
+ GVariant *arg_value,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_dbus_proxy_call (G_DBUS_PROXY (proxy),
+ "SetProperty",
+ g_variant_new ("(s@v)",
+ arg_property,
+ arg_value),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ callback,
+ user_data);
+}
+
+/**
+ * ofono_modem_org_ofono_call_volume_call_set_property_finish:
+ * @proxy: A #OFONOMODEMOrgOfonoCallVolumeProxy.
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_modem_org_ofono_call_volume_call_set_property().
+ * @error: Return location for error or %NULL.
+ *
+ * Finishes an operation started with ofono_modem_org_ofono_call_volume_call_set_property().
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_call_volume_call_set_property_finish (
+ OFONOMODEMOrgOfonoCallVolume *proxy,
+ GAsyncResult *res,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "()");
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_call_volume_call_set_property_sync:
+ * @proxy: A #OFONOMODEMOrgOfonoCallVolumeProxy.
+ * @arg_property: Argument to pass with the method invocation.
+ * @arg_value: Argument to pass with the method invocation.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL.
+ *
+ * Synchronously invokes the <link linkend="gdbus-method-org-ofono-CallVolume.SetProperty">SetProperty()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ *
+ * See ofono_modem_org_ofono_call_volume_call_set_property() for the asynchronous version of this method.
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_call_volume_call_set_property_sync (
+ OFONOMODEMOrgOfonoCallVolume *proxy,
+ const gchar *arg_property,
+ GVariant *arg_value,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
+ "SetProperty",
+ g_variant_new ("(s@v)",
+ arg_property,
+ arg_value),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "()");
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_call_volume_complete_get_properties:
+ * @object: A #OFONOMODEMOrgOfonoCallVolume.
+ * @invocation: (transfer full): A #GDBusMethodInvocation.
+ * @properties: Parameter to return.
+ *
+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-ofono-CallVolume.GetProperties">GetProperties()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ *
+ * This method will free @invocation, you cannot use it afterwards.
+ */
+void
+ofono_modem_org_ofono_call_volume_complete_get_properties (
+ OFONOMODEMOrgOfonoCallVolume *object,
+ GDBusMethodInvocation *invocation,
+ GVariant *properties)
+{
+ g_dbus_method_invocation_return_value (invocation,
+ g_variant_new ("(@a{sv})",
+ properties));
+}
+
+/**
+ * ofono_modem_org_ofono_call_volume_complete_set_property:
+ * @object: A #OFONOMODEMOrgOfonoCallVolume.
+ * @invocation: (transfer full): A #GDBusMethodInvocation.
+ *
+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-ofono-CallVolume.SetProperty">SetProperty()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ *
+ * This method will free @invocation, you cannot use it afterwards.
+ */
+void
+ofono_modem_org_ofono_call_volume_complete_set_property (
+ OFONOMODEMOrgOfonoCallVolume *object,
+ GDBusMethodInvocation *invocation)
+{
+ g_dbus_method_invocation_return_value (invocation,
+ g_variant_new ("()"));
+}
+
+/* ------------------------------------------------------------------------ */
+
+/**
+ * OFONOMODEMOrgOfonoCallVolumeProxy:
+ *
+ * The #OFONOMODEMOrgOfonoCallVolumeProxy structure contains only private data and should only be accessed using the provided API.
+ */
+
+/**
+ * OFONOMODEMOrgOfonoCallVolumeProxyClass:
+ * @parent_class: The parent class.
+ *
+ * Class structure for #OFONOMODEMOrgOfonoCallVolumeProxy.
+ */
+
+struct _OFONOMODEMOrgOfonoCallVolumeProxyPrivate
+{
+ GData *qdata;
+};
+
+static void ofono_modem_org_ofono_call_volume_proxy_iface_init (OFONOMODEMOrgOfonoCallVolumeIface *iface);
+
+#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
+G_DEFINE_TYPE_WITH_CODE (OFONOMODEMOrgOfonoCallVolumeProxy, ofono_modem_org_ofono_call_volume_proxy, G_TYPE_DBUS_PROXY,
+ G_ADD_PRIVATE (OFONOMODEMOrgOfonoCallVolumeProxy)
+ G_IMPLEMENT_INTERFACE (OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME, ofono_modem_org_ofono_call_volume_proxy_iface_init));
+
+#else
+G_DEFINE_TYPE_WITH_CODE (OFONOMODEMOrgOfonoCallVolumeProxy, ofono_modem_org_ofono_call_volume_proxy, G_TYPE_DBUS_PROXY,
+ G_IMPLEMENT_INTERFACE (OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME, ofono_modem_org_ofono_call_volume_proxy_iface_init));
+
+#endif
+static void
+ofono_modem_org_ofono_call_volume_proxy_finalize (GObject *object)
+{
+ OFONOMODEMOrgOfonoCallVolumeProxy *proxy = OFONO_MODEM_ORG_OFONO_CALL_VOLUME_PROXY (object);
+ g_datalist_clear (&proxy->priv->qdata);
+ G_OBJECT_CLASS (ofono_modem_org_ofono_call_volume_proxy_parent_class)->finalize (object);
+}
+
+static void
+ofono_modem_org_ofono_call_volume_proxy_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec G_GNUC_UNUSED)
+{
+}
+
+static void
+ofono_modem_org_ofono_call_volume_proxy_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec G_GNUC_UNUSED)
+{
+}
+
+static void
+ofono_modem_org_ofono_call_volume_proxy_g_signal (GDBusProxy *proxy,
+ const gchar *sender_name G_GNUC_UNUSED,
+ const gchar *signal_name,
+ GVariant *parameters)
+{
+ _ExtendedGDBusSignalInfo *info;
+ GVariantIter iter;
+ GVariant *child;
+ GValue *paramv;
+ guint num_params;
+ guint n;
+ guint signal_id;
+ info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_ofono_modem_org_ofono_call_volume_interface_info.parent_struct, signal_name);
+ if (info == NULL)
+ return;
+ num_params = g_variant_n_children (parameters);
+ paramv = g_new0 (GValue, num_params + 1);
+ g_value_init (&paramv[0], OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME);
+ g_value_set_object (&paramv[0], proxy);
+ g_variant_iter_init (&iter, parameters);
+ n = 1;
+ while ((child = g_variant_iter_next_value (&iter)) != NULL)
+ {
+ _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
+ if (arg_info->use_gvariant)
+ {
+ g_value_init (&paramv[n], G_TYPE_VARIANT);
+ g_value_set_variant (&paramv[n], child);
+ n++;
+ }
+ else
+ g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
+ g_variant_unref (child);
+ }
+ signal_id = g_signal_lookup (info->signal_name, OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME);
+ g_signal_emitv (paramv, signal_id, 0, NULL);
+ for (n = 0; n < num_params + 1; n++)
+ g_value_unset (&paramv[n]);
+ g_free (paramv);
+}
+
+static void
+ofono_modem_org_ofono_call_volume_proxy_g_properties_changed (GDBusProxy *_proxy,
+ GVariant *changed_properties,
+ const gchar *const *invalidated_properties)
+{
+ OFONOMODEMOrgOfonoCallVolumeProxy *proxy = OFONO_MODEM_ORG_OFONO_CALL_VOLUME_PROXY (_proxy);
+ guint n;
+ const gchar *key;
+ GVariantIter *iter;
+ _ExtendedGDBusPropertyInfo *info;
+ g_variant_get (changed_properties, "a{sv}", &iter);
+ while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
+ {
+ info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_ofono_modem_org_ofono_call_volume_interface_info.parent_struct, key);
+ g_datalist_remove_data (&proxy->priv->qdata, key);
+ if (info != NULL)
+ g_object_notify (G_OBJECT (proxy), info->hyphen_name);
+ }
+ g_variant_iter_free (iter);
+ for (n = 0; invalidated_properties[n] != NULL; n++)
+ {
+ info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_ofono_modem_org_ofono_call_volume_interface_info.parent_struct, invalidated_properties[n]);
+ g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
+ if (info != NULL)
+ g_object_notify (G_OBJECT (proxy), info->hyphen_name);
+ }
+}
+
+static void
+ofono_modem_org_ofono_call_volume_proxy_init (OFONOMODEMOrgOfonoCallVolumeProxy *proxy)
+{
+#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
+ proxy->priv = ofono_modem_org_ofono_call_volume_proxy_get_instance_private (proxy);
+#else
+ proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME_PROXY, OFONOMODEMOrgOfonoCallVolumeProxyPrivate);
+#endif
+
+ g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), ofono_modem_org_ofono_call_volume_interface_info ());
+}
+
+static void
+ofono_modem_org_ofono_call_volume_proxy_class_init (OFONOMODEMOrgOfonoCallVolumeProxyClass *klass)
+{
+ GObjectClass *gobject_class;
+ GDBusProxyClass *proxy_class;
+
+ gobject_class = G_OBJECT_CLASS (klass);
+ gobject_class->finalize = ofono_modem_org_ofono_call_volume_proxy_finalize;
+ gobject_class->get_property = ofono_modem_org_ofono_call_volume_proxy_get_property;
+ gobject_class->set_property = ofono_modem_org_ofono_call_volume_proxy_set_property;
+
+ proxy_class = G_DBUS_PROXY_CLASS (klass);
+ proxy_class->g_signal = ofono_modem_org_ofono_call_volume_proxy_g_signal;
+ proxy_class->g_properties_changed = ofono_modem_org_ofono_call_volume_proxy_g_properties_changed;
+
+#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
+ g_type_class_add_private (klass, sizeof (OFONOMODEMOrgOfonoCallVolumeProxyPrivate));
+#endif
+}
+
+static void
+ofono_modem_org_ofono_call_volume_proxy_iface_init (OFONOMODEMOrgOfonoCallVolumeIface *iface)
+{
+}
+
+/**
+ * ofono_modem_org_ofono_call_volume_proxy_new:
+ * @connection: A #GDBusConnection.
+ * @flags: Flags from the #GDBusProxyFlags enumeration.
+ * @name: (allow-none): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
+ * @object_path: An object path.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
+ * @user_data: User data to pass to @callback.
+ *
+ * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-ofono-CallVolume.top_of_page">org.ofono.CallVolume</link>. See g_dbus_proxy_new() for more details.
+ *
+ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
+ * You can then call ofono_modem_org_ofono_call_volume_proxy_new_finish() to get the result of the operation.
+ *
+ * See ofono_modem_org_ofono_call_volume_proxy_new_sync() for the synchronous, blocking version of this constructor.
+ */
+void
+ofono_modem_org_ofono_call_volume_proxy_new (
+ GDBusConnection *connection,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_async_initable_new_async (OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.ofono.CallVolume", NULL);
+}
+
+/**
+ * ofono_modem_org_ofono_call_volume_proxy_new_finish:
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_modem_org_ofono_call_volume_proxy_new().
+ * @error: Return location for error or %NULL
+ *
+ * Finishes an operation started with ofono_modem_org_ofono_call_volume_proxy_new().
+ *
+ * Returns: (transfer full) (type OFONOMODEMOrgOfonoCallVolumeProxy): The constructed proxy object or %NULL if @error is set.
+ */
+OFONOMODEMOrgOfonoCallVolume *
+ofono_modem_org_ofono_call_volume_proxy_new_finish (
+ GAsyncResult *res,
+ GError **error)
+{
+ GObject *ret;
+ GObject *source_object;
+ source_object = g_async_result_get_source_object (res);
+ ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
+ g_object_unref (source_object);
+ if (ret != NULL)
+ return OFONO_MODEM_ORG_OFONO_CALL_VOLUME (ret);
+ else
+ return NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_call_volume_proxy_new_sync:
+ * @connection: A #GDBusConnection.
+ * @flags: Flags from the #GDBusProxyFlags enumeration.
+ * @name: (allow-none): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
+ * @object_path: An object path.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL
+ *
+ * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-ofono-CallVolume.top_of_page">org.ofono.CallVolume</link>. See g_dbus_proxy_new_sync() for more details.
+ *
+ * The calling thread is blocked until a reply is received.
+ *
+ * See ofono_modem_org_ofono_call_volume_proxy_new() for the asynchronous version of this constructor.
+ *
+ * Returns: (transfer full) (type OFONOMODEMOrgOfonoCallVolumeProxy): The constructed proxy object or %NULL if @error is set.
+ */
+OFONOMODEMOrgOfonoCallVolume *
+ofono_modem_org_ofono_call_volume_proxy_new_sync (
+ GDBusConnection *connection,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GInitable *ret;
+ ret = g_initable_new (OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.ofono.CallVolume", NULL);
+ if (ret != NULL)
+ return OFONO_MODEM_ORG_OFONO_CALL_VOLUME (ret);
+ else
+ return NULL;
+}
+
+
+/**
+ * ofono_modem_org_ofono_call_volume_proxy_new_for_bus:
+ * @bus_type: A #GBusType.
+ * @flags: Flags from the #GDBusProxyFlags enumeration.
+ * @name: A bus name (well-known or unique).
+ * @object_path: An object path.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
+ * @user_data: User data to pass to @callback.
+ *
+ * Like ofono_modem_org_ofono_call_volume_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
+ *
+ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
+ * You can then call ofono_modem_org_ofono_call_volume_proxy_new_for_bus_finish() to get the result of the operation.
+ *
+ * See ofono_modem_org_ofono_call_volume_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
+ */
+void
+ofono_modem_org_ofono_call_volume_proxy_new_for_bus (
+ GBusType bus_type,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_async_initable_new_async (OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.ofono.CallVolume", NULL);
+}
+
+/**
+ * ofono_modem_org_ofono_call_volume_proxy_new_for_bus_finish:
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_modem_org_ofono_call_volume_proxy_new_for_bus().
+ * @error: Return location for error or %NULL
+ *
+ * Finishes an operation started with ofono_modem_org_ofono_call_volume_proxy_new_for_bus().
+ *
+ * Returns: (transfer full) (type OFONOMODEMOrgOfonoCallVolumeProxy): The constructed proxy object or %NULL if @error is set.
+ */
+OFONOMODEMOrgOfonoCallVolume *
+ofono_modem_org_ofono_call_volume_proxy_new_for_bus_finish (
+ GAsyncResult *res,
+ GError **error)
+{
+ GObject *ret;
+ GObject *source_object;
+ source_object = g_async_result_get_source_object (res);
+ ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
+ g_object_unref (source_object);
+ if (ret != NULL)
+ return OFONO_MODEM_ORG_OFONO_CALL_VOLUME (ret);
+ else
+ return NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_call_volume_proxy_new_for_bus_sync:
+ * @bus_type: A #GBusType.
+ * @flags: Flags from the #GDBusProxyFlags enumeration.
+ * @name: A bus name (well-known or unique).
+ * @object_path: An object path.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL
+ *
+ * Like ofono_modem_org_ofono_call_volume_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
+ *
+ * The calling thread is blocked until a reply is received.
+ *
+ * See ofono_modem_org_ofono_call_volume_proxy_new_for_bus() for the asynchronous version of this constructor.
+ *
+ * Returns: (transfer full) (type OFONOMODEMOrgOfonoCallVolumeProxy): The constructed proxy object or %NULL if @error is set.
+ */
+OFONOMODEMOrgOfonoCallVolume *
+ofono_modem_org_ofono_call_volume_proxy_new_for_bus_sync (
+ GBusType bus_type,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GInitable *ret;
+ ret = g_initable_new (OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.ofono.CallVolume", NULL);
+ if (ret != NULL)
+ return OFONO_MODEM_ORG_OFONO_CALL_VOLUME (ret);
+ else
+ return NULL;
+}
+
+
+/* ------------------------------------------------------------------------ */
+
+/**
+ * OFONOMODEMOrgOfonoCallVolumeSkeleton:
+ *
+ * The #OFONOMODEMOrgOfonoCallVolumeSkeleton structure contains only private data and should only be accessed using the provided API.
+ */
+
+/**
+ * OFONOMODEMOrgOfonoCallVolumeSkeletonClass:
+ * @parent_class: The parent class.
+ *
+ * Class structure for #OFONOMODEMOrgOfonoCallVolumeSkeleton.
+ */
+
+struct _OFONOMODEMOrgOfonoCallVolumeSkeletonPrivate
+{
+ GValue *properties;
+ GList *changed_properties;
+ GSource *changed_properties_idle_source;
+ GMainContext *context;
+ GMutex lock;
+};
+
+static void
+_ofono_modem_org_ofono_call_volume_skeleton_handle_method_call (
+ GDBusConnection *connection G_GNUC_UNUSED,
+ const gchar *sender G_GNUC_UNUSED,
+ const gchar *object_path G_GNUC_UNUSED,
+ const gchar *interface_name,
+ const gchar *method_name,
+ GVariant *parameters,
+ GDBusMethodInvocation *invocation,
+ gpointer user_data)
+{
+ OFONOMODEMOrgOfonoCallVolumeSkeleton *skeleton = OFONO_MODEM_ORG_OFONO_CALL_VOLUME_SKELETON (user_data);
+ _ExtendedGDBusMethodInfo *info;
+ GVariantIter iter;
+ GVariant *child;
+ GValue *paramv;
+ guint num_params;
+ guint num_extra;
+ guint n;
+ guint signal_id;
+ GValue return_value = G_VALUE_INIT;
+ info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
+ g_assert (info != NULL);
+ num_params = g_variant_n_children (parameters);
+ num_extra = info->pass_fdlist ? 3 : 2; paramv = g_new0 (GValue, num_params + num_extra);
+ n = 0;
+ g_value_init (&paramv[n], OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME);
+ g_value_set_object (&paramv[n++], skeleton);
+ g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
+ g_value_set_object (&paramv[n++], invocation);
+ if (info->pass_fdlist)
+ {
+#ifdef G_OS_UNIX
+ g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
+ g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
+#else
+ g_assert_not_reached ();
+#endif
+ }
+ g_variant_iter_init (&iter, parameters);
+ while ((child = g_variant_iter_next_value (&iter)) != NULL)
+ {
+ _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
+ if (arg_info->use_gvariant)
+ {
+ g_value_init (&paramv[n], G_TYPE_VARIANT);
+ g_value_set_variant (&paramv[n], child);
+ n++;
+ }
+ else
+ g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
+ g_variant_unref (child);
+ }
+ signal_id = g_signal_lookup (info->signal_name, OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME);
+ g_value_init (&return_value, G_TYPE_BOOLEAN);
+ g_signal_emitv (paramv, signal_id, 0, &return_value);
+ if (!g_value_get_boolean (&return_value))
+ g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD, "Method %s is not implemented on interface %s", method_name, interface_name);
+ g_value_unset (&return_value);
+ for (n = 0; n < num_params + num_extra; n++)
+ g_value_unset (&paramv[n]);
+ g_free (paramv);
+}
+
+static GVariant *
+_ofono_modem_org_ofono_call_volume_skeleton_handle_get_property (
+ GDBusConnection *connection G_GNUC_UNUSED,
+ const gchar *sender G_GNUC_UNUSED,
+ const gchar *object_path G_GNUC_UNUSED,
+ const gchar *interface_name G_GNUC_UNUSED,
+ const gchar *property_name,
+ GError **error,
+ gpointer user_data)
+{
+ OFONOMODEMOrgOfonoCallVolumeSkeleton *skeleton = OFONO_MODEM_ORG_OFONO_CALL_VOLUME_SKELETON (user_data);
+ GValue value = G_VALUE_INIT;
+ GParamSpec *pspec;
+ _ExtendedGDBusPropertyInfo *info;
+ GVariant *ret;
+ ret = NULL;
+ info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_ofono_modem_org_ofono_call_volume_interface_info.parent_struct, property_name);
+ g_assert (info != NULL);
+ pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
+ if (pspec == NULL)
+ {
+ g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
+ }
+ else
+ {
+ g_value_init (&value, pspec->value_type);
+ g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
+ ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
+ g_value_unset (&value);
+ }
+ return ret;
+}
+
+static gboolean
+_ofono_modem_org_ofono_call_volume_skeleton_handle_set_property (
+ GDBusConnection *connection G_GNUC_UNUSED,
+ const gchar *sender G_GNUC_UNUSED,
+ const gchar *object_path G_GNUC_UNUSED,
+ const gchar *interface_name G_GNUC_UNUSED,
+ const gchar *property_name,
+ GVariant *variant,
+ GError **error,
+ gpointer user_data)
+{
+ OFONOMODEMOrgOfonoCallVolumeSkeleton *skeleton = OFONO_MODEM_ORG_OFONO_CALL_VOLUME_SKELETON (user_data);
+ GValue value = G_VALUE_INIT;
+ GParamSpec *pspec;
+ _ExtendedGDBusPropertyInfo *info;
+ gboolean ret;
+ ret = FALSE;
+ info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_ofono_modem_org_ofono_call_volume_interface_info.parent_struct, property_name);
+ g_assert (info != NULL);
+ pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
+ if (pspec == NULL)
+ {
+ g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
+ }
+ else
+ {
+ if (info->use_gvariant)
+ g_value_set_variant (&value, variant);
+ else
+ g_dbus_gvariant_to_gvalue (variant, &value);
+ g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
+ g_value_unset (&value);
+ ret = TRUE;
+ }
+ return ret;
+}
+
+static const GDBusInterfaceVTable _ofono_modem_org_ofono_call_volume_skeleton_vtable =
+{
+ _ofono_modem_org_ofono_call_volume_skeleton_handle_method_call,
+ _ofono_modem_org_ofono_call_volume_skeleton_handle_get_property,
+ _ofono_modem_org_ofono_call_volume_skeleton_handle_set_property,
+ {NULL}
+};
+
+static GDBusInterfaceInfo *
+ofono_modem_org_ofono_call_volume_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
+{
+ return ofono_modem_org_ofono_call_volume_interface_info ();
+}
+
+static GDBusInterfaceVTable *
+ofono_modem_org_ofono_call_volume_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
+{
+ return (GDBusInterfaceVTable *) &_ofono_modem_org_ofono_call_volume_skeleton_vtable;
+}
+
+static GVariant *
+ofono_modem_org_ofono_call_volume_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
+{
+ OFONOMODEMOrgOfonoCallVolumeSkeleton *skeleton = OFONO_MODEM_ORG_OFONO_CALL_VOLUME_SKELETON (_skeleton);
+
+ GVariantBuilder builder;
+ guint n;
+ g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}"));
+ if (_ofono_modem_org_ofono_call_volume_interface_info.parent_struct.properties == NULL)
+ goto out;
+ for (n = 0; _ofono_modem_org_ofono_call_volume_interface_info.parent_struct.properties[n] != NULL; n++)
+ {
+ GDBusPropertyInfo *info = _ofono_modem_org_ofono_call_volume_interface_info.parent_struct.properties[n];
+ if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
+ {
+ GVariant *value;
+ value = _ofono_modem_org_ofono_call_volume_skeleton_handle_get_property (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)), NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.ofono.CallVolume", info->name, NULL, skeleton);
+ if (value != NULL)
+ {
+ g_variant_take_ref (value);
+ g_variant_builder_add (&builder, "{sv}", info->name, value);
+ g_variant_unref (value);
+ }
+ }
+ }
+out:
+ return g_variant_builder_end (&builder);
+}
+
+static void
+ofono_modem_org_ofono_call_volume_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton)
+{
+}
+
+static void
+_ofono_modem_org_ofono_call_volume_on_signal_property_changed (
+ OFONOMODEMOrgOfonoCallVolume *object,
+ const gchar *arg_property,
+ GVariant *arg_value)
+{
+ OFONOMODEMOrgOfonoCallVolumeSkeleton *skeleton = OFONO_MODEM_ORG_OFONO_CALL_VOLUME_SKELETON (object);
+
+ GList *connections, *l;
+ GVariant *signal_variant;
+ connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
+
+ signal_variant = g_variant_ref_sink (g_variant_new ("(s@v)",
+ arg_property,
+ arg_value));
+ for (l = connections; l != NULL; l = l->next)
+ {
+ GDBusConnection *connection = l->data;
+ g_dbus_connection_emit_signal (connection,
+ NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.ofono.CallVolume", "PropertyChanged",
+ signal_variant, NULL);
+ }
+ g_variant_unref (signal_variant);
+ g_list_free_full (connections, g_object_unref);
+}
+
+static void ofono_modem_org_ofono_call_volume_skeleton_iface_init (OFONOMODEMOrgOfonoCallVolumeIface *iface);
+#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
+G_DEFINE_TYPE_WITH_CODE (OFONOMODEMOrgOfonoCallVolumeSkeleton, ofono_modem_org_ofono_call_volume_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
+ G_ADD_PRIVATE (OFONOMODEMOrgOfonoCallVolumeSkeleton)
+ G_IMPLEMENT_INTERFACE (OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME, ofono_modem_org_ofono_call_volume_skeleton_iface_init));
+
+#else
+G_DEFINE_TYPE_WITH_CODE (OFONOMODEMOrgOfonoCallVolumeSkeleton, ofono_modem_org_ofono_call_volume_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
+ G_IMPLEMENT_INTERFACE (OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME, ofono_modem_org_ofono_call_volume_skeleton_iface_init));
+
+#endif
+static void
+ofono_modem_org_ofono_call_volume_skeleton_finalize (GObject *object)
+{
+ OFONOMODEMOrgOfonoCallVolumeSkeleton *skeleton = OFONO_MODEM_ORG_OFONO_CALL_VOLUME_SKELETON (object);
+ g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
+ if (skeleton->priv->changed_properties_idle_source != NULL)
+ g_source_destroy (skeleton->priv->changed_properties_idle_source);
+ g_main_context_unref (skeleton->priv->context);
+ g_mutex_clear (&skeleton->priv->lock);
+ G_OBJECT_CLASS (ofono_modem_org_ofono_call_volume_skeleton_parent_class)->finalize (object);
+}
+
+static void
+ofono_modem_org_ofono_call_volume_skeleton_init (OFONOMODEMOrgOfonoCallVolumeSkeleton *skeleton)
+{
+#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
+ skeleton->priv = ofono_modem_org_ofono_call_volume_skeleton_get_instance_private (skeleton);
+#else
+ skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME_SKELETON, OFONOMODEMOrgOfonoCallVolumeSkeletonPrivate);
+#endif
+
+ g_mutex_init (&skeleton->priv->lock);
+ skeleton->priv->context = g_main_context_ref_thread_default ();
+}
+
+static void
+ofono_modem_org_ofono_call_volume_skeleton_class_init (OFONOMODEMOrgOfonoCallVolumeSkeletonClass *klass)
+{
+ GObjectClass *gobject_class;
+ GDBusInterfaceSkeletonClass *skeleton_class;
+
+ gobject_class = G_OBJECT_CLASS (klass);
+ gobject_class->finalize = ofono_modem_org_ofono_call_volume_skeleton_finalize;
+
+ skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
+ skeleton_class->get_info = ofono_modem_org_ofono_call_volume_skeleton_dbus_interface_get_info;
+ skeleton_class->get_properties = ofono_modem_org_ofono_call_volume_skeleton_dbus_interface_get_properties;
+ skeleton_class->flush = ofono_modem_org_ofono_call_volume_skeleton_dbus_interface_flush;
+ skeleton_class->get_vtable = ofono_modem_org_ofono_call_volume_skeleton_dbus_interface_get_vtable;
+
+#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
+ g_type_class_add_private (klass, sizeof (OFONOMODEMOrgOfonoCallVolumeSkeletonPrivate));
+#endif
+}
+
+static void
+ofono_modem_org_ofono_call_volume_skeleton_iface_init (OFONOMODEMOrgOfonoCallVolumeIface *iface)
+{
+ iface->property_changed = _ofono_modem_org_ofono_call_volume_on_signal_property_changed;
+}
+
+/**
+ * ofono_modem_org_ofono_call_volume_skeleton_new:
+ *
+ * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-ofono-CallVolume.top_of_page">org.ofono.CallVolume</link>.
+ *
+ * Returns: (transfer full) (type OFONOMODEMOrgOfonoCallVolumeSkeleton): The skeleton object.
+ */
+OFONOMODEMOrgOfonoCallVolume *
+ofono_modem_org_ofono_call_volume_skeleton_new (void)
+{
+ return OFONO_MODEM_ORG_OFONO_CALL_VOLUME (g_object_new (OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME_SKELETON, NULL));
+}
+
+/* ------------------------------------------------------------------------
+ * Code for interface org.ofono.VoiceCallManager
+ * ------------------------------------------------------------------------
+ */
+
+/**
+ * SECTION:OFONOMODEMOrgOfonoVoiceCallManager
+ * @title: OFONOMODEMOrgOfonoVoiceCallManager
+ * @short_description: Generated C code for the org.ofono.VoiceCallManager D-Bus interface
+ *
+ * This section contains code for working with the <link linkend="gdbus-interface-org-ofono-VoiceCallManager.top_of_page">org.ofono.VoiceCallManager</link> D-Bus interface in C.
+ */
+
+/* ---- Introspection data for org.ofono.VoiceCallManager ---- */
+
+static const _ExtendedGDBusArgInfo _ofono_modem_org_ofono_voice_call_manager_method_info_get_properties_OUT_ARG_properties =
+{
+ {
+ -1,
+ (gchar *) "properties",
+ (gchar *) "a{sv}",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo * const _ofono_modem_org_ofono_voice_call_manager_method_info_get_properties_OUT_ARG_pointers[] =
+{
+ &_ofono_modem_org_ofono_voice_call_manager_method_info_get_properties_OUT_ARG_properties,
+ NULL
+};
+
+static const _ExtendedGDBusMethodInfo _ofono_modem_org_ofono_voice_call_manager_method_info_get_properties =
+{
+ {
+ -1,
+ (gchar *) "GetProperties",
+ NULL,
+ (GDBusArgInfo **) &_ofono_modem_org_ofono_voice_call_manager_method_info_get_properties_OUT_ARG_pointers,
+ NULL
+ },
+ "handle-get-properties",
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo _ofono_modem_org_ofono_voice_call_manager_method_info_dial_IN_ARG_number =
+{
+ {
+ -1,
+ (gchar *) "number",
+ (gchar *) "s",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo _ofono_modem_org_ofono_voice_call_manager_method_info_dial_IN_ARG_hide_callerid =
+{
+ {
+ -1,
+ (gchar *) "hide_callerid",
+ (gchar *) "s",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo * const _ofono_modem_org_ofono_voice_call_manager_method_info_dial_IN_ARG_pointers[] =
+{
+ &_ofono_modem_org_ofono_voice_call_manager_method_info_dial_IN_ARG_number,
+ &_ofono_modem_org_ofono_voice_call_manager_method_info_dial_IN_ARG_hide_callerid,
+ NULL
+};
+
+static const _ExtendedGDBusArgInfo _ofono_modem_org_ofono_voice_call_manager_method_info_dial_OUT_ARG_path =
+{
+ {
+ -1,
+ (gchar *) "path",
+ (gchar *) "o",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo * const _ofono_modem_org_ofono_voice_call_manager_method_info_dial_OUT_ARG_pointers[] =
+{
+ &_ofono_modem_org_ofono_voice_call_manager_method_info_dial_OUT_ARG_path,
+ NULL
+};
+
+static const _ExtendedGDBusMethodInfo _ofono_modem_org_ofono_voice_call_manager_method_info_dial =
+{
+ {
+ -1,
+ (gchar *) "Dial",
+ (GDBusArgInfo **) &_ofono_modem_org_ofono_voice_call_manager_method_info_dial_IN_ARG_pointers,
+ (GDBusArgInfo **) &_ofono_modem_org_ofono_voice_call_manager_method_info_dial_OUT_ARG_pointers,
+ NULL
+ },
+ "handle-dial",
+ FALSE
+};
+
+static const _ExtendedGDBusMethodInfo _ofono_modem_org_ofono_voice_call_manager_method_info_transfer =
+{
+ {
+ -1,
+ (gchar *) "Transfer",
+ NULL,
+ NULL,
+ NULL
+ },
+ "handle-transfer",
+ FALSE
+};
+
+static const _ExtendedGDBusMethodInfo _ofono_modem_org_ofono_voice_call_manager_method_info_swap_calls =
+{
+ {
+ -1,
+ (gchar *) "SwapCalls",
+ NULL,
+ NULL,
+ NULL
+ },
+ "handle-swap-calls",
+ FALSE
+};
+
+static const _ExtendedGDBusMethodInfo _ofono_modem_org_ofono_voice_call_manager_method_info_release_and_answer =
+{
+ {
+ -1,
+ (gchar *) "ReleaseAndAnswer",
+ NULL,
+ NULL,
+ NULL
+ },
+ "handle-release-and-answer",
+ FALSE
+};
+
+static const _ExtendedGDBusMethodInfo _ofono_modem_org_ofono_voice_call_manager_method_info_release_and_swap =
+{
+ {
+ -1,
+ (gchar *) "ReleaseAndSwap",
+ NULL,
+ NULL,
+ NULL
+ },
+ "handle-release-and-swap",
+ FALSE
+};
+
+static const _ExtendedGDBusMethodInfo _ofono_modem_org_ofono_voice_call_manager_method_info_hold_and_answer =
+{
+ {
+ -1,
+ (gchar *) "HoldAndAnswer",
+ NULL,
+ NULL,
+ NULL
+ },
+ "handle-hold-and-answer",
+ FALSE
+};
+
+static const _ExtendedGDBusMethodInfo _ofono_modem_org_ofono_voice_call_manager_method_info_hangup_all =
+{
+ {
+ -1,
+ (gchar *) "HangupAll",
+ NULL,
+ NULL,
+ NULL
+ },
+ "handle-hangup-all",
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo _ofono_modem_org_ofono_voice_call_manager_method_info_private_chat_IN_ARG_call =
+{
+ {
+ -1,
+ (gchar *) "call",
+ (gchar *) "o",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo * const _ofono_modem_org_ofono_voice_call_manager_method_info_private_chat_IN_ARG_pointers[] =
+{
+ &_ofono_modem_org_ofono_voice_call_manager_method_info_private_chat_IN_ARG_call,
+ NULL
+};
+
+static const _ExtendedGDBusArgInfo _ofono_modem_org_ofono_voice_call_manager_method_info_private_chat_OUT_ARG_calls =
+{
+ {
+ -1,
+ (gchar *) "calls",
+ (gchar *) "ao",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo * const _ofono_modem_org_ofono_voice_call_manager_method_info_private_chat_OUT_ARG_pointers[] =
+{
+ &_ofono_modem_org_ofono_voice_call_manager_method_info_private_chat_OUT_ARG_calls,
+ NULL
+};
+
+static const _ExtendedGDBusMethodInfo _ofono_modem_org_ofono_voice_call_manager_method_info_private_chat =
+{
+ {
+ -1,
+ (gchar *) "PrivateChat",
+ (GDBusArgInfo **) &_ofono_modem_org_ofono_voice_call_manager_method_info_private_chat_IN_ARG_pointers,
+ (GDBusArgInfo **) &_ofono_modem_org_ofono_voice_call_manager_method_info_private_chat_OUT_ARG_pointers,
+ NULL
+ },
+ "handle-private-chat",
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo _ofono_modem_org_ofono_voice_call_manager_method_info_create_multiparty_OUT_ARG_calls =
+{
+ {
+ -1,
+ (gchar *) "calls",
+ (gchar *) "o",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo * const _ofono_modem_org_ofono_voice_call_manager_method_info_create_multiparty_OUT_ARG_pointers[] =
+{
+ &_ofono_modem_org_ofono_voice_call_manager_method_info_create_multiparty_OUT_ARG_calls,
+ NULL
+};
+
+static const _ExtendedGDBusMethodInfo _ofono_modem_org_ofono_voice_call_manager_method_info_create_multiparty =
+{
+ {
+ -1,
+ (gchar *) "CreateMultiparty",
+ NULL,
+ (GDBusArgInfo **) &_ofono_modem_org_ofono_voice_call_manager_method_info_create_multiparty_OUT_ARG_pointers,
+ NULL
+ },
+ "handle-create-multiparty",
+ FALSE
+};
+
+static const _ExtendedGDBusMethodInfo _ofono_modem_org_ofono_voice_call_manager_method_info_hangup_multiparty =
+{
+ {
+ -1,
+ (gchar *) "HangupMultiparty",
+ NULL,
+ NULL,
+ NULL
+ },
+ "handle-hangup-multiparty",
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo _ofono_modem_org_ofono_voice_call_manager_method_info_send_tones_IN_ARG_SendTones =
+{
+ {
+ -1,
+ (gchar *) "SendTones",
+ (gchar *) "s",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo * const _ofono_modem_org_ofono_voice_call_manager_method_info_send_tones_IN_ARG_pointers[] =
+{
+ &_ofono_modem_org_ofono_voice_call_manager_method_info_send_tones_IN_ARG_SendTones,
+ NULL
+};
+
+static const _ExtendedGDBusMethodInfo _ofono_modem_org_ofono_voice_call_manager_method_info_send_tones =
+{
+ {
+ -1,
+ (gchar *) "SendTones",
+ (GDBusArgInfo **) &_ofono_modem_org_ofono_voice_call_manager_method_info_send_tones_IN_ARG_pointers,
+ NULL,
+ NULL
+ },
+ "handle-send-tones",
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo _ofono_modem_org_ofono_voice_call_manager_method_info_get_calls_OUT_ARG_calls_with_properties =
+{
+ {
+ -1,
+ (gchar *) "calls_with_properties",
+ (gchar *) "a(oa{sv})",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo * const _ofono_modem_org_ofono_voice_call_manager_method_info_get_calls_OUT_ARG_pointers[] =
+{
+ &_ofono_modem_org_ofono_voice_call_manager_method_info_get_calls_OUT_ARG_calls_with_properties,
+ NULL
+};
+
+static const _ExtendedGDBusMethodInfo _ofono_modem_org_ofono_voice_call_manager_method_info_get_calls =
+{
+ {
+ -1,
+ (gchar *) "GetCalls",
+ NULL,
+ (GDBusArgInfo **) &_ofono_modem_org_ofono_voice_call_manager_method_info_get_calls_OUT_ARG_pointers,
+ NULL
+ },
+ "handle-get-calls",
+ FALSE
+};
+
+static const _ExtendedGDBusMethodInfo * const _ofono_modem_org_ofono_voice_call_manager_method_info_pointers[] =
+{
+ &_ofono_modem_org_ofono_voice_call_manager_method_info_get_properties,
+ &_ofono_modem_org_ofono_voice_call_manager_method_info_dial,
+ &_ofono_modem_org_ofono_voice_call_manager_method_info_transfer,
+ &_ofono_modem_org_ofono_voice_call_manager_method_info_swap_calls,
+ &_ofono_modem_org_ofono_voice_call_manager_method_info_release_and_answer,
+ &_ofono_modem_org_ofono_voice_call_manager_method_info_release_and_swap,
+ &_ofono_modem_org_ofono_voice_call_manager_method_info_hold_and_answer,
+ &_ofono_modem_org_ofono_voice_call_manager_method_info_hangup_all,
+ &_ofono_modem_org_ofono_voice_call_manager_method_info_private_chat,
+ &_ofono_modem_org_ofono_voice_call_manager_method_info_create_multiparty,
+ &_ofono_modem_org_ofono_voice_call_manager_method_info_hangup_multiparty,
+ &_ofono_modem_org_ofono_voice_call_manager_method_info_send_tones,
+ &_ofono_modem_org_ofono_voice_call_manager_method_info_get_calls,
+ NULL
+};
+
+static const _ExtendedGDBusArgInfo _ofono_modem_org_ofono_voice_call_manager_signal_info_forwarded_ARG_type =
+{
+ {
+ -1,
+ (gchar *) "type",
+ (gchar *) "s",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo * const _ofono_modem_org_ofono_voice_call_manager_signal_info_forwarded_ARG_pointers[] =
+{
+ &_ofono_modem_org_ofono_voice_call_manager_signal_info_forwarded_ARG_type,
+ NULL
+};
+
+static const _ExtendedGDBusSignalInfo _ofono_modem_org_ofono_voice_call_manager_signal_info_forwarded =
+{
+ {
+ -1,
+ (gchar *) "Forwarded",
+ (GDBusArgInfo **) &_ofono_modem_org_ofono_voice_call_manager_signal_info_forwarded_ARG_pointers,
+ NULL
+ },
+ "forwarded"
+};
+
+static const _ExtendedGDBusArgInfo _ofono_modem_org_ofono_voice_call_manager_signal_info_barring_active_ARG_type =
+{
+ {
+ -1,
+ (gchar *) "type",
+ (gchar *) "s",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo * const _ofono_modem_org_ofono_voice_call_manager_signal_info_barring_active_ARG_pointers[] =
+{
+ &_ofono_modem_org_ofono_voice_call_manager_signal_info_barring_active_ARG_type,
+ NULL
+};
+
+static const _ExtendedGDBusSignalInfo _ofono_modem_org_ofono_voice_call_manager_signal_info_barring_active =
+{
+ {
+ -1,
+ (gchar *) "BarringActive",
+ (GDBusArgInfo **) &_ofono_modem_org_ofono_voice_call_manager_signal_info_barring_active_ARG_pointers,
+ NULL
+ },
+ "barring-active"
+};
+
+static const _ExtendedGDBusArgInfo _ofono_modem_org_ofono_voice_call_manager_signal_info_property_changed_ARG_name =
+{
+ {
+ -1,
+ (gchar *) "name",
+ (gchar *) "s",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo _ofono_modem_org_ofono_voice_call_manager_signal_info_property_changed_ARG_value =
+{
+ {
+ -1,
+ (gchar *) "value",
+ (gchar *) "v",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo * const _ofono_modem_org_ofono_voice_call_manager_signal_info_property_changed_ARG_pointers[] =
+{
+ &_ofono_modem_org_ofono_voice_call_manager_signal_info_property_changed_ARG_name,
+ &_ofono_modem_org_ofono_voice_call_manager_signal_info_property_changed_ARG_value,
+ NULL
+};
+
+static const _ExtendedGDBusSignalInfo _ofono_modem_org_ofono_voice_call_manager_signal_info_property_changed =
+{
+ {
+ -1,
+ (gchar *) "PropertyChanged",
+ (GDBusArgInfo **) &_ofono_modem_org_ofono_voice_call_manager_signal_info_property_changed_ARG_pointers,
+ NULL
+ },
+ "property-changed"
+};
+
+static const _ExtendedGDBusArgInfo _ofono_modem_org_ofono_voice_call_manager_signal_info_call_added_ARG_path =
+{
+ {
+ -1,
+ (gchar *) "path",
+ (gchar *) "o",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo _ofono_modem_org_ofono_voice_call_manager_signal_info_call_added_ARG_properties =
+{
+ {
+ -1,
+ (gchar *) "properties",
+ (gchar *) "a{sv}",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo * const _ofono_modem_org_ofono_voice_call_manager_signal_info_call_added_ARG_pointers[] =
+{
+ &_ofono_modem_org_ofono_voice_call_manager_signal_info_call_added_ARG_path,
+ &_ofono_modem_org_ofono_voice_call_manager_signal_info_call_added_ARG_properties,
+ NULL
+};
+
+static const _ExtendedGDBusSignalInfo _ofono_modem_org_ofono_voice_call_manager_signal_info_call_added =
+{
+ {
+ -1,
+ (gchar *) "CallAdded",
+ (GDBusArgInfo **) &_ofono_modem_org_ofono_voice_call_manager_signal_info_call_added_ARG_pointers,
+ NULL
+ },
+ "call-added"
+};
+
+static const _ExtendedGDBusArgInfo _ofono_modem_org_ofono_voice_call_manager_signal_info_call_removed_ARG_path =
+{
+ {
+ -1,
+ (gchar *) "path",
+ (gchar *) "o",
+ NULL
+ },
+ FALSE
+};
+
+static const _ExtendedGDBusArgInfo * const _ofono_modem_org_ofono_voice_call_manager_signal_info_call_removed_ARG_pointers[] =
+{
+ &_ofono_modem_org_ofono_voice_call_manager_signal_info_call_removed_ARG_path,
+ NULL
+};
+
+static const _ExtendedGDBusSignalInfo _ofono_modem_org_ofono_voice_call_manager_signal_info_call_removed =
+{
+ {
+ -1,
+ (gchar *) "CallRemoved",
+ (GDBusArgInfo **) &_ofono_modem_org_ofono_voice_call_manager_signal_info_call_removed_ARG_pointers,
+ NULL
+ },
+ "call-removed"
+};
+
+static const _ExtendedGDBusSignalInfo * const _ofono_modem_org_ofono_voice_call_manager_signal_info_pointers[] =
+{
+ &_ofono_modem_org_ofono_voice_call_manager_signal_info_forwarded,
+ &_ofono_modem_org_ofono_voice_call_manager_signal_info_barring_active,
+ &_ofono_modem_org_ofono_voice_call_manager_signal_info_property_changed,
+ &_ofono_modem_org_ofono_voice_call_manager_signal_info_call_added,
+ &_ofono_modem_org_ofono_voice_call_manager_signal_info_call_removed,
+ NULL
+};
+
+static const _ExtendedGDBusInterfaceInfo _ofono_modem_org_ofono_voice_call_manager_interface_info =
+{
+ {
+ -1,
+ (gchar *) "org.ofono.VoiceCallManager",
+ (GDBusMethodInfo **) &_ofono_modem_org_ofono_voice_call_manager_method_info_pointers,
+ (GDBusSignalInfo **) &_ofono_modem_org_ofono_voice_call_manager_signal_info_pointers,
+ NULL,
+ NULL
+ },
+ "org-ofono-voice-call-manager",
+};
+
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_interface_info:
+ *
+ * Gets a machine-readable description of the <link linkend="gdbus-interface-org-ofono-VoiceCallManager.top_of_page">org.ofono.VoiceCallManager</link> D-Bus interface.
+ *
+ * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
+ */
+GDBusInterfaceInfo *
+ofono_modem_org_ofono_voice_call_manager_interface_info (void)
+{
+ return (GDBusInterfaceInfo *) &_ofono_modem_org_ofono_voice_call_manager_interface_info.parent_struct;
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_override_properties:
+ * @klass: The class structure for a #GObject<!-- -->-derived class.
+ * @property_id_begin: The property id to assign to the first overridden property.
+ *
+ * Overrides all #GObject properties in the #OFONOMODEMOrgOfonoVoiceCallManager interface for a concrete class.
+ * The properties are overridden in the order they are defined.
+ *
+ * Returns: The last property id.
+ */
+guint
+ofono_modem_org_ofono_voice_call_manager_override_properties (GObjectClass *klass, guint property_id_begin)
+{
+ return property_id_begin - 1;
+}
+
+
+
+/**
+ * OFONOMODEMOrgOfonoVoiceCallManager:
+ *
+ * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-ofono-VoiceCallManager.top_of_page">org.ofono.VoiceCallManager</link>.
+ */
+
+/**
+ * OFONOMODEMOrgOfonoVoiceCallManagerIface:
+ * @parent_iface: The parent interface.
+ * @handle_create_multiparty: Handler for the #OFONOMODEMOrgOfonoVoiceCallManager::handle-create-multiparty signal.
+ * @handle_dial: Handler for the #OFONOMODEMOrgOfonoVoiceCallManager::handle-dial signal.
+ * @handle_get_calls: Handler for the #OFONOMODEMOrgOfonoVoiceCallManager::handle-get-calls signal.
+ * @handle_get_properties: Handler for the #OFONOMODEMOrgOfonoVoiceCallManager::handle-get-properties signal.
+ * @handle_hangup_all: Handler for the #OFONOMODEMOrgOfonoVoiceCallManager::handle-hangup-all signal.
+ * @handle_hangup_multiparty: Handler for the #OFONOMODEMOrgOfonoVoiceCallManager::handle-hangup-multiparty signal.
+ * @handle_hold_and_answer: Handler for the #OFONOMODEMOrgOfonoVoiceCallManager::handle-hold-and-answer signal.
+ * @handle_private_chat: Handler for the #OFONOMODEMOrgOfonoVoiceCallManager::handle-private-chat signal.
+ * @handle_release_and_answer: Handler for the #OFONOMODEMOrgOfonoVoiceCallManager::handle-release-and-answer signal.
+ * @handle_release_and_swap: Handler for the #OFONOMODEMOrgOfonoVoiceCallManager::handle-release-and-swap signal.
+ * @handle_send_tones: Handler for the #OFONOMODEMOrgOfonoVoiceCallManager::handle-send-tones signal.
+ * @handle_swap_calls: Handler for the #OFONOMODEMOrgOfonoVoiceCallManager::handle-swap-calls signal.
+ * @handle_transfer: Handler for the #OFONOMODEMOrgOfonoVoiceCallManager::handle-transfer signal.
+ * @barring_active: Handler for the #OFONOMODEMOrgOfonoVoiceCallManager::barring-active signal.
+ * @call_added: Handler for the #OFONOMODEMOrgOfonoVoiceCallManager::call-added signal.
+ * @call_removed: Handler for the #OFONOMODEMOrgOfonoVoiceCallManager::call-removed signal.
+ * @forwarded: Handler for the #OFONOMODEMOrgOfonoVoiceCallManager::forwarded signal.
+ * @property_changed: Handler for the #OFONOMODEMOrgOfonoVoiceCallManager::property-changed signal.
+ *
+ * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-ofono-VoiceCallManager.top_of_page">org.ofono.VoiceCallManager</link>.
+ */
+
+typedef OFONOMODEMOrgOfonoVoiceCallManagerIface OFONOMODEMOrgOfonoVoiceCallManagerInterface;
+G_DEFINE_INTERFACE (OFONOMODEMOrgOfonoVoiceCallManager, ofono_modem_org_ofono_voice_call_manager, G_TYPE_OBJECT);
+
+static void
+ofono_modem_org_ofono_voice_call_manager_default_init (OFONOMODEMOrgOfonoVoiceCallManagerIface *iface)
+{
+ /* GObject signals for incoming D-Bus method calls: */
+ /**
+ * OFONOMODEMOrgOfonoVoiceCallManager::handle-get-properties:
+ * @object: A #OFONOMODEMOrgOfonoVoiceCallManager.
+ * @invocation: A #GDBusMethodInvocation.
+ *
+ * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-ofono-VoiceCallManager.GetProperties">GetProperties()</link> D-Bus method.
+ *
+ * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call ofono_modem_org_ofono_voice_call_manager_complete_get_properties() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
+ *
+ * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
+ */
+ g_signal_new ("handle-get-properties",
+ G_TYPE_FROM_INTERFACE (iface),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (OFONOMODEMOrgOfonoVoiceCallManagerIface, handle_get_properties),
+ g_signal_accumulator_true_handled,
+ NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_BOOLEAN,
+ 1,
+ G_TYPE_DBUS_METHOD_INVOCATION);
+
+ /**
+ * OFONOMODEMOrgOfonoVoiceCallManager::handle-dial:
+ * @object: A #OFONOMODEMOrgOfonoVoiceCallManager.
+ * @invocation: A #GDBusMethodInvocation.
+ * @arg_number: Argument passed by remote caller.
+ * @arg_hide_callerid: Argument passed by remote caller.
+ *
+ * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-ofono-VoiceCallManager.Dial">Dial()</link> D-Bus method.
+ *
+ * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call ofono_modem_org_ofono_voice_call_manager_complete_dial() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
+ *
+ * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
+ */
+ g_signal_new ("handle-dial",
+ G_TYPE_FROM_INTERFACE (iface),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (OFONOMODEMOrgOfonoVoiceCallManagerIface, handle_dial),
+ g_signal_accumulator_true_handled,
+ NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_BOOLEAN,
+ 3,
+ G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING, G_TYPE_STRING);
+
+ /**
+ * OFONOMODEMOrgOfonoVoiceCallManager::handle-transfer:
+ * @object: A #OFONOMODEMOrgOfonoVoiceCallManager.
+ * @invocation: A #GDBusMethodInvocation.
+ *
+ * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-ofono-VoiceCallManager.Transfer">Transfer()</link> D-Bus method.
+ *
+ * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call ofono_modem_org_ofono_voice_call_manager_complete_transfer() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
+ *
+ * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
+ */
+ g_signal_new ("handle-transfer",
+ G_TYPE_FROM_INTERFACE (iface),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (OFONOMODEMOrgOfonoVoiceCallManagerIface, handle_transfer),
+ g_signal_accumulator_true_handled,
+ NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_BOOLEAN,
+ 1,
+ G_TYPE_DBUS_METHOD_INVOCATION);
+
+ /**
+ * OFONOMODEMOrgOfonoVoiceCallManager::handle-swap-calls:
+ * @object: A #OFONOMODEMOrgOfonoVoiceCallManager.
+ * @invocation: A #GDBusMethodInvocation.
+ *
+ * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-ofono-VoiceCallManager.SwapCalls">SwapCalls()</link> D-Bus method.
+ *
+ * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call ofono_modem_org_ofono_voice_call_manager_complete_swap_calls() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
+ *
+ * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
+ */
+ g_signal_new ("handle-swap-calls",
+ G_TYPE_FROM_INTERFACE (iface),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (OFONOMODEMOrgOfonoVoiceCallManagerIface, handle_swap_calls),
+ g_signal_accumulator_true_handled,
+ NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_BOOLEAN,
+ 1,
+ G_TYPE_DBUS_METHOD_INVOCATION);
+
+ /**
+ * OFONOMODEMOrgOfonoVoiceCallManager::handle-release-and-answer:
+ * @object: A #OFONOMODEMOrgOfonoVoiceCallManager.
+ * @invocation: A #GDBusMethodInvocation.
+ *
+ * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-ofono-VoiceCallManager.ReleaseAndAnswer">ReleaseAndAnswer()</link> D-Bus method.
+ *
+ * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call ofono_modem_org_ofono_voice_call_manager_complete_release_and_answer() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
+ *
+ * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
+ */
+ g_signal_new ("handle-release-and-answer",
+ G_TYPE_FROM_INTERFACE (iface),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (OFONOMODEMOrgOfonoVoiceCallManagerIface, handle_release_and_answer),
+ g_signal_accumulator_true_handled,
+ NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_BOOLEAN,
+ 1,
+ G_TYPE_DBUS_METHOD_INVOCATION);
+
+ /**
+ * OFONOMODEMOrgOfonoVoiceCallManager::handle-release-and-swap:
+ * @object: A #OFONOMODEMOrgOfonoVoiceCallManager.
+ * @invocation: A #GDBusMethodInvocation.
+ *
+ * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-ofono-VoiceCallManager.ReleaseAndSwap">ReleaseAndSwap()</link> D-Bus method.
+ *
+ * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call ofono_modem_org_ofono_voice_call_manager_complete_release_and_swap() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
+ *
+ * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
+ */
+ g_signal_new ("handle-release-and-swap",
+ G_TYPE_FROM_INTERFACE (iface),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (OFONOMODEMOrgOfonoVoiceCallManagerIface, handle_release_and_swap),
+ g_signal_accumulator_true_handled,
+ NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_BOOLEAN,
+ 1,
+ G_TYPE_DBUS_METHOD_INVOCATION);
+
+ /**
+ * OFONOMODEMOrgOfonoVoiceCallManager::handle-hold-and-answer:
+ * @object: A #OFONOMODEMOrgOfonoVoiceCallManager.
+ * @invocation: A #GDBusMethodInvocation.
+ *
+ * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-ofono-VoiceCallManager.HoldAndAnswer">HoldAndAnswer()</link> D-Bus method.
+ *
+ * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call ofono_modem_org_ofono_voice_call_manager_complete_hold_and_answer() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
+ *
+ * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
+ */
+ g_signal_new ("handle-hold-and-answer",
+ G_TYPE_FROM_INTERFACE (iface),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (OFONOMODEMOrgOfonoVoiceCallManagerIface, handle_hold_and_answer),
+ g_signal_accumulator_true_handled,
+ NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_BOOLEAN,
+ 1,
+ G_TYPE_DBUS_METHOD_INVOCATION);
+
+ /**
+ * OFONOMODEMOrgOfonoVoiceCallManager::handle-hangup-all:
+ * @object: A #OFONOMODEMOrgOfonoVoiceCallManager.
+ * @invocation: A #GDBusMethodInvocation.
+ *
+ * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-ofono-VoiceCallManager.HangupAll">HangupAll()</link> D-Bus method.
+ *
+ * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call ofono_modem_org_ofono_voice_call_manager_complete_hangup_all() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
+ *
+ * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
+ */
+ g_signal_new ("handle-hangup-all",
+ G_TYPE_FROM_INTERFACE (iface),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (OFONOMODEMOrgOfonoVoiceCallManagerIface, handle_hangup_all),
+ g_signal_accumulator_true_handled,
+ NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_BOOLEAN,
+ 1,
+ G_TYPE_DBUS_METHOD_INVOCATION);
+
+ /**
+ * OFONOMODEMOrgOfonoVoiceCallManager::handle-private-chat:
+ * @object: A #OFONOMODEMOrgOfonoVoiceCallManager.
+ * @invocation: A #GDBusMethodInvocation.
+ * @arg_call: Argument passed by remote caller.
+ *
+ * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-ofono-VoiceCallManager.PrivateChat">PrivateChat()</link> D-Bus method.
+ *
+ * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call ofono_modem_org_ofono_voice_call_manager_complete_private_chat() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
+ *
+ * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
+ */
+ g_signal_new ("handle-private-chat",
+ G_TYPE_FROM_INTERFACE (iface),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (OFONOMODEMOrgOfonoVoiceCallManagerIface, handle_private_chat),
+ g_signal_accumulator_true_handled,
+ NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_BOOLEAN,
+ 2,
+ G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING);
+
+ /**
+ * OFONOMODEMOrgOfonoVoiceCallManager::handle-create-multiparty:
+ * @object: A #OFONOMODEMOrgOfonoVoiceCallManager.
+ * @invocation: A #GDBusMethodInvocation.
+ *
+ * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-ofono-VoiceCallManager.CreateMultiparty">CreateMultiparty()</link> D-Bus method.
+ *
+ * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call ofono_modem_org_ofono_voice_call_manager_complete_create_multiparty() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
+ *
+ * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
+ */
+ g_signal_new ("handle-create-multiparty",
+ G_TYPE_FROM_INTERFACE (iface),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (OFONOMODEMOrgOfonoVoiceCallManagerIface, handle_create_multiparty),
+ g_signal_accumulator_true_handled,
+ NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_BOOLEAN,
+ 1,
+ G_TYPE_DBUS_METHOD_INVOCATION);
+
+ /**
+ * OFONOMODEMOrgOfonoVoiceCallManager::handle-hangup-multiparty:
+ * @object: A #OFONOMODEMOrgOfonoVoiceCallManager.
+ * @invocation: A #GDBusMethodInvocation.
+ *
+ * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-ofono-VoiceCallManager.HangupMultiparty">HangupMultiparty()</link> D-Bus method.
+ *
+ * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call ofono_modem_org_ofono_voice_call_manager_complete_hangup_multiparty() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
+ *
+ * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
+ */
+ g_signal_new ("handle-hangup-multiparty",
+ G_TYPE_FROM_INTERFACE (iface),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (OFONOMODEMOrgOfonoVoiceCallManagerIface, handle_hangup_multiparty),
+ g_signal_accumulator_true_handled,
+ NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_BOOLEAN,
+ 1,
+ G_TYPE_DBUS_METHOD_INVOCATION);
+
+ /**
+ * OFONOMODEMOrgOfonoVoiceCallManager::handle-send-tones:
+ * @object: A #OFONOMODEMOrgOfonoVoiceCallManager.
+ * @invocation: A #GDBusMethodInvocation.
+ * @arg_SendTones: Argument passed by remote caller.
+ *
+ * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-ofono-VoiceCallManager.SendTones">SendTones()</link> D-Bus method.
+ *
+ * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call ofono_modem_org_ofono_voice_call_manager_complete_send_tones() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
+ *
+ * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
+ */
+ g_signal_new ("handle-send-tones",
+ G_TYPE_FROM_INTERFACE (iface),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (OFONOMODEMOrgOfonoVoiceCallManagerIface, handle_send_tones),
+ g_signal_accumulator_true_handled,
+ NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_BOOLEAN,
+ 2,
+ G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING);
+
+ /**
+ * OFONOMODEMOrgOfonoVoiceCallManager::handle-get-calls:
+ * @object: A #OFONOMODEMOrgOfonoVoiceCallManager.
+ * @invocation: A #GDBusMethodInvocation.
+ *
+ * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-ofono-VoiceCallManager.GetCalls">GetCalls()</link> D-Bus method.
+ *
+ * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call ofono_modem_org_ofono_voice_call_manager_complete_get_calls() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
+ *
+ * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
+ */
+ g_signal_new ("handle-get-calls",
+ G_TYPE_FROM_INTERFACE (iface),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (OFONOMODEMOrgOfonoVoiceCallManagerIface, handle_get_calls),
+ g_signal_accumulator_true_handled,
+ NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_BOOLEAN,
+ 1,
+ G_TYPE_DBUS_METHOD_INVOCATION);
+
+ /* GObject signals for received D-Bus signals: */
+ /**
+ * OFONOMODEMOrgOfonoVoiceCallManager::forwarded:
+ * @object: A #OFONOMODEMOrgOfonoVoiceCallManager.
+ * @arg_type: Argument.
+ *
+ * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-ofono-VoiceCallManager.Forwarded">"Forwarded"</link> is received.
+ *
+ * On the service-side, this signal can be used with e.g. g_signal_emit_by_name() to make the object emit the D-Bus signal.
+ */
+ g_signal_new ("forwarded",
+ G_TYPE_FROM_INTERFACE (iface),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (OFONOMODEMOrgOfonoVoiceCallManagerIface, forwarded),
+ NULL,
+ NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_NONE,
+ 1, G_TYPE_STRING);
+
+ /**
+ * OFONOMODEMOrgOfonoVoiceCallManager::barring-active:
+ * @object: A #OFONOMODEMOrgOfonoVoiceCallManager.
+ * @arg_type: Argument.
+ *
+ * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-ofono-VoiceCallManager.BarringActive">"BarringActive"</link> is received.
+ *
+ * On the service-side, this signal can be used with e.g. g_signal_emit_by_name() to make the object emit the D-Bus signal.
+ */
+ g_signal_new ("barring-active",
+ G_TYPE_FROM_INTERFACE (iface),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (OFONOMODEMOrgOfonoVoiceCallManagerIface, barring_active),
+ NULL,
+ NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_NONE,
+ 1, G_TYPE_STRING);
+
+ /**
+ * OFONOMODEMOrgOfonoVoiceCallManager::property-changed:
+ * @object: A #OFONOMODEMOrgOfonoVoiceCallManager.
+ * @arg_name: Argument.
+ * @arg_value: Argument.
+ *
+ * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-ofono-VoiceCallManager.PropertyChanged">"PropertyChanged"</link> is received.
+ *
+ * On the service-side, this signal can be used with e.g. g_signal_emit_by_name() to make the object emit the D-Bus signal.
+ */
+ g_signal_new ("property-changed",
+ G_TYPE_FROM_INTERFACE (iface),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (OFONOMODEMOrgOfonoVoiceCallManagerIface, property_changed),
+ NULL,
+ NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_NONE,
+ 2, G_TYPE_STRING, G_TYPE_VARIANT);
+
+ /**
+ * OFONOMODEMOrgOfonoVoiceCallManager::call-added:
+ * @object: A #OFONOMODEMOrgOfonoVoiceCallManager.
+ * @arg_path: Argument.
+ * @arg_properties: Argument.
+ *
+ * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-ofono-VoiceCallManager.CallAdded">"CallAdded"</link> is received.
+ *
+ * On the service-side, this signal can be used with e.g. g_signal_emit_by_name() to make the object emit the D-Bus signal.
+ */
+ g_signal_new ("call-added",
+ G_TYPE_FROM_INTERFACE (iface),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (OFONOMODEMOrgOfonoVoiceCallManagerIface, call_added),
+ NULL,
+ NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_NONE,
+ 2, G_TYPE_STRING, G_TYPE_VARIANT);
+
+ /**
+ * OFONOMODEMOrgOfonoVoiceCallManager::call-removed:
+ * @object: A #OFONOMODEMOrgOfonoVoiceCallManager.
+ * @arg_path: Argument.
+ *
+ * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-ofono-VoiceCallManager.CallRemoved">"CallRemoved"</link> is received.
+ *
+ * On the service-side, this signal can be used with e.g. g_signal_emit_by_name() to make the object emit the D-Bus signal.
+ */
+ g_signal_new ("call-removed",
+ G_TYPE_FROM_INTERFACE (iface),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (OFONOMODEMOrgOfonoVoiceCallManagerIface, call_removed),
+ NULL,
+ NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_NONE,
+ 1, G_TYPE_STRING);
+
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_emit_forwarded:
+ * @object: A #OFONOMODEMOrgOfonoVoiceCallManager.
+ * @arg_type: Argument to pass with the signal.
+ *
+ * Emits the <link linkend="gdbus-signal-org-ofono-VoiceCallManager.Forwarded">"Forwarded"</link> D-Bus signal.
+ */
+void
+ofono_modem_org_ofono_voice_call_manager_emit_forwarded (
+ OFONOMODEMOrgOfonoVoiceCallManager *object,
+ const gchar *arg_type)
+{
+ g_signal_emit_by_name (object, "forwarded", arg_type);
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_emit_barring_active:
+ * @object: A #OFONOMODEMOrgOfonoVoiceCallManager.
+ * @arg_type: Argument to pass with the signal.
+ *
+ * Emits the <link linkend="gdbus-signal-org-ofono-VoiceCallManager.BarringActive">"BarringActive"</link> D-Bus signal.
+ */
+void
+ofono_modem_org_ofono_voice_call_manager_emit_barring_active (
+ OFONOMODEMOrgOfonoVoiceCallManager *object,
+ const gchar *arg_type)
+{
+ g_signal_emit_by_name (object, "barring-active", arg_type);
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_emit_property_changed:
+ * @object: A #OFONOMODEMOrgOfonoVoiceCallManager.
+ * @arg_name: Argument to pass with the signal.
+ * @arg_value: Argument to pass with the signal.
+ *
+ * Emits the <link linkend="gdbus-signal-org-ofono-VoiceCallManager.PropertyChanged">"PropertyChanged"</link> D-Bus signal.
+ */
+void
+ofono_modem_org_ofono_voice_call_manager_emit_property_changed (
+ OFONOMODEMOrgOfonoVoiceCallManager *object,
+ const gchar *arg_name,
+ GVariant *arg_value)
+{
+ g_signal_emit_by_name (object, "property-changed", arg_name, arg_value);
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_emit_call_added:
+ * @object: A #OFONOMODEMOrgOfonoVoiceCallManager.
+ * @arg_path: Argument to pass with the signal.
+ * @arg_properties: Argument to pass with the signal.
+ *
+ * Emits the <link linkend="gdbus-signal-org-ofono-VoiceCallManager.CallAdded">"CallAdded"</link> D-Bus signal.
+ */
+void
+ofono_modem_org_ofono_voice_call_manager_emit_call_added (
+ OFONOMODEMOrgOfonoVoiceCallManager *object,
+ const gchar *arg_path,
+ GVariant *arg_properties)
+{
+ g_signal_emit_by_name (object, "call-added", arg_path, arg_properties);
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_emit_call_removed:
+ * @object: A #OFONOMODEMOrgOfonoVoiceCallManager.
+ * @arg_path: Argument to pass with the signal.
+ *
+ * Emits the <link linkend="gdbus-signal-org-ofono-VoiceCallManager.CallRemoved">"CallRemoved"</link> D-Bus signal.
+ */
+void
+ofono_modem_org_ofono_voice_call_manager_emit_call_removed (
+ OFONOMODEMOrgOfonoVoiceCallManager *object,
+ const gchar *arg_path)
+{
+ g_signal_emit_by_name (object, "call-removed", arg_path);
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_call_get_properties:
+ * @proxy: A #OFONOMODEMOrgOfonoVoiceCallManagerProxy.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
+ * @user_data: User data to pass to @callback.
+ *
+ * Asynchronously invokes the <link linkend="gdbus-method-org-ofono-VoiceCallManager.GetProperties">GetProperties()</link> D-Bus method on @proxy.
+ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
+ * You can then call ofono_modem_org_ofono_voice_call_manager_call_get_properties_finish() to get the result of the operation.
+ *
+ * See ofono_modem_org_ofono_voice_call_manager_call_get_properties_sync() for the synchronous, blocking version of this method.
+ */
+void
+ofono_modem_org_ofono_voice_call_manager_call_get_properties (
+ OFONOMODEMOrgOfonoVoiceCallManager *proxy,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_dbus_proxy_call (G_DBUS_PROXY (proxy),
+ "GetProperties",
+ g_variant_new ("()"),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ callback,
+ user_data);
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_call_get_properties_finish:
+ * @proxy: A #OFONOMODEMOrgOfonoVoiceCallManagerProxy.
+ * @out_properties: (out): Return location for return parameter or %NULL to ignore.
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_modem_org_ofono_voice_call_manager_call_get_properties().
+ * @error: Return location for error or %NULL.
+ *
+ * Finishes an operation started with ofono_modem_org_ofono_voice_call_manager_call_get_properties().
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_voice_call_manager_call_get_properties_finish (
+ OFONOMODEMOrgOfonoVoiceCallManager *proxy,
+ GVariant **out_properties,
+ GAsyncResult *res,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "(@a{sv})",
+ out_properties);
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_call_get_properties_sync:
+ * @proxy: A #OFONOMODEMOrgOfonoVoiceCallManagerProxy.
+ * @out_properties: (out): Return location for return parameter or %NULL to ignore.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL.
+ *
+ * Synchronously invokes the <link linkend="gdbus-method-org-ofono-VoiceCallManager.GetProperties">GetProperties()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ *
+ * See ofono_modem_org_ofono_voice_call_manager_call_get_properties() for the asynchronous version of this method.
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_voice_call_manager_call_get_properties_sync (
+ OFONOMODEMOrgOfonoVoiceCallManager *proxy,
+ GVariant **out_properties,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
+ "GetProperties",
+ g_variant_new ("()"),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "(@a{sv})",
+ out_properties);
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_call_dial:
+ * @proxy: A #OFONOMODEMOrgOfonoVoiceCallManagerProxy.
+ * @arg_number: Argument to pass with the method invocation.
+ * @arg_hide_callerid: Argument to pass with the method invocation.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
+ * @user_data: User data to pass to @callback.
+ *
+ * Asynchronously invokes the <link linkend="gdbus-method-org-ofono-VoiceCallManager.Dial">Dial()</link> D-Bus method on @proxy.
+ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
+ * You can then call ofono_modem_org_ofono_voice_call_manager_call_dial_finish() to get the result of the operation.
+ *
+ * See ofono_modem_org_ofono_voice_call_manager_call_dial_sync() for the synchronous, blocking version of this method.
+ */
+void
+ofono_modem_org_ofono_voice_call_manager_call_dial (
+ OFONOMODEMOrgOfonoVoiceCallManager *proxy,
+ const gchar *arg_number,
+ const gchar *arg_hide_callerid,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_dbus_proxy_call (G_DBUS_PROXY (proxy),
+ "Dial",
+ g_variant_new ("(ss)",
+ arg_number,
+ arg_hide_callerid),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ callback,
+ user_data);
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_call_dial_finish:
+ * @proxy: A #OFONOMODEMOrgOfonoVoiceCallManagerProxy.
+ * @out_path: (out): Return location for return parameter or %NULL to ignore.
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_modem_org_ofono_voice_call_manager_call_dial().
+ * @error: Return location for error or %NULL.
+ *
+ * Finishes an operation started with ofono_modem_org_ofono_voice_call_manager_call_dial().
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_voice_call_manager_call_dial_finish (
+ OFONOMODEMOrgOfonoVoiceCallManager *proxy,
+ gchar **out_path,
+ GAsyncResult *res,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "(o)",
+ out_path);
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_call_dial_sync:
+ * @proxy: A #OFONOMODEMOrgOfonoVoiceCallManagerProxy.
+ * @arg_number: Argument to pass with the method invocation.
+ * @arg_hide_callerid: Argument to pass with the method invocation.
+ * @out_path: (out): Return location for return parameter or %NULL to ignore.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL.
+ *
+ * Synchronously invokes the <link linkend="gdbus-method-org-ofono-VoiceCallManager.Dial">Dial()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ *
+ * See ofono_modem_org_ofono_voice_call_manager_call_dial() for the asynchronous version of this method.
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_voice_call_manager_call_dial_sync (
+ OFONOMODEMOrgOfonoVoiceCallManager *proxy,
+ const gchar *arg_number,
+ const gchar *arg_hide_callerid,
+ gchar **out_path,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
+ "Dial",
+ g_variant_new ("(ss)",
+ arg_number,
+ arg_hide_callerid),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "(o)",
+ out_path);
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_call_transfer:
+ * @proxy: A #OFONOMODEMOrgOfonoVoiceCallManagerProxy.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
+ * @user_data: User data to pass to @callback.
+ *
+ * Asynchronously invokes the <link linkend="gdbus-method-org-ofono-VoiceCallManager.Transfer">Transfer()</link> D-Bus method on @proxy.
+ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
+ * You can then call ofono_modem_org_ofono_voice_call_manager_call_transfer_finish() to get the result of the operation.
+ *
+ * See ofono_modem_org_ofono_voice_call_manager_call_transfer_sync() for the synchronous, blocking version of this method.
+ */
+void
+ofono_modem_org_ofono_voice_call_manager_call_transfer (
+ OFONOMODEMOrgOfonoVoiceCallManager *proxy,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_dbus_proxy_call (G_DBUS_PROXY (proxy),
+ "Transfer",
+ g_variant_new ("()"),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ callback,
+ user_data);
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_call_transfer_finish:
+ * @proxy: A #OFONOMODEMOrgOfonoVoiceCallManagerProxy.
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_modem_org_ofono_voice_call_manager_call_transfer().
+ * @error: Return location for error or %NULL.
+ *
+ * Finishes an operation started with ofono_modem_org_ofono_voice_call_manager_call_transfer().
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_voice_call_manager_call_transfer_finish (
+ OFONOMODEMOrgOfonoVoiceCallManager *proxy,
+ GAsyncResult *res,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "()");
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_call_transfer_sync:
+ * @proxy: A #OFONOMODEMOrgOfonoVoiceCallManagerProxy.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL.
+ *
+ * Synchronously invokes the <link linkend="gdbus-method-org-ofono-VoiceCallManager.Transfer">Transfer()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ *
+ * See ofono_modem_org_ofono_voice_call_manager_call_transfer() for the asynchronous version of this method.
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_voice_call_manager_call_transfer_sync (
+ OFONOMODEMOrgOfonoVoiceCallManager *proxy,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
+ "Transfer",
+ g_variant_new ("()"),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "()");
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_call_swap_calls:
+ * @proxy: A #OFONOMODEMOrgOfonoVoiceCallManagerProxy.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
+ * @user_data: User data to pass to @callback.
+ *
+ * Asynchronously invokes the <link linkend="gdbus-method-org-ofono-VoiceCallManager.SwapCalls">SwapCalls()</link> D-Bus method on @proxy.
+ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
+ * You can then call ofono_modem_org_ofono_voice_call_manager_call_swap_calls_finish() to get the result of the operation.
+ *
+ * See ofono_modem_org_ofono_voice_call_manager_call_swap_calls_sync() for the synchronous, blocking version of this method.
+ */
+void
+ofono_modem_org_ofono_voice_call_manager_call_swap_calls (
+ OFONOMODEMOrgOfonoVoiceCallManager *proxy,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_dbus_proxy_call (G_DBUS_PROXY (proxy),
+ "SwapCalls",
+ g_variant_new ("()"),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ callback,
+ user_data);
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_call_swap_calls_finish:
+ * @proxy: A #OFONOMODEMOrgOfonoVoiceCallManagerProxy.
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_modem_org_ofono_voice_call_manager_call_swap_calls().
+ * @error: Return location for error or %NULL.
+ *
+ * Finishes an operation started with ofono_modem_org_ofono_voice_call_manager_call_swap_calls().
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_voice_call_manager_call_swap_calls_finish (
+ OFONOMODEMOrgOfonoVoiceCallManager *proxy,
+ GAsyncResult *res,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "()");
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_call_swap_calls_sync:
+ * @proxy: A #OFONOMODEMOrgOfonoVoiceCallManagerProxy.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL.
+ *
+ * Synchronously invokes the <link linkend="gdbus-method-org-ofono-VoiceCallManager.SwapCalls">SwapCalls()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ *
+ * See ofono_modem_org_ofono_voice_call_manager_call_swap_calls() for the asynchronous version of this method.
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_voice_call_manager_call_swap_calls_sync (
+ OFONOMODEMOrgOfonoVoiceCallManager *proxy,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
+ "SwapCalls",
+ g_variant_new ("()"),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "()");
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_call_release_and_answer:
+ * @proxy: A #OFONOMODEMOrgOfonoVoiceCallManagerProxy.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
+ * @user_data: User data to pass to @callback.
+ *
+ * Asynchronously invokes the <link linkend="gdbus-method-org-ofono-VoiceCallManager.ReleaseAndAnswer">ReleaseAndAnswer()</link> D-Bus method on @proxy.
+ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
+ * You can then call ofono_modem_org_ofono_voice_call_manager_call_release_and_answer_finish() to get the result of the operation.
+ *
+ * See ofono_modem_org_ofono_voice_call_manager_call_release_and_answer_sync() for the synchronous, blocking version of this method.
+ */
+void
+ofono_modem_org_ofono_voice_call_manager_call_release_and_answer (
+ OFONOMODEMOrgOfonoVoiceCallManager *proxy,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_dbus_proxy_call (G_DBUS_PROXY (proxy),
+ "ReleaseAndAnswer",
+ g_variant_new ("()"),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ callback,
+ user_data);
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_call_release_and_answer_finish:
+ * @proxy: A #OFONOMODEMOrgOfonoVoiceCallManagerProxy.
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_modem_org_ofono_voice_call_manager_call_release_and_answer().
+ * @error: Return location for error or %NULL.
+ *
+ * Finishes an operation started with ofono_modem_org_ofono_voice_call_manager_call_release_and_answer().
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_voice_call_manager_call_release_and_answer_finish (
+ OFONOMODEMOrgOfonoVoiceCallManager *proxy,
+ GAsyncResult *res,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "()");
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_call_release_and_answer_sync:
+ * @proxy: A #OFONOMODEMOrgOfonoVoiceCallManagerProxy.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL.
+ *
+ * Synchronously invokes the <link linkend="gdbus-method-org-ofono-VoiceCallManager.ReleaseAndAnswer">ReleaseAndAnswer()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ *
+ * See ofono_modem_org_ofono_voice_call_manager_call_release_and_answer() for the asynchronous version of this method.
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_voice_call_manager_call_release_and_answer_sync (
+ OFONOMODEMOrgOfonoVoiceCallManager *proxy,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
+ "ReleaseAndAnswer",
+ g_variant_new ("()"),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "()");
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_call_release_and_swap:
+ * @proxy: A #OFONOMODEMOrgOfonoVoiceCallManagerProxy.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
+ * @user_data: User data to pass to @callback.
+ *
+ * Asynchronously invokes the <link linkend="gdbus-method-org-ofono-VoiceCallManager.ReleaseAndSwap">ReleaseAndSwap()</link> D-Bus method on @proxy.
+ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
+ * You can then call ofono_modem_org_ofono_voice_call_manager_call_release_and_swap_finish() to get the result of the operation.
+ *
+ * See ofono_modem_org_ofono_voice_call_manager_call_release_and_swap_sync() for the synchronous, blocking version of this method.
+ */
+void
+ofono_modem_org_ofono_voice_call_manager_call_release_and_swap (
+ OFONOMODEMOrgOfonoVoiceCallManager *proxy,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_dbus_proxy_call (G_DBUS_PROXY (proxy),
+ "ReleaseAndSwap",
+ g_variant_new ("()"),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ callback,
+ user_data);
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_call_release_and_swap_finish:
+ * @proxy: A #OFONOMODEMOrgOfonoVoiceCallManagerProxy.
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_modem_org_ofono_voice_call_manager_call_release_and_swap().
+ * @error: Return location for error or %NULL.
+ *
+ * Finishes an operation started with ofono_modem_org_ofono_voice_call_manager_call_release_and_swap().
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_voice_call_manager_call_release_and_swap_finish (
+ OFONOMODEMOrgOfonoVoiceCallManager *proxy,
+ GAsyncResult *res,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "()");
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_call_release_and_swap_sync:
+ * @proxy: A #OFONOMODEMOrgOfonoVoiceCallManagerProxy.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL.
+ *
+ * Synchronously invokes the <link linkend="gdbus-method-org-ofono-VoiceCallManager.ReleaseAndSwap">ReleaseAndSwap()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ *
+ * See ofono_modem_org_ofono_voice_call_manager_call_release_and_swap() for the asynchronous version of this method.
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_voice_call_manager_call_release_and_swap_sync (
+ OFONOMODEMOrgOfonoVoiceCallManager *proxy,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
+ "ReleaseAndSwap",
+ g_variant_new ("()"),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "()");
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_call_hold_and_answer:
+ * @proxy: A #OFONOMODEMOrgOfonoVoiceCallManagerProxy.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
+ * @user_data: User data to pass to @callback.
+ *
+ * Asynchronously invokes the <link linkend="gdbus-method-org-ofono-VoiceCallManager.HoldAndAnswer">HoldAndAnswer()</link> D-Bus method on @proxy.
+ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
+ * You can then call ofono_modem_org_ofono_voice_call_manager_call_hold_and_answer_finish() to get the result of the operation.
+ *
+ * See ofono_modem_org_ofono_voice_call_manager_call_hold_and_answer_sync() for the synchronous, blocking version of this method.
+ */
+void
+ofono_modem_org_ofono_voice_call_manager_call_hold_and_answer (
+ OFONOMODEMOrgOfonoVoiceCallManager *proxy,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_dbus_proxy_call (G_DBUS_PROXY (proxy),
+ "HoldAndAnswer",
+ g_variant_new ("()"),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ callback,
+ user_data);
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_call_hold_and_answer_finish:
+ * @proxy: A #OFONOMODEMOrgOfonoVoiceCallManagerProxy.
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_modem_org_ofono_voice_call_manager_call_hold_and_answer().
+ * @error: Return location for error or %NULL.
+ *
+ * Finishes an operation started with ofono_modem_org_ofono_voice_call_manager_call_hold_and_answer().
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_voice_call_manager_call_hold_and_answer_finish (
+ OFONOMODEMOrgOfonoVoiceCallManager *proxy,
+ GAsyncResult *res,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "()");
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_call_hold_and_answer_sync:
+ * @proxy: A #OFONOMODEMOrgOfonoVoiceCallManagerProxy.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL.
+ *
+ * Synchronously invokes the <link linkend="gdbus-method-org-ofono-VoiceCallManager.HoldAndAnswer">HoldAndAnswer()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ *
+ * See ofono_modem_org_ofono_voice_call_manager_call_hold_and_answer() for the asynchronous version of this method.
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_voice_call_manager_call_hold_and_answer_sync (
+ OFONOMODEMOrgOfonoVoiceCallManager *proxy,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
+ "HoldAndAnswer",
+ g_variant_new ("()"),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "()");
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_call_hangup_all:
+ * @proxy: A #OFONOMODEMOrgOfonoVoiceCallManagerProxy.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
+ * @user_data: User data to pass to @callback.
+ *
+ * Asynchronously invokes the <link linkend="gdbus-method-org-ofono-VoiceCallManager.HangupAll">HangupAll()</link> D-Bus method on @proxy.
+ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
+ * You can then call ofono_modem_org_ofono_voice_call_manager_call_hangup_all_finish() to get the result of the operation.
+ *
+ * See ofono_modem_org_ofono_voice_call_manager_call_hangup_all_sync() for the synchronous, blocking version of this method.
+ */
+void
+ofono_modem_org_ofono_voice_call_manager_call_hangup_all (
+ OFONOMODEMOrgOfonoVoiceCallManager *proxy,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_dbus_proxy_call (G_DBUS_PROXY (proxy),
+ "HangupAll",
+ g_variant_new ("()"),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ callback,
+ user_data);
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_call_hangup_all_finish:
+ * @proxy: A #OFONOMODEMOrgOfonoVoiceCallManagerProxy.
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_modem_org_ofono_voice_call_manager_call_hangup_all().
+ * @error: Return location for error or %NULL.
+ *
+ * Finishes an operation started with ofono_modem_org_ofono_voice_call_manager_call_hangup_all().
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_voice_call_manager_call_hangup_all_finish (
+ OFONOMODEMOrgOfonoVoiceCallManager *proxy,
+ GAsyncResult *res,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "()");
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_call_hangup_all_sync:
+ * @proxy: A #OFONOMODEMOrgOfonoVoiceCallManagerProxy.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL.
+ *
+ * Synchronously invokes the <link linkend="gdbus-method-org-ofono-VoiceCallManager.HangupAll">HangupAll()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ *
+ * See ofono_modem_org_ofono_voice_call_manager_call_hangup_all() for the asynchronous version of this method.
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_voice_call_manager_call_hangup_all_sync (
+ OFONOMODEMOrgOfonoVoiceCallManager *proxy,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
+ "HangupAll",
+ g_variant_new ("()"),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "()");
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_call_private_chat:
+ * @proxy: A #OFONOMODEMOrgOfonoVoiceCallManagerProxy.
+ * @arg_call: Argument to pass with the method invocation.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
+ * @user_data: User data to pass to @callback.
+ *
+ * Asynchronously invokes the <link linkend="gdbus-method-org-ofono-VoiceCallManager.PrivateChat">PrivateChat()</link> D-Bus method on @proxy.
+ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
+ * You can then call ofono_modem_org_ofono_voice_call_manager_call_private_chat_finish() to get the result of the operation.
+ *
+ * See ofono_modem_org_ofono_voice_call_manager_call_private_chat_sync() for the synchronous, blocking version of this method.
+ */
+void
+ofono_modem_org_ofono_voice_call_manager_call_private_chat (
+ OFONOMODEMOrgOfonoVoiceCallManager *proxy,
+ const gchar *arg_call,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_dbus_proxy_call (G_DBUS_PROXY (proxy),
+ "PrivateChat",
+ g_variant_new ("(o)",
+ arg_call),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ callback,
+ user_data);
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_call_private_chat_finish:
+ * @proxy: A #OFONOMODEMOrgOfonoVoiceCallManagerProxy.
+ * @out_calls: (out): Return location for return parameter or %NULL to ignore.
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_modem_org_ofono_voice_call_manager_call_private_chat().
+ * @error: Return location for error or %NULL.
+ *
+ * Finishes an operation started with ofono_modem_org_ofono_voice_call_manager_call_private_chat().
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_voice_call_manager_call_private_chat_finish (
+ OFONOMODEMOrgOfonoVoiceCallManager *proxy,
+ gchar ***out_calls,
+ GAsyncResult *res,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "(^ao)",
+ out_calls);
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_call_private_chat_sync:
+ * @proxy: A #OFONOMODEMOrgOfonoVoiceCallManagerProxy.
+ * @arg_call: Argument to pass with the method invocation.
+ * @out_calls: (out): Return location for return parameter or %NULL to ignore.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL.
+ *
+ * Synchronously invokes the <link linkend="gdbus-method-org-ofono-VoiceCallManager.PrivateChat">PrivateChat()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ *
+ * See ofono_modem_org_ofono_voice_call_manager_call_private_chat() for the asynchronous version of this method.
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_voice_call_manager_call_private_chat_sync (
+ OFONOMODEMOrgOfonoVoiceCallManager *proxy,
+ const gchar *arg_call,
+ gchar ***out_calls,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
+ "PrivateChat",
+ g_variant_new ("(o)",
+ arg_call),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "(^ao)",
+ out_calls);
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_call_create_multiparty:
+ * @proxy: A #OFONOMODEMOrgOfonoVoiceCallManagerProxy.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
+ * @user_data: User data to pass to @callback.
+ *
+ * Asynchronously invokes the <link linkend="gdbus-method-org-ofono-VoiceCallManager.CreateMultiparty">CreateMultiparty()</link> D-Bus method on @proxy.
+ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
+ * You can then call ofono_modem_org_ofono_voice_call_manager_call_create_multiparty_finish() to get the result of the operation.
+ *
+ * See ofono_modem_org_ofono_voice_call_manager_call_create_multiparty_sync() for the synchronous, blocking version of this method.
+ */
+void
+ofono_modem_org_ofono_voice_call_manager_call_create_multiparty (
+ OFONOMODEMOrgOfonoVoiceCallManager *proxy,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_dbus_proxy_call (G_DBUS_PROXY (proxy),
+ "CreateMultiparty",
+ g_variant_new ("()"),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ callback,
+ user_data);
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_call_create_multiparty_finish:
+ * @proxy: A #OFONOMODEMOrgOfonoVoiceCallManagerProxy.
+ * @out_calls: (out): Return location for return parameter or %NULL to ignore.
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_modem_org_ofono_voice_call_manager_call_create_multiparty().
+ * @error: Return location for error or %NULL.
+ *
+ * Finishes an operation started with ofono_modem_org_ofono_voice_call_manager_call_create_multiparty().
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_voice_call_manager_call_create_multiparty_finish (
+ OFONOMODEMOrgOfonoVoiceCallManager *proxy,
+ gchar **out_calls,
+ GAsyncResult *res,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "(o)",
+ out_calls);
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_call_create_multiparty_sync:
+ * @proxy: A #OFONOMODEMOrgOfonoVoiceCallManagerProxy.
+ * @out_calls: (out): Return location for return parameter or %NULL to ignore.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL.
+ *
+ * Synchronously invokes the <link linkend="gdbus-method-org-ofono-VoiceCallManager.CreateMultiparty">CreateMultiparty()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ *
+ * See ofono_modem_org_ofono_voice_call_manager_call_create_multiparty() for the asynchronous version of this method.
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_voice_call_manager_call_create_multiparty_sync (
+ OFONOMODEMOrgOfonoVoiceCallManager *proxy,
+ gchar **out_calls,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
+ "CreateMultiparty",
+ g_variant_new ("()"),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "(o)",
+ out_calls);
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_call_hangup_multiparty:
+ * @proxy: A #OFONOMODEMOrgOfonoVoiceCallManagerProxy.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
+ * @user_data: User data to pass to @callback.
+ *
+ * Asynchronously invokes the <link linkend="gdbus-method-org-ofono-VoiceCallManager.HangupMultiparty">HangupMultiparty()</link> D-Bus method on @proxy.
+ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
+ * You can then call ofono_modem_org_ofono_voice_call_manager_call_hangup_multiparty_finish() to get the result of the operation.
+ *
+ * See ofono_modem_org_ofono_voice_call_manager_call_hangup_multiparty_sync() for the synchronous, blocking version of this method.
+ */
+void
+ofono_modem_org_ofono_voice_call_manager_call_hangup_multiparty (
+ OFONOMODEMOrgOfonoVoiceCallManager *proxy,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_dbus_proxy_call (G_DBUS_PROXY (proxy),
+ "HangupMultiparty",
+ g_variant_new ("()"),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ callback,
+ user_data);
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_call_hangup_multiparty_finish:
+ * @proxy: A #OFONOMODEMOrgOfonoVoiceCallManagerProxy.
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_modem_org_ofono_voice_call_manager_call_hangup_multiparty().
+ * @error: Return location for error or %NULL.
+ *
+ * Finishes an operation started with ofono_modem_org_ofono_voice_call_manager_call_hangup_multiparty().
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_voice_call_manager_call_hangup_multiparty_finish (
+ OFONOMODEMOrgOfonoVoiceCallManager *proxy,
+ GAsyncResult *res,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "()");
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_call_hangup_multiparty_sync:
+ * @proxy: A #OFONOMODEMOrgOfonoVoiceCallManagerProxy.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL.
+ *
+ * Synchronously invokes the <link linkend="gdbus-method-org-ofono-VoiceCallManager.HangupMultiparty">HangupMultiparty()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ *
+ * See ofono_modem_org_ofono_voice_call_manager_call_hangup_multiparty() for the asynchronous version of this method.
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_voice_call_manager_call_hangup_multiparty_sync (
+ OFONOMODEMOrgOfonoVoiceCallManager *proxy,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
+ "HangupMultiparty",
+ g_variant_new ("()"),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "()");
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_call_send_tones:
+ * @proxy: A #OFONOMODEMOrgOfonoVoiceCallManagerProxy.
+ * @arg_SendTones: Argument to pass with the method invocation.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
+ * @user_data: User data to pass to @callback.
+ *
+ * Asynchronously invokes the <link linkend="gdbus-method-org-ofono-VoiceCallManager.SendTones">SendTones()</link> D-Bus method on @proxy.
+ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
+ * You can then call ofono_modem_org_ofono_voice_call_manager_call_send_tones_finish() to get the result of the operation.
+ *
+ * See ofono_modem_org_ofono_voice_call_manager_call_send_tones_sync() for the synchronous, blocking version of this method.
+ */
+void
+ofono_modem_org_ofono_voice_call_manager_call_send_tones (
+ OFONOMODEMOrgOfonoVoiceCallManager *proxy,
+ const gchar *arg_SendTones,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_dbus_proxy_call (G_DBUS_PROXY (proxy),
+ "SendTones",
+ g_variant_new ("(s)",
+ arg_SendTones),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ callback,
+ user_data);
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_call_send_tones_finish:
+ * @proxy: A #OFONOMODEMOrgOfonoVoiceCallManagerProxy.
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_modem_org_ofono_voice_call_manager_call_send_tones().
+ * @error: Return location for error or %NULL.
+ *
+ * Finishes an operation started with ofono_modem_org_ofono_voice_call_manager_call_send_tones().
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_voice_call_manager_call_send_tones_finish (
+ OFONOMODEMOrgOfonoVoiceCallManager *proxy,
+ GAsyncResult *res,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "()");
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_call_send_tones_sync:
+ * @proxy: A #OFONOMODEMOrgOfonoVoiceCallManagerProxy.
+ * @arg_SendTones: Argument to pass with the method invocation.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL.
+ *
+ * Synchronously invokes the <link linkend="gdbus-method-org-ofono-VoiceCallManager.SendTones">SendTones()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ *
+ * See ofono_modem_org_ofono_voice_call_manager_call_send_tones() for the asynchronous version of this method.
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_voice_call_manager_call_send_tones_sync (
+ OFONOMODEMOrgOfonoVoiceCallManager *proxy,
+ const gchar *arg_SendTones,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
+ "SendTones",
+ g_variant_new ("(s)",
+ arg_SendTones),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "()");
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_call_get_calls:
+ * @proxy: A #OFONOMODEMOrgOfonoVoiceCallManagerProxy.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
+ * @user_data: User data to pass to @callback.
+ *
+ * Asynchronously invokes the <link linkend="gdbus-method-org-ofono-VoiceCallManager.GetCalls">GetCalls()</link> D-Bus method on @proxy.
+ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
+ * You can then call ofono_modem_org_ofono_voice_call_manager_call_get_calls_finish() to get the result of the operation.
+ *
+ * See ofono_modem_org_ofono_voice_call_manager_call_get_calls_sync() for the synchronous, blocking version of this method.
+ */
+void
+ofono_modem_org_ofono_voice_call_manager_call_get_calls (
+ OFONOMODEMOrgOfonoVoiceCallManager *proxy,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_dbus_proxy_call (G_DBUS_PROXY (proxy),
+ "GetCalls",
+ g_variant_new ("()"),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ callback,
+ user_data);
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_call_get_calls_finish:
+ * @proxy: A #OFONOMODEMOrgOfonoVoiceCallManagerProxy.
+ * @out_calls_with_properties: (out): Return location for return parameter or %NULL to ignore.
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_modem_org_ofono_voice_call_manager_call_get_calls().
+ * @error: Return location for error or %NULL.
+ *
+ * Finishes an operation started with ofono_modem_org_ofono_voice_call_manager_call_get_calls().
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_voice_call_manager_call_get_calls_finish (
+ OFONOMODEMOrgOfonoVoiceCallManager *proxy,
+ GVariant **out_calls_with_properties,
+ GAsyncResult *res,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "(@a(oa{sv}))",
+ out_calls_with_properties);
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_call_get_calls_sync:
+ * @proxy: A #OFONOMODEMOrgOfonoVoiceCallManagerProxy.
+ * @out_calls_with_properties: (out): Return location for return parameter or %NULL to ignore.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL.
+ *
+ * Synchronously invokes the <link linkend="gdbus-method-org-ofono-VoiceCallManager.GetCalls">GetCalls()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+ *
+ * See ofono_modem_org_ofono_voice_call_manager_call_get_calls() for the asynchronous version of this method.
+ *
+ * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
+ */
+gboolean
+ofono_modem_org_ofono_voice_call_manager_call_get_calls_sync (
+ OFONOMODEMOrgOfonoVoiceCallManager *proxy,
+ GVariant **out_calls_with_properties,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GVariant *_ret;
+ _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
+ "GetCalls",
+ g_variant_new ("()"),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ cancellable,
+ error);
+ if (_ret == NULL)
+ goto _out;
+ g_variant_get (_ret,
+ "(@a(oa{sv}))",
+ out_calls_with_properties);
+ g_variant_unref (_ret);
+_out:
+ return _ret != NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_complete_get_properties:
+ * @object: A #OFONOMODEMOrgOfonoVoiceCallManager.
+ * @invocation: (transfer full): A #GDBusMethodInvocation.
+ * @properties: Parameter to return.
+ *
+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-ofono-VoiceCallManager.GetProperties">GetProperties()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ *
+ * This method will free @invocation, you cannot use it afterwards.
+ */
+void
+ofono_modem_org_ofono_voice_call_manager_complete_get_properties (
+ OFONOMODEMOrgOfonoVoiceCallManager *object,
+ GDBusMethodInvocation *invocation,
+ GVariant *properties)
+{
+ g_dbus_method_invocation_return_value (invocation,
+ g_variant_new ("(@a{sv})",
+ properties));
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_complete_dial:
+ * @object: A #OFONOMODEMOrgOfonoVoiceCallManager.
+ * @invocation: (transfer full): A #GDBusMethodInvocation.
+ * @path: Parameter to return.
+ *
+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-ofono-VoiceCallManager.Dial">Dial()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ *
+ * This method will free @invocation, you cannot use it afterwards.
+ */
+void
+ofono_modem_org_ofono_voice_call_manager_complete_dial (
+ OFONOMODEMOrgOfonoVoiceCallManager *object,
+ GDBusMethodInvocation *invocation,
+ const gchar *path)
+{
+ g_dbus_method_invocation_return_value (invocation,
+ g_variant_new ("(o)",
+ path));
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_complete_transfer:
+ * @object: A #OFONOMODEMOrgOfonoVoiceCallManager.
+ * @invocation: (transfer full): A #GDBusMethodInvocation.
+ *
+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-ofono-VoiceCallManager.Transfer">Transfer()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ *
+ * This method will free @invocation, you cannot use it afterwards.
+ */
+void
+ofono_modem_org_ofono_voice_call_manager_complete_transfer (
+ OFONOMODEMOrgOfonoVoiceCallManager *object,
+ GDBusMethodInvocation *invocation)
+{
+ g_dbus_method_invocation_return_value (invocation,
+ g_variant_new ("()"));
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_complete_swap_calls:
+ * @object: A #OFONOMODEMOrgOfonoVoiceCallManager.
+ * @invocation: (transfer full): A #GDBusMethodInvocation.
+ *
+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-ofono-VoiceCallManager.SwapCalls">SwapCalls()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ *
+ * This method will free @invocation, you cannot use it afterwards.
+ */
+void
+ofono_modem_org_ofono_voice_call_manager_complete_swap_calls (
+ OFONOMODEMOrgOfonoVoiceCallManager *object,
+ GDBusMethodInvocation *invocation)
+{
+ g_dbus_method_invocation_return_value (invocation,
+ g_variant_new ("()"));
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_complete_release_and_answer:
+ * @object: A #OFONOMODEMOrgOfonoVoiceCallManager.
+ * @invocation: (transfer full): A #GDBusMethodInvocation.
+ *
+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-ofono-VoiceCallManager.ReleaseAndAnswer">ReleaseAndAnswer()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ *
+ * This method will free @invocation, you cannot use it afterwards.
+ */
+void
+ofono_modem_org_ofono_voice_call_manager_complete_release_and_answer (
+ OFONOMODEMOrgOfonoVoiceCallManager *object,
+ GDBusMethodInvocation *invocation)
+{
+ g_dbus_method_invocation_return_value (invocation,
+ g_variant_new ("()"));
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_complete_release_and_swap:
+ * @object: A #OFONOMODEMOrgOfonoVoiceCallManager.
+ * @invocation: (transfer full): A #GDBusMethodInvocation.
+ *
+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-ofono-VoiceCallManager.ReleaseAndSwap">ReleaseAndSwap()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ *
+ * This method will free @invocation, you cannot use it afterwards.
+ */
+void
+ofono_modem_org_ofono_voice_call_manager_complete_release_and_swap (
+ OFONOMODEMOrgOfonoVoiceCallManager *object,
+ GDBusMethodInvocation *invocation)
+{
+ g_dbus_method_invocation_return_value (invocation,
+ g_variant_new ("()"));
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_complete_hold_and_answer:
+ * @object: A #OFONOMODEMOrgOfonoVoiceCallManager.
+ * @invocation: (transfer full): A #GDBusMethodInvocation.
+ *
+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-ofono-VoiceCallManager.HoldAndAnswer">HoldAndAnswer()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ *
+ * This method will free @invocation, you cannot use it afterwards.
+ */
+void
+ofono_modem_org_ofono_voice_call_manager_complete_hold_and_answer (
+ OFONOMODEMOrgOfonoVoiceCallManager *object,
+ GDBusMethodInvocation *invocation)
+{
+ g_dbus_method_invocation_return_value (invocation,
+ g_variant_new ("()"));
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_complete_hangup_all:
+ * @object: A #OFONOMODEMOrgOfonoVoiceCallManager.
+ * @invocation: (transfer full): A #GDBusMethodInvocation.
+ *
+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-ofono-VoiceCallManager.HangupAll">HangupAll()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ *
+ * This method will free @invocation, you cannot use it afterwards.
+ */
+void
+ofono_modem_org_ofono_voice_call_manager_complete_hangup_all (
+ OFONOMODEMOrgOfonoVoiceCallManager *object,
+ GDBusMethodInvocation *invocation)
+{
+ g_dbus_method_invocation_return_value (invocation,
+ g_variant_new ("()"));
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_complete_private_chat:
+ * @object: A #OFONOMODEMOrgOfonoVoiceCallManager.
+ * @invocation: (transfer full): A #GDBusMethodInvocation.
+ * @calls: Parameter to return.
+ *
+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-ofono-VoiceCallManager.PrivateChat">PrivateChat()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ *
+ * This method will free @invocation, you cannot use it afterwards.
+ */
+void
+ofono_modem_org_ofono_voice_call_manager_complete_private_chat (
+ OFONOMODEMOrgOfonoVoiceCallManager *object,
+ GDBusMethodInvocation *invocation,
+ const gchar *const *calls)
+{
+ g_dbus_method_invocation_return_value (invocation,
+ g_variant_new ("(^ao)",
+ calls));
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_complete_create_multiparty:
+ * @object: A #OFONOMODEMOrgOfonoVoiceCallManager.
+ * @invocation: (transfer full): A #GDBusMethodInvocation.
+ * @calls: Parameter to return.
+ *
+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-ofono-VoiceCallManager.CreateMultiparty">CreateMultiparty()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ *
+ * This method will free @invocation, you cannot use it afterwards.
+ */
+void
+ofono_modem_org_ofono_voice_call_manager_complete_create_multiparty (
+ OFONOMODEMOrgOfonoVoiceCallManager *object,
+ GDBusMethodInvocation *invocation,
+ const gchar *calls)
+{
+ g_dbus_method_invocation_return_value (invocation,
+ g_variant_new ("(o)",
+ calls));
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_complete_hangup_multiparty:
+ * @object: A #OFONOMODEMOrgOfonoVoiceCallManager.
+ * @invocation: (transfer full): A #GDBusMethodInvocation.
+ *
+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-ofono-VoiceCallManager.HangupMultiparty">HangupMultiparty()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ *
+ * This method will free @invocation, you cannot use it afterwards.
+ */
+void
+ofono_modem_org_ofono_voice_call_manager_complete_hangup_multiparty (
+ OFONOMODEMOrgOfonoVoiceCallManager *object,
+ GDBusMethodInvocation *invocation)
+{
+ g_dbus_method_invocation_return_value (invocation,
+ g_variant_new ("()"));
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_complete_send_tones:
+ * @object: A #OFONOMODEMOrgOfonoVoiceCallManager.
+ * @invocation: (transfer full): A #GDBusMethodInvocation.
+ *
+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-ofono-VoiceCallManager.SendTones">SendTones()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ *
+ * This method will free @invocation, you cannot use it afterwards.
+ */
+void
+ofono_modem_org_ofono_voice_call_manager_complete_send_tones (
+ OFONOMODEMOrgOfonoVoiceCallManager *object,
+ GDBusMethodInvocation *invocation)
+{
+ g_dbus_method_invocation_return_value (invocation,
+ g_variant_new ("()"));
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_complete_get_calls:
+ * @object: A #OFONOMODEMOrgOfonoVoiceCallManager.
+ * @invocation: (transfer full): A #GDBusMethodInvocation.
+ * @calls_with_properties: Parameter to return.
+ *
+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-ofono-VoiceCallManager.GetCalls">GetCalls()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+ *
+ * This method will free @invocation, you cannot use it afterwards.
+ */
+void
+ofono_modem_org_ofono_voice_call_manager_complete_get_calls (
+ OFONOMODEMOrgOfonoVoiceCallManager *object,
+ GDBusMethodInvocation *invocation,
+ GVariant *calls_with_properties)
+{
+ g_dbus_method_invocation_return_value (invocation,
+ g_variant_new ("(@a(oa{sv}))",
+ calls_with_properties));
+}
+
+/* ------------------------------------------------------------------------ */
+
+/**
+ * OFONOMODEMOrgOfonoVoiceCallManagerProxy:
+ *
+ * The #OFONOMODEMOrgOfonoVoiceCallManagerProxy structure contains only private data and should only be accessed using the provided API.
+ */
+
+/**
+ * OFONOMODEMOrgOfonoVoiceCallManagerProxyClass:
+ * @parent_class: The parent class.
+ *
+ * Class structure for #OFONOMODEMOrgOfonoVoiceCallManagerProxy.
+ */
+
+struct _OFONOMODEMOrgOfonoVoiceCallManagerProxyPrivate
+{
+ GData *qdata;
+};
+
+static void ofono_modem_org_ofono_voice_call_manager_proxy_iface_init (OFONOMODEMOrgOfonoVoiceCallManagerIface *iface);
+
+#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
+G_DEFINE_TYPE_WITH_CODE (OFONOMODEMOrgOfonoVoiceCallManagerProxy, ofono_modem_org_ofono_voice_call_manager_proxy, G_TYPE_DBUS_PROXY,
+ G_ADD_PRIVATE (OFONOMODEMOrgOfonoVoiceCallManagerProxy)
+ G_IMPLEMENT_INTERFACE (OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER, ofono_modem_org_ofono_voice_call_manager_proxy_iface_init));
+
+#else
+G_DEFINE_TYPE_WITH_CODE (OFONOMODEMOrgOfonoVoiceCallManagerProxy, ofono_modem_org_ofono_voice_call_manager_proxy, G_TYPE_DBUS_PROXY,
+ G_IMPLEMENT_INTERFACE (OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER, ofono_modem_org_ofono_voice_call_manager_proxy_iface_init));
+
+#endif
+static void
+ofono_modem_org_ofono_voice_call_manager_proxy_finalize (GObject *object)
+{
+ OFONOMODEMOrgOfonoVoiceCallManagerProxy *proxy = OFONO_MODEM_ORG_OFONO_VOICE_CALL_MANAGER_PROXY (object);
+ g_datalist_clear (&proxy->priv->qdata);
+ G_OBJECT_CLASS (ofono_modem_org_ofono_voice_call_manager_proxy_parent_class)->finalize (object);
+}
+
+static void
+ofono_modem_org_ofono_voice_call_manager_proxy_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec G_GNUC_UNUSED)
+{
+}
+
+static void
+ofono_modem_org_ofono_voice_call_manager_proxy_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec G_GNUC_UNUSED)
+{
+}
+
+static void
+ofono_modem_org_ofono_voice_call_manager_proxy_g_signal (GDBusProxy *proxy,
+ const gchar *sender_name G_GNUC_UNUSED,
+ const gchar *signal_name,
+ GVariant *parameters)
+{
+ _ExtendedGDBusSignalInfo *info;
+ GVariantIter iter;
+ GVariant *child;
+ GValue *paramv;
+ guint num_params;
+ guint n;
+ guint signal_id;
+ info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_ofono_modem_org_ofono_voice_call_manager_interface_info.parent_struct, signal_name);
+ if (info == NULL)
+ return;
+ num_params = g_variant_n_children (parameters);
+ paramv = g_new0 (GValue, num_params + 1);
+ g_value_init (&paramv[0], OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER);
+ g_value_set_object (&paramv[0], proxy);
+ g_variant_iter_init (&iter, parameters);
+ n = 1;
+ while ((child = g_variant_iter_next_value (&iter)) != NULL)
+ {
+ _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
+ if (arg_info->use_gvariant)
+ {
+ g_value_init (&paramv[n], G_TYPE_VARIANT);
+ g_value_set_variant (&paramv[n], child);
+ n++;
+ }
+ else
+ g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
+ g_variant_unref (child);
+ }
+ signal_id = g_signal_lookup (info->signal_name, OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER);
+ g_signal_emitv (paramv, signal_id, 0, NULL);
+ for (n = 0; n < num_params + 1; n++)
+ g_value_unset (&paramv[n]);
+ g_free (paramv);
+}
+
+static void
+ofono_modem_org_ofono_voice_call_manager_proxy_g_properties_changed (GDBusProxy *_proxy,
+ GVariant *changed_properties,
+ const gchar *const *invalidated_properties)
+{
+ OFONOMODEMOrgOfonoVoiceCallManagerProxy *proxy = OFONO_MODEM_ORG_OFONO_VOICE_CALL_MANAGER_PROXY (_proxy);
+ guint n;
+ const gchar *key;
+ GVariantIter *iter;
+ _ExtendedGDBusPropertyInfo *info;
+ g_variant_get (changed_properties, "a{sv}", &iter);
+ while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
+ {
+ info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_ofono_modem_org_ofono_voice_call_manager_interface_info.parent_struct, key);
+ g_datalist_remove_data (&proxy->priv->qdata, key);
+ if (info != NULL)
+ g_object_notify (G_OBJECT (proxy), info->hyphen_name);
+ }
+ g_variant_iter_free (iter);
+ for (n = 0; invalidated_properties[n] != NULL; n++)
+ {
+ info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_ofono_modem_org_ofono_voice_call_manager_interface_info.parent_struct, invalidated_properties[n]);
+ g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
+ if (info != NULL)
+ g_object_notify (G_OBJECT (proxy), info->hyphen_name);
+ }
+}
+
+static void
+ofono_modem_org_ofono_voice_call_manager_proxy_init (OFONOMODEMOrgOfonoVoiceCallManagerProxy *proxy)
+{
+#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
+ proxy->priv = ofono_modem_org_ofono_voice_call_manager_proxy_get_instance_private (proxy);
+#else
+ proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER_PROXY, OFONOMODEMOrgOfonoVoiceCallManagerProxyPrivate);
+#endif
+
+ g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), ofono_modem_org_ofono_voice_call_manager_interface_info ());
+}
+
+static void
+ofono_modem_org_ofono_voice_call_manager_proxy_class_init (OFONOMODEMOrgOfonoVoiceCallManagerProxyClass *klass)
+{
+ GObjectClass *gobject_class;
+ GDBusProxyClass *proxy_class;
+
+ gobject_class = G_OBJECT_CLASS (klass);
+ gobject_class->finalize = ofono_modem_org_ofono_voice_call_manager_proxy_finalize;
+ gobject_class->get_property = ofono_modem_org_ofono_voice_call_manager_proxy_get_property;
+ gobject_class->set_property = ofono_modem_org_ofono_voice_call_manager_proxy_set_property;
+
+ proxy_class = G_DBUS_PROXY_CLASS (klass);
+ proxy_class->g_signal = ofono_modem_org_ofono_voice_call_manager_proxy_g_signal;
+ proxy_class->g_properties_changed = ofono_modem_org_ofono_voice_call_manager_proxy_g_properties_changed;
+
+#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
+ g_type_class_add_private (klass, sizeof (OFONOMODEMOrgOfonoVoiceCallManagerProxyPrivate));
+#endif
+}
+
+static void
+ofono_modem_org_ofono_voice_call_manager_proxy_iface_init (OFONOMODEMOrgOfonoVoiceCallManagerIface *iface)
+{
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_proxy_new:
+ * @connection: A #GDBusConnection.
+ * @flags: Flags from the #GDBusProxyFlags enumeration.
+ * @name: (allow-none): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
+ * @object_path: An object path.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
+ * @user_data: User data to pass to @callback.
+ *
+ * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-ofono-VoiceCallManager.top_of_page">org.ofono.VoiceCallManager</link>. See g_dbus_proxy_new() for more details.
+ *
+ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
+ * You can then call ofono_modem_org_ofono_voice_call_manager_proxy_new_finish() to get the result of the operation.
+ *
+ * See ofono_modem_org_ofono_voice_call_manager_proxy_new_sync() for the synchronous, blocking version of this constructor.
+ */
+void
+ofono_modem_org_ofono_voice_call_manager_proxy_new (
+ GDBusConnection *connection,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_async_initable_new_async (OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.ofono.VoiceCallManager", NULL);
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_proxy_new_finish:
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_modem_org_ofono_voice_call_manager_proxy_new().
+ * @error: Return location for error or %NULL
+ *
+ * Finishes an operation started with ofono_modem_org_ofono_voice_call_manager_proxy_new().
+ *
+ * Returns: (transfer full) (type OFONOMODEMOrgOfonoVoiceCallManagerProxy): The constructed proxy object or %NULL if @error is set.
+ */
+OFONOMODEMOrgOfonoVoiceCallManager *
+ofono_modem_org_ofono_voice_call_manager_proxy_new_finish (
+ GAsyncResult *res,
+ GError **error)
+{
+ GObject *ret;
+ GObject *source_object;
+ source_object = g_async_result_get_source_object (res);
+ ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
+ g_object_unref (source_object);
+ if (ret != NULL)
+ return OFONO_MODEM_ORG_OFONO_VOICE_CALL_MANAGER (ret);
+ else
+ return NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_proxy_new_sync:
+ * @connection: A #GDBusConnection.
+ * @flags: Flags from the #GDBusProxyFlags enumeration.
+ * @name: (allow-none): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
+ * @object_path: An object path.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL
+ *
+ * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-ofono-VoiceCallManager.top_of_page">org.ofono.VoiceCallManager</link>. See g_dbus_proxy_new_sync() for more details.
+ *
+ * The calling thread is blocked until a reply is received.
+ *
+ * See ofono_modem_org_ofono_voice_call_manager_proxy_new() for the asynchronous version of this constructor.
+ *
+ * Returns: (transfer full) (type OFONOMODEMOrgOfonoVoiceCallManagerProxy): The constructed proxy object or %NULL if @error is set.
+ */
+OFONOMODEMOrgOfonoVoiceCallManager *
+ofono_modem_org_ofono_voice_call_manager_proxy_new_sync (
+ GDBusConnection *connection,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GInitable *ret;
+ ret = g_initable_new (OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.ofono.VoiceCallManager", NULL);
+ if (ret != NULL)
+ return OFONO_MODEM_ORG_OFONO_VOICE_CALL_MANAGER (ret);
+ else
+ return NULL;
+}
+
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_proxy_new_for_bus:
+ * @bus_type: A #GBusType.
+ * @flags: Flags from the #GDBusProxyFlags enumeration.
+ * @name: A bus name (well-known or unique).
+ * @object_path: An object path.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
+ * @user_data: User data to pass to @callback.
+ *
+ * Like ofono_modem_org_ofono_voice_call_manager_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
+ *
+ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
+ * You can then call ofono_modem_org_ofono_voice_call_manager_proxy_new_for_bus_finish() to get the result of the operation.
+ *
+ * See ofono_modem_org_ofono_voice_call_manager_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
+ */
+void
+ofono_modem_org_ofono_voice_call_manager_proxy_new_for_bus (
+ GBusType bus_type,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_async_initable_new_async (OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.ofono.VoiceCallManager", NULL);
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_proxy_new_for_bus_finish:
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_modem_org_ofono_voice_call_manager_proxy_new_for_bus().
+ * @error: Return location for error or %NULL
+ *
+ * Finishes an operation started with ofono_modem_org_ofono_voice_call_manager_proxy_new_for_bus().
+ *
+ * Returns: (transfer full) (type OFONOMODEMOrgOfonoVoiceCallManagerProxy): The constructed proxy object or %NULL if @error is set.
+ */
+OFONOMODEMOrgOfonoVoiceCallManager *
+ofono_modem_org_ofono_voice_call_manager_proxy_new_for_bus_finish (
+ GAsyncResult *res,
+ GError **error)
+{
+ GObject *ret;
+ GObject *source_object;
+ source_object = g_async_result_get_source_object (res);
+ ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
+ g_object_unref (source_object);
+ if (ret != NULL)
+ return OFONO_MODEM_ORG_OFONO_VOICE_CALL_MANAGER (ret);
+ else
+ return NULL;
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_proxy_new_for_bus_sync:
+ * @bus_type: A #GBusType.
+ * @flags: Flags from the #GDBusProxyFlags enumeration.
+ * @name: A bus name (well-known or unique).
+ * @object_path: An object path.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL
+ *
+ * Like ofono_modem_org_ofono_voice_call_manager_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
+ *
+ * The calling thread is blocked until a reply is received.
+ *
+ * See ofono_modem_org_ofono_voice_call_manager_proxy_new_for_bus() for the asynchronous version of this constructor.
+ *
+ * Returns: (transfer full) (type OFONOMODEMOrgOfonoVoiceCallManagerProxy): The constructed proxy object or %NULL if @error is set.
+ */
+OFONOMODEMOrgOfonoVoiceCallManager *
+ofono_modem_org_ofono_voice_call_manager_proxy_new_for_bus_sync (
+ GBusType bus_type,
+ GDBusProxyFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GInitable *ret;
+ ret = g_initable_new (OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.ofono.VoiceCallManager", NULL);
+ if (ret != NULL)
+ return OFONO_MODEM_ORG_OFONO_VOICE_CALL_MANAGER (ret);
+ else
+ return NULL;
+}
+
+
+/* ------------------------------------------------------------------------ */
+
+/**
+ * OFONOMODEMOrgOfonoVoiceCallManagerSkeleton:
+ *
+ * The #OFONOMODEMOrgOfonoVoiceCallManagerSkeleton structure contains only private data and should only be accessed using the provided API.
+ */
+
+/**
+ * OFONOMODEMOrgOfonoVoiceCallManagerSkeletonClass:
+ * @parent_class: The parent class.
+ *
+ * Class structure for #OFONOMODEMOrgOfonoVoiceCallManagerSkeleton.
+ */
+
+struct _OFONOMODEMOrgOfonoVoiceCallManagerSkeletonPrivate
+{
+ GValue *properties;
+ GList *changed_properties;
+ GSource *changed_properties_idle_source;
+ GMainContext *context;
+ GMutex lock;
+};
+
+static void
+_ofono_modem_org_ofono_voice_call_manager_skeleton_handle_method_call (
+ GDBusConnection *connection G_GNUC_UNUSED,
+ const gchar *sender G_GNUC_UNUSED,
+ const gchar *object_path G_GNUC_UNUSED,
+ const gchar *interface_name,
+ const gchar *method_name,
+ GVariant *parameters,
+ GDBusMethodInvocation *invocation,
+ gpointer user_data)
+{
+ OFONOMODEMOrgOfonoVoiceCallManagerSkeleton *skeleton = OFONO_MODEM_ORG_OFONO_VOICE_CALL_MANAGER_SKELETON (user_data);
+ _ExtendedGDBusMethodInfo *info;
+ GVariantIter iter;
+ GVariant *child;
+ GValue *paramv;
+ guint num_params;
+ guint num_extra;
+ guint n;
+ guint signal_id;
+ GValue return_value = G_VALUE_INIT;
+ info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
+ g_assert (info != NULL);
+ num_params = g_variant_n_children (parameters);
+ num_extra = info->pass_fdlist ? 3 : 2; paramv = g_new0 (GValue, num_params + num_extra);
+ n = 0;
+ g_value_init (&paramv[n], OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER);
+ g_value_set_object (&paramv[n++], skeleton);
+ g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
+ g_value_set_object (&paramv[n++], invocation);
+ if (info->pass_fdlist)
+ {
+#ifdef G_OS_UNIX
+ g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
+ g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
+#else
+ g_assert_not_reached ();
+#endif
+ }
+ g_variant_iter_init (&iter, parameters);
+ while ((child = g_variant_iter_next_value (&iter)) != NULL)
+ {
+ _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
+ if (arg_info->use_gvariant)
+ {
+ g_value_init (&paramv[n], G_TYPE_VARIANT);
+ g_value_set_variant (&paramv[n], child);
+ n++;
+ }
+ else
+ g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
+ g_variant_unref (child);
+ }
+ signal_id = g_signal_lookup (info->signal_name, OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER);
+ g_value_init (&return_value, G_TYPE_BOOLEAN);
+ g_signal_emitv (paramv, signal_id, 0, &return_value);
+ if (!g_value_get_boolean (&return_value))
+ g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD, "Method %s is not implemented on interface %s", method_name, interface_name);
+ g_value_unset (&return_value);
+ for (n = 0; n < num_params + num_extra; n++)
+ g_value_unset (&paramv[n]);
+ g_free (paramv);
+}
+
+static GVariant *
+_ofono_modem_org_ofono_voice_call_manager_skeleton_handle_get_property (
+ GDBusConnection *connection G_GNUC_UNUSED,
+ const gchar *sender G_GNUC_UNUSED,
+ const gchar *object_path G_GNUC_UNUSED,
+ const gchar *interface_name G_GNUC_UNUSED,
+ const gchar *property_name,
+ GError **error,
+ gpointer user_data)
+{
+ OFONOMODEMOrgOfonoVoiceCallManagerSkeleton *skeleton = OFONO_MODEM_ORG_OFONO_VOICE_CALL_MANAGER_SKELETON (user_data);
+ GValue value = G_VALUE_INIT;
+ GParamSpec *pspec;
+ _ExtendedGDBusPropertyInfo *info;
+ GVariant *ret;
+ ret = NULL;
+ info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_ofono_modem_org_ofono_voice_call_manager_interface_info.parent_struct, property_name);
+ g_assert (info != NULL);
+ pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
+ if (pspec == NULL)
+ {
+ g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
+ }
+ else
+ {
+ g_value_init (&value, pspec->value_type);
+ g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
+ ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
+ g_value_unset (&value);
+ }
+ return ret;
+}
+
+static gboolean
+_ofono_modem_org_ofono_voice_call_manager_skeleton_handle_set_property (
+ GDBusConnection *connection G_GNUC_UNUSED,
+ const gchar *sender G_GNUC_UNUSED,
+ const gchar *object_path G_GNUC_UNUSED,
+ const gchar *interface_name G_GNUC_UNUSED,
+ const gchar *property_name,
+ GVariant *variant,
+ GError **error,
+ gpointer user_data)
+{
+ OFONOMODEMOrgOfonoVoiceCallManagerSkeleton *skeleton = OFONO_MODEM_ORG_OFONO_VOICE_CALL_MANAGER_SKELETON (user_data);
+ GValue value = G_VALUE_INIT;
+ GParamSpec *pspec;
+ _ExtendedGDBusPropertyInfo *info;
+ gboolean ret;
+ ret = FALSE;
+ info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_ofono_modem_org_ofono_voice_call_manager_interface_info.parent_struct, property_name);
+ g_assert (info != NULL);
+ pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
+ if (pspec == NULL)
+ {
+ g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
+ }
+ else
+ {
+ if (info->use_gvariant)
+ g_value_set_variant (&value, variant);
+ else
+ g_dbus_gvariant_to_gvalue (variant, &value);
+ g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
+ g_value_unset (&value);
+ ret = TRUE;
+ }
+ return ret;
+}
+
+static const GDBusInterfaceVTable _ofono_modem_org_ofono_voice_call_manager_skeleton_vtable =
+{
+ _ofono_modem_org_ofono_voice_call_manager_skeleton_handle_method_call,
+ _ofono_modem_org_ofono_voice_call_manager_skeleton_handle_get_property,
+ _ofono_modem_org_ofono_voice_call_manager_skeleton_handle_set_property,
+ {NULL}
+};
+
+static GDBusInterfaceInfo *
+ofono_modem_org_ofono_voice_call_manager_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
+{
+ return ofono_modem_org_ofono_voice_call_manager_interface_info ();
+}
+
+static GDBusInterfaceVTable *
+ofono_modem_org_ofono_voice_call_manager_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
+{
+ return (GDBusInterfaceVTable *) &_ofono_modem_org_ofono_voice_call_manager_skeleton_vtable;
+}
+
+static GVariant *
+ofono_modem_org_ofono_voice_call_manager_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
+{
+ OFONOMODEMOrgOfonoVoiceCallManagerSkeleton *skeleton = OFONO_MODEM_ORG_OFONO_VOICE_CALL_MANAGER_SKELETON (_skeleton);
+
+ GVariantBuilder builder;
+ guint n;
+ g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}"));
+ if (_ofono_modem_org_ofono_voice_call_manager_interface_info.parent_struct.properties == NULL)
+ goto out;
+ for (n = 0; _ofono_modem_org_ofono_voice_call_manager_interface_info.parent_struct.properties[n] != NULL; n++)
+ {
+ GDBusPropertyInfo *info = _ofono_modem_org_ofono_voice_call_manager_interface_info.parent_struct.properties[n];
+ if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
+ {
+ GVariant *value;
+ value = _ofono_modem_org_ofono_voice_call_manager_skeleton_handle_get_property (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)), NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.ofono.VoiceCallManager", info->name, NULL, skeleton);
+ if (value != NULL)
+ {
+ g_variant_take_ref (value);
+ g_variant_builder_add (&builder, "{sv}", info->name, value);
+ g_variant_unref (value);
+ }
+ }
+ }
+out:
+ return g_variant_builder_end (&builder);
+}
+
+static void
+ofono_modem_org_ofono_voice_call_manager_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton)
+{
+}
+
+static void
+_ofono_modem_org_ofono_voice_call_manager_on_signal_forwarded (
+ OFONOMODEMOrgOfonoVoiceCallManager *object,
+ const gchar *arg_type)
+{
+ OFONOMODEMOrgOfonoVoiceCallManagerSkeleton *skeleton = OFONO_MODEM_ORG_OFONO_VOICE_CALL_MANAGER_SKELETON (object);
+
+ GList *connections, *l;
+ GVariant *signal_variant;
+ connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
+
+ signal_variant = g_variant_ref_sink (g_variant_new ("(s)",
+ arg_type));
+ for (l = connections; l != NULL; l = l->next)
+ {
+ GDBusConnection *connection = l->data;
+ g_dbus_connection_emit_signal (connection,
+ NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.ofono.VoiceCallManager", "Forwarded",
+ signal_variant, NULL);
+ }
+ g_variant_unref (signal_variant);
+ g_list_free_full (connections, g_object_unref);
+}
+
+static void
+_ofono_modem_org_ofono_voice_call_manager_on_signal_barring_active (
+ OFONOMODEMOrgOfonoVoiceCallManager *object,
+ const gchar *arg_type)
+{
+ OFONOMODEMOrgOfonoVoiceCallManagerSkeleton *skeleton = OFONO_MODEM_ORG_OFONO_VOICE_CALL_MANAGER_SKELETON (object);
+
+ GList *connections, *l;
+ GVariant *signal_variant;
+ connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
+
+ signal_variant = g_variant_ref_sink (g_variant_new ("(s)",
+ arg_type));
+ for (l = connections; l != NULL; l = l->next)
+ {
+ GDBusConnection *connection = l->data;
+ g_dbus_connection_emit_signal (connection,
+ NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.ofono.VoiceCallManager", "BarringActive",
+ signal_variant, NULL);
+ }
+ g_variant_unref (signal_variant);
+ g_list_free_full (connections, g_object_unref);
+}
+
+static void
+_ofono_modem_org_ofono_voice_call_manager_on_signal_property_changed (
+ OFONOMODEMOrgOfonoVoiceCallManager *object,
+ const gchar *arg_name,
+ GVariant *arg_value)
+{
+ OFONOMODEMOrgOfonoVoiceCallManagerSkeleton *skeleton = OFONO_MODEM_ORG_OFONO_VOICE_CALL_MANAGER_SKELETON (object);
+
+ GList *connections, *l;
+ GVariant *signal_variant;
+ connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
+
+ signal_variant = g_variant_ref_sink (g_variant_new ("(s@v)",
+ arg_name,
+ arg_value));
+ for (l = connections; l != NULL; l = l->next)
+ {
+ GDBusConnection *connection = l->data;
+ g_dbus_connection_emit_signal (connection,
+ NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.ofono.VoiceCallManager", "PropertyChanged",
+ signal_variant, NULL);
+ }
+ g_variant_unref (signal_variant);
+ g_list_free_full (connections, g_object_unref);
+}
+
+static void
+_ofono_modem_org_ofono_voice_call_manager_on_signal_call_added (
+ OFONOMODEMOrgOfonoVoiceCallManager *object,
+ const gchar *arg_path,
+ GVariant *arg_properties)
+{
+ OFONOMODEMOrgOfonoVoiceCallManagerSkeleton *skeleton = OFONO_MODEM_ORG_OFONO_VOICE_CALL_MANAGER_SKELETON (object);
+
+ GList *connections, *l;
+ GVariant *signal_variant;
+ connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
+
+ signal_variant = g_variant_ref_sink (g_variant_new ("(o@a{sv})",
+ arg_path,
+ arg_properties));
+ for (l = connections; l != NULL; l = l->next)
+ {
+ GDBusConnection *connection = l->data;
+ g_dbus_connection_emit_signal (connection,
+ NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.ofono.VoiceCallManager", "CallAdded",
+ signal_variant, NULL);
+ }
+ g_variant_unref (signal_variant);
+ g_list_free_full (connections, g_object_unref);
+}
+
+static void
+_ofono_modem_org_ofono_voice_call_manager_on_signal_call_removed (
+ OFONOMODEMOrgOfonoVoiceCallManager *object,
+ const gchar *arg_path)
+{
+ OFONOMODEMOrgOfonoVoiceCallManagerSkeleton *skeleton = OFONO_MODEM_ORG_OFONO_VOICE_CALL_MANAGER_SKELETON (object);
+
+ GList *connections, *l;
+ GVariant *signal_variant;
+ connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
+
+ signal_variant = g_variant_ref_sink (g_variant_new ("(o)",
+ arg_path));
+ for (l = connections; l != NULL; l = l->next)
+ {
+ GDBusConnection *connection = l->data;
+ g_dbus_connection_emit_signal (connection,
+ NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.ofono.VoiceCallManager", "CallRemoved",
+ signal_variant, NULL);
+ }
+ g_variant_unref (signal_variant);
+ g_list_free_full (connections, g_object_unref);
+}
+
+static void ofono_modem_org_ofono_voice_call_manager_skeleton_iface_init (OFONOMODEMOrgOfonoVoiceCallManagerIface *iface);
+#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
+G_DEFINE_TYPE_WITH_CODE (OFONOMODEMOrgOfonoVoiceCallManagerSkeleton, ofono_modem_org_ofono_voice_call_manager_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
+ G_ADD_PRIVATE (OFONOMODEMOrgOfonoVoiceCallManagerSkeleton)
+ G_IMPLEMENT_INTERFACE (OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER, ofono_modem_org_ofono_voice_call_manager_skeleton_iface_init));
+
+#else
+G_DEFINE_TYPE_WITH_CODE (OFONOMODEMOrgOfonoVoiceCallManagerSkeleton, ofono_modem_org_ofono_voice_call_manager_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
+ G_IMPLEMENT_INTERFACE (OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER, ofono_modem_org_ofono_voice_call_manager_skeleton_iface_init));
+
+#endif
+static void
+ofono_modem_org_ofono_voice_call_manager_skeleton_finalize (GObject *object)
+{
+ OFONOMODEMOrgOfonoVoiceCallManagerSkeleton *skeleton = OFONO_MODEM_ORG_OFONO_VOICE_CALL_MANAGER_SKELETON (object);
+ g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
+ if (skeleton->priv->changed_properties_idle_source != NULL)
+ g_source_destroy (skeleton->priv->changed_properties_idle_source);
+ g_main_context_unref (skeleton->priv->context);
+ g_mutex_clear (&skeleton->priv->lock);
+ G_OBJECT_CLASS (ofono_modem_org_ofono_voice_call_manager_skeleton_parent_class)->finalize (object);
+}
+
+static void
+ofono_modem_org_ofono_voice_call_manager_skeleton_init (OFONOMODEMOrgOfonoVoiceCallManagerSkeleton *skeleton)
+{
+#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
+ skeleton->priv = ofono_modem_org_ofono_voice_call_manager_skeleton_get_instance_private (skeleton);
+#else
+ skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER_SKELETON, OFONOMODEMOrgOfonoVoiceCallManagerSkeletonPrivate);
+#endif
+
+ g_mutex_init (&skeleton->priv->lock);
+ skeleton->priv->context = g_main_context_ref_thread_default ();
+}
+
+static void
+ofono_modem_org_ofono_voice_call_manager_skeleton_class_init (OFONOMODEMOrgOfonoVoiceCallManagerSkeletonClass *klass)
+{
+ GObjectClass *gobject_class;
+ GDBusInterfaceSkeletonClass *skeleton_class;
+
+ gobject_class = G_OBJECT_CLASS (klass);
+ gobject_class->finalize = ofono_modem_org_ofono_voice_call_manager_skeleton_finalize;
+
+ skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
+ skeleton_class->get_info = ofono_modem_org_ofono_voice_call_manager_skeleton_dbus_interface_get_info;
+ skeleton_class->get_properties = ofono_modem_org_ofono_voice_call_manager_skeleton_dbus_interface_get_properties;
+ skeleton_class->flush = ofono_modem_org_ofono_voice_call_manager_skeleton_dbus_interface_flush;
+ skeleton_class->get_vtable = ofono_modem_org_ofono_voice_call_manager_skeleton_dbus_interface_get_vtable;
+
+#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
+ g_type_class_add_private (klass, sizeof (OFONOMODEMOrgOfonoVoiceCallManagerSkeletonPrivate));
+#endif
+}
+
+static void
+ofono_modem_org_ofono_voice_call_manager_skeleton_iface_init (OFONOMODEMOrgOfonoVoiceCallManagerIface *iface)
+{
+ iface->forwarded = _ofono_modem_org_ofono_voice_call_manager_on_signal_forwarded;
+ iface->barring_active = _ofono_modem_org_ofono_voice_call_manager_on_signal_barring_active;
+ iface->property_changed = _ofono_modem_org_ofono_voice_call_manager_on_signal_property_changed;
+ iface->call_added = _ofono_modem_org_ofono_voice_call_manager_on_signal_call_added;
+ iface->call_removed = _ofono_modem_org_ofono_voice_call_manager_on_signal_call_removed;
+}
+
+/**
+ * ofono_modem_org_ofono_voice_call_manager_skeleton_new:
+ *
+ * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-ofono-VoiceCallManager.top_of_page">org.ofono.VoiceCallManager</link>.
+ *
+ * Returns: (transfer full) (type OFONOMODEMOrgOfonoVoiceCallManagerSkeleton): The skeleton object.
+ */
+OFONOMODEMOrgOfonoVoiceCallManager *
+ofono_modem_org_ofono_voice_call_manager_skeleton_new (void)
+{
+ return OFONO_MODEM_ORG_OFONO_VOICE_CALL_MANAGER (g_object_new (OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER_SKELETON, NULL));
+}
+
+/* ------------------------------------------------------------------------
+ * Code for Object, ObjectProxy and ObjectSkeleton
+ * ------------------------------------------------------------------------
+ */
+
+/**
+ * SECTION:OFONOMODEMObject
+ * @title: OFONOMODEMObject
+ * @short_description: Specialized GDBusObject types
+ *
+ * This section contains the #OFONOMODEMObject, #OFONOMODEMObjectProxy, and #OFONOMODEMObjectSkeleton types which make it easier to work with objects implementing generated types for D-Bus interfaces.
+ */
+
+/**
+ * OFONOMODEMObject:
+ *
+ * The #OFONOMODEMObject type is a specialized container of interfaces.
+ */
+
+/**
+ * OFONOMODEMObjectIface:
+ * @parent_iface: The parent interface.
+ *
+ * Virtual table for the #OFONOMODEMObject interface.
+ */
+
+typedef OFONOMODEMObjectIface OFONOMODEMObjectInterface;
+G_DEFINE_INTERFACE_WITH_CODE (OFONOMODEMObject, ofono_modem_object, G_TYPE_OBJECT, g_type_interface_add_prerequisite (g_define_type_id, G_TYPE_DBUS_OBJECT));
+
+static void
+ofono_modem_object_default_init (OFONOMODEMObjectIface *iface)
+{
+ /**
+ * OFONOMODEMObject:org-freedesktop-dbus-introspectable:
+ *
+ * The #OFONOMODEMOrgFreedesktopDBusIntrospectable instance corresponding to the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-DBus-Introspectable.top_of_page">org.freedesktop.DBus.Introspectable</link>, if any.
+ *
+ * Connect to the #GObject::notify signal to get informed of property changes.
+ */
+ g_object_interface_install_property (iface, g_param_spec_object ("org-freedesktop-dbus-introspectable", "org-freedesktop-dbus-introspectable", "org-freedesktop-dbus-introspectable", OFONO_MODEM_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE, G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS));
+
+ /**
+ * OFONOMODEMObject:org-ofono-modem:
+ *
+ * The #OFONOMODEMOrgOfonoModem instance corresponding to the D-Bus interface <link linkend="gdbus-interface-org-ofono-Modem.top_of_page">org.ofono.Modem</link>, if any.
+ *
+ * Connect to the #GObject::notify signal to get informed of property changes.
+ */
+ g_object_interface_install_property (iface, g_param_spec_object ("org-ofono-modem", "org-ofono-modem", "org-ofono-modem", OFONO_MODEM_TYPE_ORG_OFONO_MODEM, G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS));
+
+ /**
+ * OFONOMODEMObject:org-ofono-network-time:
+ *
+ * The #OFONOMODEMOrgOfonoNetworkTime instance corresponding to the D-Bus interface <link linkend="gdbus-interface-org-ofono-NetworkTime.top_of_page">org.ofono.NetworkTime</link>, if any.
+ *
+ * Connect to the #GObject::notify signal to get informed of property changes.
+ */
+ g_object_interface_install_property (iface, g_param_spec_object ("org-ofono-network-time", "org-ofono-network-time", "org-ofono-network-time", OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME, G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS));
+
+ /**
+ * OFONOMODEMObject:org-ofono-network-registration:
+ *
+ * The #OFONOMODEMOrgOfonoNetworkRegistration instance corresponding to the D-Bus interface <link linkend="gdbus-interface-org-ofono-NetworkRegistration.top_of_page">org.ofono.NetworkRegistration</link>, if any.
+ *
+ * Connect to the #GObject::notify signal to get informed of property changes.
+ */
+ g_object_interface_install_property (iface, g_param_spec_object ("org-ofono-network-registration", "org-ofono-network-registration", "org-ofono-network-registration", OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION, G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS));
+
+ /**
+ * OFONOMODEMObject:org-ofono-handsfree:
+ *
+ * The #OFONOMODEMOrgOfonoHandsfree instance corresponding to the D-Bus interface <link linkend="gdbus-interface-org-ofono-Handsfree.top_of_page">org.ofono.Handsfree</link>, if any.
+ *
+ * Connect to the #GObject::notify signal to get informed of property changes.
+ */
+ g_object_interface_install_property (iface, g_param_spec_object ("org-ofono-handsfree", "org-ofono-handsfree", "org-ofono-handsfree", OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE, G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS));
+
+ /**
+ * OFONOMODEMObject:org-ofono-call-volume:
+ *
+ * The #OFONOMODEMOrgOfonoCallVolume instance corresponding to the D-Bus interface <link linkend="gdbus-interface-org-ofono-CallVolume.top_of_page">org.ofono.CallVolume</link>, if any.
+ *
+ * Connect to the #GObject::notify signal to get informed of property changes.
+ */
+ g_object_interface_install_property (iface, g_param_spec_object ("org-ofono-call-volume", "org-ofono-call-volume", "org-ofono-call-volume", OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME, G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS));
+
+ /**
+ * OFONOMODEMObject:org-ofono-voice-call-manager:
+ *
+ * The #OFONOMODEMOrgOfonoVoiceCallManager instance corresponding to the D-Bus interface <link linkend="gdbus-interface-org-ofono-VoiceCallManager.top_of_page">org.ofono.VoiceCallManager</link>, if any.
+ *
+ * Connect to the #GObject::notify signal to get informed of property changes.
+ */
+ g_object_interface_install_property (iface, g_param_spec_object ("org-ofono-voice-call-manager", "org-ofono-voice-call-manager", "org-ofono-voice-call-manager", OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER, G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS));
+
+}
+
+/**
+ * ofono_modem_object_get_org_freedesktop_dbus_introspectable:
+ * @object: A #OFONOMODEMObject.
+ *
+ * Gets the #OFONOMODEMOrgFreedesktopDBusIntrospectable instance for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-DBus-Introspectable.top_of_page">org.freedesktop.DBus.Introspectable</link> on @object, if any.
+ *
+ * Returns: (transfer full): A #OFONOMODEMOrgFreedesktopDBusIntrospectable that must be freed with g_object_unref() or %NULL if @object does not implement the interface.
+ */
+OFONOMODEMOrgFreedesktopDBusIntrospectable *ofono_modem_object_get_org_freedesktop_dbus_introspectable (OFONOMODEMObject *object)
+{
+ GDBusInterface *ret;
+ ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.freedesktop.DBus.Introspectable");
+ if (ret == NULL)
+ return NULL;
+ return OFONO_MODEM_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE (ret);
+}
+
+/**
+ * ofono_modem_object_get_org_ofono_modem:
+ * @object: A #OFONOMODEMObject.
+ *
+ * Gets the #OFONOMODEMOrgOfonoModem instance for the D-Bus interface <link linkend="gdbus-interface-org-ofono-Modem.top_of_page">org.ofono.Modem</link> on @object, if any.
+ *
+ * Returns: (transfer full): A #OFONOMODEMOrgOfonoModem that must be freed with g_object_unref() or %NULL if @object does not implement the interface.
+ */
+OFONOMODEMOrgOfonoModem *ofono_modem_object_get_org_ofono_modem (OFONOMODEMObject *object)
+{
+ GDBusInterface *ret;
+ ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.ofono.Modem");
+ if (ret == NULL)
+ return NULL;
+ return OFONO_MODEM_ORG_OFONO_MODEM (ret);
+}
+
+/**
+ * ofono_modem_object_get_org_ofono_network_time:
+ * @object: A #OFONOMODEMObject.
+ *
+ * Gets the #OFONOMODEMOrgOfonoNetworkTime instance for the D-Bus interface <link linkend="gdbus-interface-org-ofono-NetworkTime.top_of_page">org.ofono.NetworkTime</link> on @object, if any.
+ *
+ * Returns: (transfer full): A #OFONOMODEMOrgOfonoNetworkTime that must be freed with g_object_unref() or %NULL if @object does not implement the interface.
+ */
+OFONOMODEMOrgOfonoNetworkTime *ofono_modem_object_get_org_ofono_network_time (OFONOMODEMObject *object)
+{
+ GDBusInterface *ret;
+ ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.ofono.NetworkTime");
+ if (ret == NULL)
+ return NULL;
+ return OFONO_MODEM_ORG_OFONO_NETWORK_TIME (ret);
+}
+
+/**
+ * ofono_modem_object_get_org_ofono_network_registration:
+ * @object: A #OFONOMODEMObject.
+ *
+ * Gets the #OFONOMODEMOrgOfonoNetworkRegistration instance for the D-Bus interface <link linkend="gdbus-interface-org-ofono-NetworkRegistration.top_of_page">org.ofono.NetworkRegistration</link> on @object, if any.
+ *
+ * Returns: (transfer full): A #OFONOMODEMOrgOfonoNetworkRegistration that must be freed with g_object_unref() or %NULL if @object does not implement the interface.
+ */
+OFONOMODEMOrgOfonoNetworkRegistration *ofono_modem_object_get_org_ofono_network_registration (OFONOMODEMObject *object)
+{
+ GDBusInterface *ret;
+ ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.ofono.NetworkRegistration");
+ if (ret == NULL)
+ return NULL;
+ return OFONO_MODEM_ORG_OFONO_NETWORK_REGISTRATION (ret);
+}
+
+/**
+ * ofono_modem_object_get_org_ofono_handsfree:
+ * @object: A #OFONOMODEMObject.
+ *
+ * Gets the #OFONOMODEMOrgOfonoHandsfree instance for the D-Bus interface <link linkend="gdbus-interface-org-ofono-Handsfree.top_of_page">org.ofono.Handsfree</link> on @object, if any.
+ *
+ * Returns: (transfer full): A #OFONOMODEMOrgOfonoHandsfree that must be freed with g_object_unref() or %NULL if @object does not implement the interface.
+ */
+OFONOMODEMOrgOfonoHandsfree *ofono_modem_object_get_org_ofono_handsfree (OFONOMODEMObject *object)
+{
+ GDBusInterface *ret;
+ ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.ofono.Handsfree");
+ if (ret == NULL)
+ return NULL;
+ return OFONO_MODEM_ORG_OFONO_HANDSFREE (ret);
+}
+
+/**
+ * ofono_modem_object_get_org_ofono_call_volume:
+ * @object: A #OFONOMODEMObject.
+ *
+ * Gets the #OFONOMODEMOrgOfonoCallVolume instance for the D-Bus interface <link linkend="gdbus-interface-org-ofono-CallVolume.top_of_page">org.ofono.CallVolume</link> on @object, if any.
+ *
+ * Returns: (transfer full): A #OFONOMODEMOrgOfonoCallVolume that must be freed with g_object_unref() or %NULL if @object does not implement the interface.
+ */
+OFONOMODEMOrgOfonoCallVolume *ofono_modem_object_get_org_ofono_call_volume (OFONOMODEMObject *object)
+{
+ GDBusInterface *ret;
+ ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.ofono.CallVolume");
+ if (ret == NULL)
+ return NULL;
+ return OFONO_MODEM_ORG_OFONO_CALL_VOLUME (ret);
+}
+
+/**
+ * ofono_modem_object_get_org_ofono_voice_call_manager:
+ * @object: A #OFONOMODEMObject.
+ *
+ * Gets the #OFONOMODEMOrgOfonoVoiceCallManager instance for the D-Bus interface <link linkend="gdbus-interface-org-ofono-VoiceCallManager.top_of_page">org.ofono.VoiceCallManager</link> on @object, if any.
+ *
+ * Returns: (transfer full): A #OFONOMODEMOrgOfonoVoiceCallManager that must be freed with g_object_unref() or %NULL if @object does not implement the interface.
+ */
+OFONOMODEMOrgOfonoVoiceCallManager *ofono_modem_object_get_org_ofono_voice_call_manager (OFONOMODEMObject *object)
+{
+ GDBusInterface *ret;
+ ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.ofono.VoiceCallManager");
+ if (ret == NULL)
+ return NULL;
+ return OFONO_MODEM_ORG_OFONO_VOICE_CALL_MANAGER (ret);
+}
+
+
+/**
+ * ofono_modem_object_peek_org_freedesktop_dbus_introspectable: (skip)
+ * @object: A #OFONOMODEMObject.
+ *
+ * Like ofono_modem_object_get_org_freedesktop_dbus_introspectable() but doesn't increase the reference count on the returned object.
+ *
+ * <warning>It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running.</warning>
+ *
+ * Returns: (transfer none): A #OFONOMODEMOrgFreedesktopDBusIntrospectable or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object.
+ */
+OFONOMODEMOrgFreedesktopDBusIntrospectable *ofono_modem_object_peek_org_freedesktop_dbus_introspectable (OFONOMODEMObject *object)
+{
+ GDBusInterface *ret;
+ ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.freedesktop.DBus.Introspectable");
+ if (ret == NULL)
+ return NULL;
+ g_object_unref (ret);
+ return OFONO_MODEM_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE (ret);
+}
+
+/**
+ * ofono_modem_object_peek_org_ofono_modem: (skip)
+ * @object: A #OFONOMODEMObject.
+ *
+ * Like ofono_modem_object_get_org_ofono_modem() but doesn't increase the reference count on the returned object.
+ *
+ * <warning>It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running.</warning>
+ *
+ * Returns: (transfer none): A #OFONOMODEMOrgOfonoModem or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object.
+ */
+OFONOMODEMOrgOfonoModem *ofono_modem_object_peek_org_ofono_modem (OFONOMODEMObject *object)
+{
+ GDBusInterface *ret;
+ ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.ofono.Modem");
+ if (ret == NULL)
+ return NULL;
+ g_object_unref (ret);
+ return OFONO_MODEM_ORG_OFONO_MODEM (ret);
+}
+
+/**
+ * ofono_modem_object_peek_org_ofono_network_time: (skip)
+ * @object: A #OFONOMODEMObject.
+ *
+ * Like ofono_modem_object_get_org_ofono_network_time() but doesn't increase the reference count on the returned object.
+ *
+ * <warning>It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running.</warning>
+ *
+ * Returns: (transfer none): A #OFONOMODEMOrgOfonoNetworkTime or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object.
+ */
+OFONOMODEMOrgOfonoNetworkTime *ofono_modem_object_peek_org_ofono_network_time (OFONOMODEMObject *object)
+{
+ GDBusInterface *ret;
+ ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.ofono.NetworkTime");
+ if (ret == NULL)
+ return NULL;
+ g_object_unref (ret);
+ return OFONO_MODEM_ORG_OFONO_NETWORK_TIME (ret);
+}
+
+/**
+ * ofono_modem_object_peek_org_ofono_network_registration: (skip)
+ * @object: A #OFONOMODEMObject.
+ *
+ * Like ofono_modem_object_get_org_ofono_network_registration() but doesn't increase the reference count on the returned object.
+ *
+ * <warning>It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running.</warning>
+ *
+ * Returns: (transfer none): A #OFONOMODEMOrgOfonoNetworkRegistration or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object.
+ */
+OFONOMODEMOrgOfonoNetworkRegistration *ofono_modem_object_peek_org_ofono_network_registration (OFONOMODEMObject *object)
+{
+ GDBusInterface *ret;
+ ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.ofono.NetworkRegistration");
+ if (ret == NULL)
+ return NULL;
+ g_object_unref (ret);
+ return OFONO_MODEM_ORG_OFONO_NETWORK_REGISTRATION (ret);
+}
+
+/**
+ * ofono_modem_object_peek_org_ofono_handsfree: (skip)
+ * @object: A #OFONOMODEMObject.
+ *
+ * Like ofono_modem_object_get_org_ofono_handsfree() but doesn't increase the reference count on the returned object.
+ *
+ * <warning>It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running.</warning>
+ *
+ * Returns: (transfer none): A #OFONOMODEMOrgOfonoHandsfree or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object.
+ */
+OFONOMODEMOrgOfonoHandsfree *ofono_modem_object_peek_org_ofono_handsfree (OFONOMODEMObject *object)
+{
+ GDBusInterface *ret;
+ ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.ofono.Handsfree");
+ if (ret == NULL)
+ return NULL;
+ g_object_unref (ret);
+ return OFONO_MODEM_ORG_OFONO_HANDSFREE (ret);
+}
+
+/**
+ * ofono_modem_object_peek_org_ofono_call_volume: (skip)
+ * @object: A #OFONOMODEMObject.
+ *
+ * Like ofono_modem_object_get_org_ofono_call_volume() but doesn't increase the reference count on the returned object.
+ *
+ * <warning>It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running.</warning>
+ *
+ * Returns: (transfer none): A #OFONOMODEMOrgOfonoCallVolume or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object.
+ */
+OFONOMODEMOrgOfonoCallVolume *ofono_modem_object_peek_org_ofono_call_volume (OFONOMODEMObject *object)
+{
+ GDBusInterface *ret;
+ ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.ofono.CallVolume");
+ if (ret == NULL)
+ return NULL;
+ g_object_unref (ret);
+ return OFONO_MODEM_ORG_OFONO_CALL_VOLUME (ret);
+}
+
+/**
+ * ofono_modem_object_peek_org_ofono_voice_call_manager: (skip)
+ * @object: A #OFONOMODEMObject.
+ *
+ * Like ofono_modem_object_get_org_ofono_voice_call_manager() but doesn't increase the reference count on the returned object.
+ *
+ * <warning>It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running.</warning>
+ *
+ * Returns: (transfer none): A #OFONOMODEMOrgOfonoVoiceCallManager or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object.
+ */
+OFONOMODEMOrgOfonoVoiceCallManager *ofono_modem_object_peek_org_ofono_voice_call_manager (OFONOMODEMObject *object)
+{
+ GDBusInterface *ret;
+ ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.ofono.VoiceCallManager");
+ if (ret == NULL)
+ return NULL;
+ g_object_unref (ret);
+ return OFONO_MODEM_ORG_OFONO_VOICE_CALL_MANAGER (ret);
+}
+
+
+static void
+ofono_modem_object_notify (GDBusObject *object, GDBusInterface *interface)
+{
+ _ExtendedGDBusInterfaceInfo *info = (_ExtendedGDBusInterfaceInfo *) g_dbus_interface_get_info (interface);
+ /* info can be NULL if the other end is using a D-Bus interface we don't know
+ * anything about, for example old generated code in this process talking to
+ * newer generated code in the other process. */
+ if (info != NULL)
+ g_object_notify (G_OBJECT (object), info->hyphen_name);
+}
+
+/**
+ * OFONOMODEMObjectProxy:
+ *
+ * The #OFONOMODEMObjectProxy structure contains only private data and should only be accessed using the provided API.
+ */
+
+/**
+ * OFONOMODEMObjectProxyClass:
+ * @parent_class: The parent class.
+ *
+ * Class structure for #OFONOMODEMObjectProxy.
+ */
+
+static void
+ofono_modem_object_proxy__ofono_modem_object_iface_init (OFONOMODEMObjectIface *iface G_GNUC_UNUSED)
+{
+}
+
+static void
+ofono_modem_object_proxy__g_dbus_object_iface_init (GDBusObjectIface *iface)
+{
+ iface->interface_added = ofono_modem_object_notify;
+ iface->interface_removed = ofono_modem_object_notify;
+}
+
+
+G_DEFINE_TYPE_WITH_CODE (OFONOMODEMObjectProxy, ofono_modem_object_proxy, G_TYPE_DBUS_OBJECT_PROXY,
+ G_IMPLEMENT_INTERFACE (OFONO_MODEM_TYPE_OBJECT, ofono_modem_object_proxy__ofono_modem_object_iface_init)
+ G_IMPLEMENT_INTERFACE (G_TYPE_DBUS_OBJECT, ofono_modem_object_proxy__g_dbus_object_iface_init));
+
+static void
+ofono_modem_object_proxy_init (OFONOMODEMObjectProxy *object G_GNUC_UNUSED)
+{
+}
+
+static void
+ofono_modem_object_proxy_set_property (GObject *gobject,
+ guint prop_id,
+ const GValue *value G_GNUC_UNUSED,
+ GParamSpec *pspec)
+{
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec);
+}
+
+static void
+ofono_modem_object_proxy_get_property (GObject *gobject,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ OFONOMODEMObjectProxy *object = OFONO_MODEM_OBJECT_PROXY (gobject);
+ GDBusInterface *interface;
+
+ switch (prop_id)
+ {
+ case 1:
+ interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.freedesktop.DBus.Introspectable");
+ g_value_take_object (value, interface);
+ break;
+
+ case 2:
+ interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.ofono.Modem");
+ g_value_take_object (value, interface);
+ break;
+
+ case 3:
+ interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.ofono.NetworkTime");
+ g_value_take_object (value, interface);
+ break;
+
+ case 4:
+ interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.ofono.NetworkRegistration");
+ g_value_take_object (value, interface);
+ break;
+
+ case 5:
+ interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.ofono.Handsfree");
+ g_value_take_object (value, interface);
+ break;
+
+ case 6:
+ interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.ofono.CallVolume");
+ g_value_take_object (value, interface);
+ break;
+
+ case 7:
+ interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.ofono.VoiceCallManager");
+ g_value_take_object (value, interface);
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+ofono_modem_object_proxy_class_init (OFONOMODEMObjectProxyClass *klass)
+{
+ GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+
+ gobject_class->set_property = ofono_modem_object_proxy_set_property;
+ gobject_class->get_property = ofono_modem_object_proxy_get_property;
+
+ g_object_class_override_property (gobject_class, 1, "org-freedesktop-dbus-introspectable");
+ g_object_class_override_property (gobject_class, 2, "org-ofono-modem");
+ g_object_class_override_property (gobject_class, 3, "org-ofono-network-time");
+ g_object_class_override_property (gobject_class, 4, "org-ofono-network-registration");
+ g_object_class_override_property (gobject_class, 5, "org-ofono-handsfree");
+ g_object_class_override_property (gobject_class, 6, "org-ofono-call-volume");
+ g_object_class_override_property (gobject_class, 7, "org-ofono-voice-call-manager");
+}
+
+/**
+ * ofono_modem_object_proxy_new:
+ * @connection: A #GDBusConnection.
+ * @object_path: An object path.
+ *
+ * Creates a new proxy object.
+ *
+ * Returns: (transfer full): The proxy object.
+ */
+OFONOMODEMObjectProxy *
+ofono_modem_object_proxy_new (GDBusConnection *connection,
+ const gchar *object_path)
+{
+ g_return_val_if_fail (G_IS_DBUS_CONNECTION (connection), NULL);
+ g_return_val_if_fail (g_variant_is_object_path (object_path), NULL);
+ return OFONO_MODEM_OBJECT_PROXY (g_object_new (OFONO_MODEM_TYPE_OBJECT_PROXY, "g-connection", connection, "g-object-path", object_path, NULL));
+}
+
+/**
+ * OFONOMODEMObjectSkeleton:
+ *
+ * The #OFONOMODEMObjectSkeleton structure contains only private data and should only be accessed using the provided API.
+ */
+
+/**
+ * OFONOMODEMObjectSkeletonClass:
+ * @parent_class: The parent class.
+ *
+ * Class structure for #OFONOMODEMObjectSkeleton.
+ */
+
+static void
+ofono_modem_object_skeleton__ofono_modem_object_iface_init (OFONOMODEMObjectIface *iface G_GNUC_UNUSED)
+{
+}
+
+
+static void
+ofono_modem_object_skeleton__g_dbus_object_iface_init (GDBusObjectIface *iface)
+{
+ iface->interface_added = ofono_modem_object_notify;
+ iface->interface_removed = ofono_modem_object_notify;
+}
+
+G_DEFINE_TYPE_WITH_CODE (OFONOMODEMObjectSkeleton, ofono_modem_object_skeleton, G_TYPE_DBUS_OBJECT_SKELETON,
+ G_IMPLEMENT_INTERFACE (OFONO_MODEM_TYPE_OBJECT, ofono_modem_object_skeleton__ofono_modem_object_iface_init)
+ G_IMPLEMENT_INTERFACE (G_TYPE_DBUS_OBJECT, ofono_modem_object_skeleton__g_dbus_object_iface_init));
+
+static void
+ofono_modem_object_skeleton_init (OFONOMODEMObjectSkeleton *object G_GNUC_UNUSED)
+{
+}
+
+static void
+ofono_modem_object_skeleton_set_property (GObject *gobject,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ OFONOMODEMObjectSkeleton *object = OFONO_MODEM_OBJECT_SKELETON (gobject);
+ GDBusInterfaceSkeleton *interface;
+
+ switch (prop_id)
+ {
+ case 1:
+ interface = g_value_get_object (value);
+ if (interface != NULL)
+ {
+ g_warn_if_fail (OFONO_MODEM_IS_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE (interface));
+ g_dbus_object_skeleton_add_interface (G_DBUS_OBJECT_SKELETON (object), interface);
+ }
+ else
+ {
+ g_dbus_object_skeleton_remove_interface_by_name (G_DBUS_OBJECT_SKELETON (object), "org.freedesktop.DBus.Introspectable");
+ }
+ break;
+
+ case 2:
+ interface = g_value_get_object (value);
+ if (interface != NULL)
+ {
+ g_warn_if_fail (OFONO_MODEM_IS_ORG_OFONO_MODEM (interface));
+ g_dbus_object_skeleton_add_interface (G_DBUS_OBJECT_SKELETON (object), interface);
+ }
+ else
+ {
+ g_dbus_object_skeleton_remove_interface_by_name (G_DBUS_OBJECT_SKELETON (object), "org.ofono.Modem");
+ }
+ break;
+
+ case 3:
+ interface = g_value_get_object (value);
+ if (interface != NULL)
+ {
+ g_warn_if_fail (OFONO_MODEM_IS_ORG_OFONO_NETWORK_TIME (interface));
+ g_dbus_object_skeleton_add_interface (G_DBUS_OBJECT_SKELETON (object), interface);
+ }
+ else
+ {
+ g_dbus_object_skeleton_remove_interface_by_name (G_DBUS_OBJECT_SKELETON (object), "org.ofono.NetworkTime");
+ }
+ break;
+
+ case 4:
+ interface = g_value_get_object (value);
+ if (interface != NULL)
+ {
+ g_warn_if_fail (OFONO_MODEM_IS_ORG_OFONO_NETWORK_REGISTRATION (interface));
+ g_dbus_object_skeleton_add_interface (G_DBUS_OBJECT_SKELETON (object), interface);
+ }
+ else
+ {
+ g_dbus_object_skeleton_remove_interface_by_name (G_DBUS_OBJECT_SKELETON (object), "org.ofono.NetworkRegistration");
+ }
+ break;
+
+ case 5:
+ interface = g_value_get_object (value);
+ if (interface != NULL)
+ {
+ g_warn_if_fail (OFONO_MODEM_IS_ORG_OFONO_HANDSFREE (interface));
+ g_dbus_object_skeleton_add_interface (G_DBUS_OBJECT_SKELETON (object), interface);
+ }
+ else
+ {
+ g_dbus_object_skeleton_remove_interface_by_name (G_DBUS_OBJECT_SKELETON (object), "org.ofono.Handsfree");
+ }
+ break;
+
+ case 6:
+ interface = g_value_get_object (value);
+ if (interface != NULL)
+ {
+ g_warn_if_fail (OFONO_MODEM_IS_ORG_OFONO_CALL_VOLUME (interface));
+ g_dbus_object_skeleton_add_interface (G_DBUS_OBJECT_SKELETON (object), interface);
+ }
+ else
+ {
+ g_dbus_object_skeleton_remove_interface_by_name (G_DBUS_OBJECT_SKELETON (object), "org.ofono.CallVolume");
+ }
+ break;
+
+ case 7:
+ interface = g_value_get_object (value);
+ if (interface != NULL)
+ {
+ g_warn_if_fail (OFONO_MODEM_IS_ORG_OFONO_VOICE_CALL_MANAGER (interface));
+ g_dbus_object_skeleton_add_interface (G_DBUS_OBJECT_SKELETON (object), interface);
+ }
+ else
+ {
+ g_dbus_object_skeleton_remove_interface_by_name (G_DBUS_OBJECT_SKELETON (object), "org.ofono.VoiceCallManager");
+ }
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+ofono_modem_object_skeleton_get_property (GObject *gobject,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ OFONOMODEMObjectSkeleton *object = OFONO_MODEM_OBJECT_SKELETON (gobject);
+ GDBusInterface *interface;
+
+ switch (prop_id)
+ {
+ case 1:
+ interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.freedesktop.DBus.Introspectable");
+ g_value_take_object (value, interface);
+ break;
+
+ case 2:
+ interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.ofono.Modem");
+ g_value_take_object (value, interface);
+ break;
+
+ case 3:
+ interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.ofono.NetworkTime");
+ g_value_take_object (value, interface);
+ break;
+
+ case 4:
+ interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.ofono.NetworkRegistration");
+ g_value_take_object (value, interface);
+ break;
+
+ case 5:
+ interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.ofono.Handsfree");
+ g_value_take_object (value, interface);
+ break;
+
+ case 6:
+ interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.ofono.CallVolume");
+ g_value_take_object (value, interface);
+ break;
+
+ case 7:
+ interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.ofono.VoiceCallManager");
+ g_value_take_object (value, interface);
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+ofono_modem_object_skeleton_class_init (OFONOMODEMObjectSkeletonClass *klass)
+{
+ GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+
+ gobject_class->set_property = ofono_modem_object_skeleton_set_property;
+ gobject_class->get_property = ofono_modem_object_skeleton_get_property;
+
+ g_object_class_override_property (gobject_class, 1, "org-freedesktop-dbus-introspectable");
+ g_object_class_override_property (gobject_class, 2, "org-ofono-modem");
+ g_object_class_override_property (gobject_class, 3, "org-ofono-network-time");
+ g_object_class_override_property (gobject_class, 4, "org-ofono-network-registration");
+ g_object_class_override_property (gobject_class, 5, "org-ofono-handsfree");
+ g_object_class_override_property (gobject_class, 6, "org-ofono-call-volume");
+ g_object_class_override_property (gobject_class, 7, "org-ofono-voice-call-manager");
+}
+
+/**
+ * ofono_modem_object_skeleton_new:
+ * @object_path: An object path.
+ *
+ * Creates a new skeleton object.
+ *
+ * Returns: (transfer full): The skeleton object.
+ */
+OFONOMODEMObjectSkeleton *
+ofono_modem_object_skeleton_new (const gchar *object_path)
+{
+ g_return_val_if_fail (g_variant_is_object_path (object_path), NULL);
+ return OFONO_MODEM_OBJECT_SKELETON (g_object_new (OFONO_MODEM_TYPE_OBJECT_SKELETON, "g-object-path", object_path, NULL));
+}
+
+/**
+ * ofono_modem_object_skeleton_set_org_freedesktop_dbus_introspectable:
+ * @object: A #OFONOMODEMObjectSkeleton.
+ * @interface_: (allow-none): A #OFONOMODEMOrgFreedesktopDBusIntrospectable or %NULL to clear the interface.
+ *
+ * Sets the #OFONOMODEMOrgFreedesktopDBusIntrospectable instance for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-DBus-Introspectable.top_of_page">org.freedesktop.DBus.Introspectable</link> on @object.
+ */
+void ofono_modem_object_skeleton_set_org_freedesktop_dbus_introspectable (OFONOMODEMObjectSkeleton *object, OFONOMODEMOrgFreedesktopDBusIntrospectable *interface_)
+{
+ g_object_set (G_OBJECT (object), "org-freedesktop-dbus-introspectable", interface_, NULL);
+}
+
+/**
+ * ofono_modem_object_skeleton_set_org_ofono_modem:
+ * @object: A #OFONOMODEMObjectSkeleton.
+ * @interface_: (allow-none): A #OFONOMODEMOrgOfonoModem or %NULL to clear the interface.
+ *
+ * Sets the #OFONOMODEMOrgOfonoModem instance for the D-Bus interface <link linkend="gdbus-interface-org-ofono-Modem.top_of_page">org.ofono.Modem</link> on @object.
+ */
+void ofono_modem_object_skeleton_set_org_ofono_modem (OFONOMODEMObjectSkeleton *object, OFONOMODEMOrgOfonoModem *interface_)
+{
+ g_object_set (G_OBJECT (object), "org-ofono-modem", interface_, NULL);
+}
+
+/**
+ * ofono_modem_object_skeleton_set_org_ofono_network_time:
+ * @object: A #OFONOMODEMObjectSkeleton.
+ * @interface_: (allow-none): A #OFONOMODEMOrgOfonoNetworkTime or %NULL to clear the interface.
+ *
+ * Sets the #OFONOMODEMOrgOfonoNetworkTime instance for the D-Bus interface <link linkend="gdbus-interface-org-ofono-NetworkTime.top_of_page">org.ofono.NetworkTime</link> on @object.
+ */
+void ofono_modem_object_skeleton_set_org_ofono_network_time (OFONOMODEMObjectSkeleton *object, OFONOMODEMOrgOfonoNetworkTime *interface_)
+{
+ g_object_set (G_OBJECT (object), "org-ofono-network-time", interface_, NULL);
+}
+
+/**
+ * ofono_modem_object_skeleton_set_org_ofono_network_registration:
+ * @object: A #OFONOMODEMObjectSkeleton.
+ * @interface_: (allow-none): A #OFONOMODEMOrgOfonoNetworkRegistration or %NULL to clear the interface.
+ *
+ * Sets the #OFONOMODEMOrgOfonoNetworkRegistration instance for the D-Bus interface <link linkend="gdbus-interface-org-ofono-NetworkRegistration.top_of_page">org.ofono.NetworkRegistration</link> on @object.
+ */
+void ofono_modem_object_skeleton_set_org_ofono_network_registration (OFONOMODEMObjectSkeleton *object, OFONOMODEMOrgOfonoNetworkRegistration *interface_)
+{
+ g_object_set (G_OBJECT (object), "org-ofono-network-registration", interface_, NULL);
+}
+
+/**
+ * ofono_modem_object_skeleton_set_org_ofono_handsfree:
+ * @object: A #OFONOMODEMObjectSkeleton.
+ * @interface_: (allow-none): A #OFONOMODEMOrgOfonoHandsfree or %NULL to clear the interface.
+ *
+ * Sets the #OFONOMODEMOrgOfonoHandsfree instance for the D-Bus interface <link linkend="gdbus-interface-org-ofono-Handsfree.top_of_page">org.ofono.Handsfree</link> on @object.
+ */
+void ofono_modem_object_skeleton_set_org_ofono_handsfree (OFONOMODEMObjectSkeleton *object, OFONOMODEMOrgOfonoHandsfree *interface_)
+{
+ g_object_set (G_OBJECT (object), "org-ofono-handsfree", interface_, NULL);
+}
+
+/**
+ * ofono_modem_object_skeleton_set_org_ofono_call_volume:
+ * @object: A #OFONOMODEMObjectSkeleton.
+ * @interface_: (allow-none): A #OFONOMODEMOrgOfonoCallVolume or %NULL to clear the interface.
+ *
+ * Sets the #OFONOMODEMOrgOfonoCallVolume instance for the D-Bus interface <link linkend="gdbus-interface-org-ofono-CallVolume.top_of_page">org.ofono.CallVolume</link> on @object.
+ */
+void ofono_modem_object_skeleton_set_org_ofono_call_volume (OFONOMODEMObjectSkeleton *object, OFONOMODEMOrgOfonoCallVolume *interface_)
+{
+ g_object_set (G_OBJECT (object), "org-ofono-call-volume", interface_, NULL);
+}
+
+/**
+ * ofono_modem_object_skeleton_set_org_ofono_voice_call_manager:
+ * @object: A #OFONOMODEMObjectSkeleton.
+ * @interface_: (allow-none): A #OFONOMODEMOrgOfonoVoiceCallManager or %NULL to clear the interface.
+ *
+ * Sets the #OFONOMODEMOrgOfonoVoiceCallManager instance for the D-Bus interface <link linkend="gdbus-interface-org-ofono-VoiceCallManager.top_of_page">org.ofono.VoiceCallManager</link> on @object.
+ */
+void ofono_modem_object_skeleton_set_org_ofono_voice_call_manager (OFONOMODEMObjectSkeleton *object, OFONOMODEMOrgOfonoVoiceCallManager *interface_)
+{
+ g_object_set (G_OBJECT (object), "org-ofono-voice-call-manager", interface_, NULL);
+}
+
+
+/* ------------------------------------------------------------------------
+ * Code for ObjectManager client
+ * ------------------------------------------------------------------------
+ */
+
+/**
+ * SECTION:OFONOMODEMObjectManagerClient
+ * @title: OFONOMODEMObjectManagerClient
+ * @short_description: Generated GDBusObjectManagerClient type
+ *
+ * This section contains a #GDBusObjectManagerClient that uses ofono_modem_object_manager_client_get_proxy_type() as the #GDBusProxyTypeFunc.
+ */
+
+/**
+ * OFONOMODEMObjectManagerClient:
+ *
+ * The #OFONOMODEMObjectManagerClient structure contains only private data and should only be accessed using the provided API.
+ */
+
+/**
+ * OFONOMODEMObjectManagerClientClass:
+ * @parent_class: The parent class.
+ *
+ * Class structure for #OFONOMODEMObjectManagerClient.
+ */
+
+G_DEFINE_TYPE (OFONOMODEMObjectManagerClient, ofono_modem_object_manager_client, G_TYPE_DBUS_OBJECT_MANAGER_CLIENT);
+
+static void
+ofono_modem_object_manager_client_init (OFONOMODEMObjectManagerClient *manager G_GNUC_UNUSED)
+{
+}
+
+static void
+ofono_modem_object_manager_client_class_init (OFONOMODEMObjectManagerClientClass *klass G_GNUC_UNUSED)
+{
+}
+
+/**
+ * ofono_modem_object_manager_client_get_proxy_type:
+ * @manager: A #GDBusObjectManagerClient.
+ * @object_path: The object path of the remote object (unused).
+ * @interface_name: (allow-none): Interface name of the remote object or %NULL to get the object proxy #GType.
+ * @user_data: User data (unused).
+ *
+ * A #GDBusProxyTypeFunc that maps @interface_name to the generated #GDBusObjectProxy<!-- -->- and #GDBusProxy<!-- -->-derived types.
+ *
+ * Returns: A #GDBusProxy<!-- -->-derived #GType if @interface_name is not %NULL, otherwise the #GType for #OFONOMODEMObjectProxy.
+ */
+GType
+ofono_modem_object_manager_client_get_proxy_type (GDBusObjectManagerClient *manager G_GNUC_UNUSED, const gchar *object_path G_GNUC_UNUSED, const gchar *interface_name, gpointer user_data G_GNUC_UNUSED)
+{
+ static gsize once_init_value = 0;
+ static GHashTable *lookup_hash;
+ GType ret;
+
+ if (interface_name == NULL)
+ return OFONO_MODEM_TYPE_OBJECT_PROXY;
+ if (g_once_init_enter (&once_init_value))
+ {
+ lookup_hash = g_hash_table_new (g_str_hash, g_str_equal);
+ g_hash_table_insert (lookup_hash, (gpointer) "org.freedesktop.DBus.Introspectable", GSIZE_TO_POINTER (OFONO_MODEM_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY));
+ g_hash_table_insert (lookup_hash, (gpointer) "org.ofono.Modem", GSIZE_TO_POINTER (OFONO_MODEM_TYPE_ORG_OFONO_MODEM_PROXY));
+ g_hash_table_insert (lookup_hash, (gpointer) "org.ofono.NetworkTime", GSIZE_TO_POINTER (OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME_PROXY));
+ g_hash_table_insert (lookup_hash, (gpointer) "org.ofono.NetworkRegistration", GSIZE_TO_POINTER (OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION_PROXY));
+ g_hash_table_insert (lookup_hash, (gpointer) "org.ofono.Handsfree", GSIZE_TO_POINTER (OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE_PROXY));
+ g_hash_table_insert (lookup_hash, (gpointer) "org.ofono.CallVolume", GSIZE_TO_POINTER (OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME_PROXY));
+ g_hash_table_insert (lookup_hash, (gpointer) "org.ofono.VoiceCallManager", GSIZE_TO_POINTER (OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER_PROXY));
+ g_once_init_leave (&once_init_value, 1);
+ }
+ ret = (GType) GPOINTER_TO_SIZE (g_hash_table_lookup (lookup_hash, interface_name));
+ if (ret == (GType) 0)
+ ret = G_TYPE_DBUS_PROXY;
+ return ret;
+}
+
+/**
+ * ofono_modem_object_manager_client_new:
+ * @connection: A #GDBusConnection.
+ * @flags: Flags from the #GDBusObjectManagerClientFlags enumeration.
+ * @name: (allow-none): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
+ * @object_path: An object path.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
+ * @user_data: User data to pass to @callback.
+ *
+ * Asynchronously creates #GDBusObjectManagerClient using ofono_modem_object_manager_client_get_proxy_type() as the #GDBusProxyTypeFunc. See g_dbus_object_manager_client_new() for more details.
+ *
+ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
+ * You can then call ofono_modem_object_manager_client_new_finish() to get the result of the operation.
+ *
+ * See ofono_modem_object_manager_client_new_sync() for the synchronous, blocking version of this constructor.
+ */
+void
+ofono_modem_object_manager_client_new (
+ GDBusConnection *connection,
+ GDBusObjectManagerClientFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_async_initable_new_async (OFONO_MODEM_TYPE_OBJECT_MANAGER_CLIENT, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "flags", flags, "name", name, "connection", connection, "object-path", object_path, "get-proxy-type-func", ofono_modem_object_manager_client_get_proxy_type, NULL);
+}
+
+/**
+ * ofono_modem_object_manager_client_new_finish:
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_modem_object_manager_client_new().
+ * @error: Return location for error or %NULL
+ *
+ * Finishes an operation started with ofono_modem_object_manager_client_new().
+ *
+ * Returns: (transfer full) (type OFONOMODEMObjectManagerClient): The constructed object manager client or %NULL if @error is set.
+ */
+GDBusObjectManager *
+ofono_modem_object_manager_client_new_finish (
+ GAsyncResult *res,
+ GError **error)
+{
+ GObject *ret;
+ GObject *source_object;
+ source_object = g_async_result_get_source_object (res);
+ ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
+ g_object_unref (source_object);
+ if (ret != NULL)
+ return G_DBUS_OBJECT_MANAGER (ret);
+ else
+ return NULL;
+}
+
+/**
+ * ofono_modem_object_manager_client_new_sync:
+ * @connection: A #GDBusConnection.
+ * @flags: Flags from the #GDBusObjectManagerClientFlags enumeration.
+ * @name: (allow-none): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
+ * @object_path: An object path.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL
+ *
+ * Synchronously creates #GDBusObjectManagerClient using ofono_modem_object_manager_client_get_proxy_type() as the #GDBusProxyTypeFunc. See g_dbus_object_manager_client_new_sync() for more details.
+ *
+ * The calling thread is blocked until a reply is received.
+ *
+ * See ofono_modem_object_manager_client_new() for the asynchronous version of this constructor.
+ *
+ * Returns: (transfer full) (type OFONOMODEMObjectManagerClient): The constructed object manager client or %NULL if @error is set.
+ */
+GDBusObjectManager *
+ofono_modem_object_manager_client_new_sync (
+ GDBusConnection *connection,
+ GDBusObjectManagerClientFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GInitable *ret;
+ ret = g_initable_new (OFONO_MODEM_TYPE_OBJECT_MANAGER_CLIENT, cancellable, error, "flags", flags, "name", name, "connection", connection, "object-path", object_path, "get-proxy-type-func", ofono_modem_object_manager_client_get_proxy_type, NULL);
+ if (ret != NULL)
+ return G_DBUS_OBJECT_MANAGER (ret);
+ else
+ return NULL;
+}
+
+
+/**
+ * ofono_modem_object_manager_client_new_for_bus:
+ * @bus_type: A #GBusType.
+ * @flags: Flags from the #GDBusObjectManagerClientFlags enumeration.
+ * @name: A bus name (well-known or unique).
+ * @object_path: An object path.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
+ * @user_data: User data to pass to @callback.
+ *
+ * Like ofono_modem_object_manager_client_new() but takes a #GBusType instead of a #GDBusConnection.
+ *
+ * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
+ * You can then call ofono_modem_object_manager_client_new_for_bus_finish() to get the result of the operation.
+ *
+ * See ofono_modem_object_manager_client_new_for_bus_sync() for the synchronous, blocking version of this constructor.
+ */
+void
+ofono_modem_object_manager_client_new_for_bus (
+ GBusType bus_type,
+ GDBusObjectManagerClientFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ g_async_initable_new_async (OFONO_MODEM_TYPE_OBJECT_MANAGER_CLIENT, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "flags", flags, "name", name, "bus-type", bus_type, "object-path", object_path, "get-proxy-type-func", ofono_modem_object_manager_client_get_proxy_type, NULL);
+}
+
+/**
+ * ofono_modem_object_manager_client_new_for_bus_finish:
+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_modem_object_manager_client_new_for_bus().
+ * @error: Return location for error or %NULL
+ *
+ * Finishes an operation started with ofono_modem_object_manager_client_new_for_bus().
+ *
+ * Returns: (transfer full) (type OFONOMODEMObjectManagerClient): The constructed object manager client or %NULL if @error is set.
+ */
+GDBusObjectManager *
+ofono_modem_object_manager_client_new_for_bus_finish (
+ GAsyncResult *res,
+ GError **error)
+{
+ GObject *ret;
+ GObject *source_object;
+ source_object = g_async_result_get_source_object (res);
+ ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
+ g_object_unref (source_object);
+ if (ret != NULL)
+ return G_DBUS_OBJECT_MANAGER (ret);
+ else
+ return NULL;
+}
+
+/**
+ * ofono_modem_object_manager_client_new_for_bus_sync:
+ * @bus_type: A #GBusType.
+ * @flags: Flags from the #GDBusObjectManagerClientFlags enumeration.
+ * @name: A bus name (well-known or unique).
+ * @object_path: An object path.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
+ * @error: Return location for error or %NULL
+ *
+ * Like ofono_modem_object_manager_client_new_sync() but takes a #GBusType instead of a #GDBusConnection.
+ *
+ * The calling thread is blocked until a reply is received.
+ *
+ * See ofono_modem_object_manager_client_new_for_bus() for the asynchronous version of this constructor.
+ *
+ * Returns: (transfer full) (type OFONOMODEMObjectManagerClient): The constructed object manager client or %NULL if @error is set.
+ */
+GDBusObjectManager *
+ofono_modem_object_manager_client_new_for_bus_sync (
+ GBusType bus_type,
+ GDBusObjectManagerClientFlags flags,
+ const gchar *name,
+ const gchar *object_path,
+ GCancellable *cancellable,
+ GError **error)
+{
+ GInitable *ret;
+ ret = g_initable_new (OFONO_MODEM_TYPE_OBJECT_MANAGER_CLIENT, cancellable, error, "flags", flags, "name", name, "bus-type", bus_type, "object-path", object_path, "get-proxy-type-func", ofono_modem_object_manager_client_get_proxy_type, NULL);
+ if (ret != NULL)
+ return G_DBUS_OBJECT_MANAGER (ret);
+ else
+ return NULL;
+}
+
+